@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,8 +1,11 @@
1
- // packages/dom/src/dom/is-input-or-text-area.js
1
+ // packages/dom/src/dom/is-input-or-text-area.ts
2
+ /**
3
+ * @param {Element} element
4
+ * @return {element is HTMLInputElement | HTMLTextAreaElement} Whether the element is an input or textarea
5
+ */
2
6
  function isInputOrTextArea(element) {
3
- return element.tagName === "INPUT" || element.tagName === "TEXTAREA";
7
+ return element.tagName === "INPUT" || element.tagName === "TEXTAREA";
4
8
  }
5
- export {
6
- isInputOrTextArea as default
7
- };
8
- //# sourceMappingURL=is-input-or-text-area.mjs.map
9
+ export { isInputOrTextArea as default };
10
+
11
+ //# sourceMappingURL=is-input-or-text-area.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/is-input-or-text-area.js"],
4
- "sourcesContent": ["/**\n * @param {Element} element\n * @return {element is HTMLInputElement | HTMLTextAreaElement} Whether the element is an input or textarea\n */\nexport default function isInputOrTextArea( element ) {\n\treturn element.tagName === 'INPUT' || element.tagName === 'TEXTAREA';\n}\n"],
5
- "mappings": ";AAIe,SAAR,kBAAoC,SAAU;AACpD,SAAO,QAAQ,YAAY,WAAW,QAAQ,YAAY;AAC3D;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"is-input-or-text-area.mjs","names":[],"sources":["../../src/dom/is-input-or-text-area.ts"],"sourcesContent":["/**\n * @param {Element} element\n * @return {element is HTMLInputElement | HTMLTextAreaElement} Whether the element is an input or textarea\n */\nexport default function isInputOrTextArea(\n\telement: Element\n): element is HTMLInputElement | HTMLTextAreaElement {\n\treturn element.tagName === 'INPUT' || element.tagName === 'TEXTAREA';\n}\n"],"mappings":";;;;;AAIA,SAAwB,kBACvB,SACoD;CACpD,OAAO,QAAQ,YAAY,WAAW,QAAQ,YAAY;AAC3D"}
@@ -1,14 +1,20 @@
1
- // packages/dom/src/dom/is-number-input.js
2
1
  import deprecated from "@wordpress/deprecated";
3
2
  import isHTMLInputElement from "./is-html-input-element.mjs";
3
+ // packages/dom/src/dom/is-number-input.ts
4
+ /**
5
+ * Check whether the given element is an input field of type number.
6
+ *
7
+ * @param node The HTML node.
8
+ *
9
+ * @return True if the node is number input.
10
+ */
4
11
  function isNumberInput(node) {
5
- deprecated("wp.dom.isNumberInput", {
6
- since: "6.1",
7
- version: "6.5"
8
- });
9
- return isHTMLInputElement(node) && node.type === "number" && !isNaN(node.valueAsNumber);
12
+ deprecated("wp.dom.isNumberInput", {
13
+ since: "6.1",
14
+ version: "6.5"
15
+ });
16
+ return isHTMLInputElement(node) && node.type === "number" && !isNaN(node.valueAsNumber);
10
17
  }
11
- export {
12
- isNumberInput as default
13
- };
14
- //# sourceMappingURL=is-number-input.mjs.map
18
+ export { isNumberInput as default };
19
+
20
+ //# sourceMappingURL=is-number-input.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/is-number-input.js"],
4
- "sourcesContent": ["import deprecated from '@wordpress/deprecated';\nimport isHTMLInputElement from './is-html-input-element';\n\n/**\n * Check whether the given element is an input field of type number.\n *\n * @param {Node} node The HTML node.\n *\n * @return {node is HTMLInputElement} True if the node is number input.\n */\nexport default function isNumberInput( node ) {\n\tdeprecated( 'wp.dom.isNumberInput', {\n\t\tsince: '6.1',\n\t\tversion: '6.5',\n\t} );\n\treturn (\n\t\tisHTMLInputElement( node ) &&\n\t\tnode.type === 'number' &&\n\t\t! isNaN( node.valueAsNumber )\n\t);\n}\n"],
5
- "mappings": ";AAAA,OAAO,gBAAgB;AACvB,OAAO,wBAAwB;AAShB,SAAR,cAAgC,MAAO;AAC7C,aAAY,wBAAwB;AAAA,IACnC,OAAO;AAAA,IACP,SAAS;AAAA,EACV,CAAE;AACF,SACC,mBAAoB,IAAK,KACzB,KAAK,SAAS,YACd,CAAE,MAAO,KAAK,aAAc;AAE9B;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"is-number-input.mjs","names":[],"sources":["../../src/dom/is-number-input.ts"],"sourcesContent":["import deprecated from '@wordpress/deprecated';\nimport isHTMLInputElement from './is-html-input-element';\n\n/**\n * Check whether the given element is an input field of type number.\n *\n * @param node The HTML node.\n *\n * @return True if the node is number input.\n */\nexport default function isNumberInput( node: Node ): node is HTMLInputElement {\n\tdeprecated( 'wp.dom.isNumberInput', {\n\t\tsince: '6.1',\n\t\tversion: '6.5',\n\t} );\n\treturn (\n\t\tisHTMLInputElement( node ) &&\n\t\tnode.type === 'number' &&\n\t\t! isNaN( node.valueAsNumber )\n\t);\n}\n"],"mappings":";;;;;;;;;;AAUA,SAAwB,cAAe,MAAuC;CAC7E,WAAY,wBAAwB;EACnC,OAAO;EACP,SAAS;CACV,CAAE;CACF,OACC,mBAAoB,IAAK,KACzB,KAAK,SAAS,YACd,CAAE,MAAO,KAAK,aAAc;AAE9B"}
@@ -1,9 +1,15 @@
1
- // packages/dom/src/dom/is-rtl.js
2
1
  import getComputedStyle from "./get-computed-style.mjs";
2
+ // packages/dom/src/dom/is-rtl.ts
3
+ /**
4
+ * Whether the element's text direction is right-to-left.
5
+ *
6
+ * @param element The element to check.
7
+ *
8
+ * @return True if rtl, false if ltr.
9
+ */
3
10
  function isRTL(element) {
4
- return getComputedStyle(element).direction === "rtl";
11
+ return getComputedStyle(element).direction === "rtl";
5
12
  }
