@wordpress/dom 4.57.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/README.md +23 -23
  2. package/build/data-transfer.cjs +20 -38
  3. package/build/data-transfer.cjs.map +1 -7
  4. package/build/dom/caret-range-from-point.cjs +31 -38
  5. package/build/dom/caret-range-from-point.cjs.map +1 -7
  6. package/build/dom/clean-node-list.cjs +88 -133
  7. package/build/dom/clean-node-list.cjs.map +1 -7
  8. package/build/dom/compute-caret-rect.cjs +36 -36
  9. package/build/dom/compute-caret-rect.cjs.map +1 -7
  10. package/build/dom/document-has-selection.cjs +36 -31
  11. package/build/dom/document-has-selection.cjs.map +1 -7
  12. package/build/dom/document-has-text-selection.cjs +24 -30
  13. package/build/dom/document-has-text-selection.cjs.map +1 -7
  14. package/build/dom/document-has-uncollapsed-selection.cjs +35 -30
  15. package/build/dom/document-has-uncollapsed-selection.cjs.map +1 -7
  16. package/build/dom/get-computed-style.cjs +14 -30
  17. package/build/dom/get-computed-style.cjs.map +1 -7
  18. package/build/dom/get-offset-parent.cjs +41 -48
  19. package/build/dom/get-offset-parent.cjs.map +1 -7
  20. package/build/dom/get-range-height.cjs +18 -31
  21. package/build/dom/get-range-height.cjs.map +1 -7
  22. package/build/dom/get-rectangle-from-range.cjs +82 -133
  23. package/build/dom/get-rectangle-from-range.cjs.map +1 -7
  24. package/build/dom/get-scroll-container.cjs +47 -55
  25. package/build/dom/get-scroll-container.cjs.map +1 -7
  26. package/build/dom/hidden-caret-range-from-point.cjs +49 -43
  27. package/build/dom/hidden-caret-range-from-point.cjs.map +1 -7
  28. package/build/dom/index.cjs +233 -110
  29. package/build/dom/input-field-has-uncollapsed-selection.cjs +49 -47
  30. package/build/dom/input-field-has-uncollapsed-selection.cjs.map +1 -7
  31. package/build/dom/insert-after.cjs +17 -27
  32. package/build/dom/insert-after.cjs.map +1 -7
  33. package/build/dom/is-edge.cjs +83 -98
  34. package/build/dom/is-edge.cjs.map +1 -7
  35. package/build/dom/is-element.cjs +12 -25
  36. package/build/dom/is-element.cjs.map +1 -7
  37. package/build/dom/is-empty.cjs +23 -40
  38. package/build/dom/is-empty.cjs.map +1 -7
  39. package/build/dom/is-entirely-selected.cjs +71 -71
  40. package/build/dom/is-entirely-selected.cjs.map +1 -7
  41. package/build/dom/is-form-element.cjs +34 -34
  42. package/build/dom/is-form-element.cjs.map +1 -7
  43. package/build/dom/is-horizontal-edge.cjs +32 -29
  44. package/build/dom/is-horizontal-edge.cjs.map +1 -7
  45. package/build/dom/is-html-input-element.cjs +12 -25
  46. package/build/dom/is-html-input-element.cjs.map +1 -7
  47. package/build/dom/is-input-or-text-area.cjs +12 -25
  48. package/build/dom/is-input-or-text-area.cjs.map +1 -7
  49. package/build/dom/is-number-input.cjs +37 -34
  50. package/build/dom/is-number-input.cjs.map +1 -7
  51. package/build/dom/is-rtl.cjs +31 -29
  52. package/build/dom/is-rtl.cjs.map +1 -7
  53. package/build/dom/is-selection-forward.cjs +26 -39
  54. package/build/dom/is-selection-forward.cjs.map +1 -7
  55. package/build/dom/is-text-field.cjs +46 -44
  56. package/build/dom/is-text-field.cjs.map +1 -7
  57. package/build/dom/is-vertical-edge.cjs +32 -29
  58. package/build/dom/is-vertical-edge.cjs.map +1 -7
  59. package/build/dom/place-caret-at-edge.cjs +76 -79
  60. package/build/dom/place-caret-at-edge.cjs.map +1 -7
  61. package/build/dom/place-caret-at-horizontal-edge.cjs +30 -29
  62. package/build/dom/place-caret-at-horizontal-edge.cjs.map +1 -7
  63. package/build/dom/place-caret-at-vertical-edge.cjs +31 -29
  64. package/build/dom/place-caret-at-vertical-edge.cjs.map +1 -7
  65. package/build/dom/remove-invalid-html.cjs +36 -32
  66. package/build/dom/remove-invalid-html.cjs.map +1 -7
  67. package/build/dom/remove.cjs +15 -27
  68. package/build/dom/remove.cjs.map +1 -7
  69. package/build/dom/replace-tag.cjs +21 -32
  70. package/build/dom/replace-tag.cjs.map +1 -7
  71. package/build/dom/replace.cjs +35 -33
  72. package/build/dom/replace.cjs.map +1 -7
  73. package/build/dom/safe-html.cjs +46 -47
  74. package/build/dom/safe-html.cjs.map +1 -7
  75. package/build/dom/scroll-if-no-range.cjs +24 -37
  76. package/build/dom/scroll-if-no-range.cjs.map +1 -7
  77. package/build/dom/strip-html.cjs +34 -32
  78. package/build/dom/strip-html.cjs.map +1 -7
  79. package/build/dom/types.cjs +5 -0
  80. package/build/dom/unwrap.cjs +17 -31
  81. package/build/dom/unwrap.cjs.map +1 -7
  82. package/build/dom/wrap.cjs +17 -28
  83. package/build/dom/wrap.cjs.map +1 -7
  84. package/build/focusable.cjs +99 -77
  85. package/build/focusable.cjs.map +1 -7
  86. package/build/index.cjs +58 -39
  87. package/build/index.cjs.map +1 -7
  88. package/build/phrasing-content.cjs +163 -159
  89. package/build/phrasing-content.cjs.map +1 -7
  90. package/build/tabbable.cjs +123 -78
  91. package/build/tabbable.cjs.map +1 -7
  92. package/build/types.cjs +5 -0
  93. package/build/utils/assert-is-defined.cjs +8 -33
  94. package/build/utils/assert-is-defined.cjs.map +1 -7
  95. package/build-module/data-transfer.mjs +17 -15
  96. package/build-module/data-transfer.mjs.map +1 -7
  97. package/build-module/dom/caret-range-from-point.mjs +28 -19
  98. package/build-module/dom/caret-range-from-point.mjs.map +1 -7
  99. package/build-module/dom/clean-node-list.mjs +60 -105
  100. package/build-module/dom/clean-node-list.mjs.map +1 -7
  101. package/build-module/dom/compute-caret-rect.mjs +16 -12
  102. package/build-module/dom/compute-caret-rect.mjs.map +1 -7
  103. package/build-module/dom/document-has-selection.mjs +13 -6
  104. package/build-module/dom/document-has-selection.mjs.map +1 -7
  105. package/build-module/dom/document-has-text-selection.mjs +20 -10
  106. package/build-module/dom/document-has-text-selection.mjs.map +1 -7
  107. package/build-module/dom/document-has-uncollapsed-selection.mjs +14 -6
  108. package/build-module/dom/document-has-uncollapsed-selection.mjs.map +1 -7
  109. package/build-module/dom/get-computed-style.mjs +10 -10
  110. package/build-module/dom/get-computed-style.mjs.map +1 -7
  111. package/build-module/dom/get-offset-parent.mjs +21 -25
  112. package/build-module/dom/get-offset-parent.mjs.map +1 -7
  113. package/build-module/dom/get-range-height.mjs +15 -12
  114. package/build-module/dom/get-range-height.mjs.map +1 -7
  115. package/build-module/dom/get-rectangle-from-range.mjs +78 -113
  116. package/build-module/dom/get-rectangle-from-range.mjs.map +1 -7
  117. package/build-module/dom/get-scroll-container.mjs +28 -32
  118. package/build-module/dom/get-scroll-container.mjs.map +1 -7
  119. package/build-module/dom/hidden-caret-range-from-point.mjs +28 -19
  120. package/build-module/dom/hidden-caret-range-from-point.mjs.map +1 -7
  121. package/build-module/dom/index.mjs +28 -58
  122. package/build-module/dom/input-field-has-uncollapsed-selection.mjs +28 -23
  123. package/build-module/dom/input-field-has-uncollapsed-selection.mjs.map +1 -7
  124. package/build-module/dom/insert-after.mjs +13 -7
  125. package/build-module/dom/insert-after.mjs.map +1 -7
  126. package/build-module/dom/is-edge.mjs +53 -69
  127. package/build-module/dom/is-edge.mjs.map +1 -7
  128. package/build-module/dom/is-element.mjs +9 -6
  129. package/build-module/dom/is-element.mjs.map +1 -7
  130. package/build-module/dom/is-empty.mjs +20 -21
  131. package/build-module/dom/is-empty.mjs.map +1 -7
  132. package/build-module/dom/is-entirely-selected.mjs +51 -47
  133. package/build-module/dom/is-entirely-selected.mjs.map +1 -7
  134. package/build-module/dom/is-form-element.mjs +15 -11
  135. package/build-module/dom/is-form-element.mjs.map +1 -7
  136. package/build-module/dom/is-horizontal-edge.mjs +13 -6
  137. package/build-module/dom/is-horizontal-edge.mjs.map +1 -7
  138. package/build-module/dom/is-html-input-element.mjs +9 -6
  139. package/build-module/dom/is-html-input-element.mjs.map +1 -7
  140. package/build-module/dom/is-input-or-text-area.mjs +9 -6
  141. package/build-module/dom/is-input-or-text-area.mjs.map +1 -7
  142. package/build-module/dom/is-number-input.mjs +16 -10
  143. package/build-module/dom/is-number-input.mjs.map +1 -7
  144. package/build-module/dom/is-rtl.mjs +12 -6
  145. package/build-module/dom/is-rtl.mjs.map +1 -7
  146. package/build-module/dom/is-selection-forward.mjs +22 -19
  147. package/build-module/dom/is-selection-forward.mjs.map +1 -7
  148. package/build-module/dom/is-text-field.mjs +27 -21
  149. package/build-module/dom/is-text-field.mjs.map +1 -7
  150. package/build-module/dom/is-vertical-edge.mjs +13 -6
  151. package/build-module/dom/is-vertical-edge.mjs.map +1 -7
  152. package/build-module/dom/place-caret-at-edge.mjs +51 -52
  153. package/build-module/dom/place-caret-at-edge.mjs.map +1 -7
  154. package/build-module/dom/place-caret-at-horizontal-edge.mjs +11 -6
  155. package/build-module/dom/place-caret-at-horizontal-edge.mjs.map +1 -7
  156. package/build-module/dom/place-caret-at-vertical-edge.mjs +12 -6
  157. package/build-module/dom/place-caret-at-vertical-edge.mjs.map +1 -7
  158. package/build-module/dom/remove-invalid-html.mjs +17 -9
  159. package/build-module/dom/remove-invalid-html.mjs.map +1 -7
  160. package/build-module/dom/remove.mjs +11 -7
  161. package/build-module/dom/remove.mjs.map +1 -7
  162. package/build-module/dom/replace-tag.mjs +17 -12
  163. package/build-module/dom/replace-tag.mjs.map +1 -7
  164. package/build-module/dom/replace.mjs +13 -8
  165. package/build-module/dom/replace.mjs.map +1 -7
  166. package/build-module/dom/safe-html.mjs +27 -24
  167. package/build-module/dom/safe-html.mjs.map +1 -7
  168. package/build-module/dom/scroll-if-no-range.mjs +21 -14
  169. package/build-module/dom/scroll-if-no-range.mjs.map +1 -7
  170. package/build-module/dom/strip-html.mjs +15 -9
  171. package/build-module/dom/strip-html.mjs.map +1 -7
  172. package/build-module/dom/types.mjs +0 -0
  173. package/build-module/dom/unwrap.mjs +13 -11
  174. package/build-module/dom/unwrap.mjs.map +1 -7
  175. package/build-module/dom/wrap.mjs +13 -8
  176. package/build-module/dom/wrap.mjs.map +1 -7
  177. package/build-module/focusable.mjs +96 -54
  178. package/build-module/focusable.mjs.map +1 -7
  179. package/build-module/index.mjs +11 -5
  180. package/build-module/index.mjs.map +1 -7
  181. package/build-module/phrasing-content.mjs +158 -134
  182. package/build-module/phrasing-content.mjs.map +1 -7
  183. package/build-module/tabbable.mjs +117 -52
  184. package/build-module/tabbable.mjs.map +1 -7
  185. package/build-module/types.mjs +0 -0
  186. package/build-module/utils/assert-is-defined.mjs +4 -9
  187. package/build-module/utils/assert-is-defined.mjs.map +1 -7
  188. package/build-types/data-transfer.d.ts +2 -2
  189. package/build-types/data-transfer.d.ts.map +1 -1
  190. package/build-types/dom/caret-range-from-point.d.ts +4 -4
  191. package/build-types/dom/caret-range-from-point.d.ts.map +1 -1
  192. package/build-types/dom/clean-node-list.d.ts +6 -46
  193. package/build-types/dom/clean-node-list.d.ts.map +1 -1
  194. package/build-types/dom/compute-caret-rect.d.ts +2 -2
  195. package/build-types/dom/compute-caret-rect.d.ts.map +1 -1
  196. package/build-types/dom/document-has-selection.d.ts +2 -2
  197. package/build-types/dom/document-has-selection.d.ts.map +1 -1
  198. package/build-types/dom/document-has-text-selection.d.ts +2 -2
  199. package/build-types/dom/document-has-text-selection.d.ts.map +1 -1
  200. package/build-types/dom/document-has-uncollapsed-selection.d.ts +2 -2
  201. package/build-types/dom/document-has-uncollapsed-selection.d.ts.map +1 -1
  202. package/build-types/dom/get-computed-style.d.ts +3 -3
  203. package/build-types/dom/get-computed-style.d.ts.map +1 -1
  204. package/build-types/dom/get-offset-parent.d.ts +2 -2
  205. package/build-types/dom/get-offset-parent.d.ts.map +1 -1
  206. package/build-types/dom/get-range-height.d.ts +2 -2
  207. package/build-types/dom/get-range-height.d.ts.map +1 -1
  208. package/build-types/dom/get-rectangle-from-range.d.ts +2 -2
  209. package/build-types/dom/get-rectangle-from-range.d.ts.map +1 -1
  210. package/build-types/dom/get-scroll-container.d.ts +5 -5
  211. package/build-types/dom/get-scroll-container.d.ts.map +1 -1
  212. package/build-types/dom/hidden-caret-range-from-point.d.ts +5 -5
  213. package/build-types/dom/hidden-caret-range-from-point.d.ts.map +1 -1
  214. package/build-types/dom/index.d.ts.map +1 -1
  215. package/build-types/dom/input-field-has-uncollapsed-selection.d.ts +2 -2
  216. package/build-types/dom/input-field-has-uncollapsed-selection.d.ts.map +1 -1
  217. package/build-types/dom/insert-after.d.ts +2 -3
  218. package/build-types/dom/insert-after.d.ts.map +1 -1
  219. package/build-types/dom/is-edge.d.ts +4 -4
  220. package/build-types/dom/is-edge.d.ts.map +1 -1
  221. package/build-types/dom/is-element.d.ts.map +1 -1
  222. package/build-types/dom/is-empty.d.ts +3 -3
  223. package/build-types/dom/is-empty.d.ts.map +1 -1
  224. package/build-types/dom/is-entirely-selected.d.ts +2 -2
  225. package/build-types/dom/is-entirely-selected.d.ts.map +1 -1
  226. package/build-types/dom/is-form-element.d.ts +3 -3
  227. package/build-types/dom/is-form-element.d.ts.map +1 -1
  228. package/build-types/dom/is-horizontal-edge.d.ts.map +1 -1
  229. package/build-types/dom/is-html-input-element.d.ts +1 -1
  230. package/build-types/dom/is-html-input-element.d.ts.map +1 -1
  231. package/build-types/dom/is-input-or-text-area.d.ts.map +1 -1
  232. package/build-types/dom/is-number-input.d.ts +2 -2
  233. package/build-types/dom/is-number-input.d.ts.map +1 -1
  234. package/build-types/dom/is-rtl.d.ts +2 -2
  235. package/build-types/dom/is-rtl.d.ts.map +1 -1
  236. package/build-types/dom/is-selection-forward.d.ts +2 -2
  237. package/build-types/dom/is-selection-forward.d.ts.map +1 -1
  238. package/build-types/dom/is-text-field.d.ts +2 -2
  239. package/build-types/dom/is-text-field.d.ts.map +1 -1
  240. package/build-types/dom/is-vertical-edge.d.ts.map +1 -1
  241. package/build-types/dom/place-caret-at-edge.d.ts +3 -3
  242. package/build-types/dom/place-caret-at-edge.d.ts.map +1 -1
  243. package/build-types/dom/place-caret-at-horizontal-edge.d.ts.map +1 -1
  244. package/build-types/dom/place-caret-at-vertical-edge.d.ts.map +1 -1
  245. package/build-types/dom/remove-invalid-html.d.ts +5 -4
  246. package/build-types/dom/remove-invalid-html.d.ts.map +1 -1
  247. package/build-types/dom/remove.d.ts +1 -2
  248. package/build-types/dom/remove.d.ts.map +1 -1
  249. package/build-types/dom/replace-tag.d.ts +3 -3
  250. package/build-types/dom/replace-tag.d.ts.map +1 -1
  251. package/build-types/dom/replace.d.ts +2 -3
  252. package/build-types/dom/replace.d.ts.map +1 -1
  253. package/build-types/dom/safe-html.d.ts +2 -2
  254. package/build-types/dom/safe-html.d.ts.map +1 -1
  255. package/build-types/dom/scroll-if-no-range.d.ts +5 -5
  256. package/build-types/dom/scroll-if-no-range.d.ts.map +1 -1
  257. package/build-types/dom/strip-html.d.ts +2 -2
  258. package/build-types/dom/strip-html.d.ts.map +1 -1
  259. package/build-types/dom/types.d.ts +32 -0
  260. package/build-types/dom/types.d.ts.map +1 -0
  261. package/build-types/dom/unwrap.d.ts +1 -3
  262. package/build-types/dom/unwrap.d.ts.map +1 -1
  263. package/build-types/dom/wrap.d.ts +2 -2
  264. package/build-types/dom/wrap.d.ts.map +1 -1
  265. package/build-types/focusable.d.ts +11 -30
  266. package/build-types/focusable.d.ts.map +1 -1
  267. package/build-types/index.d.ts +17 -0
  268. package/build-types/index.d.ts.map +1 -1
  269. package/build-types/phrasing-content.d.ts +9 -24
  270. package/build-types/phrasing-content.d.ts.map +1 -1
  271. package/build-types/tabbable.d.ts +10 -15
  272. package/build-types/tabbable.d.ts.map +1 -1
  273. package/build-types/types.d.ts +29 -0
  274. package/build-types/types.d.ts.map +1 -0
  275. package/package.json +6 -7
  276. package/src/{data-transfer.js → data-transfer.ts} +3 -3
  277. package/src/dom/{caret-range-from-point.js → caret-range-from-point.ts} +9 -5
  278. package/src/dom/{clean-node-list.js → clean-node-list.ts} +16 -24
  279. package/src/dom/{compute-caret-rect.js → compute-caret-rect.ts} +3 -3
  280. package/src/dom/{document-has-selection.js → document-has-selection.ts} +3 -3
  281. package/src/dom/{document-has-text-selection.js → document-has-text-selection.ts} +3 -3
  282. package/src/dom/{document-has-uncollapsed-selection.js → document-has-uncollapsed-selection.ts} +5 -3
  283. package/src/dom/{get-computed-style.js → get-computed-style.ts} +5 -3
  284. package/src/dom/{get-offset-parent.js → get-offset-parent.ts} +9 -14
  285. package/src/dom/{get-range-height.js → get-range-height.ts} +3 -3
  286. package/src/dom/{get-rectangle-from-range.js → get-rectangle-from-range.ts} +6 -12
  287. package/src/dom/{get-scroll-container.js → get-scroll-container.ts} +9 -9
  288. package/src/dom/{hidden-caret-range-from-point.js → hidden-caret-range-from-point.ts} +11 -6
  289. package/src/dom/{input-field-has-uncollapsed-selection.js → input-field-has-uncollapsed-selection.ts} +7 -5
  290. package/src/dom/{insert-after.js → insert-after.ts} +6 -4
  291. package/src/dom/{is-edge.js → is-edge.ts} +44 -48
  292. package/src/dom/{is-element.js → is-element.ts} +3 -1
  293. package/src/dom/{is-empty.js → is-empty.ts} +5 -7
  294. package/src/dom/{is-entirely-selected.js → is-entirely-selected.ts} +14 -11
  295. package/src/dom/{is-form-element.js → is-form-element.ts} +5 -3
  296. package/src/dom/{is-horizontal-edge.js → is-horizontal-edge.ts} +4 -1
  297. package/src/dom/{is-html-input-element.js → is-html-input-element.ts} +3 -1
  298. package/src/dom/{is-input-or-text-area.js → is-input-or-text-area.ts} +3 -1
  299. package/src/dom/{is-number-input.js → is-number-input.ts} +3 -3
  300. package/src/dom/{is-rtl.js → is-rtl.ts} +3 -3
  301. package/src/dom/{is-selection-forward.js → is-selection-forward.ts} +3 -3
  302. package/src/dom/{is-text-field.js → is-text-field.ts} +4 -4
  303. package/src/dom/{is-vertical-edge.js → is-vertical-edge.ts} +4 -1
  304. package/src/dom/{place-caret-at-edge.js → place-caret-at-edge.ts} +17 -9
  305. package/src/dom/{place-caret-at-horizontal-edge.js → place-caret-at-horizontal-edge.ts} +4 -1
  306. package/src/dom/{place-caret-at-vertical-edge.js → place-caret-at-vertical-edge.ts} +5 -1
  307. package/src/dom/{remove-invalid-html.js → remove-invalid-html.ts} +9 -4
  308. package/src/dom/{remove.js → remove.ts} +2 -3
  309. package/src/dom/{replace-tag.js → replace-tag.ts} +4 -4
  310. package/src/dom/{replace.js → replace.ts} +6 -4
  311. package/src/dom/{safe-html.js → safe-html.ts} +3 -3
  312. package/src/dom/{scroll-if-no-range.js → scroll-if-no-range.ts} +9 -5
  313. package/src/dom/{strip-html.js → strip-html.ts} +3 -3
  314. package/src/dom/test/{get-rectangle-from-range.browser.test.js → get-rectangle-from-range.browser.test.ts} +25 -25
  315. package/src/dom/types.ts +28 -0
  316. package/src/dom/{unwrap.js → unwrap.ts} +2 -4
  317. package/src/dom/{wrap.js → wrap.ts} +3 -3
  318. package/src/{focusable.js → focusable.ts} +34 -32
  319. package/src/index.ts +33 -0
  320. package/src/{phrasing-content.js → phrasing-content.ts} +15 -30
  321. package/src/{tabbable.js → tabbable.ts} +48 -39
  322. package/src/test/{dom.jsdom.test.js → dom.jsdom.test.ts} +30 -6
  323. package/src/test/{focusable.browser.test.js → focusable.browser.test.ts} +14 -13
  324. package/src/test/{tabbable.browser.test.js → tabbable.browser.test.ts} +3 -2
  325. package/src/types.ts +32 -0
  326. package/CHANGELOG.md +0 -317
  327. package/build/dom/index.cjs.map +0 -7
  328. package/build-module/dom/index.mjs.map +0 -7
  329. package/src/index.js +0 -12
  330. /package/src/dom/{index.js → index.ts} +0 -0
  331. /package/src/dom/test/{safe-html.jsdom.test.js → safe-html.jsdom.test.ts} +0 -0
  332. /package/src/dom/test/{strip-html.jsdom.test.js → strip-html.jsdom.test.ts} +0 -0
  333. /package/src/test/{focusable-area.jsdom.test.js → focusable-area.jsdom.test.ts} +0 -0
  334. /package/src/test/{utils.js → utils.ts} +0 -0
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * Given two DOM nodes, replaces the former with the latter in the DOM.
3
3
  *
