umaki 0.13.0 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +15 -0
  2. package/dist/LICENSE.txt +1 -32
  3. package/dist/_virtual/_rolldown/runtime.cjs +22 -0
  4. package/dist/index.cjs +138 -0
  5. package/dist/index.es.js +17 -71
  6. package/dist/libs/callback/index.cjs +16 -0
  7. package/dist/libs/callback/index.es.js +12 -4
  8. package/dist/libs/callback/tap-async.cjs +7 -0
  9. package/dist/libs/callback/tap-async.es.js +6 -7
  10. package/dist/libs/callback/tap.cjs +6 -0
  11. package/dist/libs/callback/tap.es.js +5 -6
  12. package/dist/libs/config/_internal.cjs +3 -0
  13. package/dist/libs/config/_internal.es.js +3 -4
  14. package/dist/libs/config/default-config.cjs +3 -0
  15. package/dist/libs/config/default-config.es.js +3 -6
  16. package/dist/libs/config/get-config.cjs +10 -0
  17. package/dist/libs/config/get-config.es.js +6 -8
  18. package/dist/libs/config/index.cjs +19 -0
  19. package/dist/libs/config/index.es.js +12 -6
  20. package/dist/libs/config/set-config.cjs +15 -0
  21. package/dist/libs/config/set-config.d.ts +1 -0
  22. package/dist/libs/config/set-config.es.js +13 -6
  23. package/dist/libs/control/bg-scroll-stop.cjs +8 -0
  24. package/dist/libs/control/bg-scroll-stop.d.ts +1 -0
  25. package/dist/libs/control/bg-scroll-stop.es.js +6 -6
  26. package/dist/libs/control/copy-to-clipboard.cjs +11 -0
  27. package/dist/libs/control/copy-to-clipboard.es.js +10 -13
  28. package/dist/libs/control/index.cjs +22 -0
  29. package/dist/libs/control/index.es.js +12 -7
  30. package/dist/libs/control/pd.cjs +3 -0
  31. package/dist/libs/control/pd.es.js +3 -4
  32. package/dist/libs/control/scroll-to-hash.cjs +30 -0
  33. package/dist/libs/control/scroll-to-hash.d.ts +1 -0
  34. package/dist/libs/control/scroll-to-hash.es.js +29 -35
  35. package/dist/libs/control/video-play-control.cjs +19 -0
  36. package/dist/libs/control/video-play-control.es.js +17 -20
  37. package/dist/libs/convert/change-date-string-to-specific-format.cjs +15 -0
  38. package/dist/libs/convert/change-date-string-to-specific-format.es.js +7 -10
  39. package/dist/libs/convert/hex-to-rgb.cjs +17 -0
  40. package/dist/libs/convert/hex-to-rgb.es.js +16 -21
  41. package/dist/libs/convert/index.cjs +20 -0
  42. package/dist/libs/convert/index.es.js +12 -6
  43. package/dist/libs/convert/json-string-to-json-object.cjs +9 -0
  44. package/dist/libs/convert/json-string-to-json-object.es.js +8 -9
  45. package/dist/libs/convert/rgb-to-hex.cjs +8 -0
  46. package/dist/libs/convert/rgb-to-hex.es.js +7 -8
  47. package/dist/libs/eventControl/debounce.cjs +13 -0
  48. package/dist/libs/eventControl/debounce.es.js +12 -15
  49. package/dist/libs/eventControl/index.cjs +16 -0
  50. package/dist/libs/eventControl/index.es.js +12 -4
  51. package/dist/libs/eventControl/throttle.cjs +13 -0
  52. package/dist/libs/eventControl/throttle.es.js +12 -15
  53. package/dist/libs/get/get-aspect-ratio.cjs +11 -0
  54. package/dist/libs/get/get-aspect-ratio.es.js +9 -9
  55. package/dist/libs/get/get-class-names.cjs +5 -0
  56. package/dist/libs/get/get-class-names.es.js +4 -6
  57. package/dist/libs/get/get-document-height.cjs +6 -0
  58. package/dist/libs/get/get-document-height.d.ts +1 -0
  59. package/dist/libs/get/get-document-height.es.js +5 -3
  60. package/dist/libs/get/get-event-paths.cjs +18 -0
  61. package/dist/libs/get/get-event-paths.es.js +17 -22
  62. package/dist/libs/get/get-gcd.cjs +10 -0
  63. package/dist/libs/get/get-gcd.d.ts +1 -0
  64. package/dist/libs/get/get-gcd.es.js +8 -8
  65. package/dist/libs/get/get-gravatar-url.cjs +10 -0
  66. package/dist/libs/get/get-gravatar-url.d.ts +4 -0
  67. package/dist/libs/get/get-gravatar-url.es.js +6 -7
  68. package/dist/libs/get/get-orientation.cjs +6 -0
  69. package/dist/libs/get/get-orientation.es.js +5 -9
  70. package/dist/libs/get/get-parent-list.cjs +7 -0
  71. package/dist/libs/get/get-parent-list.es.js +6 -7
  72. package/dist/libs/get/get-query-params.cjs +22 -0
  73. package/dist/libs/get/get-query-params.d.ts +1 -0
  74. package/dist/libs/get/get-query-params.es.js +18 -18
  75. package/dist/libs/get/get-random-int.cjs +10 -0
  76. package/dist/libs/get/get-random-int.d.ts +5 -1
  77. package/dist/libs/get/get-random-int.es.js +9 -10
  78. package/dist/libs/get/get-relative-time.cjs +44 -0
  79. package/dist/libs/get/get-relative-time.es.js +42 -26
  80. package/dist/libs/get/get-rem.cjs +6 -0
  81. package/dist/libs/get/get-rem.d.ts +1 -0
  82. package/dist/libs/get/get-rem.es.js +5 -8
  83. package/dist/libs/get/get-rendered-line-height.cjs +52 -0
  84. package/dist/libs/get/get-rendered-line-height.es.js +50 -55
  85. package/dist/libs/get/get-scrollbar-width.cjs +6 -0
  86. package/dist/libs/get/get-scrollbar-width.d.ts +1 -0
  87. package/dist/libs/get/get-scrollbar-width.es.js +5 -3
  88. package/dist/libs/get/get-session-storage.cjs +10 -0
  89. package/dist/libs/get/get-session-storage.es.js +6 -7
  90. package/dist/libs/get/get-string-length.cjs +4 -0
  91. package/dist/libs/get/get-string-length.es.js +3 -4
  92. package/dist/libs/get/get-style-property-value-to-number.cjs +4 -0
  93. package/dist/libs/get/get-style-property-value-to-number.es.js +3 -4
  94. package/dist/libs/get/get-style-property-value.cjs +6 -0
  95. package/dist/libs/get/get-style-property-value.d.ts +1 -0
  96. package/dist/libs/get/get-style-property-value.es.js +5 -3
  97. package/dist/libs/get/get-ua-data.cjs +22 -0
  98. package/dist/libs/get/get-ua-data.es.js +17 -20
  99. package/dist/libs/get/index.cjs +50 -0
  100. package/dist/libs/get/index.es.js +14 -23
  101. package/dist/libs/is/check-device-size.cjs +8 -0
  102. package/dist/libs/is/check-device-size.es.js +6 -9
  103. package/dist/libs/is/index.cjs +34 -0
  104. package/dist/libs/is/index.es.js +13 -14
  105. package/dist/libs/is/is-after-date-time.cjs +9 -0
  106. package/dist/libs/is/is-after-date-time.es.js +5 -8
  107. package/dist/libs/is/is-between-date-time.cjs +14 -0
  108. package/dist/libs/is/is-between-date-time.es.js +8 -11
  109. package/dist/libs/is/is-exist-all-elements.cjs +5 -0
  110. package/dist/libs/is/is-exist-all-elements.es.js +4 -5
  111. package/dist/libs/is/is-in-viewport.cjs +63 -0
  112. package/dist/libs/is/is-in-viewport.es.js +61 -64
  113. package/dist/libs/is/is-ipad.cjs +10 -0
  114. package/dist/libs/is/is-ipad.es.js +7 -10
  115. package/dist/libs/is/is-key-exists.cjs +5 -0
  116. package/dist/libs/is/is-key-exists.es.js +4 -5
  117. package/dist/libs/is/is-online.cjs +6 -0
  118. package/dist/libs/is/is-online.es.js +5 -8
  119. package/dist/libs/is/is-safari.cjs +8 -0
  120. package/dist/libs/is/is-safari.es.js +6 -9
  121. package/dist/libs/is/is-scrollable.cjs +7 -0
  122. package/dist/libs/is/is-scrollable.es.js +6 -7
  123. package/dist/libs/is/is-touch-support.cjs +9 -0
  124. package/dist/libs/is/is-touch-support.es.js +8 -10
  125. package/dist/libs/remove/index.cjs +20 -0
  126. package/dist/libs/remove/index.es.js +12 -6
  127. package/dist/libs/remove/remove-all-html-tags.cjs +12 -0
  128. package/dist/libs/remove/remove-all-html-tags.d.ts +7 -1
  129. package/dist/libs/remove/remove-all-html-tags.es.js +8 -10
  130. package/dist/libs/remove/remove-attribute.cjs +5 -0
  131. package/dist/libs/remove/remove-attribute.es.js +4 -5
  132. package/dist/libs/remove/remove-session-storage.cjs +8 -0
  133. package/dist/libs/remove/remove-session-storage.es.js +4 -5
  134. package/dist/libs/remove/remove-style-property-value.cjs +6 -0
  135. package/dist/libs/remove/remove-style-property-value.d.ts +1 -0
  136. package/dist/libs/remove/remove-style-property-value.es.js +5 -5
  137. package/dist/libs/security/html-sanitize.cjs +19 -0
  138. package/dist/libs/security/html-sanitize.d.ts +8 -0
  139. package/dist/libs/security/html-sanitize.es.js +13 -6
  140. package/dist/libs/security/index.cjs +15 -0
  141. package/dist/libs/security/index.es.js +12 -5
  142. package/dist/libs/set/index.cjs +24 -0
  143. package/dist/libs/set/index.es.js +12 -8
  144. package/dist/libs/set/set-100vh.cjs +7 -0
  145. package/dist/libs/set/set-100vh.d.ts +1 -0
  146. package/dist/libs/set/set-100vh.es.js +6 -6
  147. package/dist/libs/set/set-100vw.cjs +7 -0
  148. package/dist/libs/set/set-100vw.d.ts +1 -0
  149. package/dist/libs/set/set-100vw.es.js +6 -6
  150. package/dist/libs/set/set-attribute.cjs +5 -0
  151. package/dist/libs/set/set-attribute.es.js +4 -5
  152. package/dist/libs/set/set-scroll-position-to-center.cjs +11 -0
  153. package/dist/libs/set/set-scroll-position-to-center.es.js +10 -9
  154. package/dist/libs/set/set-session-storage.cjs +8 -0
  155. package/dist/libs/set/set-session-storage.es.js +4 -5
  156. package/dist/libs/set/set-style-property-value.cjs +6 -0
  157. package/dist/libs/set/set-style-property-value.d.ts +1 -0
  158. package/dist/libs/set/set-style-property-value.es.js +5 -5
  159. package/dist/libs/to/index.cjs +16 -0
  160. package/dist/libs/to/index.es.js +12 -4
  161. package/dist/libs/to/to-boolean.cjs +5 -0
  162. package/dist/libs/to/to-boolean.es.js +4 -5
  163. package/dist/libs/to/to-positive-number.cjs +3 -0
  164. package/dist/libs/to/to-positive-number.es.js +3 -4
  165. package/dist/libs/transform/index.cjs +14 -0
  166. package/dist/libs/transform/index.es.js +12 -4
  167. package/dist/libs/transform/wrap-text-with-spans.cjs +17 -0
  168. package/dist/libs/transform/wrap-text-with-spans.es.js +15 -20
  169. package/dist/libs/wait/index.cjs +16 -0
  170. package/dist/libs/wait/index.es.js +12 -4
  171. package/dist/libs/wait/sleep.cjs +5 -0
  172. package/dist/libs/wait/sleep.es.js +4 -5
  173. package/dist/libs/wait/wait-for-all-media-loaded.cjs +31 -0
  174. package/dist/libs/wait/wait-for-all-media-loaded.d.ts +1 -0
  175. package/dist/libs/wait/wait-for-all-media-loaded.es.js +30 -43
  176. package/package.json +38 -36
  177. package/dist/_virtual/_commonjsHelpers.cjs.js +0 -6
  178. package/dist/_virtual/_commonjsHelpers.es.js +0 -6
  179. package/dist/_virtual/isBetween.cjs.js +0 -7
  180. package/dist/_virtual/isBetween.cjs2.js +0 -4
  181. package/dist/_virtual/isBetween.es.js +0 -7
  182. package/dist/_virtual/isBetween.es2.js +0 -4
  183. package/dist/_virtual/timezone.cjs.js +0 -7
  184. package/dist/_virtual/timezone.cjs2.js +0 -4
  185. package/dist/_virtual/timezone.es.js +0 -7
  186. package/dist/_virtual/timezone.es2.js +0 -4
  187. package/dist/_virtual/utc.cjs.js +0 -7
  188. package/dist/_virtual/utc.cjs2.js +0 -4
  189. package/dist/_virtual/utc.es.js +0 -7
  190. package/dist/_virtual/utc.es2.js +0 -4
  191. package/dist/index.cjs.js +0 -128
  192. package/dist/libs/callback/index.cjs.js +0 -6
  193. package/dist/libs/callback/tap-async.cjs.js +0 -8
  194. package/dist/libs/callback/tap.cjs.js +0 -7
  195. package/dist/libs/config/_internal.cjs.js +0 -5
  196. package/dist/libs/config/default-config.cjs.js +0 -6
  197. package/dist/libs/config/get-config.cjs.js +0 -11
  198. package/dist/libs/config/index.cjs.js +0 -9
  199. package/dist/libs/config/set-config.cjs.js +0 -8
  200. package/dist/libs/control/bg-scroll-stop.cjs.js +0 -8
  201. package/dist/libs/control/copy-to-clipboard.cjs.js +0 -14
  202. package/dist/libs/control/index.cjs.js +0 -12
  203. package/dist/libs/control/pd.cjs.js +0 -4
  204. package/dist/libs/control/scroll-to-hash.cjs.js +0 -36
  205. package/dist/libs/control/video-play-control.cjs.js +0 -22
  206. package/dist/libs/convert/change-date-string-to-specific-format.cjs.js +0 -14
  207. package/dist/libs/convert/hex-to-rgb.cjs.js +0 -22
  208. package/dist/libs/convert/index.cjs.js +0 -10
  209. package/dist/libs/convert/json-string-to-json-object.cjs.js +0 -10
  210. package/dist/libs/convert/rgb-to-hex.cjs.js +0 -9
  211. package/dist/libs/eventControl/debounce.cjs.js +0 -16
  212. package/dist/libs/eventControl/index.cjs.js +0 -6
  213. package/dist/libs/eventControl/throttle.cjs.js +0 -16
  214. package/dist/libs/get/get-aspect-ratio.cjs.js +0 -11
  215. package/dist/libs/get/get-class-names.cjs.js +0 -7
  216. package/dist/libs/get/get-document-height.cjs.js +0 -4
  217. package/dist/libs/get/get-event-paths.cjs.js +0 -23
  218. package/dist/libs/get/get-gcd.cjs.js +0 -10
  219. package/dist/libs/get/get-gravatar-url.cjs.js +0 -9
  220. package/dist/libs/get/get-orientation.cjs.js +0 -10
  221. package/dist/libs/get/get-parent-list.cjs.js +0 -8
  222. package/dist/libs/get/get-query-params.cjs.js +0 -20
  223. package/dist/libs/get/get-random-int.cjs.js +0 -11
  224. package/dist/libs/get/get-relative-time.cjs.js +0 -28
  225. package/dist/libs/get/get-rem.cjs.js +0 -9
  226. package/dist/libs/get/get-rendered-line-height.cjs.js +0 -57
  227. package/dist/libs/get/get-scrollbar-width.cjs.js +0 -4
  228. package/dist/libs/get/get-session-storage.cjs.js +0 -9
  229. package/dist/libs/get/get-string-length.cjs.js +0 -5
  230. package/dist/libs/get/get-style-property-value-to-number.cjs.js +0 -5
  231. package/dist/libs/get/get-style-property-value.cjs.js +0 -4
  232. package/dist/libs/get/get-ua-data.cjs.js +0 -23
  233. package/dist/libs/get/index.cjs.js +0 -40
  234. package/dist/libs/is/check-device-size.cjs.js +0 -11
  235. package/dist/libs/is/index.cjs.js +0 -24
  236. package/dist/libs/is/is-after-date-time.cjs.js +0 -10
  237. package/dist/libs/is/is-between-date-time.cjs.js +0 -14
  238. package/dist/libs/is/is-exist-all-elements.cjs.js +0 -6
  239. package/dist/libs/is/is-in-viewport.cjs.js +0 -66
  240. package/dist/libs/is/is-ipad.cjs.js +0 -13
  241. package/dist/libs/is/is-key-exists.cjs.js +0 -6
  242. package/dist/libs/is/is-online.cjs.js +0 -9
  243. package/dist/libs/is/is-safari.cjs.js +0 -11
  244. package/dist/libs/is/is-scrollable.cjs.js +0 -8
  245. package/dist/libs/is/is-touch-support.cjs.js +0 -11
  246. package/dist/libs/remove/index.cjs.js +0 -10
  247. package/dist/libs/remove/remove-all-html-tags.cjs.js +0 -12
  248. package/dist/libs/remove/remove-attribute.cjs.js +0 -6
  249. package/dist/libs/remove/remove-session-storage.cjs.js +0 -7
  250. package/dist/libs/remove/remove-style-property-value.cjs.js +0 -6
  251. package/dist/libs/security/html-sanitize.cjs.js +0 -9
  252. package/dist/libs/security/index.cjs.js +0 -5
  253. package/dist/libs/set/index.cjs.js +0 -14
  254. package/dist/libs/set/set-100vh.cjs.js +0 -7
  255. package/dist/libs/set/set-100vw.cjs.js +0 -7
  256. package/dist/libs/set/set-attribute.cjs.js +0 -6
  257. package/dist/libs/set/set-scroll-position-to-center.cjs.js +0 -10
  258. package/dist/libs/set/set-session-storage.cjs.js +0 -7
  259. package/dist/libs/set/set-style-property-value.cjs.js +0 -6
  260. package/dist/libs/to/index.cjs.js +0 -6
  261. package/dist/libs/to/to-boolean.cjs.js +0 -6
  262. package/dist/libs/to/to-positive-number.cjs.js +0 -4
  263. package/dist/libs/transform/index.cjs.js +0 -4
  264. package/dist/libs/transform/wrap-text-with-spans.cjs.js +0 -22
  265. package/dist/libs/wait/index.cjs.js +0 -6
  266. package/dist/libs/wait/sleep.cjs.js +0 -6
  267. package/dist/libs/wait/wait-for-all-media-loaded.cjs.js +0 -44
  268. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isBetween.cjs.js +0 -23
  269. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isBetween.es.js +0 -23
  270. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/timezone.cjs.js +0 -71
  271. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/timezone.es.js +0 -71
  272. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/utc.cjs.js +0 -83
  273. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/utc.es.js +0 -83