6
- export {
7
- isRTL as default
8
- };
9
- //# sourceMappingURL=is-rtl.mjs.map
13
+ export { isRTL as default };
14
+
15
+ //# sourceMappingURL=is-rtl.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/is-rtl.js"],
4
- "sourcesContent": ["import getComputedStyle from './get-computed-style';\n\n/**\n * Whether the element's text direction is right-to-left.\n *\n * @param {Element} element The element to check.\n *\n * @return {boolean} True if rtl, false if ltr.\n */\nexport default function isRTL( element ) {\n\treturn getComputedStyle( element ).direction === 'rtl';\n}\n"],
5
- "mappings": ";AAAA,OAAO,sBAAsB;AASd,SAAR,MAAwB,SAAU;AACxC,SAAO,iBAAkB,OAAQ,EAAE,cAAc;AAClD;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"is-rtl.mjs","names":[],"sources":["../../src/dom/is-rtl.ts"],"sourcesContent":["import getComputedStyle from './get-computed-style';\n\n/**\n * Whether the element's text direction is right-to-left.\n *\n * @param element The element to check.\n *\n * @return True if rtl, false if ltr.\n */\nexport default function isRTL( element: Element ): boolean {\n\treturn getComputedStyle( element ).direction === 'rtl';\n}\n"],"mappings":";;;;;;;;;AASA,SAAwB,MAAO,SAA4B;CAC1D,OAAO,iBAAkB,OAAQ,CAAC,CAAC,cAAc;AAClD"}
@@ -1,22 +1,25 @@
1
- // packages/dom/src/dom/is-selection-forward.js
2
1
  import { assertIsDefined } from "../utils/assert-is-defined.mjs";
2
+ // packages/dom/src/dom/is-selection-forward.ts
3
+ /**
4
+ * Returns true if the given selection object is in the forward direction, or
5
+ * false otherwise.
6
+ *
7
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition
8
+ *
9
+ * @param selection Selection object to check.
10
+ *
11
+ * @return Whether the selection is forward.
12
+ */
3
13
  function isSelectionForward(selection) {
4
- const { anchorNode, focusNode, anchorOffset, focusOffset } = selection;
5
- assertIsDefined(anchorNode, "anchorNode");
6
- assertIsDefined(focusNode, "focusNode");
7
- const position = anchorNode.compareDocumentPosition(focusNode);
8
- if (position & anchorNode.DOCUMENT_POSITION_PRECEDING) {
9
- return false;
10
- }
11
- if (position & anchorNode.DOCUMENT_POSITION_FOLLOWING) {
12
- return true;
13
- }
14
- if (position === 0) {
15
- return anchorOffset <= focusOffset;
16
- }
17
- return true;
14
+ const { anchorNode, focusNode, anchorOffset, focusOffset } = selection;
15
+ assertIsDefined(anchorNode, "anchorNode");
16
+ assertIsDefined(focusNode, "focusNode");
17
+ const position = anchorNode.compareDocumentPosition(focusNode);
18
+ if (position & anchorNode.DOCUMENT_POSITION_PRECEDING) return false;
19
+ if (position & anchorNode.DOCUMENT_POSITION_FOLLOWING) return true;
20
+ if (position === 0) return anchorOffset <= focusOffset;
21
+ return true;
18
22
  }