4
- * @param {Element} processedNode Node to be removed.
5
- * @param {Element} newNode Node to be inserted in its place.
6
- * @return {void}
4
+ * @param processedNode Node to be removed.
5
+ * @param newNode Node to be inserted in its place.
7
6
  */
8
7
  export default function replace(processedNode: Element, newNode: Element): void;
9
8
  //# sourceMappingURL=replace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../../src/dom/replace.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAE,aAAa,EAJnC,OAImC,EAAE,OAAO,EAH5C,OAG4C,GAF3C,IAAI,CAMf"}
1
+ {"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../../src/dom/replace.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC9B,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE,OAAO,GACd,IAAI,CAIN"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Strips scripts and on* attributes from HTML.
3
3
  *
4
- * @param {string} html HTML to sanitize.
4
+ * @param html HTML to sanitize.
5
5
  *
6
- * @return {string} The sanitized HTML.
6
+ * @return The sanitized HTML.
7
7
  */
8
8
  export default function safeHTML(html: string): string;
9
9
  //# sourceMappingURL=safe-html.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-html.d.ts","sourceRoot":"","sources":["../../src/dom/safe-html.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,IAAI,EAJ3B,MAI2B,GAF1B,MAAM,CA2BjB"}
1
+ {"version":3,"file":"safe-html.d.ts","sourceRoot":"","sources":["../../src/dom/safe-html.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM,CAyBvD"}
@@ -2,11 +2,11 @@
2
2
  * If no range range can be created or it is outside the container, the element
3
3
  * may be out of view, so scroll it into view and try again.
4
4
  *
5
- * @param {HTMLElement} container The container to scroll.
6
- * @param {boolean} alignToTop True to align to top, false to bottom.
7
- * @param {Function} callback The callback to create the range.
5
+ * @param container The container to scroll.
6
+ * @param alignToTop True to align to top, false to bottom.
7
+ * @param callback The callback to create the range.
8
8
  *
9
- * @return {?Range} The range returned by the callback.
9
+ * @return The range returned by the callback.
10
10
  */
11
- export declare function scrollIfNoRange(container: HTMLElement, alignToTop: boolean, callback: Function): Range | null;
11
+ export declare function scrollIfNoRange(container: HTMLElement, alignToTop: boolean, callback: () => Range | null): Range | null;
12
12
  //# sourceMappingURL=scroll-if-no-range.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-if-no-range.d.ts","sourceRoot":"","sources":["../../src/dom/scroll-if-no-range.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAE,SAAS,EAN/B,WAM+B,EAAE,UAAU,EAL3C,OAK2C,EAAE,QAAQ,UAAA,GAFnD,KAAK,OAAA,CAyBjB"}
1
+ {"version":3,"file":"scroll-if-no-range.d.ts","sourceRoot":"","sources":["../../src/dom/scroll-if-no-range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC9B,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,OAAO,EACnB,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,GAC1B,KAAK,GAAG,IAAI,CAuBd"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Removes any HTML tags from the provided string.
3
3
  *
4
- * @param {string} html The string containing html.
4
+ * @param html The string containing html.
5
5
  *
6
- * @return {string} The text content with any html removed.
6
+ * @return The text content with any html removed.
7
7
  */
8
8
  export default function stripHTML(html: string): string;
9
9
  //# sourceMappingURL=strip-html.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"strip-html.d.ts","sourceRoot":"","sources":["../../src/dom/strip-html.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAE,IAAI,EAJ5B,MAI4B,GAF3B,MAAM,CAUjB"}
1
+ {"version":3,"file":"strip-html.d.ts","sourceRoot":"","sources":["../../src/dom/strip-html.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM,CAQxD"}
@@ -0,0 +1,32 @@
1
+ export interface SchemaItem {
2
+ /**
3
+ * Attributes.
4
+ */
5
+ attributes?: string[];
6
+ /**
7
+ * Classnames or RegExp to test against. Use '*' to keep all classes.
8
+ */
9
+ classes?: (string | RegExp)[];
10
+ /**
11
+ * Child schemas.
12
+ */
13
+ children?: '*' | {
14
+ [tag: string]: SchemaItem;
15
+ };
16
+ /**
17
+ * Selectors to test required children against. Leave empty or undefined if there are no requirements.
18
+ */
19
+ require?: string[];
20
+ /**
21
+ * Whether to allow nodes without children.
22
+ */
23
+ allowEmpty?: boolean;
24
+ /**
25
+ * Function to test whether a node is a match. If left undefined any node will be assumed to match.
26
+ */
27
+ isMatch?: (node: Node) => boolean;
28
+ }
29
+ export type Schema = {
30
+ [tag: string]: SchemaItem;
31
+ };
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dom/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAE,MAAM,GAAG,MAAM,CAAE,EAAE,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,GAAG;QAAE,CAAE,GAAG,EAAE,MAAM,GAAI,UAAU,CAAA;KAAE,CAAC;IACjD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAE,IAAI,EAAE,IAAI,KAAM,OAAO,CAAC;CACpC;AAED,MAAM,MAAM,MAAM,GAAG;IAAE,CAAE,GAAG,EAAE,MAAM,GAAI,UAAU,CAAA;CAAE,CAAC"}
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * Unwrap the given node. This means any child nodes are moved to the parent.
3
3
  *
4
- * @param {Node} node The node to unwrap.
5
- *
6
- * @return {void}
4
+ * @param node The node to unwrap.
7
5
  */
8
6
  export default function unwrap(node: Node): void;
9
7
  //# sourceMappingURL=unwrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap.d.ts","sourceRoot":"","sources":["../../src/dom/unwrap.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,IAAI,EAJzB,IAIyB,GAFxB,IAAI,CAYf"}
1
+ {"version":3,"file":"unwrap.d.ts","sourceRoot":"","sources":["../../src/dom/unwrap.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,IAAI,EAAE,IAAI,GAAI,IAAI,CAUjD"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Wraps the given node with a new node with the given tag name.
3
3
  *
4
- * @param {Element} newNode The node to insert.
5
- * @param {Element} referenceNode The node to wrap.
4
+ * @param newNode The node to insert.
5
+ * @param referenceNode The node to wrap.
6
6
  */
7
7
  export default function wrap(newNode: Element, referenceNode: Element): void;
8
8
  //# sourceMappingURL=wrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/dom/wrap.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAE,OAAO,EAH1B,OAG0B,EAAE,aAAa,EAFzC,OAEyC,QAInD"}
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/dom/wrap.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,QAIrE"}
@@ -1,36 +1,17 @@
1
- /**
2
- * References:
3
- *
4
- * Focusable:
5
- * - https://www.w3.org/TR/html5/editing.html#focus-management
6
- *
7
- * Sequential focus navigation:
8
- * - https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute
9
- *
10
- * Disabled elements:
11
- * - https://www.w3.org/TR/html5/disabled-elements.html#disabled-elements
12
- *
13
- * getClientRects algorithm (requiring layout box):
14
- * - https://www.w3.org/TR/cssom-view-1/#extension-to-the-element-interface
15
- *
16
- * AREA elements associated with an IMG:
17
- * - https://w3c.github.io/html/editing.html#data-model
18
- */
1
+ import type { FindFocusableOptions } from './types';
19
2
  /**
20
3
  * Returns all focusable elements within a given context.
21
4
  *
22
- * @param {Element} context Element in which to search.
23
- * @param {Object} options
24
- * @param {boolean} [options.sequential] If set, only return elements that are
25
- * sequentially focusable.
26
- * Non-interactive elements with a
27
- * negative `tabindex` are focusable but
28
- * not sequentially focusable.
29
- * https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute
5
+ * @param context Element in which to search.
6
+ * @param options
7
+ * @param [options.sequential] If set, only return elements that are
8
+ * sequentially focusable.
9
+ * Non-interactive elements with a
10
+ * negative `tabindex` are focusable but
11
+ * not sequentially focusable.
12
+ * https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute
30
13
  *
31
- * @return {HTMLElement[]} Focusable elements.
14
+ * @return Focusable elements.
32
15
  */
33
- export declare function find(context: Element, { sequential }?: {
34
- sequential?: boolean;
35
- }): HTMLElement[];
16
+ export declare function find(context: Element, { sequential }?: FindFocusableOptions): HTMLElement[];
36
17
  //# sourceMappingURL=focusable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"focusable.d.ts","sourceRoot":"","sources":["../src/focusable.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAmFH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAE,OAAO,EAXlB,OAWkB,EAAE,EAAE,UAAkB,EAAE,GATlD;IAA0B,UAAU,AAApC,CAOA,EAPQ,OAAO,CAOf;CAEuD,GAF9C,WAAW,EAAE,CAsBxB"}
1
+ {"version":3,"file":"focusable.d.ts","sourceRoot":"","sources":["../src/focusable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAoGpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CACnB,OAAO,EAAE,OAAO,EAChB,EAAE,UAAkB,EAAE,GAAE,oBAAyB,GAC/C,WAAW,EAAE,CAmBf"}
@@ -11,4 +11,21 @@ export declare const focus: {
11
11
  export * from './dom';
12
12
  export * from './phrasing-content';
13
13
  export * from './data-transfer';
14
+ /**
15
+ * Schema of the content allowed inside an element, keyed by tag name.
16
+ */
17
+ export type { ContentSchema } from './types';
18
+ /**
19
+ * The attributes and children allowed for an element in a `ContentSchema`.
20
+ */
21
+ export type { SemanticElementDefinition } from './types';
22
+ /**
23
+ * Schema that `cleanNodeList` and `removeInvalidHTML` clean HTML against,
24
+ * keyed by tag name.
25
+ */
26
+ export type { Schema } from './dom/types';
27
+ /**
28
+ * The rules for a single tag in a `Schema`.
29
+ */
30
+ export type { SchemaItem } from './dom/types';
14
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,KAAK;;;CAA0B,CAAC;AAE7C,cAAc,OAAO,CAAC;AACtB,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,KAAK;;;CAA0B,CAAC;AAE7C,cAAc,OAAO,CAAC;AACtB,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAEhC;;GAEG;AACH,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AACH,YAAY,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD;;;GAGG;AACH,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -1,43 +1,28 @@
1
- /**
2
- * All phrasing content elements.
3
- *
4
- * @see https://www.w3.org/TR/2011/WD-html5-20110525/content-models.html#phrasing-content-0
5
- */
6
- export type ContentSchema = Record<string, SemanticElementDefinition>;
7
- export type SemanticElementDefinition = {
8
- /**
9
- * Content attributes
10
- */
11
- attributes?: string[];
12
- /**
13
- * Content attributes
14
- */
15
- children?: ContentSchema | '*';
16
- };
1
+ import type { ContentSchema } from './types';
17
2
  /**
18
3
  * Get schema of possible paths for phrasing content.
19
4
  *
20
5
  * @see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content
21
6
  *
22
- * @param {string} [context] Set to "paste" to exclude invisible elements and
23
- * sensitive data.
7
+ * @param [context] Set to "paste" to exclude invisible elements and
8
+ * sensitive data.
24
9
  *
25
- * @return {Partial<ContentSchema>} Schema.
10
+ * @return Schema.
26
11
  */
27
- export declare function getPhrasingContentSchema(context?: string): Partial<ContentSchema>;
12
+ export declare function getPhrasingContentSchema(context?: string): ContentSchema;
28
13
  /**
29
14
  * Find out whether or not the given node is phrasing content.
30
15
  *
31
16
  * @see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content
32
17
  *
33
- * @param {Node} node The node to test.
18
+ * @param node The node to test.
34
19
  *
35
- * @return {boolean} True if phrasing content, false if not.
20
+ * @return True if phrasing content, false if not.
36
21
  */
37
22
  export declare function isPhrasingContent(node: Node): boolean;
38
23
  /**
39
- * @param {Node} node
40
- * @return {boolean} Node is text content
24
+ * @param node
25
+ * @return Node is text content
41
26
  */
42
27
  export declare function isTextContent(node: Node): boolean;
43
28
  //# sourceMappingURL=phrasing-content.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"phrasing-content.d.ts","sourceRoot":"","sources":["../src/phrasing-content.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAGA,YAAoD,aAAa,GAAvD,MAAM,CAAC,MAAM,EAAC,yBAAyB,CAAC,CAAe;AAIjE,YAAS,yBAAyB,GAClC;;;;IAA+B,UAAU,AAAzC,CACA,EADW,MAAM,EAAE,CACnB;;;;IAA+B,QAAQ,AAAvC,CACF,EADa,aAAa,GAAC,GAAG,CAC9B;CAAA,CAAA;AAqID;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAE,OAAO,AAL9C,CAGA,EAHQ,MAKsC,GAFrC,OAAO,CAAC,aAAa,CAAC,CA4BjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAE,IAAI,EAJ5B,IAI4B,GAF3B,OAAO,CAKlB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAE,IAAI,EAHxB,IAGwB,GAFvB,OAAO,CAKlB"}
1
+ {"version":3,"file":"phrasing-content.d.ts","sourceRoot":"","sources":["../src/phrasing-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAuI7C;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAE,OAAO,CAAC,EAAE,MAAM,GAAI,aAAa,CAuB1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,IAAI,GAAI,OAAO,CAGvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAE,IAAI,EAAE,IAAI,GAAI,OAAO,CAGnD"}
@@ -1,37 +1,32 @@
1
1
  /**
2
2
  * Returns true if the specified element is tabbable, or false otherwise.
3
3
  *
4
- * @param {Element} element Element to test.
4
+ * @param element Element to test.
5
5
  *
6
- * @return {boolean} Whether element is tabbable.
6
+ * @return Whether element is tabbable.
7
7
  */
8
8
  export declare function isTabbableIndex(element: Element): boolean;
9
- export type MaybeHTMLInputElement = HTMLElement & {
10
- type?: string;
11
- checked?: boolean;
12
- name?: string;
13
- };
14
9
  /**
15
- * @param {Element} context
16
- * @return {HTMLElement[]} Tabbable elements within the context.
10
+ * @param context
11
+ * @return Tabbable elements within the context.
17
12
  */
18
13
  export declare function find(context: Element): HTMLElement[];
19
14
  /**
20
15
  * Given a focusable element, find the preceding tabbable element.
21
16
  *
22
- * @param {Element} element The focusable element before which to look. Defaults
23
- * to the active element.
17
+ * @param element The focusable element before which to look. Defaults
18
+ * to the active element.
24
19
  *
25
- * @return {HTMLElement|undefined} Preceding tabbable element.
20
+ * @return Preceding tabbable element.
26
21
  */
27
22
  export declare function findPrevious(element: Element): HTMLElement | undefined;
28
23
  /**
29
24
  * Given a focusable element, find the next tabbable element.
30
25
  *
31
- * @param {Element} element The focusable element after which to look. Defaults
32
- * to the active element.
26
+ * @param element The focusable element after which to look. Defaults
27
+ * to the active element.
33
28
  *
34
- * @return {HTMLElement|undefined} Next tabbable element.
29
+ * @return Next tabbable element.
35
30
  */
36
31
  export declare function findNext(element: Element): HTMLElement | undefined;
37
32
  //# sourceMappingURL=tabbable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabbable.d.ts","sourceRoot":"","sources":["../src/tabbable.js"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAE,OAAO,EAJ7B,OAI6B,GAF5B,OAAO,CAIlB;AAEG,YAA6E,qBAAqB,GAAxF,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAuB;AA+GtG;;;GAGG;AACH,wBAAgB,IAAI,CAAE,OAAO,EAHlB,OAGkB,GAFjB,WAAW,EAAE,CAIxB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAE,OAAO,EAL1B,OAK0B,GAFzB,WAAW,GAAC,SAAS,CAWhC;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAE,OAAO,EALtB,OAKsB,GAFrB,WAAW,GAAC,SAAS,CAShC"}
1
+ {"version":3,"file":"tabbable.d.ts","sourceRoot":"","sources":["../src/tabbable.ts"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAE,OAAO,EAAE,OAAO,GAAI,OAAO,CAE3D;AAyHD;;;GAGG;AACH,wBAAgB,IAAI,CAAE,OAAO,EAAE,OAAO,GAAI,WAAW,EAAE,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAE,OAAO,EAAE,OAAO,GAAI,WAAW,GAAG,SAAS,CASxE;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAE,OAAO,EAAE,OAAO,GAAI,WAAW,GAAG,SAAS,CAOpE"}
@@ -0,0 +1,29 @@
1
+ export interface SemanticElementDefinition {
2
+ /**
3
+ * Content attributes
4
+ */
5
+ attributes?: string[];
6
+ /**
7
+ * Allowed child elements, or `'*'` for any
8
+ */
9
+ children?: ContentSchema | '*';
10
+ }
11
+ export type ContentSchema = Record<string, SemanticElementDefinition>;
12
+ export interface FindFocusableOptions {
13
+ /**
14
+ * If set, only return elements that are sequentially focusable.
15
+ * Non-interactive elements with a negative `tabindex` are focusable but
16
+ * not sequentially focusable.
17
+ */
18
+ sequential?: boolean;
19
+ }
20
+ export type MaybeHTMLInputElement = HTMLElement & {
21
+ type?: string;
22
+ checked?: boolean;
23
+ name?: string;
24
+ };
25
+ export interface ObjectTabbable {
26
+ element: HTMLElement;
27
+ index: number;
28
+ }
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACzC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,GAAG,GAAG,CAAC;CAC/B;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAE,MAAM,EAAE,yBAAyB,CAAE,CAAC;AAExE,MAAM,WAAW,oBAAoB;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/dom",
3
- "version": "4.57.0",
3
+ "version": "5.1.0",
4
4
  "description": "DOM utilities module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -20,14 +20,13 @@
20
20
  "url": "https://github.com/WordPress/gutenberg/issues"
21
21
  },
22
22
  "engines": {
23
- "node": ">=18.12.0"
23
+ "node": ">=22.13.0"
24
24
  },
25
25
  "files": [
26
26
  "src",
27
27
  "build",
28
28
  "build-module",
29
- "build-types",
30
- "*.md"
29
+ "build-types"
31
30
  ],
32
31
  "main": "build/index.cjs",
33
32
  "module": "build-module/index.mjs",
@@ -43,13 +42,13 @@
43
42
  "types": "build-types",
44
43
  "sideEffects": false,
45
44
  "dependencies": {
46
- "@wordpress/deprecated": "^4.57.0"
45
+ "@wordpress/deprecated": "^5.1.0"
47
46
  },
48
47
  "devDependencies": {
49
- "vitest": "^5.0.3"
48
+ "vitest": "^5.0.5"
50
49
  },
51
50
  "publishConfig": {
52
51
  "access": "public"
53
52
  },
54
- "gitHead": "12441e2520c78b2254a792a8cba40c34110be060"
53
+ "gitHead": "9b70363b9f93cff0583a1f3153738d383cf5a49e"
55
54
  }
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * Gets all files from a DataTransfer object.
3
3
  *
4
- * @param {DataTransfer} dataTransfer DataTransfer object to inspect.
4
+ * @param dataTransfer DataTransfer object to inspect.
5
5
  *
6
- * @return {File[]} An array containing all files.
6
+ * @return An array containing all files.
7
7
  */
8
- export function getFilesFromDataTransfer( dataTransfer ) {
8
+ export function getFilesFromDataTransfer( dataTransfer: DataTransfer ): File[] {
9
9
  const files = Array.from( dataTransfer.files );
10
10
 
11
11
  Array.from( dataTransfer.items ).forEach( ( item ) => {
@@ -6,13 +6,17 @@
6
6
  *
7
7
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/caretPositionFromPoint
8
8
  *
9
- * @param {Document} doc The document of the range.
10
- * @param {number} x Horizontal position within the current viewport.
11
- * @param {number} y Vertical position within the current viewport.
9
+ * @param doc The document of the range.
10
+ * @param x Horizontal position within the current viewport.
11
+ * @param y Vertical position within the current viewport.
12
12
  *
13
- * @return {Range | null} The best range for the given point.
13
+ * @return The best range for the given point.
14
14
  */
15
- export default function caretRangeFromPoint( doc, x, y ) {
15
+ export default function caretRangeFromPoint(
16
+ doc: Document,
17
+ x: number,
18
+ y: number
19
+ ): Range | null {
16
20
  if ( doc.caretPositionFromPoint ) {
17
21
  const point = doc.caretPositionFromPoint( x, y );
18
22
 
@@ -4,33 +4,27 @@ import unwrap from './unwrap';
4
4
  import { isPhrasingContent } from '../phrasing-content';
5
5
  import insertAfter from './insert-after';
6
6
  import isElement from './is-element';
7
+ import type { Schema } from './types';
7
8
 
8
9
  const noop = () => {};
9
10
 
10
- /**
11
- * @typedef SchemaItem
12
- * @property {string[]} [attributes] Attributes.
13
- * @property {(string | RegExp)[]} [classes] Classnames or RegExp to test against. Use '*' to keep all classes.
14
- * @property {'*' | { [tag: string]: SchemaItem }} [children] Child schemas.
15
- * @property {string[]} [require] Selectors to test required children against. Leave empty or undefined if there are no requirements.
16
- * @property {boolean} allowEmpty Whether to allow nodes without children.
17
- * @property {(node: Node) => boolean} [isMatch] Function to test whether a node is a match. If left undefined any node will be assumed to match.
18
- */
19
-
20
- /** @typedef {{ [tag: string]: SchemaItem }} Schema */
21
-
22
11
  /**
23
12
  * Given a schema, unwraps or removes nodes, attributes and classes on a node
24
13
  * list.
25
14
  *
26
- * @param {NodeList} nodeList The nodeList to filter.
27
- * @param {Document} doc The document of the nodeList.
28
- * @param {Schema} schema An array of functions that can mutate with the provided node.
29
- * @param {boolean} inline Whether to clean for inline mode.
15
+ * @param nodeList The nodeList to filter.
16
+ * @param doc The document of the nodeList.
17
+ * @param schema Schema for the HTML.
18
+ * @param [inline] Whether to clean for inline mode.
30
19
  */
31
- export default function cleanNodeList( nodeList, doc, schema, inline ) {
20
+ export default function cleanNodeList(
21
+ nodeList: NodeList,
22
+ doc: Document,
23
+ schema: Schema,
24
+ inline?: boolean
25
+ ) {
32
26
  Array.from( nodeList ).forEach(
33
- ( /** @type {Node & { nextElementSibling?: unknown }} */ node ) => {
27
+ ( node: Node & { nextElementSibling?: unknown } ) => {
34
28
  const tag = node.nodeName.toLowerCase();
35
29
 
36
30
  // It's a valid child, if the tag exists in the schema without an isMatch
@@ -84,13 +78,11 @@ export default function cleanNodeList( nodeList, doc, schema, inline ) {
84
78
  // Keep all classes.
85
79
  return () => true;
86
80
  } else if ( typeof item === 'string' ) {
87
- return (
88
- /** @type {string} */ className
89
- ) => className === item;
81
+ return ( className: string ) =>
82
+ className === item;
90
83
  } else if ( item instanceof RegExp ) {
91
- return (
92
- /** @type {string} */ className
93
- ) => item.test( className );
84
+ return ( className: string ) =>
85
+ item.test( className );
94
86
  }
95
87
 
96
88
  return noop;
@@ -4,11 +4,11 @@ import { assertIsDefined } from '../utils/assert-is-defined';
4
4
  /**
5
5
  * Get the rectangle for the selection in a container.
6
6
  *
7
- * @param {Window} win The window of the selection.
7
+ * @param win The window of the selection.
8
8
  *
9
- * @return {DOMRect | null} The rectangle.
9
+ * @return The rectangle.
10
10
  */
11
- export default function computeCaretRect( win ) {
11
+ export default function computeCaretRect( win: Window ): DOMRect | null {
12
12
  const selection = win.getSelection();
13
13
  assertIsDefined( selection, 'selection' );
14
14
  const range = selection.rangeCount ? selection.getRangeAt( 0 ) : null;
@@ -6,11 +6,11 @@ import documentHasTextSelection from './document-has-text-selection';
6
6
  * Check whether the current document has a selection. This includes focus in
7
7
  * input fields, textareas, and general rich-text selection.
8
8
  *
9
- * @param {Document} doc The document to check.
9
+ * @param doc The document to check.
10
10
  *
11
- * @return {boolean} True if there is selection, false if not.
11
+ * @return True if there is selection, false if not.
12
12
  */
13
- export default function documentHasSelection( doc ) {
13
+ export default function documentHasSelection( doc: Document ): boolean {
14
14
  return (
15
15
  !! doc.activeElement &&
16
16
  ( isHTMLInputElement( doc.activeElement ) ||
@@ -7,11 +7,11 @@ import { assertIsDefined } from '../utils/assert-is-defined';
7
7
  *
8
8
  * See: https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection#Related_objects.
9
9
  *
10
- * @param {Document} doc The document to check.
10
+ * @param doc The document to check.
11
11
  *
12
- * @return {boolean} True if there is selection, false if not.
12
+ * @return True if there is selection, false if not.
13
13
  */
14
- export default function documentHasTextSelection( doc ) {
14
+ export default function documentHasTextSelection( doc: Document ): boolean {
15
15
  assertIsDefined( doc.defaultView, 'doc.defaultView' );
16
16
  const selection = doc.defaultView.getSelection();
17
17
  assertIsDefined( selection, 'selection' );
@@ -6,11 +6,13 @@ import inputFieldHasUncollapsedSelection from './input-field-has-uncollapsed-sel
6
6
  * This includes ranges of text across elements and any selection inside
7
7
  * textual `<input>` and `<textarea>` elements.
8
8
  *
9
- * @param {Document} doc The document to check.
9
+ * @param doc The document to check.
10
10
  *
11
- * @return {boolean} Whether there is any recognizable text selection in the document.
11
+ * @return Whether there is any recognizable text selection in the document.
12
12
  */
13
- export default function documentHasUncollapsedSelection( doc ) {
13
+ export default function documentHasUncollapsedSelection(
14
+ doc: Document
15
+ ): boolean {
14
16
  return (
15
17
  documentHasTextSelection( doc ) ||
16
18
  ( !! doc.activeElement &&
@@ -1,10 +1,12 @@
1
1
  import { assertIsDefined } from '../utils/assert-is-defined';
2
2
 
3
3
  /**
4
- * @param {Element} element
5
- * @return {ReturnType<Window['getComputedStyle']>} The computed style for the element.
4
+ * @param element
5
+ * @return The computed style for the element.
6
6
  */
7
- export default function getComputedStyle( element ) {
7
+ export default function getComputedStyle(
8
+ element: Element
9
+ ): CSSStyleDeclaration {
8
10
  assertIsDefined(
9
11
  element.ownerDocument.defaultView,
10
12
  'element.ownerDocument.defaultView'