@@ -0,0 +1,63 @@
1
+ // src/libs/is/is-in-viewport.ts
2
+ var parseRootMargin = (rootMargin) => {
3
+ const parts = rootMargin.trim().split(/\s+/);
4
+ const parseValue = (value) => {
5
+ if (value.endsWith("%")) {
6
+ const percent = Number.parseFloat(value) / 100;
7
+ return window.innerWidth * percent;
8
+ }
9
+ return Number.parseFloat(value) || 0;
10
+ };
11
+ if (parts.length === 1) {
12
+ const value = parseValue(parts[0]);
13
+ return {
14
+ top: value,
15
+ right: value,
16
+ bottom: value,
17
+ left: value
18
+ };
19
+ }
20
+ if (parts.length === 2) {
21
+ const vertical = parseValue(parts[0]);
22
+ const horizontal = parseValue(parts[1]);
23
+ return {
24
+ top: vertical,
25
+ right: horizontal,
26
+ bottom: vertical,
27
+ left: horizontal
28
+ };
29
+ }
30
+ if (parts.length === 3) return {
31
+ top: parseValue(parts[0]),
32
+ right: parseValue(parts[1]),
33
+ bottom: parseValue(parts[2]),
34
+ left: parseValue(parts[1])
35
+ };
36
+ return {
37
+ top: parseValue(parts[0]),
38
+ right: parseValue(parts[1]),
39
+ bottom: parseValue(parts[2]),
40
+ left: parseValue(parts[3])
41
+ };
42
+ };
43
+ var isInViewport = (element, options = {}) => {
44
+ const { threshold = 0, rootMargin = "0px" } = options;
45
+ const rect = element.getBoundingClientRect();
46
+ const margins = parseRootMargin(rootMargin);
47
+ const viewportTop = 0 - margins.top;
48
+ const viewportLeft = 0 - margins.left;
49
+ const viewportBottom = window.innerHeight + margins.bottom;
50
+ const viewportRight = window.innerWidth + margins.right;
51
+ if (threshold === 0) return rect.bottom > viewportTop && rect.right > viewportLeft && rect.top < viewportBottom && rect.left < viewportRight;
52
+ const elementHeight = rect.height;
53
+ const elementWidth = rect.width;
54
+ const visibleTop = Math.max(rect.top, viewportTop);
55
+ const visibleBottom = Math.min(rect.bottom, viewportBottom);
56
+ const visibleLeft = Math.max(rect.left, viewportLeft);
57
+ const visibleRight = Math.min(rect.right, viewportRight);
58
+ const visibleArea = Math.max(0, visibleBottom - visibleTop) * Math.max(0, visibleRight - visibleLeft);
59
+ const elementArea = elementHeight * elementWidth;
60
+ if (elementArea === 0) return false;
61
+ return visibleArea / elementArea >= threshold;
62
+ };
63
+ exports.isInViewport = isInViewport;
@@ -1,66 +1,63 @@
1
- const parseRootMargin = (rootMargin) => {
2
- const parts = rootMargin.trim().split(/\s+/);
3
- const parseValue = (value) => {
4
- if (value.endsWith("%")) {
5
- const percent = Number.parseFloat(value) / 100;
6
- return window.innerWidth * percent;
7
- }
8
- return Number.parseFloat(value) || 0;
9
- };
10
- if (parts.length === 1) {
11
- const value = parseValue(parts[0]);
12
- return { top: value, right: value, bottom: value, left: value };
13
- }
14
- if (parts.length === 2) {
15
- const vertical = parseValue(parts[0]);
16
- const horizontal = parseValue(parts[1]);
17
- return {
18
- top: vertical,
19
- right: horizontal,
20
- bottom: vertical,
21
- left: horizontal
22
- };
23
- }
24
- if (parts.length === 3) {
25
- return {
26
- top: parseValue(parts[0]),
27
- right: parseValue(parts[1]),
28
- bottom: parseValue(parts[2]),
29
- left: parseValue(parts[1])
30
- };
31
- }
32
- return {
33
- top: parseValue(parts[0]),
34
- right: parseValue(parts[1]),
35
- bottom: parseValue(parts[2]),
36
- left: parseValue(parts[3])
37
- };
1
+ // src/libs/is/is-in-viewport.ts
2
+ var parseRootMargin = (rootMargin) => {
3
+ const parts = rootMargin.trim().split(/\s+/);
4
+ const parseValue = (value) => {
5
+ if (value.endsWith("%")) {
6
+ const percent = Number.parseFloat(value) / 100;
7
+ return window.innerWidth * percent;
8
+ }
9
+ return Number.parseFloat(value) || 0;
10
+ };
11
+ if (parts.length === 1) {
12
+ const value = parseValue(parts[0]);
13
+ return {
14
+ top: value,
15
+ right: value,
16
+ bottom: value,
17
+ left: value
18
+ };
19
+ }
20
+ if (parts.length === 2) {
21
+ const vertical = parseValue(parts[0]);
22
+ const horizontal = parseValue(parts[1]);
23
+ return {
24
+ top: vertical,
25
+ right: horizontal,
26
+ bottom: vertical,
27
+ left: horizontal
28
+ };
29
+ }
30
+ if (parts.length === 3) return {
31
+ top: parseValue(parts[0]),
32
+ right: parseValue(parts[1]),
33
+ bottom: parseValue(parts[2]),
34
+ left: parseValue(parts[1])
35
+ };
36
+ return {
37
+ top: parseValue(parts[0]),
38
+ right: parseValue(parts[1]),
39
+ bottom: parseValue(parts[2]),
40
+ left: parseValue(parts[3])
41
+ };
38
42
  };
39
- const isInViewport = (element, options = {}) => {
40
- const { threshold = 0, rootMargin = "0px" } = options;
41
- const rect = element.getBoundingClientRect();
42
- const margins = parseRootMargin(rootMargin);
43
- const viewportTop = 0 - margins.top;
44
- const viewportLeft = 0 - margins.left;
45
- const viewportBottom = window.innerHeight + margins.bottom;
46
- const viewportRight = window.innerWidth + margins.right;
47
- if (threshold === 0) {
48
- return rect.bottom > viewportTop && rect.right > viewportLeft && rect.top < viewportBottom && rect.left < viewportRight;
49
- }
50
- const elementHeight = rect.height;
51
- const elementWidth = rect.width;
52
- const visibleTop = Math.max(rect.top, viewportTop);
53
- const visibleBottom = Math.min(rect.bottom, viewportBottom);
54
- const visibleLeft = Math.max(rect.left, viewportLeft);
55
- const visibleRight = Math.min(rect.right, viewportRight);
56
- const visibleHeight = Math.max(0, visibleBottom - visibleTop);
57
- const visibleWidth = Math.max(0, visibleRight - visibleLeft);
58
- const visibleArea = visibleHeight * visibleWidth;
59
- const elementArea = elementHeight * elementWidth;
60
- if (elementArea === 0) return false;
61
- const visibleRatio = visibleArea / elementArea;
62
- return visibleRatio >= threshold;
63
- };
64
- export {
65
- isInViewport
43
+ var isInViewport = (element, options = {}) => {
44
+ const { threshold = 0, rootMargin = "0px" } = options;
45
+ const rect = element.getBoundingClientRect();
46
+ const margins = parseRootMargin(rootMargin);
47
+ const viewportTop = 0 - margins.top;
48
+ const viewportLeft = 0 - margins.left;
49
+ const viewportBottom = window.innerHeight + margins.bottom;
50
+ const viewportRight = window.innerWidth + margins.right;
51
+ if (threshold === 0) return rect.bottom > viewportTop && rect.right > viewportLeft && rect.top < viewportBottom && rect.left < viewportRight;
52
+ const elementHeight = rect.height;
53
+ const elementWidth = rect.width;
54
+ const visibleTop = Math.max(rect.top, viewportTop);
55
+ const visibleBottom = Math.min(rect.bottom, viewportBottom);
56
+ const visibleLeft = Math.max(rect.left, viewportLeft);
57
+ const visibleRight = Math.min(rect.right, viewportRight);
58
+ const visibleArea = Math.max(0, visibleBottom - visibleTop) * Math.max(0, visibleRight - visibleLeft);
59
+ const elementArea = elementHeight * elementWidth;
60
+ if (elementArea === 0) return false;
61
+ return visibleArea / elementArea >= threshold;
66
62
  };
63
+ export { isInViewport };
@@ -0,0 +1,10 @@
1
+ const require_get_orientation = require("../get/get-orientation.cjs");
2
+ const require_get_ua_data = require("../get/get-ua-data.cjs");
3
+ // src/libs/is/is-ipad.ts
4
+ var isIpad = (orientation = "portrait") => {
5
+ if (typeof window === "undefined" || typeof navigator === "undefined") return false;
6
+ const clientData = require_get_ua_data.getUaData();
7
+ if (!clientData.touchSupport) return false;
8
+ return clientData.type === "laptop" && clientData.osName === "mac-os" && clientData.browserName === "safari" && require_get_orientation.getOrientation() === orientation;
9
+ };
10
+ exports.isIpad = isIpad;
@@ -1,13 +1,10 @@
1
1
  import { getOrientation } from "../get/get-orientation.es.js";
2
2
  import { getUaData } from "../get/get-ua-data.es.js";
3
- const isIpad = (orientation = "portrait") => {
4
- if (typeof window === "undefined" || typeof navigator === "undefined") {
5
- return false;
6
- }
7
- const clientData = getUaData();
8
- if (!clientData.touchSupport) return false;
9
- return clientData.type === "laptop" && clientData.osName === "mac-os" && clientData.browserName === "safari" && getOrientation() === orientation;
10
- };
11
- export {
12
- isIpad
3
+ // src/libs/is/is-ipad.ts
4
+ var isIpad = (orientation = "portrait") => {
5
+ if (typeof window === "undefined" || typeof navigator === "undefined") return false;
6
+ const clientData = getUaData();
7
+ if (!clientData.touchSupport) return false;
8
+ return clientData.type === "laptop" && clientData.osName === "mac-os" && clientData.browserName === "safari" && getOrientation() === orientation;
13
9
  };
10
+ export { isIpad };
@@ -0,0 +1,5 @@
1
+ // src/libs/is/is-key-exists.ts
2
+ var isKeyExists = (obj, key) => {
3
+ return !!obj && Object.hasOwn(obj, key);
4
+ };
5
+ exports.isKeyExists = isKeyExists;
@@ -1,6 +1,5 @@
1
- const isKeyExists = (obj, key) => {
2
- return !!obj && Object.hasOwn(obj, key);
3
- };
4
- export {
5
- isKeyExists
1
+ // src/libs/is/is-key-exists.ts
2
+ var isKeyExists = (obj, key) => {
3
+ return !!obj && Object.hasOwn(obj, key);
6
4
  };
5
+ export { isKeyExists };
@@ -0,0 +1,6 @@
1
+ // src/libs/is/is-online.ts
2
+ var isOnline = () => {
3
+ if (typeof navigator === "undefined") return true;
4
+ return navigator.onLine;
5
+ };
6
+ exports.isOnline = isOnline;
@@ -1,9 +1,6 @@
1
- const isOnline = () => {
2
- if (typeof navigator === "undefined") {
3
- return true;
4
- }
5
- return navigator.onLine;
6
- };
7
- export {
8
- isOnline
1
+ // src/libs/is/is-online.ts
2
+ var isOnline = () => {
3
+ if (typeof navigator === "undefined") return true;
4
+ return navigator.onLine;
9
5
  };
6
+ export { isOnline };
@@ -0,0 +1,8 @@
1
+ const require_get_ua_data = require("../get/get-ua-data.cjs");
2
+ // src/libs/is/is-safari.ts
3
+ var isSafari = (includeMobileSafari = true) => {
4
+ const clientData = require_get_ua_data.getUaData();
5
+ if (includeMobileSafari) return clientData.browserName === "safari" || clientData.browserName === "mobile-safari";
6
+ return clientData.browserName === "safari";
7
+ };
8
+ exports.isSafari = isSafari;
@@ -1,11 +1,8 @@
1
1
  import { getUaData } from "../get/get-ua-data.es.js";
2
- const isSafari = (includeMobileSafari = true) => {
3
- const clientData = getUaData();
4
- if (includeMobileSafari) {
5
- return clientData.browserName === "safari" || clientData.browserName === "mobile-safari";
6
- }
7
- return clientData.browserName === "safari";
8
- };
9
- export {
10
- isSafari
2
+ // src/libs/is/is-safari.ts
3
+ var isSafari = (includeMobileSafari = true) => {
4
+ const clientData = getUaData();
5
+ if (includeMobileSafari) return clientData.browserName === "safari" || clientData.browserName === "mobile-safari";
6
+ return clientData.browserName === "safari";
11
7
  };
8
+ export { isSafari };
@@ -0,0 +1,7 @@
1
+ // src/libs/is/is-scrollable.ts
2
+ var isScrollable = (element) => {
3
+ const isScrollableX = element.scrollWidth > element.clientWidth;
4
+ const isScrollableY = element.scrollHeight > element.clientHeight;
5
+ return isScrollableX || isScrollableY;
6
+ };
7
+ exports.isScrollable = isScrollable;
@@ -1,8 +1,7 @@
1
- const isScrollable = (element) => {
2
- const isScrollableX = element.scrollWidth > element.clientWidth;
3
- const isScrollableY = element.scrollHeight > element.clientHeight;
4
- return isScrollableX || isScrollableY;
5
- };
6
- export {
7
- isScrollable
1
+ // src/libs/is/is-scrollable.ts
2
+ var isScrollable = (element) => {
3
+ const isScrollableX = element.scrollWidth > element.clientWidth;
4
+ const isScrollableY = element.scrollHeight > element.clientHeight;
5
+ return isScrollableX || isScrollableY;
8
6
  };
7
+ export { isScrollable };
@@ -0,0 +1,9 @@
1
+ // src/libs/is/is-touch-support.ts
2
+ var isTouchSupport = () => {
3
+ if (typeof window === "undefined") return false;
4
+ const hasTouchStart = "ontouchstart" in window && window.ontouchstart !== void 0;
5
+ const hasTouchPoints = typeof navigator !== "undefined" && typeof navigator.maxTouchPoints === "number" && navigator.maxTouchPoints > 0;
6
+ const hasMsTouchPoints = typeof navigator !== "undefined" && typeof navigator.msMaxTouchPoints === "number" && (navigator.msMaxTouchPoints ?? 0) > 0;
7
+ return hasTouchStart || hasTouchPoints || hasMsTouchPoints;
8
+ };
9
+ exports.isTouchSupport = isTouchSupport;
@@ -1,11 +1,9 @@
1
- const isTouchSupport = () => {
2
- if (typeof window === "undefined") return false;
3
- const hasTouchStart = "ontouchstart" in window && window.ontouchstart !== void 0;
4
- const hasTouchPoints = typeof navigator !== "undefined" && typeof navigator.maxTouchPoints === "number" && navigator.maxTouchPoints > 0;
5
- const hasMsTouchPoints = typeof navigator !== "undefined" && // We need to use type assertion since msMaxTouchPoints is not in standard Navigator type
6
- typeof navigator.msMaxTouchPoints === "number" && (navigator.msMaxTouchPoints ?? 0) > 0;
7
- return hasTouchStart || hasTouchPoints || hasMsTouchPoints;
8
- };
9
- export {
10
- isTouchSupport
1
+ // src/libs/is/is-touch-support.ts
2
+ var isTouchSupport = () => {
3
+ if (typeof window === "undefined") return false;
4
+ const hasTouchStart = "ontouchstart" in window && window.ontouchstart !== void 0;
5
+ const hasTouchPoints = typeof navigator !== "undefined" && typeof navigator.maxTouchPoints === "number" && navigator.maxTouchPoints > 0;
6
+ const hasMsTouchPoints = typeof navigator !== "undefined" && typeof navigator.msMaxTouchPoints === "number" && (navigator.msMaxTouchPoints ?? 0) > 0;
7
+ return hasTouchStart || hasTouchPoints || hasMsTouchPoints;
11
8
  };
9
+ export { isTouchSupport };
@@ -0,0 +1,20 @@
1
+ /*!
2
+ * name: umaki
3
+ * version: v0.13.2
4
+ * description: A utility that is often used in web production.
5
+ * author: TsubasaHiga
6
+ * homepage: https://github.com/TsubasaHiga/umaki
7
+ * Released under the MIT License
8
+ *
9
+ * This software includes dependencies licensed under MIT, ISC, BSD-3-Clause, and Apache-2.0.
10
+ * For license information, please see LICENSE.txt
11
+ */
12
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
13
+ const require_remove_all_html_tags = require("./remove-all-html-tags.cjs");
14
+ const require_remove_attribute = require("./remove-attribute.cjs");
15
+ const require_remove_session_storage = require("./remove-session-storage.cjs");
16
+ const require_remove_style_property_value = require("./remove-style-property-value.cjs");
17
+ exports.removeAllHtmlTags = require_remove_all_html_tags.removeAllHtmlTags;
18
+ exports.removeAttribute = require_remove_attribute.removeAttribute;
19
+ exports.removeSessionStorage = require_remove_session_storage.removeSessionStorage;
20
+ exports.removeStylePropertyValue = require_remove_style_property_value.removeStylePropertyValue;
@@ -1,10 +1,16 @@
1
+ /*!
2
+ * name: umaki
3
+ * version: v0.13.2
4
+ * description: A utility that is often used in web production.
5
+ * author: TsubasaHiga
6
+ * homepage: https://github.com/TsubasaHiga/umaki
7
+ * Released under the MIT License
8
+ *
9
+ * This software includes dependencies licensed under MIT, ISC, BSD-3-Clause, and Apache-2.0.
10
+ * For license information, please see LICENSE.txt
11
+ */
1
12
  import { removeAllHtmlTags } from "./remove-all-html-tags.es.js";
2
13
  import { removeAttribute } from "./remove-attribute.es.js";
3
14
  import { removeSessionStorage } from "./remove-session-storage.es.js";
4
15
  import { removeStylePropertyValue } from "./remove-style-property-value.es.js";
5
- export {
6
- removeAllHtmlTags,
7
- removeAttribute,
8
- removeSessionStorage,
9
- removeStylePropertyValue
10
- };
16
+ export { removeAllHtmlTags, removeAttribute, removeSessionStorage, removeStylePropertyValue };
@@ -0,0 +1,12 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let isomorphic_dompurify = require("isomorphic-dompurify");
3
+ isomorphic_dompurify = require_runtime.__toESM(isomorphic_dompurify, 1);
4
+ // src/libs/remove/remove-all-html-tags.ts
5
+ var removeAllHtmlTags = (string) => {
6
+ return isomorphic_dompurify.default.sanitize(string, {
7
+ ALLOWED_TAGS: [],
8
+ KEEP_CONTENT: true,
9
+ USE_PROFILES: { html: false }
10
+ }).replace(/<\/?[^>]+(>|$)/g, "");
11
+ };
12
+ exports.removeAllHtmlTags = removeAllHtmlTags;
@@ -1,7 +1,13 @@
1
1
  /**
2
2
  * Removes all HTML tags from the given string.
3
3
  *
4
+ * The result is an HTML string, not plain text: when the input contains `<`,
5
+ * special characters are escaped (e.g. `&` becomes `&amp;`); otherwise the input is returned as is.
6
+ * It is safe to insert as HTML (e.g. `innerHTML`), but entities may appear when assigned to `textContent`.
7
+ * Do not decode the result and then insert it as HTML.
8
+ * To keep safe markup instead of removing it, use `sanitizeHtml`.
9
+ *
4
10
  * @param string - The input string from which HTML tags should be removed.
5
- * @returns The sanitized string with all HTML tags removed.
11
+ * @returns The HTML string with all HTML tags removed.
6
12
  */
7
13
  export declare const removeAllHtmlTags: (string: string) => string;
@@ -1,12 +1,10 @@
1
1
  import DOMPurify from "isomorphic-dompurify";
2
- const removeAllHtmlTags = (string) => {
3
- const sanitizeString = DOMPurify.sanitize(string, {
4
- ALLOWED_TAGS: [],
5
- KEEP_CONTENT: true,
6
- USE_PROFILES: { html: false }
7
- });
8
- return sanitizeString.replace(/<\/?[^>]+(>|$)/g, "");
9
- };
10
- export {
11
- removeAllHtmlTags
2
+ // src/libs/remove/remove-all-html-tags.ts
3
+ var removeAllHtmlTags = (string) => {
4
+ return DOMPurify.sanitize(string, {
5
+ ALLOWED_TAGS: [],
6
+ KEEP_CONTENT: true,
7
+ USE_PROFILES: { html: false }
8
+ }).replace(/<\/?[^>]+(>|$)/g, "");
12
9
  };
10
+ export { removeAllHtmlTags };
@@ -0,0 +1,5 @@
1
+ // src/libs/remove/remove-attribute.ts
2
+ var removeAttribute = (element, attribute) => {
3
+ element.removeAttribute(attribute);
4
+ };
5
+ exports.removeAttribute = removeAttribute;
@@ -1,6 +1,5 @@
1
- const removeAttribute = (element, attribute) => {
2
- element.removeAttribute(attribute);
3
- };
4
- export {
5
- removeAttribute
1
+ // src/libs/remove/remove-attribute.ts
2
+ var removeAttribute = (element, attribute) => {
3
+ element.removeAttribute(attribute);
6
4
  };
5
+ export { removeAttribute };
@@ -0,0 +1,8 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let store2 = require("store2");
3
+ store2 = require_runtime.__toESM(store2, 1);
4
+ // src/libs/remove/remove-session-storage.ts
5
+ var removeSessionStorage = (key) => {
6
+ store2.default.session.remove(key);
7
+ };
8
+ exports.removeSessionStorage = removeSessionStorage;
@@ -1,7 +1,6 @@
1
1
  import store from "store2";
2
- const removeSessionStorage = (key) => {
3
- store.session.remove(key);
4
- };
5
- export {
6
- removeSessionStorage
2
+ // src/libs/remove/remove-session-storage.ts
3
+ var removeSessionStorage = (key) => {
4
+ store.session.remove(key);
7
5
  };
6
+ export { removeSessionStorage };
@@ -0,0 +1,6 @@
1
+ // src/libs/remove/remove-style-property-value.ts
2
+ var removeStylePropertyValue = (key) => {
3
+ if (typeof window === "undefined") return;
4
+ document.documentElement.style.removeProperty(key);
5
+ };
6
+ exports.removeStylePropertyValue = removeStylePropertyValue;
@@ -2,5 +2,6 @@
2
2
  * Removes a CSS custom property from the root element.
3
3
  *
4
4
  * @param key - The name of the CSS custom property to remove.
5
+ * Does nothing in SSR environments where window is undefined.
5
6
  */
6
7
  export declare const removeStylePropertyValue: (key: string) => void;
@@ -1,6 +1,6 @@
1
- const removeStylePropertyValue = (key) => {
2
- document.documentElement.style.removeProperty(key);
3
- };
4
- export {
5
- removeStylePropertyValue
1
+ // src/libs/remove/remove-style-property-value.ts
2
+ var removeStylePropertyValue = (key) => {
3
+ if (typeof window === "undefined") return;
4
+ document.documentElement.style.removeProperty(key);
6
5
  };
6
+ export { removeStylePropertyValue };
@@ -0,0 +1,19 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let isomorphic_dompurify = require("isomorphic-dompurify");
3
+ isomorphic_dompurify = require_runtime.__toESM(isomorphic_dompurify, 1);
4
+ // src/libs/security/html-sanitize.ts
5
+ var STRING_OUTPUT_CONFIG = {
6
+ RETURN_DOM: false,
7
+ RETURN_DOM_FRAGMENT: false,
8
+ RETURN_TRUSTED_TYPE: false,
9
+ IN_PLACE: false
10
+ };
11
+ var htmlSanitize = (html, config = {}) => {
12
+ return isomorphic_dompurify.default.sanitize(html, {
13
+ ...config,
14
+ ...STRING_OUTPUT_CONFIG
15
+ });
16
+ };
17
+ var sanitizeHtml = htmlSanitize;
18
+ exports.htmlSanitize = htmlSanitize;
19
+ exports.sanitizeHtml = sanitizeHtml;
@@ -2,6 +2,14 @@ import { default as DOMPurify } from 'isomorphic-dompurify';
2
2
  /**
3
3
  * Sanitizes the given HTML string to prevent XSS attacks.
4
4
  *
5
+ * The result is safe to insert as HTML element content (e.g. `innerHTML`).
6
+ * It is NOT safe for other contexts such as attribute values, URLs, `<script>` or CSS.
7
+ *
8
+ * Options that weaken the default protection (e.g. `ALLOWED_URI_REGEXP`, `ADD_TAGS`,
9
+ * `ALLOW_UNKNOWN_PROTOCOLS`, `SAFE_FOR_TEMPLATES: false`) are passed through to DOMPurify as is.
10
+ * `RETURN_DOM`, `RETURN_DOM_FRAGMENT`, `RETURN_TRUSTED_TYPE` and `IN_PLACE` are ignored,
11
+ * so the return value is always a string.
12
+ *
5
13
  * @param html - The HTML string to sanitize.
6
14
  * @param config - Optional configuration for DOMPurify.
7
15
  * @returns The sanitized HTML string.
@@ -1,9 +1,16 @@
1
1
  import DOMPurify from "isomorphic-dompurify";
2
- const htmlSanitize = (html, config = {}) => {
3
- return DOMPurify.sanitize(html, config);
2
+ // src/libs/security/html-sanitize.ts
3
+ var STRING_OUTPUT_CONFIG = {
4
+ RETURN_DOM: false,
5
+ RETURN_DOM_FRAGMENT: false,
6
+ RETURN_TRUSTED_TYPE: false,
7
+ IN_PLACE: false
4
8
  };
5
- const sanitizeHtml = htmlSanitize;
6
- export {
7
- htmlSanitize,
8
- sanitizeHtml
9
+ var htmlSanitize = (html, config = {}) => {
10
+ return DOMPurify.sanitize(html, {
11
+ ...config,
12
+ ...STRING_OUTPUT_CONFIG
13
+ });
9
14
  };
15
+ var sanitizeHtml = htmlSanitize;
16
+ export { htmlSanitize, sanitizeHtml };
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * name: umaki
3
+ * version: v0.13.2
4
+ * description: A utility that is often used in web production.
5
+ * author: TsubasaHiga
6
+ * homepage: https://github.com/TsubasaHiga/umaki
7
+ * Released under the MIT License
8
+ *
9
+ * This software includes dependencies licensed under MIT, ISC, BSD-3-Clause, and Apache-2.0.
10
+ * For license information, please see LICENSE.txt
11
+ */
12
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
13
+ const require_html_sanitize = require("./html-sanitize.cjs");
14
+ exports.htmlSanitize = require_html_sanitize.htmlSanitize;
15
+ exports.sanitizeHtml = require_html_sanitize.sanitizeHtml;
@@ -1,5 +1,12 @@
1
- import { htmlSanitize, sanitizeHtml } from "./html-sanitize.es.js";
2
- export {
3
- htmlSanitize,
4
- sanitizeHtml
5
- };
1
+ /*!
2
+ * name: umaki
3
+ * version: v0.13.2
4
+ * description: A utility that is often used in web production.
5
+ * author: TsubasaHiga
6
+ * homepage: https://github.com/TsubasaHiga/umaki
7
+ * Released under the MIT License
8
+ *
9
+ * This software includes dependencies licensed under MIT, ISC, BSD-3-Clause, and Apache-2.0.
10
+ * For license information, please see LICENSE.txt
11
+ */
12
+ export { htmlSanitize, sanitizeHtml } from "./html-sanitize.es.js";