19
- export {
20
- isSelectionForward as default
21
- };
22
- //# sourceMappingURL=is-selection-forward.mjs.map
23
+ export { isSelectionForward as default };
24
+
25
+ //# sourceMappingURL=is-selection-forward.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/is-selection-forward.js"],
4
- "sourcesContent": ["import { assertIsDefined } from '../utils/assert-is-defined';\n\n/**\n * Returns true if the given selection object is in the forward direction, or\n * false otherwise.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n *\n * @param {Selection} selection Selection object to check.\n *\n * @return {boolean} Whether the selection is forward.\n */\nexport default function isSelectionForward( selection ) {\n\tconst { anchorNode, focusNode, anchorOffset, focusOffset } = selection;\n\n\tassertIsDefined( anchorNode, 'anchorNode' );\n\tassertIsDefined( focusNode, 'focusNode' );\n\tconst position = anchorNode.compareDocumentPosition( focusNode );\n\n\t// Disable reason: `Node#compareDocumentPosition` returns a bitmask value,\n\t// so bitwise operators are intended.\n\t/* eslint-disable no-bitwise */\n\t// Compare whether anchor node precedes focus node. If focus node (where\n\t// end of selection occurs) is after the anchor node, it is forward.\n\tif ( position & anchorNode.DOCUMENT_POSITION_PRECEDING ) {\n\t\treturn false;\n\t}\n\n\tif ( position & anchorNode.DOCUMENT_POSITION_FOLLOWING ) {\n\t\treturn true;\n\t}\n\t/* eslint-enable no-bitwise */\n\n\t// `compareDocumentPosition` returns 0 when passed the same node, in which\n\t// case compare offsets.\n\tif ( position === 0 ) {\n\t\treturn anchorOffset <= focusOffset;\n\t}\n\n\t// This should never be reached, but return true as default case.\n\treturn true;\n}\n"],
5
- "mappings": ";AAAA,SAAS,uBAAuB;AAYjB,SAAR,mBAAqC,WAAY;AACvD,QAAM,EAAE,YAAY,WAAW,cAAc,YAAY,IAAI;AAE7D,kBAAiB,YAAY,YAAa;AAC1C,kBAAiB,WAAW,WAAY;AACxC,QAAM,WAAW,WAAW,wBAAyB,SAAU;AAO/D,MAAK,WAAW,WAAW,6BAA8B;AACxD,WAAO;AAAA,EACR;AAEA,MAAK,WAAW,WAAW,6BAA8B;AACxD,WAAO;AAAA,EACR;AAKA,MAAK,aAAa,GAAI;AACrB,WAAO,gBAAgB;AAAA,EACxB;AAGA,SAAO;AACR;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"is-selection-forward.mjs","names":[],"sources":["../../src/dom/is-selection-forward.ts"],"sourcesContent":["import { assertIsDefined } from '../utils/assert-is-defined';\n\n/**\n * Returns true if the given selection object is in the forward direction, or\n * false otherwise.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n *\n * @param selection Selection object to check.\n *\n * @return Whether the selection is forward.\n */\nexport default function isSelectionForward( selection: Selection ): boolean {\n\tconst { anchorNode, focusNode, anchorOffset, focusOffset } = selection;\n\n\tassertIsDefined( anchorNode, 'anchorNode' );\n\tassertIsDefined( focusNode, 'focusNode' );\n\tconst position = anchorNode.compareDocumentPosition( focusNode );\n\n\t// Disable reason: `Node#compareDocumentPosition` returns a bitmask value,\n\t// so bitwise operators are intended.\n\t/* eslint-disable no-bitwise */\n\t// Compare whether anchor node precedes focus node. If focus node (where\n\t// end of selection occurs) is after the anchor node, it is forward.\n\tif ( position & anchorNode.DOCUMENT_POSITION_PRECEDING ) {\n\t\treturn false;\n\t}\n\n\tif ( position & anchorNode.DOCUMENT_POSITION_FOLLOWING ) {\n\t\treturn true;\n\t}\n\t/* eslint-enable no-bitwise */\n\n\t// `compareDocumentPosition` returns 0 when passed the same node, in which\n\t// case compare offsets.\n\tif ( position === 0 ) {\n\t\treturn anchorOffset <= focusOffset;\n\t}\n\n\t// This should never be reached, but return true as default case.\n\treturn true;\n}\n"],"mappings":";;;;;;;;;;;;AAYA,SAAwB,mBAAoB,WAAgC;CAC3E,MAAM,EAAE,YAAY,WAAW,cAAc,gBAAgB;CAE7D,gBAAiB,YAAY,YAAa;CAC1C,gBAAiB,WAAW,WAAY;CACxC,MAAM,WAAW,WAAW,wBAAyB,SAAU;CAO/D,IAAK,WAAW,WAAW,6BAC1B,OAAO;CAGR,IAAK,WAAW,WAAW,6BAC1B,OAAO;CAMR,IAAK,aAAa,GACjB,OAAO,gBAAgB;CAIxB,OAAO;AACR"}
@@ -1,24 +1,30 @@
1
- // packages/dom/src/dom/is-text-field.js
2
1
  import isHTMLInputElement from "./is-html-input-element.mjs";
2
+ // packages/dom/src/dom/is-text-field.ts
3
+ /**
4
+ * Check whether the given element is a text field, where text field is defined
5
+ * by the ability to select within the input, or that it is contenteditable.
6
+ *
7
+ * See: https://html.spec.whatwg.org/#textFieldSelection
8
+ *
9
+ * @param node The HTML element.
10
+ * @return True if the element is an text field, false if not.
11
+ */
3
12
  function isTextField(node) {
4
- const nonTextInputs = [
5
- "button",
6
- "checkbox",
7
- "hidden",
8
- "file",
9
- "radio",
10
- "image",
11
- "range",
12
- "reset",
13
- "submit",
14
- "number",
15
- "email",
16
- "time"
17
- ];
18
- return isHTMLInputElement(node) && node.type && !nonTextInputs.includes(node.type) || node.nodeName === "TEXTAREA" || /** @type {HTMLElement} */
19
- node.contentEditable === "true";
13
+ return isHTMLInputElement(node) && node.type && ![
14
+ "button",
15
+ "checkbox",
16
+ "hidden",
17
+ "file",
18
+ "radio",
19
+ "image",
20
+ "range",
21
+ "reset",
22
+ "submit",
23
+ "number",
24
+ "email",
25
+ "time"
26
+ ].includes(node.type) || node.nodeName === "TEXTAREA" || node.contentEditable === "true";
20
27
  }
21
- export {
22
- isTextField as default
23
- };
24
- //# sourceMappingURL=is-text-field.mjs.map
28
+ export { isTextField as default };
29
+
30
+ //# sourceMappingURL=is-text-field.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/is-text-field.js"],
4
- "sourcesContent": ["import isHTMLInputElement from './is-html-input-element';\n\n/**\n * Check whether the given element is a text field, where text field is defined\n * by the ability to select within the input, or that it is contenteditable.\n *\n * See: https://html.spec.whatwg.org/#textFieldSelection\n *\n * @param {Node} node The HTML element.\n * @return {node is HTMLElement} True if the element is an text field, false if not.\n */\nexport default function isTextField( node ) {\n\tconst nonTextInputs = [\n\t\t'button',\n\t\t'checkbox',\n\t\t'hidden',\n\t\t'file',\n\t\t'radio',\n\t\t'image',\n\t\t'range',\n\t\t'reset',\n\t\t'submit',\n\t\t'number',\n\t\t'email',\n\t\t'time',\n\t];\n\treturn (\n\t\t( isHTMLInputElement( node ) &&\n\t\t\tnode.type &&\n\t\t\t! nonTextInputs.includes( node.type ) ) ||\n\t\tnode.nodeName === 'TEXTAREA' ||\n\t\t/** @type {HTMLElement} */ ( node ).contentEditable === 'true'\n\t);\n}\n"],
5
- "mappings": ";AAAA,OAAO,wBAAwB;AAWhB,SAAR,YAA8B,MAAO;AAC3C,QAAM,gBAAgB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,SACG,mBAAoB,IAAK,KAC1B,KAAK,QACL,CAAE,cAAc,SAAU,KAAK,IAAK,KACrC,KAAK,aAAa;AAAA,EACW,KAAO,oBAAoB;AAE1D;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"is-text-field.mjs","names":[],"sources":["../../src/dom/is-text-field.ts"],"sourcesContent":["import isHTMLInputElement from './is-html-input-element';\n\n/**\n * Check whether the given element is a text field, where text field is defined\n * by the ability to select within the input, or that it is contenteditable.\n *\n * See: https://html.spec.whatwg.org/#textFieldSelection\n *\n * @param node The HTML element.\n * @return True if the element is an text field, false if not.\n */\nexport default function isTextField( node: Node ): node is HTMLElement {\n\tconst nonTextInputs = [\n\t\t'button',\n\t\t'checkbox',\n\t\t'hidden',\n\t\t'file',\n\t\t'radio',\n\t\t'image',\n\t\t'range',\n\t\t'reset',\n\t\t'submit',\n\t\t'number',\n\t\t'email',\n\t\t'time',\n\t];\n\treturn (\n\t\t( isHTMLInputElement( node ) &&\n\t\t\tnode.type &&\n\t\t\t! nonTextInputs.includes( node.type ) ) ||\n\t\tnode.nodeName === 'TEXTAREA' ||\n\t\t( node as HTMLElement ).contentEditable === 'true'\n\t);\n}\n"],"mappings":";;;;;;;;;;;AAWA,SAAwB,YAAa,MAAkC;CAetE,OACG,mBAAoB,IAAK,KAC1B,KAAK,QACL,CAAE;EAhBH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAKe,CAAC,CAAC,SAAU,KAAK,IAAK,KACrC,KAAK,aAAa,cAChB,KAAsB,oBAAoB;AAE9C"}
@@ -1,9 +1,16 @@
1
- // packages/dom/src/dom/is-vertical-edge.js
2
1
  import isEdge from "./is-edge.mjs";
2
+ // packages/dom/src/dom/is-vertical-edge.ts
3
+ /**
4
+ * Check whether the selection is vertically at the edge of the container.
5
+ *
6
+ * @param {HTMLElement} container Focusable element.
7
+ * @param {boolean} isReverse Set to true to check top, false for bottom.
8
+ *
9
+ * @return {boolean} True if at the vertical edge, false if not.
10
+ */
3
11
  function isVerticalEdge(container, isReverse) {
4
- return isEdge(container, isReverse, true);
12
+ return isEdge(container, isReverse, true);
5
13
  }
6
- export {
7
- isVerticalEdge as default
8
- };
9
- //# sourceMappingURL=is-vertical-edge.mjs.map
14
+ export { isVerticalEdge as default };
15
+
16
+ //# sourceMappingURL=is-vertical-edge.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/is-vertical-edge.js"],
4
- "sourcesContent": ["import isEdge from './is-edge';\n\n/**\n * Check whether the selection is vertically at the edge of the container.\n *\n * @param {HTMLElement} container Focusable element.\n * @param {boolean} isReverse Set to true to check top, false for bottom.\n *\n * @return {boolean} True if at the vertical edge, false if not.\n */\nexport default function isVerticalEdge( container, isReverse ) {\n\treturn isEdge( container, isReverse, true );\n}\n"],
5
- "mappings": ";AAAA,OAAO,YAAY;AAUJ,SAAR,eAAiC,WAAW,WAAY;AAC9D,SAAO,OAAQ,WAAW,WAAW,IAAK;AAC3C;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"is-vertical-edge.mjs","names":[],"sources":["../../src/dom/is-vertical-edge.ts"],"sourcesContent":["import isEdge from './is-edge';\n\n/**\n * Check whether the selection is vertically at the edge of the container.\n *\n * @param {HTMLElement} container Focusable element.\n * @param {boolean} isReverse Set to true to check top, false for bottom.\n *\n * @return {boolean} True if at the vertical edge, false if not.\n */\nexport default function isVerticalEdge(\n\tcontainer: HTMLElement,\n\tisReverse: boolean\n): boolean {\n\treturn isEdge( container, isReverse, true );\n}\n"],"mappings":";;;;;;;;;;AAUA,SAAwB,eACvB,WACA,WACU;CACV,OAAO,OAAQ,WAAW,WAAW,IAAK;AAC3C"}
@@ -1,61 +1,60 @@
1
- // packages/dom/src/dom/place-caret-at-edge.js
2
1
  import hiddenCaretRangeFromPoint from "./hidden-caret-range-from-point.mjs";
3
2
  import { assertIsDefined } from "../utils/assert-is-defined.mjs";
4
3
  import isInputOrTextArea from "./is-input-or-text-area.mjs";
5
4
  import isRTL from "./is-rtl.mjs";
6
5
  import { scrollIfNoRange } from "./scroll-if-no-range.mjs";
6
+ // packages/dom/src/dom/place-caret-at-edge.ts
7
+ /**
8
+ * Gets the range to place.
9
+ *
10
+ * @param container Focusable element.
11
+ * @param isReverse True for end, false for start.
12
+ * @param x X coordinate to vertically position.
13
+ *
14
+ * @return The range to place.
15
+ */
7
16
  function getRange(container, isReverse, x) {
8
- const { ownerDocument } = container;
9
- const isReverseDir = isRTL(container) ? !isReverse : isReverse;
10
- const containerRect = container.getBoundingClientRect();
11
- if (x === void 0) {
12
- x = isReverse ? containerRect.right - 1 : containerRect.left + 1;
13
- } else if (x <= containerRect.left) {
14
- x = containerRect.left + 1;
15
- } else if (x >= containerRect.right) {
16
- x = containerRect.right - 1;
17
- }
18
- const y = isReverseDir ? containerRect.bottom - 1 : containerRect.top + 1;
19
- return hiddenCaretRangeFromPoint(ownerDocument, x, y, container);
17
+ const { ownerDocument } = container;
18
+ const isReverseDir = isRTL(container) ? !isReverse : isReverse;
19
+ const containerRect = container.getBoundingClientRect();
20
+ if (x === void 0) x = isReverse ? containerRect.right - 1 : containerRect.left + 1;
21
+ else if (x <= containerRect.left) x = containerRect.left + 1;
22
+ else if (x >= containerRect.right) x = containerRect.right - 1;
23
+ const y = isReverseDir ? containerRect.bottom - 1 : containerRect.top + 1;
24
+ return hiddenCaretRangeFromPoint(ownerDocument, x, y, container);
20
25
  }
26
+ /**
27
+ * Places the caret at start or end of a given element.
28
+ *
29
+ * @param container Focusable element.
30
+ * @param isReverse True for end, false for start.
31
+ * @param x X coordinate to vertically position.
32
+ */
21
33
  function placeCaretAtEdge(container, isReverse, x) {
22
- if (!container) {
23
- return;
24
- }
25
- container.focus();
26
- if (isInputOrTextArea(container)) {
27
- if (typeof container.selectionStart !== "number") {
28
- return;
29
- }
30
- if (isReverse) {
31
- container.selectionStart = container.value.length;
32
- container.selectionEnd = container.value.length;
33
- } else {
34
- container.selectionStart = 0;
35
- container.selectionEnd = 0;
36
- }
37
- return;
38
- }
39
- if (container.contentEditable !== "true") {
40
- return;
41
- }
42
- const range = scrollIfNoRange(
43
- container,
44
- isReverse,
45
- () => getRange(container, isReverse, x)
46
- );
47
- if (!range) {
48
- return;
49
- }
50
- const { ownerDocument } = container;
51
- const { defaultView } = ownerDocument;
52
- assertIsDefined(defaultView, "defaultView");
53
- const selection = defaultView.getSelection();
54
- assertIsDefined(selection, "selection");
55
- selection.removeAllRanges();
56
- selection.addRange(range);
34
+ if (!container) return;
35
+ container.focus();
36
+ if (isInputOrTextArea(container)) {
37
+ if (typeof container.selectionStart !== "number") return;
38
+ if (isReverse) {
39
+ container.selectionStart = container.value.length;
40
+ container.selectionEnd = container.value.length;
41
+ } else {
42
+ container.selectionStart = 0;
43
+ container.selectionEnd = 0;
44
+ }
45
+ return;
46
+ }
47
+ if (container.contentEditable !== "true") return;
48
+ const range = scrollIfNoRange(container, isReverse, () => getRange(container, isReverse, x));
49
+ if (!range) return;
50
+ const { ownerDocument } = container;
51
+ const { defaultView } = ownerDocument;
52
+ assertIsDefined(defaultView, "defaultView");
53
+ const selection = defaultView.getSelection();
54
+ assertIsDefined(selection, "selection");
55
+ selection.removeAllRanges();
56
+ selection.addRange(range);
57
57
  }
58
- export {
59
- placeCaretAtEdge as default
60
- };
61
- //# sourceMappingURL=place-caret-at-edge.mjs.map
58
+ export { placeCaretAtEdge as default };
59
+
60
+ //# sourceMappingURL=place-caret-at-edge.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/place-caret-at-edge.js"],
4
- "sourcesContent": ["import hiddenCaretRangeFromPoint from './hidden-caret-range-from-point';\nimport { assertIsDefined } from '../utils/assert-is-defined';\nimport isInputOrTextArea from './is-input-or-text-area';\nimport isRTL from './is-rtl';\nimport { scrollIfNoRange } from './scroll-if-no-range';\n\n/**\n * Gets the range to place.\n *\n * @param {HTMLElement} container Focusable element.\n * @param {boolean} isReverse True for end, false for start.\n * @param {number|undefined} x X coordinate to vertically position.\n *\n * @return {Range|null} The range to place.\n */\nfunction getRange( container, isReverse, x ) {\n\tconst { ownerDocument } = container;\n\t// In the case of RTL scripts, the horizontal edge is at the opposite side.\n\tconst isReverseDir = isRTL( container ) ? ! isReverse : isReverse;\n\tconst containerRect = container.getBoundingClientRect();\n\t// When placing at the end (isReverse), find the closest range to the bottom\n\t// right corner. When placing at the start, to the top left corner.\n\t// Ensure x is defined and within the container's boundaries. When it's\n\t// exactly at the boundary, it's not considered within the boundaries.\n\tif ( x === undefined ) {\n\t\tx = isReverse ? containerRect.right - 1 : containerRect.left + 1;\n\t} else if ( x <= containerRect.left ) {\n\t\tx = containerRect.left + 1;\n\t} else if ( x >= containerRect.right ) {\n\t\tx = containerRect.right - 1;\n\t}\n\tconst y = isReverseDir ? containerRect.bottom - 1 : containerRect.top + 1;\n\treturn hiddenCaretRangeFromPoint( ownerDocument, x, y, container );\n}\n\n/**\n * Places the caret at start or end of a given element.\n *\n * @param {HTMLElement} container Focusable element.\n * @param {boolean} isReverse True for end, false for start.\n * @param {number|undefined} x X coordinate to vertically position.\n */\nexport default function placeCaretAtEdge( container, isReverse, x ) {\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tcontainer.focus();\n\n\tif ( isInputOrTextArea( container ) ) {\n\t\t// The element may not support selection setting.\n\t\tif ( typeof container.selectionStart !== 'number' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isReverse ) {\n\t\t\tcontainer.selectionStart = container.value.length;\n\t\t\tcontainer.selectionEnd = container.value.length;\n\t\t} else {\n\t\t\tcontainer.selectionStart = 0;\n\t\t\tcontainer.selectionEnd = 0;\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Only place a caret if the container is itself an editable element.\n\t// It may also be content editable by inheriting it from an editing\n\t// host ancestor (e.g. an editable canvas wrapper), but placing a caret\n\t// for e.g. a focusable block element is then not intended.\n\tif ( container.contentEditable !== 'true' ) {\n\t\treturn;\n\t}\n\n\tconst range = scrollIfNoRange( container, isReverse, () =>\n\t\tgetRange( container, isReverse, x )\n\t);\n\n\tif ( ! range ) {\n\t\treturn;\n\t}\n\n\tconst { ownerDocument } = container;\n\tconst { defaultView } = ownerDocument;\n\tassertIsDefined( defaultView, 'defaultView' );\n\tconst selection = defaultView.getSelection();\n\tassertIsDefined( selection, 'selection' );\n\tselection.removeAllRanges();\n\tselection.addRange( range );\n}\n"],
5
- "mappings": ";AAAA,OAAO,+BAA+B;AACtC,SAAS,uBAAuB;AAChC,OAAO,uBAAuB;AAC9B,OAAO,WAAW;AAClB,SAAS,uBAAuB;AAWhC,SAAS,SAAU,WAAW,WAAW,GAAI;AAC5C,QAAM,EAAE,cAAc,IAAI;AAE1B,QAAM,eAAe,MAAO,SAAU,IAAI,CAAE,YAAY;AACxD,QAAM,gBAAgB,UAAU,sBAAsB;AAKtD,MAAK,MAAM,QAAY;AACtB,QAAI,YAAY,cAAc,QAAQ,IAAI,cAAc,OAAO;AAAA,EAChE,WAAY,KAAK,cAAc,MAAO;AACrC,QAAI,cAAc,OAAO;AAAA,EAC1B,WAAY,KAAK,cAAc,OAAQ;AACtC,QAAI,cAAc,QAAQ;AAAA,EAC3B;AACA,QAAM,IAAI,eAAe,cAAc,SAAS,IAAI,cAAc,MAAM;AACxE,SAAO,0BAA2B,eAAe,GAAG,GAAG,SAAU;AAClE;AASe,SAAR,iBAAmC,WAAW,WAAW,GAAI;AACnE,MAAK,CAAE,WAAY;AAClB;AAAA,EACD;AAEA,YAAU,MAAM;AAEhB,MAAK,kBAAmB,SAAU,GAAI;AAErC,QAAK,OAAO,UAAU,mBAAmB,UAAW;AACnD;AAAA,IACD;AAEA,QAAK,WAAY;AAChB,gBAAU,iBAAiB,UAAU,MAAM;AAC3C,gBAAU,eAAe,UAAU,MAAM;AAAA,IAC1C,OAAO;AACN,gBAAU,iBAAiB;AAC3B,gBAAU,eAAe;AAAA,IAC1B;AAEA;AAAA,EACD;AAMA,MAAK,UAAU,oBAAoB,QAAS;AAC3C;AAAA,EACD;AAEA,QAAM,QAAQ;AAAA,IAAiB;AAAA,IAAW;AAAA,IAAW,MACpD,SAAU,WAAW,WAAW,CAAE;AAAA,EACnC;AAEA,MAAK,CAAE,OAAQ;AACd;AAAA,EACD;AAEA,QAAM,EAAE,cAAc,IAAI;AAC1B,QAAM,EAAE,YAAY,IAAI;AACxB,kBAAiB,aAAa,aAAc;AAC5C,QAAM,YAAY,YAAY,aAAa;AAC3C,kBAAiB,WAAW,WAAY;AACxC,YAAU,gBAAgB;AAC1B,YAAU,SAAU,KAAM;AAC3B;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"place-caret-at-edge.mjs","names":[],"sources":["../../src/dom/place-caret-at-edge.ts"],"sourcesContent":["import hiddenCaretRangeFromPoint from './hidden-caret-range-from-point';\nimport { assertIsDefined } from '../utils/assert-is-defined';\nimport isInputOrTextArea from './is-input-or-text-area';\nimport isRTL from './is-rtl';\nimport { scrollIfNoRange } from './scroll-if-no-range';\n\n/**\n * Gets the range to place.\n *\n * @param container Focusable element.\n * @param isReverse True for end, false for start.\n * @param x X coordinate to vertically position.\n *\n * @return The range to place.\n */\nfunction getRange(\n\tcontainer: HTMLElement,\n\tisReverse: boolean,\n\tx: number | undefined\n): Range | null {\n\tconst { ownerDocument } = container;\n\t// In the case of RTL scripts, the horizontal edge is at the opposite side.\n\tconst isReverseDir = isRTL( container ) ? ! isReverse : isReverse;\n\tconst containerRect = container.getBoundingClientRect();\n\t// When placing at the end (isReverse), find the closest range to the bottom\n\t// right corner. When placing at the start, to the top left corner.\n\t// Ensure x is defined and within the container's boundaries. When it's\n\t// exactly at the boundary, it's not considered within the boundaries.\n\tif ( x === undefined ) {\n\t\tx = isReverse ? containerRect.right - 1 : containerRect.left + 1;\n\t} else if ( x <= containerRect.left ) {\n\t\tx = containerRect.left + 1;\n\t} else if ( x >= containerRect.right ) {\n\t\tx = containerRect.right - 1;\n\t}\n\tconst y = isReverseDir ? containerRect.bottom - 1 : containerRect.top + 1;\n\treturn hiddenCaretRangeFromPoint( ownerDocument, x, y, container );\n}\n\n/**\n * Places the caret at start or end of a given element.\n *\n * @param container Focusable element.\n * @param isReverse True for end, false for start.\n * @param x X coordinate to vertically position.\n */\nexport default function placeCaretAtEdge(\n\tcontainer: HTMLElement,\n\tisReverse: boolean,\n\tx: number | undefined\n) {\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tcontainer.focus();\n\n\tif ( isInputOrTextArea( container ) ) {\n\t\t// The element may not support selection setting.\n\t\tif ( typeof container.selectionStart !== 'number' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isReverse ) {\n\t\t\tcontainer.selectionStart = container.value.length;\n\t\t\tcontainer.selectionEnd = container.value.length;\n\t\t} else {\n\t\t\tcontainer.selectionStart = 0;\n\t\t\tcontainer.selectionEnd = 0;\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Only place a caret if the container is itself an editable element.\n\t// It may also be content editable by inheriting it from an editing\n\t// host ancestor (e.g. an editable canvas wrapper), but placing a caret\n\t// for e.g. a focusable block element is then not intended.\n\tif ( container.contentEditable !== 'true' ) {\n\t\treturn;\n\t}\n\n\tconst range = scrollIfNoRange( container, isReverse, () =>\n\t\tgetRange( container, isReverse, x )\n\t);\n\n\tif ( ! range ) {\n\t\treturn;\n\t}\n\n\tconst { ownerDocument } = container;\n\tconst { defaultView } = ownerDocument;\n\tassertIsDefined( defaultView, 'defaultView' );\n\tconst selection = defaultView.getSelection();\n\tassertIsDefined( selection, 'selection' );\n\tselection.removeAllRanges();\n\tselection.addRange( range );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA,SAAS,SACR,WACA,WACA,GACe;CACf,MAAM,EAAE,kBAAkB;CAE1B,MAAM,eAAe,MAAO,SAAU,IAAI,CAAE,YAAY;CACxD,MAAM,gBAAgB,UAAU,sBAAsB;CAKtD,IAAK,MAAM,KAAA,GACV,IAAI,YAAY,cAAc,QAAQ,IAAI,cAAc,OAAO;MACzD,IAAK,KAAK,cAAc,MAC9B,IAAI,cAAc,OAAO;MACnB,IAAK,KAAK,cAAc,OAC9B,IAAI,cAAc,QAAQ;CAE3B,MAAM,IAAI,eAAe,cAAc,SAAS,IAAI,cAAc,MAAM;CACxE,OAAO,0BAA2B,eAAe,GAAG,GAAG,SAAU;AAClE;;;;;;;;AASA,SAAwB,iBACvB,WACA,WACA,GACC;CACD,IAAK,CAAE,WACN;CAGD,UAAU,MAAM;CAEhB,IAAK,kBAAmB,SAAU,GAAI;EAErC,IAAK,OAAO,UAAU,mBAAmB,UACxC;EAGD,IAAK,WAAY;GAChB,UAAU,iBAAiB,UAAU,MAAM;GAC3C,UAAU,eAAe,UAAU,MAAM;EAC1C,OAAO;GACN,UAAU,iBAAiB;GAC3B,UAAU,eAAe;EAC1B;EAEA;CACD;CAMA,IAAK,UAAU,oBAAoB,QAClC;CAGD,MAAM,QAAQ,gBAAiB,WAAW,iBACzC,SAAU,WAAW,WAAW,CAAE,CACnC;CAEA,IAAK,CAAE,OACN;CAGD,MAAM,EAAE,kBAAkB;CAC1B,MAAM,EAAE,gBAAgB;CACxB,gBAAiB,aAAa,aAAc;CAC5C,MAAM,YAAY,YAAY,aAAa;CAC3C,gBAAiB,WAAW,WAAY;CACxC,UAAU,gBAAgB;CAC1B,UAAU,SAAU,KAAM;AAC3B"}
@@ -1,9 +1,14 @@
1
- // packages/dom/src/dom/place-caret-at-horizontal-edge.js
2
1
  import placeCaretAtEdge from "./place-caret-at-edge.mjs";
2
+ // packages/dom/src/dom/place-caret-at-horizontal-edge.ts
3
+ /**
4
+ * Places the caret at start or end of a given element.
5
+ *
6
+ * @param {HTMLElement} container Focusable element.
7
+ * @param {boolean} isReverse True for end, false for start.
8
+ */
3
9
  function placeCaretAtHorizontalEdge(container, isReverse) {
4
- return placeCaretAtEdge(container, isReverse, void 0);
10
+ return placeCaretAtEdge(container, isReverse, void 0);
5
11
  }
6
- export {
7
- placeCaretAtHorizontalEdge as default
8
- };
9
- //# sourceMappingURL=place-caret-at-horizontal-edge.mjs.map
12
+ export { placeCaretAtHorizontalEdge as default };
13
+
14
+ //# sourceMappingURL=place-caret-at-horizontal-edge.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/place-caret-at-horizontal-edge.js"],
4
- "sourcesContent": ["import placeCaretAtEdge from './place-caret-at-edge';\n\n/**\n * Places the caret at start or end of a given element.\n *\n * @param {HTMLElement} container Focusable element.\n * @param {boolean} isReverse True for end, false for start.\n */\nexport default function placeCaretAtHorizontalEdge( container, isReverse ) {\n\treturn placeCaretAtEdge( container, isReverse, undefined );\n}\n"],
5
- "mappings": ";AAAA,OAAO,sBAAsB;AAQd,SAAR,2BAA6C,WAAW,WAAY;AAC1E,SAAO,iBAAkB,WAAW,WAAW,MAAU;AAC1D;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"place-caret-at-horizontal-edge.mjs","names":[],"sources":["../../src/dom/place-caret-at-horizontal-edge.ts"],"sourcesContent":["import placeCaretAtEdge from './place-caret-at-edge';\n\n/**\n * Places the caret at start or end of a given element.\n *\n * @param {HTMLElement} container Focusable element.\n * @param {boolean} isReverse True for end, false for start.\n */\nexport default function placeCaretAtHorizontalEdge(\n\tcontainer: HTMLElement,\n\tisReverse: boolean\n) {\n\treturn placeCaretAtEdge( container, isReverse, undefined );\n}\n"],"mappings":";;;;;;;;AAQA,SAAwB,2BACvB,WACA,WACC;CACD,OAAO,iBAAkB,WAAW,WAAW,KAAA,CAAU;AAC1D"}
@@ -1,9 +1,15 @@
1
- // packages/dom/src/dom/place-caret-at-vertical-edge.js
2
1
  import placeCaretAtEdge from "./place-caret-at-edge.mjs";
2
+ // packages/dom/src/dom/place-caret-at-vertical-edge.ts
3
+ /**
4
+ * Places the caret at the top or bottom of a given element.
5
+ *
6
+ * @param {HTMLElement} container Focusable element.
7
+ * @param {boolean} isReverse True for bottom, false for top.
8
+ * @param {DOMRect} [rect] The rectangle to position the caret with.
9
+ */
3
10
  function placeCaretAtVerticalEdge(container, isReverse, rect) {
4
- return placeCaretAtEdge(container, isReverse, rect?.left);
11
+ return placeCaretAtEdge(container, isReverse, rect?.left);
5
12
  }
6
- export {
7
- placeCaretAtVerticalEdge as default
8
- };
9
- //# sourceMappingURL=place-caret-at-vertical-edge.mjs.map
13
+ export { placeCaretAtVerticalEdge as default };
14
+
15
+ //# sourceMappingURL=place-caret-at-vertical-edge.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/place-caret-at-vertical-edge.js"],
4
- "sourcesContent": ["import placeCaretAtEdge from './place-caret-at-edge';\n\n/**\n * Places the caret at the top or bottom of a given element.\n *\n * @param {HTMLElement} container Focusable element.\n * @param {boolean} isReverse True for bottom, false for top.\n * @param {DOMRect} [rect] The rectangle to position the caret with.\n */\nexport default function placeCaretAtVerticalEdge( container, isReverse, rect ) {\n\treturn placeCaretAtEdge( container, isReverse, rect?.left );\n}\n"],
5
- "mappings": ";AAAA,OAAO,sBAAsB;AASd,SAAR,yBAA2C,WAAW,WAAW,MAAO;AAC9E,SAAO,iBAAkB,WAAW,WAAW,MAAM,IAAK;AAC3D;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"place-caret-at-vertical-edge.mjs","names":[],"sources":["../../src/dom/place-caret-at-vertical-edge.ts"],"sourcesContent":["import placeCaretAtEdge from './place-caret-at-edge';\n\n/**\n * Places the caret at the top or bottom of a given element.\n *\n * @param {HTMLElement} container Focusable element.\n * @param {boolean} isReverse True for bottom, false for top.\n * @param {DOMRect} [rect] The rectangle to position the caret with.\n */\nexport default function placeCaretAtVerticalEdge(\n\tcontainer: HTMLElement,\n\tisReverse: boolean,\n\trect?: DOMRect\n) {\n\treturn placeCaretAtEdge( container, isReverse, rect?.left );\n}\n"],"mappings":";;;;;;;;;AASA,SAAwB,yBACvB,WACA,WACA,MACC;CACD,OAAO,iBAAkB,WAAW,WAAW,MAAM,IAAK;AAC3D"}
@@ -1,12 +1,20 @@
1
- // packages/dom/src/dom/remove-invalid-html.js
2
1
  import cleanNodeList from "./clean-node-list.mjs";
2
+ // packages/dom/src/dom/remove-invalid-html.ts
3
+ /**
4
+ * Given a schema, unwraps or removes nodes, attributes and classes on HTML.
5
+ *
6
+ * @param {string} HTML The HTML to clean up.
7
+ * @param {Schema} schema Schema for the HTML.
8
+ * @param {boolean} [inline] Whether to clean for inline mode.
9
+ *
10
+ * @return {string} The cleaned up HTML.
11
+ */
3
12
  function removeInvalidHTML(HTML, schema, inline) {
4
- const doc = document.implementation.createHTMLDocument("");
5
- doc.body.innerHTML = HTML;
6
- cleanNodeList(doc.body.childNodes, doc, schema, inline);
7
- return doc.body.innerHTML;
13
+ const doc = document.implementation.createHTMLDocument("");
14
+ doc.body.innerHTML = HTML;
15
+ cleanNodeList(doc.body.childNodes, doc, schema, inline);
16
+ return doc.body.innerHTML;
8
17
  }
9
- export {
10
- removeInvalidHTML as default
11
- };
12
- //# sourceMappingURL=remove-invalid-html.mjs.map
18
+ export { removeInvalidHTML as default };
19
+
20
+ //# sourceMappingURL=remove-invalid-html.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/remove-invalid-html.js"],
4
- "sourcesContent": ["import cleanNodeList from './clean-node-list';\n\n/**\n * Given a schema, unwraps or removes nodes, attributes and classes on HTML.\n *\n * @param {string} HTML The HTML to clean up.\n * @param {import('./clean-node-list').Schema} schema Schema for the HTML.\n * @param {boolean} inline Whether to clean for inline mode.\n *\n * @return {string} The cleaned up HTML.\n */\nexport default function removeInvalidHTML( HTML, schema, inline ) {\n\tconst doc = document.implementation.createHTMLDocument( '' );\n\n\tdoc.body.innerHTML = HTML;\n\n\tcleanNodeList( doc.body.childNodes, doc, schema, inline );\n\n\treturn doc.body.innerHTML;\n}\n"],
5
- "mappings": ";AAAA,OAAO,mBAAmB;AAWX,SAAR,kBAAoC,MAAM,QAAQ,QAAS;AACjE,QAAM,MAAM,SAAS,eAAe,mBAAoB,EAAG;AAE3D,MAAI,KAAK,YAAY;AAErB,gBAAe,IAAI,KAAK,YAAY,KAAK,QAAQ,MAAO;AAExD,SAAO,IAAI,KAAK;AACjB;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"remove-invalid-html.mjs","names":[],"sources":["../../src/dom/remove-invalid-html.ts"],"sourcesContent":["import cleanNodeList from './clean-node-list';\nimport type { Schema } from './types';\n\n/**\n * Given a schema, unwraps or removes nodes, attributes and classes on HTML.\n *\n * @param {string} HTML The HTML to clean up.\n * @param {Schema} schema Schema for the HTML.\n * @param {boolean} [inline] Whether to clean for inline mode.\n *\n * @return {string} The cleaned up HTML.\n */\nexport default function removeInvalidHTML(\n\tHTML: string,\n\tschema: Schema,\n\tinline?: boolean\n): string {\n\tconst doc = document.implementation.createHTMLDocument( '' );\n\n\tdoc.body.innerHTML = HTML;\n\n\tcleanNodeList( doc.body.childNodes, doc, schema, inline );\n\n\treturn doc.body.innerHTML;\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAwB,kBACvB,MACA,QACA,QACS;CACT,MAAM,MAAM,SAAS,eAAe,mBAAoB,EAAG;CAE3D,IAAI,KAAK,YAAY;CAErB,cAAe,IAAI,KAAK,YAAY,KAAK,QAAQ,MAAO;CAExD,OAAO,IAAI,KAAK;AACjB"}
@@ -1,10 +1,14 @@
1
- // packages/dom/src/dom/remove.js
2
1
  import { assertIsDefined } from "../utils/assert-is-defined.mjs";
2
+ // packages/dom/src/dom/remove.ts
3
+ /**
4
+ * Given a DOM node, removes it from the DOM.
5
+ *
6
+ * @param node Node to be removed.
7
+ */
3
8
  function remove(node) {
4
- assertIsDefined(node.parentNode, "node.parentNode");
5
- node.parentNode.removeChild(node);
9
+ assertIsDefined(node.parentNode, "node.parentNode");
10
+ node.parentNode.removeChild(node);
6
11
  }
7
- export {
8
- remove as default
9
- };
10
- //# sourceMappingURL=remove.mjs.map
12
+ export { remove as default };
13
+
14
+ //# sourceMappingURL=remove.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/remove.js"],
4
- "sourcesContent": ["import { assertIsDefined } from '../utils/assert-is-defined';\n\n/**\n * Given a DOM node, removes it from the DOM.\n *\n * @param {Node} node Node to be removed.\n * @return {void}\n */\nexport default function remove( node ) {\n\tassertIsDefined( node.parentNode, 'node.parentNode' );\n\tnode.parentNode.removeChild( node );\n}\n"],
5
- "mappings": ";AAAA,SAAS,uBAAuB;AAQjB,SAAR,OAAyB,MAAO;AACtC,kBAAiB,KAAK,YAAY,iBAAkB;AACpD,OAAK,WAAW,YAAa,IAAK;AACnC;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"remove.mjs","names":[],"sources":["../../src/dom/remove.ts"],"sourcesContent":["import { assertIsDefined } from '../utils/assert-is-defined';\n\n/**\n * Given a DOM node, removes it from the DOM.\n *\n * @param node Node to be removed.\n */\nexport default function remove( node: Node ): void {\n\tassertIsDefined( node.parentNode, 'node.parentNode' );\n\tnode.parentNode.removeChild( node );\n}\n"],"mappings":";;;;;;;AAOA,SAAwB,OAAQ,MAAmB;CAClD,gBAAiB,KAAK,YAAY,iBAAkB;CACpD,KAAK,WAAW,YAAa,IAAK;AACnC"}
@@ -1,15 +1,20 @@
1
- // packages/dom/src/dom/replace-tag.js
2
1
  import { assertIsDefined } from "../utils/assert-is-defined.mjs";
2
+ // packages/dom/src/dom/replace-tag.ts
3
+ /**
4
+ * Replaces the given node with a new node with the given tag name.
5
+ *
6
+ * @param node The node to replace
7
+ * @param tagName The new tag name.
8
+ *
9
+ * @return The new node.
10
+ */
3
11
  function replaceTag(node, tagName) {
4
- const newNode = node.ownerDocument.createElement(tagName);
5
- while (node.firstChild) {
6
- newNode.appendChild(node.firstChild);
7
- }
8
- assertIsDefined(node.parentNode, "node.parentNode");
9
- node.parentNode.replaceChild(newNode, node);
10
- return newNode;
12
+ const newNode = node.ownerDocument.createElement(tagName);
13
+ while (node.firstChild) newNode.appendChild(node.firstChild);
14
+ assertIsDefined(node.parentNode, "node.parentNode");
15
+ node.parentNode.replaceChild(newNode, node);
16
+ return newNode;
11
17
  }
12
- export {
13
- replaceTag as default
14
- };
15
- //# sourceMappingURL=replace-tag.mjs.map
18
+ export { replaceTag as default };
19
+
20
+ //# sourceMappingURL=replace-tag.mjs.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dom/replace-tag.js"],
4
- "sourcesContent": ["import { assertIsDefined } from '../utils/assert-is-defined';\n\n/**\n * Replaces the given node with a new node with the given tag name.\n *\n * @param {Element} node The node to replace\n * @param {string} tagName The new tag name.\n *\n * @return {Element} The new node.\n */\nexport default function replaceTag( node, tagName ) {\n\tconst newNode = node.ownerDocument.createElement( tagName );\n\n\twhile ( node.firstChild ) {\n\t\tnewNode.appendChild( node.firstChild );\n\t}\n\n\tassertIsDefined( node.parentNode, 'node.parentNode' );\n\tnode.parentNode.replaceChild( newNode, node );\n\n\treturn newNode;\n}\n"],
5
- "mappings": ";AAAA,SAAS,uBAAuB;AAUjB,SAAR,WAA6B,MAAM,SAAU;AACnD,QAAM,UAAU,KAAK,cAAc,cAAe,OAAQ;AAE1D,SAAQ,KAAK,YAAa;AACzB,YAAQ,YAAa,KAAK,UAAW;AAAA,EACtC;AAEA,kBAAiB,KAAK,YAAY,iBAAkB;AACpD,OAAK,WAAW,aAAc,SAAS,IAAK;AAE5C,SAAO;AACR;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"replace-tag.mjs","names":[],"sources":["../../src/dom/replace-tag.ts"],"sourcesContent":["import { assertIsDefined } from '../utils/assert-is-defined';\n\n/**\n * Replaces the given node with a new node with the given tag name.\n *\n * @param node The node to replace\n * @param tagName The new tag name.\n *\n * @return The new node.\n */\nexport default function replaceTag( node: Element, tagName: string ): Element {\n\tconst newNode = node.ownerDocument.createElement( tagName );\n\n\twhile ( node.firstChild ) {\n\t\tnewNode.appendChild( node.firstChild );\n\t}\n\n\tassertIsDefined( node.parentNode, 'node.parentNode' );\n\tnode.parentNode.replaceChild( newNode, node );\n\n\treturn newNode;\n}\n"],"mappings":";;;;;;;;;;AAUA,SAAwB,WAAY,MAAe,SAA2B;CAC7E,MAAM,UAAU,KAAK,cAAc,cAAe,OAAQ;CAE1D,OAAQ,KAAK,YACZ,QAAQ,YAAa,KAAK,UAAW;CAGtC,gBAAiB,KAAK,YAAY,iBAAkB;CACpD,KAAK,WAAW,aAAc,SAAS,IAAK;CAE5C,OAAO;AACR"}