@milaboratories/uikit 2.11.6 → 2.11.7

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 (1115) hide show
  1. package/.turbo/turbo-build.log +636 -636
  2. package/.turbo/turbo-formatter$colon$check.log +2 -2
  3. package/.turbo/turbo-linter$colon$check.log +2 -2
  4. package/.turbo/turbo-types$colon$check.log +1 -1
  5. package/CHANGELOG.md +8 -0
  6. package/build.browser-lib.config.js +1 -1
  7. package/dist/_virtual/_plugin-vue_export-helper.js +2 -0
  8. package/dist/_virtual/_rolldown/runtime.js +2 -0
  9. package/dist/_virtual/_rolldown_dynamic_import_helper.js +2 -0
  10. package/dist/assets/icons/icon-assets-min/16_add.js +2 -0
  11. package/dist/assets/icons/icon-assets-min/16_add.js.map +1 -1
  12. package/dist/assets/icons/icon-assets-min/16_arrow-down.js +2 -0
  13. package/dist/assets/icons/icon-assets-min/16_arrow-down.js.map +1 -1
  14. package/dist/assets/icons/icon-assets-min/16_arrow-left.js +2 -0
  15. package/dist/assets/icons/icon-assets-min/16_arrow-left.js.map +1 -1
  16. package/dist/assets/icons/icon-assets-min/16_arrow-link.js +2 -0
  17. package/dist/assets/icons/icon-assets-min/16_arrow-link.js.map +1 -1
  18. package/dist/assets/icons/icon-assets-min/16_arrow-right.js +2 -0
  19. package/dist/assets/icons/icon-assets-min/16_arrow-right.js.map +1 -1
  20. package/dist/assets/icons/icon-assets-min/16_arrow-up.js +2 -0
  21. package/dist/assets/icons/icon-assets-min/16_arrow-up.js.map +1 -1
  22. package/dist/assets/icons/icon-assets-min/16_box.js +2 -0
  23. package/dist/assets/icons/icon-assets-min/16_box.js.map +1 -1
  24. package/dist/assets/icons/icon-assets-min/16_calendar.js +2 -0
  25. package/dist/assets/icons/icon-assets-min/16_calendar.js.map +1 -1
  26. package/dist/assets/icons/icon-assets-min/16_caret-down.js +2 -0
  27. package/dist/assets/icons/icon-assets-min/16_caret-down.js.map +1 -1
  28. package/dist/assets/icons/icon-assets-min/16_caret-left.js +2 -0
  29. package/dist/assets/icons/icon-assets-min/16_caret-left.js.map +1 -1
  30. package/dist/assets/icons/icon-assets-min/16_caret-right.js +2 -0
  31. package/dist/assets/icons/icon-assets-min/16_caret-right.js.map +1 -1
  32. package/dist/assets/icons/icon-assets-min/16_caret-up.js +2 -0
  33. package/dist/assets/icons/icon-assets-min/16_caret-up.js.map +1 -1
  34. package/dist/assets/icons/icon-assets-min/16_cell-type-num.js +2 -0
  35. package/dist/assets/icons/icon-assets-min/16_cell-type-num.js.map +1 -1
  36. package/dist/assets/icons/icon-assets-min/16_cell-type-subset.js +2 -0
  37. package/dist/assets/icons/icon-assets-min/16_cell-type-subset.js.map +1 -1
  38. package/dist/assets/icons/icon-assets-min/16_cell-type-txt.js +2 -0
  39. package/dist/assets/icons/icon-assets-min/16_cell-type-txt.js.map +1 -1
  40. package/dist/assets/icons/icon-assets-min/16_checkmark.js +2 -0
  41. package/dist/assets/icons/icon-assets-min/16_checkmark.js.map +1 -1
  42. package/dist/assets/icons/icon-assets-min/16_chevron-down.js +2 -0
  43. package/dist/assets/icons/icon-assets-min/16_chevron-down.js.map +1 -1
  44. package/dist/assets/icons/icon-assets-min/16_chevron-first.js +2 -0
  45. package/dist/assets/icons/icon-assets-min/16_chevron-first.js.map +1 -1
  46. package/dist/assets/icons/icon-assets-min/16_chevron-last.js +2 -0
  47. package/dist/assets/icons/icon-assets-min/16_chevron-last.js.map +1 -1
  48. package/dist/assets/icons/icon-assets-min/16_chevron-left.js +2 -0
  49. package/dist/assets/icons/icon-assets-min/16_chevron-left.js.map +1 -1
  50. package/dist/assets/icons/icon-assets-min/16_chevron-right.js +2 -0
  51. package/dist/assets/icons/icon-assets-min/16_chevron-right.js.map +1 -1
  52. package/dist/assets/icons/icon-assets-min/16_chevron-up.js +2 -0
  53. package/dist/assets/icons/icon-assets-min/16_chevron-up.js.map +1 -1
  54. package/dist/assets/icons/icon-assets-min/16_clear.js +2 -0
  55. package/dist/assets/icons/icon-assets-min/16_clear.js.map +1 -1
  56. package/dist/assets/icons/icon-assets-min/16_clipboard-copied.js +2 -0
  57. package/dist/assets/icons/icon-assets-min/16_clipboard-copied.js.map +1 -1
  58. package/dist/assets/icons/icon-assets-min/16_clipboard.js +2 -0
  59. package/dist/assets/icons/icon-assets-min/16_clipboard.js.map +1 -1
  60. package/dist/assets/icons/icon-assets-min/16_close.js +2 -0
  61. package/dist/assets/icons/icon-assets-min/16_close.js.map +1 -1
  62. package/dist/assets/icons/icon-assets-min/16_compare.js +2 -0
  63. package/dist/assets/icons/icon-assets-min/16_compare.js.map +1 -1
  64. package/dist/assets/icons/icon-assets-min/16_copy.js +2 -0
  65. package/dist/assets/icons/icon-assets-min/16_copy.js.map +1 -1
  66. package/dist/assets/icons/icon-assets-min/16_data-dimentions.js +2 -0
  67. package/dist/assets/icons/icon-assets-min/16_data-dimentions.js.map +1 -1
  68. package/dist/assets/icons/icon-assets-min/16_delete-bin.js +2 -0
  69. package/dist/assets/icons/icon-assets-min/16_delete-bin.js.map +1 -1
  70. package/dist/assets/icons/icon-assets-min/16_delete-circle.js +2 -0
  71. package/dist/assets/icons/icon-assets-min/16_delete-circle.js.map +1 -1
  72. package/dist/assets/icons/icon-assets-min/16_delete-clear.js +2 -0
  73. package/dist/assets/icons/icon-assets-min/16_delete-clear.js.map +1 -1
  74. package/dist/assets/icons/icon-assets-min/16_download.js +2 -0
  75. package/dist/assets/icons/icon-assets-min/16_download.js.map +1 -1
  76. package/dist/assets/icons/icon-assets-min/16_drag-dots.js +2 -0
  77. package/dist/assets/icons/icon-assets-min/16_drag-dots.js.map +1 -1
  78. package/dist/assets/icons/icon-assets-min/16_duplicate.js +2 -0
  79. package/dist/assets/icons/icon-assets-min/16_duplicate.js.map +1 -1
  80. package/dist/assets/icons/icon-assets-min/16_edit.js +2 -0
  81. package/dist/assets/icons/icon-assets-min/16_edit.js.map +1 -1
  82. package/dist/assets/icons/icon-assets-min/16_error.js +2 -0
  83. package/dist/assets/icons/icon-assets-min/16_error.js.map +1 -1
  84. package/dist/assets/icons/icon-assets-min/16_export.js +2 -0
  85. package/dist/assets/icons/icon-assets-min/16_export.js.map +1 -1
  86. package/dist/assets/icons/icon-assets-min/16_filter-on.js +2 -0
  87. package/dist/assets/icons/icon-assets-min/16_filter-on.js.map +1 -1
  88. package/dist/assets/icons/icon-assets-min/16_filter.js +2 -0
  89. package/dist/assets/icons/icon-assets-min/16_filter.js.map +1 -1
  90. package/dist/assets/icons/icon-assets-min/16_help-outline.js +2 -0
  91. package/dist/assets/icons/icon-assets-min/16_help-outline.js.map +1 -1
  92. package/dist/assets/icons/icon-assets-min/16_help.js +2 -0
  93. package/dist/assets/icons/icon-assets-min/16_help.js.map +1 -1
  94. package/dist/assets/icons/icon-assets-min/16_import.js +2 -0
  95. package/dist/assets/icons/icon-assets-min/16_import.js.map +1 -1
  96. package/dist/assets/icons/icon-assets-min/16_info-outline.js +2 -0
  97. package/dist/assets/icons/icon-assets-min/16_info-outline.js.map +1 -1
  98. package/dist/assets/icons/icon-assets-min/16_info.js +2 -0
  99. package/dist/assets/icons/icon-assets-min/16_info.js.map +1 -1
  100. package/dist/assets/icons/icon-assets-min/16_jump-link.js +2 -0
  101. package/dist/assets/icons/icon-assets-min/16_jump-link.js.map +1 -1
  102. package/dist/assets/icons/icon-assets-min/16_link-arrow.js +2 -0
  103. package/dist/assets/icons/icon-assets-min/16_link-arrow.js.map +1 -1
  104. package/dist/assets/icons/icon-assets-min/16_link.js +2 -0
  105. package/dist/assets/icons/icon-assets-min/16_link.js.map +1 -1
  106. package/dist/assets/icons/icon-assets-min/16_loading.js +2 -0
  107. package/dist/assets/icons/icon-assets-min/16_loading.js.map +1 -1
  108. package/dist/assets/icons/icon-assets-min/16_lock.js +2 -0
  109. package/dist/assets/icons/icon-assets-min/16_lock.js.map +1 -1
  110. package/dist/assets/icons/icon-assets-min/16_maximize.js +2 -0
  111. package/dist/assets/icons/icon-assets-min/16_maximize.js.map +1 -1
  112. package/dist/assets/icons/icon-assets-min/16_minimize.js +2 -0
  113. package/dist/assets/icons/icon-assets-min/16_minimize.js.map +1 -1
  114. package/dist/assets/icons/icon-assets-min/16_minus.js +2 -0
  115. package/dist/assets/icons/icon-assets-min/16_minus.js.map +1 -1
  116. package/dist/assets/icons/icon-assets-min/16_more.js +2 -0
  117. package/dist/assets/icons/icon-assets-min/16_more.js.map +1 -1
  118. package/dist/assets/icons/icon-assets-min/16_open.js +2 -0
  119. package/dist/assets/icons/icon-assets-min/16_open.js.map +1 -1
  120. package/dist/assets/icons/icon-assets-min/16_paper-clip.js +2 -0
  121. package/dist/assets/icons/icon-assets-min/16_paper-clip.js.map +1 -1
  122. package/dist/assets/icons/icon-assets-min/16_pause.js +2 -0
  123. package/dist/assets/icons/icon-assets-min/16_pause.js.map +1 -1
  124. package/dist/assets/icons/icon-assets-min/16_play.js +2 -0
  125. package/dist/assets/icons/icon-assets-min/16_play.js.map +1 -1
  126. package/dist/assets/icons/icon-assets-min/16_progress.js +2 -0
  127. package/dist/assets/icons/icon-assets-min/16_progress.js.map +1 -1
  128. package/dist/assets/icons/icon-assets-min/16_renew.js +2 -0
  129. package/dist/assets/icons/icon-assets-min/16_renew.js.map +1 -1
  130. package/dist/assets/icons/icon-assets-min/16_required.js +2 -0
  131. package/dist/assets/icons/icon-assets-min/16_required.js.map +1 -1
  132. package/dist/assets/icons/icon-assets-min/16_restart.js +2 -0
  133. package/dist/assets/icons/icon-assets-min/16_restart.js.map +1 -1
  134. package/dist/assets/icons/icon-assets-min/16_reverse.js +2 -0
  135. package/dist/assets/icons/icon-assets-min/16_reverse.js.map +1 -1
  136. package/dist/assets/icons/icon-assets-min/16_settings.js +2 -0
  137. package/dist/assets/icons/icon-assets-min/16_settings.js.map +1 -1
  138. package/dist/assets/icons/icon-assets-min/16_sort.js +2 -0
  139. package/dist/assets/icons/icon-assets-min/16_sort.js.map +1 -1
  140. package/dist/assets/icons/icon-assets-min/16_sorter.js +2 -0
  141. package/dist/assets/icons/icon-assets-min/16_sorter.js.map +1 -1
  142. package/dist/assets/icons/icon-assets-min/16_stop.js +2 -0
  143. package/dist/assets/icons/icon-assets-min/16_stop.js.map +1 -1
  144. package/dist/assets/icons/icon-assets-min/16_success.js +2 -0
  145. package/dist/assets/icons/icon-assets-min/16_success.js.map +1 -1
  146. package/dist/assets/icons/icon-assets-min/16_time.js +2 -0
  147. package/dist/assets/icons/icon-assets-min/16_time.js.map +1 -1
  148. package/dist/assets/icons/icon-assets-min/16_tune.js +2 -0
  149. package/dist/assets/icons/icon-assets-min/16_tune.js.map +1 -1
  150. package/dist/assets/icons/icon-assets-min/16_warning.js +2 -0
  151. package/dist/assets/icons/icon-assets-min/16_warning.js.map +1 -1
  152. package/dist/assets/icons/icon-assets-min/16_x-axis.js +2 -0
  153. package/dist/assets/icons/icon-assets-min/16_x-axis.js.map +1 -1
  154. package/dist/assets/icons/icon-assets-min/16_y-axis.js +2 -0
  155. package/dist/assets/icons/icon-assets-min/16_y-axis.js.map +1 -1
  156. package/dist/assets/icons/icon-assets-min/16_zip.js +2 -0
  157. package/dist/assets/icons/icon-assets-min/16_zip.js.map +1 -1
  158. package/dist/assets/icons/icon-assets-min/24_add-layer.js +2 -0
  159. package/dist/assets/icons/icon-assets-min/24_add-layer.js.map +1 -1
  160. package/dist/assets/icons/icon-assets-min/24_add.js +2 -0
  161. package/dist/assets/icons/icon-assets-min/24_add.js.map +1 -1
  162. package/dist/assets/icons/icon-assets-min/24_align-center.js +2 -0
  163. package/dist/assets/icons/icon-assets-min/24_align-center.js.map +1 -1
  164. package/dist/assets/icons/icon-assets-min/24_align-left.js +2 -0
  165. package/dist/assets/icons/icon-assets-min/24_align-left.js.map +1 -1
  166. package/dist/assets/icons/icon-assets-min/24_align-right.js +2 -0
  167. package/dist/assets/icons/icon-assets-min/24_align-right.js.map +1 -1
  168. package/dist/assets/icons/icon-assets-min/24_analytics-accent.js +2 -0
  169. package/dist/assets/icons/icon-assets-min/24_analytics-accent.js.map +1 -1
  170. package/dist/assets/icons/icon-assets-min/24_analytics.js +2 -0
  171. package/dist/assets/icons/icon-assets-min/24_analytics.js.map +1 -1
  172. package/dist/assets/icons/icon-assets-min/24_annotate.js +2 -0
  173. package/dist/assets/icons/icon-assets-min/24_annotate.js.map +1 -1
  174. package/dist/assets/icons/icon-assets-min/24_annotation.js +2 -0
  175. package/dist/assets/icons/icon-assets-min/24_annotation.js.map +1 -1
  176. package/dist/assets/icons/icon-assets-min/24_area.js +2 -0
  177. package/dist/assets/icons/icon-assets-min/24_area.js.map +1 -1
  178. package/dist/assets/icons/icon-assets-min/24_arrow-down.js +2 -0
  179. package/dist/assets/icons/icon-assets-min/24_arrow-down.js.map +1 -1
  180. package/dist/assets/icons/icon-assets-min/24_arrow-left-curved.js +2 -0
  181. package/dist/assets/icons/icon-assets-min/24_arrow-left-curved.js.map +1 -1
  182. package/dist/assets/icons/icon-assets-min/24_arrow-left.js +2 -0
  183. package/dist/assets/icons/icon-assets-min/24_arrow-left.js.map +1 -1
  184. package/dist/assets/icons/icon-assets-min/24_arrow-link.js +2 -0
  185. package/dist/assets/icons/icon-assets-min/24_arrow-link.js.map +1 -1
  186. package/dist/assets/icons/icon-assets-min/24_arrow-right.js +2 -0
  187. package/dist/assets/icons/icon-assets-min/24_arrow-right.js.map +1 -1
  188. package/dist/assets/icons/icon-assets-min/24_arrow-up.js +2 -0
  189. package/dist/assets/icons/icon-assets-min/24_arrow-up.js.map +1 -1
  190. package/dist/assets/icons/icon-assets-min/24_axes.js +2 -0
  191. package/dist/assets/icons/icon-assets-min/24_axes.js.map +1 -1
  192. package/dist/assets/icons/icon-assets-min/24_bar-cross.js +2 -0
  193. package/dist/assets/icons/icon-assets-min/24_bar-cross.js.map +1 -1
  194. package/dist/assets/icons/icon-assets-min/24_bar-error.js +2 -0
  195. package/dist/assets/icons/icon-assets-min/24_bar-error.js.map +1 -1
  196. package/dist/assets/icons/icon-assets-min/24_bar-stacked.js +2 -0
  197. package/dist/assets/icons/icon-assets-min/24_bar-stacked.js.map +1 -1
  198. package/dist/assets/icons/icon-assets-min/24_bar-trend.js +2 -0
  199. package/dist/assets/icons/icon-assets-min/24_bar-trend.js.map +1 -1
  200. package/dist/assets/icons/icon-assets-min/24_bar.js +2 -0
  201. package/dist/assets/icons/icon-assets-min/24_bar.js.map +1 -1
  202. package/dist/assets/icons/icon-assets-min/24_bindot.js +2 -0
  203. package/dist/assets/icons/icon-assets-min/24_bindot.js.map +1 -1
  204. package/dist/assets/icons/icon-assets-min/24_box.js +2 -0
  205. package/dist/assets/icons/icon-assets-min/24_box.js.map +1 -1
  206. package/dist/assets/icons/icon-assets-min/24_boxplot-binned.js +2 -0
  207. package/dist/assets/icons/icon-assets-min/24_boxplot-binned.js.map +1 -1
  208. package/dist/assets/icons/icon-assets-min/24_boxplot-jitter.js +2 -0
  209. package/dist/assets/icons/icon-assets-min/24_boxplot-jitter.js.map +1 -1
  210. package/dist/assets/icons/icon-assets-min/24_boxplot-notched.js +2 -0
  211. package/dist/assets/icons/icon-assets-min/24_boxplot-notched.js.map +1 -1
  212. package/dist/assets/icons/icon-assets-min/24_boxplot.js +2 -0
  213. package/dist/assets/icons/icon-assets-min/24_boxplot.js.map +1 -1
  214. package/dist/assets/icons/icon-assets-min/24_bubble.js +2 -0
  215. package/dist/assets/icons/icon-assets-min/24_bubble.js.map +1 -1
  216. package/dist/assets/icons/icon-assets-min/24_calendar.js +2 -0
  217. package/dist/assets/icons/icon-assets-min/24_calendar.js.map +1 -1
  218. package/dist/assets/icons/icon-assets-min/24_canvas.js +2 -0
  219. package/dist/assets/icons/icon-assets-min/24_canvas.js.map +1 -1
  220. package/dist/assets/icons/icon-assets-min/24_cell-type-num.js +2 -0
  221. package/dist/assets/icons/icon-assets-min/24_cell-type-num.js.map +1 -1
  222. package/dist/assets/icons/icon-assets-min/24_cell-type-subset.js +2 -0
  223. package/dist/assets/icons/icon-assets-min/24_cell-type-subset.js.map +1 -1
  224. package/dist/assets/icons/icon-assets-min/24_cell-type-txt.js +2 -0
  225. package/dist/assets/icons/icon-assets-min/24_cell-type-txt.js.map +1 -1
  226. package/dist/assets/icons/icon-assets-min/24_checkbox-checked.js +2 -0
  227. package/dist/assets/icons/icon-assets-min/24_checkbox-checked.js.map +1 -1
  228. package/dist/assets/icons/icon-assets-min/24_checkbox-intermediate.js +2 -0
  229. package/dist/assets/icons/icon-assets-min/24_checkbox-intermediate.js.map +1 -1
  230. package/dist/assets/icons/icon-assets-min/24_checkbox.js +2 -0
  231. package/dist/assets/icons/icon-assets-min/24_checkbox.js.map +1 -1
  232. package/dist/assets/icons/icon-assets-min/24_checkmark.js +2 -0
  233. package/dist/assets/icons/icon-assets-min/24_checkmark.js.map +1 -1
  234. package/dist/assets/icons/icon-assets-min/24_chevron-down.js +2 -0
  235. package/dist/assets/icons/icon-assets-min/24_chevron-down.js.map +1 -1
  236. package/dist/assets/icons/icon-assets-min/24_chevron-first.js +2 -0
  237. package/dist/assets/icons/icon-assets-min/24_chevron-first.js.map +1 -1
  238. package/dist/assets/icons/icon-assets-min/24_chevron-last.js +2 -0
  239. package/dist/assets/icons/icon-assets-min/24_chevron-last.js.map +1 -1
  240. package/dist/assets/icons/icon-assets-min/24_chevron-left.js +2 -0
  241. package/dist/assets/icons/icon-assets-min/24_chevron-left.js.map +1 -1
  242. package/dist/assets/icons/icon-assets-min/24_chevron-right.js +2 -0
  243. package/dist/assets/icons/icon-assets-min/24_chevron-right.js.map +1 -1
  244. package/dist/assets/icons/icon-assets-min/24_chevron-sort.js +2 -0
  245. package/dist/assets/icons/icon-assets-min/24_chevron-sort.js.map +1 -1
  246. package/dist/assets/icons/icon-assets-min/24_chevron-up.js +2 -0
  247. package/dist/assets/icons/icon-assets-min/24_chevron-up.js.map +1 -1
  248. package/dist/assets/icons/icon-assets-min/24_clipboard-copied.js +2 -0
  249. package/dist/assets/icons/icon-assets-min/24_clipboard-copied.js.map +1 -1
  250. package/dist/assets/icons/icon-assets-min/24_clipboard.js +2 -0
  251. package/dist/assets/icons/icon-assets-min/24_clipboard.js.map +1 -1
  252. package/dist/assets/icons/icon-assets-min/24_close.js +2 -0
  253. package/dist/assets/icons/icon-assets-min/24_close.js.map +1 -1
  254. package/dist/assets/icons/icon-assets-min/24_cloud-download.js +2 -0
  255. package/dist/assets/icons/icon-assets-min/24_cloud-download.js.map +1 -1
  256. package/dist/assets/icons/icon-assets-min/24_cloud-offline.js +2 -0
  257. package/dist/assets/icons/icon-assets-min/24_cloud-offline.js.map +1 -1
  258. package/dist/assets/icons/icon-assets-min/24_cloud-online.js +2 -0
  259. package/dist/assets/icons/icon-assets-min/24_cloud-online.js.map +1 -1
  260. package/dist/assets/icons/icon-assets-min/24_cloud-upload.js +2 -0
  261. package/dist/assets/icons/icon-assets-min/24_cloud-upload.js.map +1 -1
  262. package/dist/assets/icons/icon-assets-min/24_cluster.js +2 -0
  263. package/dist/assets/icons/icon-assets-min/24_cluster.js.map +1 -1
  264. package/dist/assets/icons/icon-assets-min/24_code.js +2 -0
  265. package/dist/assets/icons/icon-assets-min/24_code.js.map +1 -1
  266. package/dist/assets/icons/icon-assets-min/24_color-fill.js +2 -0
  267. package/dist/assets/icons/icon-assets-min/24_color-fill.js.map +1 -1
  268. package/dist/assets/icons/icon-assets-min/24_color-none.js +2 -0
  269. package/dist/assets/icons/icon-assets-min/24_color-none.js.map +1 -1
  270. package/dist/assets/icons/icon-assets-min/24_color-stroke.js +2 -0
  271. package/dist/assets/icons/icon-assets-min/24_color-stroke.js.map +1 -1
  272. package/dist/assets/icons/icon-assets-min/24_color.js +2 -0
  273. package/dist/assets/icons/icon-assets-min/24_color.js.map +1 -1
  274. package/dist/assets/icons/icon-assets-min/24_columns.js +2 -0
  275. package/dist/assets/icons/icon-assets-min/24_columns.js.map +1 -1
  276. package/dist/assets/icons/icon-assets-min/24_connected-points.js +2 -0
  277. package/dist/assets/icons/icon-assets-min/24_connected-points.js.map +1 -1
  278. package/dist/assets/icons/icon-assets-min/24_container.js +2 -0
  279. package/dist/assets/icons/icon-assets-min/24_container.js.map +1 -1
  280. package/dist/assets/icons/icon-assets-min/24_cookie.js +2 -0
  281. package/dist/assets/icons/icon-assets-min/24_cookie.js.map +1 -1
  282. package/dist/assets/icons/icon-assets-min/24_copy.js +2 -0
  283. package/dist/assets/icons/icon-assets-min/24_copy.js.map +1 -1
  284. package/dist/assets/icons/icon-assets-min/24_cpu.js +2 -0
  285. package/dist/assets/icons/icon-assets-min/24_cpu.js.map +1 -1
  286. package/dist/assets/icons/icon-assets-min/24_cursor-pointer.js +2 -0
  287. package/dist/assets/icons/icon-assets-min/24_cursor-pointer.js.map +1 -1
  288. package/dist/assets/icons/icon-assets-min/24_data-dimentions.js +2 -0
  289. package/dist/assets/icons/icon-assets-min/24_data-dimentions.js.map +1 -1
  290. package/dist/assets/icons/icon-assets-min/24_debug.js +2 -0
  291. package/dist/assets/icons/icon-assets-min/24_debug.js.map +1 -1
  292. package/dist/assets/icons/icon-assets-min/24_delete-bin.js +2 -0
  293. package/dist/assets/icons/icon-assets-min/24_delete-bin.js.map +1 -1
  294. package/dist/assets/icons/icon-assets-min/24_delete-circle.js +2 -0
  295. package/dist/assets/icons/icon-assets-min/24_delete-circle.js.map +1 -1
  296. package/dist/assets/icons/icon-assets-min/24_delete-clear.js +2 -0
  297. package/dist/assets/icons/icon-assets-min/24_delete-clear.js.map +1 -1
  298. package/dist/assets/icons/icon-assets-min/24_dendrogram-X-line.js +2 -0
  299. package/dist/assets/icons/icon-assets-min/24_dendrogram-X-line.js.map +1 -1
  300. package/dist/assets/icons/icon-assets-min/24_dendrogram-X.js +2 -0
  301. package/dist/assets/icons/icon-assets-min/24_dendrogram-X.js.map +1 -1
  302. package/dist/assets/icons/icon-assets-min/24_dendrogram-Y-line.js +2 -0
  303. package/dist/assets/icons/icon-assets-min/24_dendrogram-Y-line.js.map +1 -1
  304. package/dist/assets/icons/icon-assets-min/24_dendrogram-Y.js +2 -0
  305. package/dist/assets/icons/icon-assets-min/24_dendrogram-Y.js.map +1 -1
  306. package/dist/assets/icons/icon-assets-min/24_dna-add.js +2 -0
  307. package/dist/assets/icons/icon-assets-min/24_dna-add.js.map +1 -1
  308. package/dist/assets/icons/icon-assets-min/24_dna-import.js +2 -0
  309. package/dist/assets/icons/icon-assets-min/24_dna-import.js.map +1 -1
  310. package/dist/assets/icons/icon-assets-min/24_dna.js +2 -0
  311. package/dist/assets/icons/icon-assets-min/24_dna.js.map +1 -1
  312. package/dist/assets/icons/icon-assets-min/24_download.js +2 -0
  313. package/dist/assets/icons/icon-assets-min/24_download.js.map +1 -1
  314. package/dist/assets/icons/icon-assets-min/24_drag-dots.js +2 -0
  315. package/dist/assets/icons/icon-assets-min/24_drag-dots.js.map +1 -1
  316. package/dist/assets/icons/icon-assets-min/24_drag-horizontal.js +2 -0
  317. package/dist/assets/icons/icon-assets-min/24_drag-horizontal.js.map +1 -1
  318. package/dist/assets/icons/icon-assets-min/24_drag-vertical.js +2 -0
  319. package/dist/assets/icons/icon-assets-min/24_drag-vertical.js.map +1 -1
  320. package/dist/assets/icons/icon-assets-min/24_duplicate.js +2 -0
  321. package/dist/assets/icons/icon-assets-min/24_duplicate.js.map +1 -1
  322. package/dist/assets/icons/icon-assets-min/24_edit.js +2 -0
  323. package/dist/assets/icons/icon-assets-min/24_edit.js.map +1 -1
  324. package/dist/assets/icons/icon-assets-min/24_error-bar.js +2 -0
  325. package/dist/assets/icons/icon-assets-min/24_error-bar.js.map +1 -1
  326. package/dist/assets/icons/icon-assets-min/24_error.js +2 -0
  327. package/dist/assets/icons/icon-assets-min/24_error.js.map +1 -1
  328. package/dist/assets/icons/icon-assets-min/24_expand-left.js +2 -0
  329. package/dist/assets/icons/icon-assets-min/24_expand-left.js.map +1 -1
  330. package/dist/assets/icons/icon-assets-min/24_expand-right.js +2 -0
  331. package/dist/assets/icons/icon-assets-min/24_expand-right.js.map +1 -1
  332. package/dist/assets/icons/icon-assets-min/24_export-2.js +2 -0
  333. package/dist/assets/icons/icon-assets-min/24_export-2.js.map +1 -1
  334. package/dist/assets/icons/icon-assets-min/24_export.js +2 -0
  335. package/dist/assets/icons/icon-assets-min/24_export.js.map +1 -1
  336. package/dist/assets/icons/icon-assets-min/24_external-link.js +2 -0
  337. package/dist/assets/icons/icon-assets-min/24_external-link.js.map +1 -1
  338. package/dist/assets/icons/icon-assets-min/24_file-doc-add.js +2 -0
  339. package/dist/assets/icons/icon-assets-min/24_file-doc-add.js.map +1 -1
  340. package/dist/assets/icons/icon-assets-min/24_file-doc-download.js +2 -0
  341. package/dist/assets/icons/icon-assets-min/24_file-doc-download.js.map +1 -1
  342. package/dist/assets/icons/icon-assets-min/24_file-doc-import.js +2 -0
  343. package/dist/assets/icons/icon-assets-min/24_file-doc-import.js.map +1 -1
  344. package/dist/assets/icons/icon-assets-min/24_file-doc.js +2 -0
  345. package/dist/assets/icons/icon-assets-min/24_file-doc.js.map +1 -1
  346. package/dist/assets/icons/icon-assets-min/24_file-logs-accent.js +2 -0
  347. package/dist/assets/icons/icon-assets-min/24_file-logs-accent.js.map +1 -1
  348. package/dist/assets/icons/icon-assets-min/24_file-logs.js +2 -0
  349. package/dist/assets/icons/icon-assets-min/24_file-logs.js.map +1 -1
  350. package/dist/assets/icons/icon-assets-min/24_files-export.js +2 -0
  351. package/dist/assets/icons/icon-assets-min/24_files-export.js.map +1 -1
  352. package/dist/assets/icons/icon-assets-min/24_files-import.js +2 -0
  353. package/dist/assets/icons/icon-assets-min/24_files-import.js.map +1 -1
  354. package/dist/assets/icons/icon-assets-min/24_filter-on.js +2 -0
  355. package/dist/assets/icons/icon-assets-min/24_filter-on.js.map +1 -1
  356. package/dist/assets/icons/icon-assets-min/24_filter.js +2 -0
  357. package/dist/assets/icons/icon-assets-min/24_filter.js.map +1 -1
  358. package/dist/assets/icons/icon-assets-min/24_fire-tips.js +2 -0
  359. package/dist/assets/icons/icon-assets-min/24_fire-tips.js.map +1 -1
  360. package/dist/assets/icons/icon-assets-min/24_folder-parent.js +2 -0
  361. package/dist/assets/icons/icon-assets-min/24_folder-parent.js.map +1 -1
  362. package/dist/assets/icons/icon-assets-min/24_frame-type-all.js +2 -0
  363. package/dist/assets/icons/icon-assets-min/24_frame-type-all.js.map +1 -1
  364. package/dist/assets/icons/icon-assets-min/24_frame-type-bottom.js +2 -0
  365. package/dist/assets/icons/icon-assets-min/24_frame-type-bottom.js.map +1 -1
  366. package/dist/assets/icons/icon-assets-min/24_frame-type-left-bottom.js +2 -0
  367. package/dist/assets/icons/icon-assets-min/24_frame-type-left-bottom.js.map +1 -1
  368. package/dist/assets/icons/icon-assets-min/24_frame-type-left.js +2 -0
  369. package/dist/assets/icons/icon-assets-min/24_frame-type-left.js.map +1 -1
  370. package/dist/assets/icons/icon-assets-min/24_frame-type-none.js +2 -0
  371. package/dist/assets/icons/icon-assets-min/24_frame-type-none.js.map +1 -1
  372. package/dist/assets/icons/icon-assets-min/24_generate.js +2 -0
  373. package/dist/assets/icons/icon-assets-min/24_generate.js.map +1 -1
  374. package/dist/assets/icons/icon-assets-min/24_graph.js +2 -0
  375. package/dist/assets/icons/icon-assets-min/24_graph.js.map +1 -1
  376. package/dist/assets/icons/icon-assets-min/24_heatmap.js +2 -0
  377. package/dist/assets/icons/icon-assets-min/24_heatmap.js.map +1 -1
  378. package/dist/assets/icons/icon-assets-min/24_help-outline.js +2 -0
  379. package/dist/assets/icons/icon-assets-min/24_help-outline.js.map +1 -1
  380. package/dist/assets/icons/icon-assets-min/24_help.js +2 -0
  381. package/dist/assets/icons/icon-assets-min/24_help.js.map +1 -1
  382. package/dist/assets/icons/icon-assets-min/24_hide.js +2 -0
  383. package/dist/assets/icons/icon-assets-min/24_hide.js.map +1 -1
  384. package/dist/assets/icons/icon-assets-min/24_import.js +2 -0
  385. package/dist/assets/icons/icon-assets-min/24_import.js.map +1 -1
  386. package/dist/assets/icons/icon-assets-min/24_info-outline.js +2 -0
  387. package/dist/assets/icons/icon-assets-min/24_info-outline.js.map +1 -1
  388. package/dist/assets/icons/icon-assets-min/24_info.js +2 -0
  389. package/dist/assets/icons/icon-assets-min/24_info.js.map +1 -1
  390. package/dist/assets/icons/icon-assets-min/24_jitter.js +2 -0
  391. package/dist/assets/icons/icon-assets-min/24_jitter.js.map +1 -1
  392. package/dist/assets/icons/icon-assets-min/24_jump-link.js +2 -0
  393. package/dist/assets/icons/icon-assets-min/24_jump-link.js.map +1 -1
  394. package/dist/assets/icons/icon-assets-min/24_lasso.js +2 -0
  395. package/dist/assets/icons/icon-assets-min/24_lasso.js.map +1 -1
  396. package/dist/assets/icons/icon-assets-min/24_layers.js +2 -0
  397. package/dist/assets/icons/icon-assets-min/24_layers.js.map +1 -1
  398. package/dist/assets/icons/icon-assets-min/24_learn.js +2 -0
  399. package/dist/assets/icons/icon-assets-min/24_learn.js.map +1 -1
  400. package/dist/assets/icons/icon-assets-min/24_legend-box-dot.js +2 -0
  401. package/dist/assets/icons/icon-assets-min/24_legend-box-dot.js.map +1 -1
  402. package/dist/assets/icons/icon-assets-min/24_legend-box.js +2 -0
  403. package/dist/assets/icons/icon-assets-min/24_legend-box.js.map +1 -1
  404. package/dist/assets/icons/icon-assets-min/24_legend.js +2 -0
  405. package/dist/assets/icons/icon-assets-min/24_legend.js.map +1 -1
  406. package/dist/assets/icons/icon-assets-min/24_line-binned.js +2 -0
  407. package/dist/assets/icons/icon-assets-min/24_line-binned.js.map +1 -1
  408. package/dist/assets/icons/icon-assets-min/24_line-error.js +2 -0
  409. package/dist/assets/icons/icon-assets-min/24_line-error.js.map +1 -1
  410. package/dist/assets/icons/icon-assets-min/24_line-jitter.js +2 -0
  411. package/dist/assets/icons/icon-assets-min/24_line-jitter.js.map +1 -1
  412. package/dist/assets/icons/icon-assets-min/24_line.js +2 -0
  413. package/dist/assets/icons/icon-assets-min/24_line.js.map +1 -1
  414. package/dist/assets/icons/icon-assets-min/24_linetype-dashed.js +2 -0
  415. package/dist/assets/icons/icon-assets-min/24_linetype-dashed.js.map +1 -1
  416. package/dist/assets/icons/icon-assets-min/24_linetype-dotdash.js +2 -0
  417. package/dist/assets/icons/icon-assets-min/24_linetype-dotdash.js.map +1 -1
  418. package/dist/assets/icons/icon-assets-min/24_linetype-dotted.js +2 -0
  419. package/dist/assets/icons/icon-assets-min/24_linetype-dotted.js.map +1 -1
  420. package/dist/assets/icons/icon-assets-min/24_linetype-longdash.js +2 -0
  421. package/dist/assets/icons/icon-assets-min/24_linetype-longdash.js.map +1 -1
  422. package/dist/assets/icons/icon-assets-min/24_linetype-solid.js +2 -0
  423. package/dist/assets/icons/icon-assets-min/24_linetype-solid.js.map +1 -1
  424. package/dist/assets/icons/icon-assets-min/24_linetype-twodash.js +2 -0
  425. package/dist/assets/icons/icon-assets-min/24_linetype-twodash.js.map +1 -1
  426. package/dist/assets/icons/icon-assets-min/24_link-disabled.js +2 -0
  427. package/dist/assets/icons/icon-assets-min/24_link-disabled.js.map +1 -1
  428. package/dist/assets/icons/icon-assets-min/24_link.js +2 -0
  429. package/dist/assets/icons/icon-assets-min/24_link.js.map +1 -1
  430. package/dist/assets/icons/icon-assets-min/24_loading.js +2 -0
  431. package/dist/assets/icons/icon-assets-min/24_loading.js.map +1 -1
  432. package/dist/assets/icons/icon-assets-min/24_lock.js +2 -0
  433. package/dist/assets/icons/icon-assets-min/24_lock.js.map +1 -1
  434. package/dist/assets/icons/icon-assets-min/24_maximize.js +2 -0
  435. package/dist/assets/icons/icon-assets-min/24_maximize.js.map +1 -1
  436. package/dist/assets/icons/icon-assets-min/24_menu.js +2 -0
  437. package/dist/assets/icons/icon-assets-min/24_menu.js.map +1 -1
  438. package/dist/assets/icons/icon-assets-min/24_minimize.js +2 -0
  439. package/dist/assets/icons/icon-assets-min/24_minimize.js.map +1 -1
  440. package/dist/assets/icons/icon-assets-min/24_minus.js +2 -0
  441. package/dist/assets/icons/icon-assets-min/24_minus.js.map +1 -1
  442. package/dist/assets/icons/icon-assets-min/24_monetization-off.js +2 -0
  443. package/dist/assets/icons/icon-assets-min/24_monetization-off.js.map +1 -1
  444. package/dist/assets/icons/icon-assets-min/24_monetization-on.js +2 -0
  445. package/dist/assets/icons/icon-assets-min/24_monetization-on.js.map +1 -1
  446. package/dist/assets/icons/icon-assets-min/24_monetization.js +2 -0
  447. package/dist/assets/icons/icon-assets-min/24_monetization.js.map +1 -1
  448. package/dist/assets/icons/icon-assets-min/24_more.js +2 -0
  449. package/dist/assets/icons/icon-assets-min/24_more.js.map +1 -1
  450. package/dist/assets/icons/icon-assets-min/24_paper-clip.js +2 -0
  451. package/dist/assets/icons/icon-assets-min/24_paper-clip.js.map +1 -1
  452. package/dist/assets/icons/icon-assets-min/24_pause.js +2 -0
  453. package/dist/assets/icons/icon-assets-min/24_pause.js.map +1 -1
  454. package/dist/assets/icons/icon-assets-min/24_pen-tool.js +2 -0
  455. package/dist/assets/icons/icon-assets-min/24_pen-tool.js.map +1 -1
  456. package/dist/assets/icons/icon-assets-min/24_pin.js +2 -0
  457. package/dist/assets/icons/icon-assets-min/24_pin.js.map +1 -1
  458. package/dist/assets/icons/icon-assets-min/24_play.js +2 -0
  459. package/dist/assets/icons/icon-assets-min/24_play.js.map +1 -1
  460. package/dist/assets/icons/icon-assets-min/24_position-bottom-annotation.js +2 -0
  461. package/dist/assets/icons/icon-assets-min/24_position-bottom-annotation.js.map +1 -1
  462. package/dist/assets/icons/icon-assets-min/24_position-bottom.js +2 -0
  463. package/dist/assets/icons/icon-assets-min/24_position-bottom.js.map +1 -1
  464. package/dist/assets/icons/icon-assets-min/24_position-left-annotation.js +2 -0
  465. package/dist/assets/icons/icon-assets-min/24_position-left-annotation.js.map +1 -1
  466. package/dist/assets/icons/icon-assets-min/24_position-left.js +2 -0
  467. package/dist/assets/icons/icon-assets-min/24_position-left.js.map +1 -1
  468. package/dist/assets/icons/icon-assets-min/24_position-right-annotation.js +2 -0
  469. package/dist/assets/icons/icon-assets-min/24_position-right-annotation.js.map +1 -1
  470. package/dist/assets/icons/icon-assets-min/24_position-right.js +2 -0
  471. package/dist/assets/icons/icon-assets-min/24_position-right.js.map +1 -1
  472. package/dist/assets/icons/icon-assets-min/24_position-top-annotation.js +2 -0
  473. package/dist/assets/icons/icon-assets-min/24_position-top-annotation.js.map +1 -1
  474. package/dist/assets/icons/icon-assets-min/24_position-top.js +2 -0
  475. package/dist/assets/icons/icon-assets-min/24_position-top.js.map +1 -1
  476. package/dist/assets/icons/icon-assets-min/24_product.js +2 -0
  477. package/dist/assets/icons/icon-assets-min/24_product.js.map +1 -1
  478. package/dist/assets/icons/icon-assets-min/24_progress.js +2 -0
  479. package/dist/assets/icons/icon-assets-min/24_progress.js.map +1 -1
  480. package/dist/assets/icons/icon-assets-min/24_publications.js +2 -0
  481. package/dist/assets/icons/icon-assets-min/24_publications.js.map +1 -1
  482. package/dist/assets/icons/icon-assets-min/24_radio-button-checked.js +2 -0
  483. package/dist/assets/icons/icon-assets-min/24_radio-button-checked.js.map +1 -1
  484. package/dist/assets/icons/icon-assets-min/24_radio-button.js +2 -0
  485. package/dist/assets/icons/icon-assets-min/24_radio-button.js.map +1 -1
  486. package/dist/assets/icons/icon-assets-min/24_renew.js +2 -0
  487. package/dist/assets/icons/icon-assets-min/24_renew.js.map +1 -1
  488. package/dist/assets/icons/icon-assets-min/24_restart.js +2 -0
  489. package/dist/assets/icons/icon-assets-min/24_restart.js.map +1 -1
  490. package/dist/assets/icons/icon-assets-min/24_reverse.js +2 -0
  491. package/dist/assets/icons/icon-assets-min/24_reverse.js.map +1 -1
  492. package/dist/assets/icons/icon-assets-min/24_rotation-0.js +2 -0
  493. package/dist/assets/icons/icon-assets-min/24_rotation-0.js.map +1 -1
  494. package/dist/assets/icons/icon-assets-min/24_rotation-45.js +2 -0
  495. package/dist/assets/icons/icon-assets-min/24_rotation-45.js.map +1 -1
  496. package/dist/assets/icons/icon-assets-min/24_rotation-90.js +2 -0
  497. package/dist/assets/icons/icon-assets-min/24_rotation-90.js.map +1 -1
  498. package/dist/assets/icons/icon-assets-min/24_search.js +2 -0
  499. package/dist/assets/icons/icon-assets-min/24_search.js.map +1 -1
  500. package/dist/assets/icons/icon-assets-min/24_server-on.js +2 -0
  501. package/dist/assets/icons/icon-assets-min/24_server-on.js.map +1 -1
  502. package/dist/assets/icons/icon-assets-min/24_server.js +2 -0
  503. package/dist/assets/icons/icon-assets-min/24_server.js.map +1 -1
  504. package/dist/assets/icons/icon-assets-min/24_settings.js +2 -0
  505. package/dist/assets/icons/icon-assets-min/24_settings.js.map +1 -1
  506. package/dist/assets/icons/icon-assets-min/24_show.js +2 -0
  507. package/dist/assets/icons/icon-assets-min/24_show.js.map +1 -1
  508. package/dist/assets/icons/icon-assets-min/24_sina.js +2 -0
  509. package/dist/assets/icons/icon-assets-min/24_sina.js.map +1 -1
  510. package/dist/assets/icons/icon-assets-min/24_skatterplot.js +2 -0
  511. package/dist/assets/icons/icon-assets-min/24_skatterplot.js.map +1 -1
  512. package/dist/assets/icons/icon-assets-min/24_slice.js +2 -0
  513. package/dist/assets/icons/icon-assets-min/24_slice.js.map +1 -1
  514. package/dist/assets/icons/icon-assets-min/24_social-github.js +2 -0
  515. package/dist/assets/icons/icon-assets-min/24_social-github.js.map +1 -1
  516. package/dist/assets/icons/icon-assets-min/24_social-linkedin.js +2 -0
  517. package/dist/assets/icons/icon-assets-min/24_social-linkedin.js.map +1 -1
  518. package/dist/assets/icons/icon-assets-min/24_social-twitter-X.js +2 -0
  519. package/dist/assets/icons/icon-assets-min/24_social-twitter-X.js.map +1 -1
  520. package/dist/assets/icons/icon-assets-min/24_social-twitter-bird.js +2 -0
  521. package/dist/assets/icons/icon-assets-min/24_social-twitter-bird.js.map +1 -1
  522. package/dist/assets/icons/icon-assets-min/24_social-youtube.js +2 -0
  523. package/dist/assets/icons/icon-assets-min/24_social-youtube.js.map +1 -1
  524. package/dist/assets/icons/icon-assets-min/24_sort-list-down.js +2 -0
  525. package/dist/assets/icons/icon-assets-min/24_sort-list-down.js.map +1 -1
  526. package/dist/assets/icons/icon-assets-min/24_sort-list-up.js +2 -0
  527. package/dist/assets/icons/icon-assets-min/24_sort-list-up.js.map +1 -1
  528. package/dist/assets/icons/icon-assets-min/24_sort.js +2 -0
  529. package/dist/assets/icons/icon-assets-min/24_sort.js.map +1 -1
  530. package/dist/assets/icons/icon-assets-min/24_statistics.js +2 -0
  531. package/dist/assets/icons/icon-assets-min/24_statistics.js.map +1 -1
  532. package/dist/assets/icons/icon-assets-min/24_stop.js +2 -0
  533. package/dist/assets/icons/icon-assets-min/24_stop.js.map +1 -1
  534. package/dist/assets/icons/icon-assets-min/24_strip-plot.js +2 -0
  535. package/dist/assets/icons/icon-assets-min/24_strip-plot.js.map +1 -1
  536. package/dist/assets/icons/icon-assets-min/24_success.js +2 -0
  537. package/dist/assets/icons/icon-assets-min/24_success.js.map +1 -1
  538. package/dist/assets/icons/icon-assets-min/24_table-add.js +2 -0
  539. package/dist/assets/icons/icon-assets-min/24_table-add.js.map +1 -1
  540. package/dist/assets/icons/icon-assets-min/24_table-alias.js +2 -0
  541. package/dist/assets/icons/icon-assets-min/24_table-alias.js.map +1 -1
  542. package/dist/assets/icons/icon-assets-min/24_table-import.js +2 -0
  543. package/dist/assets/icons/icon-assets-min/24_table-import.js.map +1 -1
  544. package/dist/assets/icons/icon-assets-min/24_table-upload.js +2 -0
  545. package/dist/assets/icons/icon-assets-min/24_table-upload.js.map +1 -1
  546. package/dist/assets/icons/icon-assets-min/24_table.js +2 -0
  547. package/dist/assets/icons/icon-assets-min/24_table.js.map +1 -1
  548. package/dist/assets/icons/icon-assets-min/24_template.js +2 -0
  549. package/dist/assets/icons/icon-assets-min/24_template.js.map +1 -1
  550. package/dist/assets/icons/icon-assets-min/24_terminal.js +2 -0
  551. package/dist/assets/icons/icon-assets-min/24_terminal.js.map +1 -1
  552. package/dist/assets/icons/icon-assets-min/24_text-align-center.js +2 -0
  553. package/dist/assets/icons/icon-assets-min/24_text-align-center.js.map +1 -1
  554. package/dist/assets/icons/icon-assets-min/24_text-align-left.js +2 -0
  555. package/dist/assets/icons/icon-assets-min/24_text-align-left.js.map +1 -1
  556. package/dist/assets/icons/icon-assets-min/24_text-align-right.js +2 -0
  557. package/dist/assets/icons/icon-assets-min/24_text-align-right.js.map +1 -1
  558. package/dist/assets/icons/icon-assets-min/24_theme-dark.js +2 -0
  559. package/dist/assets/icons/icon-assets-min/24_theme-dark.js.map +1 -1
  560. package/dist/assets/icons/icon-assets-min/24_theme-light.js +2 -0
  561. package/dist/assets/icons/icon-assets-min/24_theme-light.js.map +1 -1
  562. package/dist/assets/icons/icon-assets-min/24_time.js +2 -0
  563. package/dist/assets/icons/icon-assets-min/24_time.js.map +1 -1
  564. package/dist/assets/icons/icon-assets-min/24_title-position.js +2 -0
  565. package/dist/assets/icons/icon-assets-min/24_title-position.js.map +1 -1
  566. package/dist/assets/icons/icon-assets-min/24_tune.js +2 -0
  567. package/dist/assets/icons/icon-assets-min/24_tune.js.map +1 -1
  568. package/dist/assets/icons/icon-assets-min/24_venn.js +2 -0
  569. package/dist/assets/icons/icon-assets-min/24_venn.js.map +1 -1
  570. package/dist/assets/icons/icon-assets-min/24_view-hide.js +2 -0
  571. package/dist/assets/icons/icon-assets-min/24_view-hide.js.map +1 -1
  572. package/dist/assets/icons/icon-assets-min/24_view-show.js +2 -0
  573. package/dist/assets/icons/icon-assets-min/24_view-show.js.map +1 -1
  574. package/dist/assets/icons/icon-assets-min/24_violin-binned.js +2 -0
  575. package/dist/assets/icons/icon-assets-min/24_violin-binned.js.map +1 -1
  576. package/dist/assets/icons/icon-assets-min/24_violin-jitter.js +2 -0
  577. package/dist/assets/icons/icon-assets-min/24_violin-jitter.js.map +1 -1
  578. package/dist/assets/icons/icon-assets-min/24_violin.js +2 -0
  579. package/dist/assets/icons/icon-assets-min/24_violin.js.map +1 -1
  580. package/dist/assets/icons/icon-assets-min/24_warning.js +2 -0
  581. package/dist/assets/icons/icon-assets-min/24_warning.js.map +1 -1
  582. package/dist/assets/icons/icon-assets-min/24_wetlab.js +2 -0
  583. package/dist/assets/icons/icon-assets-min/24_wetlab.js.map +1 -1
  584. package/dist/assets/icons/icon-assets-min/24_windows-collapse.js +2 -0
  585. package/dist/assets/icons/icon-assets-min/24_windows-collapse.js.map +1 -1
  586. package/dist/assets/icons/icon-assets-min/24_windows-expand.js +2 -0
  587. package/dist/assets/icons/icon-assets-min/24_windows-expand.js.map +1 -1
  588. package/dist/assets/icons/icon-assets-min/24_x-axis.js +2 -0
  589. package/dist/assets/icons/icon-assets-min/24_x-axis.js.map +1 -1
  590. package/dist/assets/icons/icon-assets-min/24_y-axis.js +2 -0
  591. package/dist/assets/icons/icon-assets-min/24_y-axis.js.map +1 -1
  592. package/dist/assets/icons/icon-assets-min/24_zip.js +2 -0
  593. package/dist/assets/icons/icon-assets-min/24_zip.js.map +1 -1
  594. package/dist/assets/icons/icon-assets-min/24_zoom-in.js +2 -0
  595. package/dist/assets/icons/icon-assets-min/24_zoom-in.js.map +1 -1
  596. package/dist/assets/icons/icon-assets-min/24_zoom-out.js +2 -0
  597. package/dist/assets/icons/icon-assets-min/24_zoom-out.js.map +1 -1
  598. package/dist/assets/images/24_checkbox-light-enabled-checked.js +2 -0
  599. package/dist/assets/images/24_checkbox-light-enabled-checked.js.map +1 -1
  600. package/dist/assets/images/24_checkbox-light-enabled-unchecked.js +2 -0
  601. package/dist/assets/images/24_checkbox-light-enabled-unchecked.js.map +1 -1
  602. package/dist/assets/images/required.js +2 -0
  603. package/dist/assets/images/required.js.map +1 -1
  604. package/dist/base/BtnBase.js +2 -0
  605. package/dist/base/BtnBase.vue2.js +2 -0
  606. package/dist/base/BtnBase.vue2.js.map +1 -1
  607. package/dist/colors/color.js +2 -9
  608. package/dist/colors/color.js.map +1 -1
  609. package/dist/colors/gradient.js +1 -34
  610. package/dist/colors/gradient.js.map +1 -1
  611. package/dist/colors/palette.js +3 -4
  612. package/dist/colors/palette.js.map +1 -1
  613. package/dist/components/ContextProvider.js +2 -0
  614. package/dist/components/ContextProvider.vue2.js +2 -0
  615. package/dist/components/ContextProvider.vue2.js.map +1 -1
  616. package/dist/components/DataTable/BaseCellComponent.js +2 -0
  617. package/dist/components/DataTable/BaseCellComponent.vue2.js +2 -0
  618. package/dist/components/DataTable/BaseCellComponent.vue2.js.map +1 -1
  619. package/dist/components/DataTable/ColumnCaret.js +2 -0
  620. package/dist/components/DataTable/ColumnCaret.vue2.js +2 -0
  621. package/dist/components/DataTable/ColumnCaret.vue2.js.map +1 -1
  622. package/dist/components/DataTable/ColumnsCommandMenu.js +2 -0
  623. package/dist/components/DataTable/ColumnsCommandMenu.vue2.js +2 -0
  624. package/dist/components/DataTable/ColumnsCommandMenu.vue2.js.map +1 -1
  625. package/dist/components/DataTable/RowsCommandMenu.js +2 -0
  626. package/dist/components/DataTable/RowsCommandMenu.vue2.js +2 -0
  627. package/dist/components/DataTable/RowsCommandMenu.vue2.js.map +1 -1
  628. package/dist/components/DataTable/TScroll.js +2 -0
  629. package/dist/components/DataTable/TScroll.vue2.js +2 -0
  630. package/dist/components/DataTable/TScroll.vue2.js.map +1 -1
  631. package/dist/components/DataTable/TableComponent.js +2 -0
  632. package/dist/components/DataTable/TableComponent.vue2.js +2 -0
  633. package/dist/components/DataTable/TableComponent.vue2.js.map +1 -1
  634. package/dist/components/DataTable/TdCell.js +2 -0
  635. package/dist/components/DataTable/TdCell.vue2.js +2 -0
  636. package/dist/components/DataTable/TdCell.vue2.js.map +1 -1
  637. package/dist/components/DataTable/ThCell.js +2 -0
  638. package/dist/components/DataTable/ThCell.vue2.js +2 -0
  639. package/dist/components/DataTable/ThCell.vue2.js.map +1 -1
  640. package/dist/components/DataTable/TrBody.js +2 -0
  641. package/dist/components/DataTable/TrBody.vue2.js +2 -0
  642. package/dist/components/DataTable/TrBody.vue2.js.map +1 -1
  643. package/dist/components/DataTable/TrHead.js +2 -0
  644. package/dist/components/DataTable/TrHead.vue2.js +2 -0
  645. package/dist/components/DataTable/TrHead.vue2.js.map +1 -1
  646. package/dist/components/DataTable/adapters/AsyncData.js +2 -0
  647. package/dist/components/DataTable/adapters/AsyncData.js.map +1 -1
  648. package/dist/components/DataTable/adapters/RawData.js +2 -0
  649. package/dist/components/DataTable/adapters/RawData.js.map +1 -1
  650. package/dist/components/DataTable/assets/TableIcon.js +2 -0
  651. package/dist/components/DataTable/assets/TableIcon.js.map +1 -1
  652. package/dist/components/DataTable/composition/useColumn.js +2 -0
  653. package/dist/components/DataTable/composition/useColumn.js.map +1 -1
  654. package/dist/components/DataTable/composition/useMouseUp.js +2 -0
  655. package/dist/components/DataTable/composition/useMouseUp.js.map +1 -1
  656. package/dist/components/DataTable/composition/useResize.js +2 -0
  657. package/dist/components/DataTable/composition/useResize.js.map +1 -1
  658. package/dist/components/DataTable/composition/useTableColumns.js +2 -0
  659. package/dist/components/DataTable/composition/useTableColumns.js.map +1 -1
  660. package/dist/components/DataTable/composition/useTableRows.js +2 -0
  661. package/dist/components/DataTable/composition/useTableRows.js.map +1 -1
  662. package/dist/components/DataTable/domain.js +2 -6
  663. package/dist/components/DataTable/domain.js.map +1 -1
  664. package/dist/components/DataTable/index.js +2 -7
  665. package/dist/components/DataTable/index.js.map +1 -1
  666. package/dist/components/DataTable/keys.js +3 -1
  667. package/dist/components/DataTable/keys.js.map +1 -1
  668. package/dist/components/DataTable/state.js +2 -0
  669. package/dist/components/DataTable/state.js.map +1 -1
  670. package/dist/components/DropdownListItem.js +2 -0
  671. package/dist/components/DropdownListItem.vue2.js +2 -0
  672. package/dist/components/DropdownListItem.vue2.js.map +1 -1
  673. package/dist/components/HScroll.js +2 -0
  674. package/dist/components/HScroll.vue2.js +2 -0
  675. package/dist/components/HScroll.vue2.js.map +1 -1
  676. package/dist/components/InputRange.js +2 -0
  677. package/dist/components/InputRange.vue2.js +2 -0
  678. package/dist/components/InputRange.vue2.js.map +1 -1
  679. package/dist/components/LongText.js +2 -0
  680. package/dist/components/LongText.vue2.js +2 -0
  681. package/dist/components/LongText.vue2.js.map +1 -1
  682. package/dist/components/PlAccordion/ExpandTransition.js +2 -0
  683. package/dist/components/PlAccordion/ExpandTransition.vue2.js +2 -0
  684. package/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -1
  685. package/dist/components/PlAccordion/PlAccordion.js +2 -0
  686. package/dist/components/PlAccordion/PlAccordion.vue2.js +2 -0
  687. package/dist/components/PlAccordion/PlAccordion.vue2.js.map +1 -1
  688. package/dist/components/PlAccordion/PlAccordionSection.js +1 -0
  689. package/dist/components/PlAccordion/PlAccordionSection.style.js +1 -0
  690. package/dist/components/PlAccordion/PlAccordionSection.vue2.js +2 -0
  691. package/dist/components/PlAccordion/PlAccordionSection.vue2.js.map +1 -1
  692. package/dist/components/PlAlert/PlAlert.js +2 -0
  693. package/dist/components/PlAlert/PlAlert.vue2.js +2 -0
  694. package/dist/components/PlAlert/PlAlert.vue2.js.map +1 -1
  695. package/dist/components/PlAutocomplete/PlAutocomplete.js +2 -0
  696. package/dist/components/PlAutocomplete/PlAutocomplete.vue2.js +2 -0
  697. package/dist/components/PlAutocomplete/PlAutocomplete.vue2.js.map +1 -1
  698. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.js +2 -0
  699. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue2.js +2 -0
  700. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue2.js.map +1 -1
  701. package/dist/components/PlBtnAccent/PlBtnAccent.js +2 -0
  702. package/dist/components/PlBtnAccent/PlBtnAccent.vue2.js +1 -0
  703. package/dist/components/PlBtnDanger/PlBtnDanger.js +2 -0
  704. package/dist/components/PlBtnDanger/PlBtnDanger.vue2.js +1 -0
  705. package/dist/components/PlBtnGhost/PlBtnGhost.js +2 -0
  706. package/dist/components/PlBtnGhost/PlBtnGhost.vue2.js +2 -0
  707. package/dist/components/PlBtnGhost/PlBtnGhost.vue2.js.map +1 -1
  708. package/dist/components/PlBtnGroup/PlBtnGroup.js +2 -0
  709. package/dist/components/PlBtnGroup/PlBtnGroup.vue2.js +2 -0
  710. package/dist/components/PlBtnGroup/PlBtnGroup.vue2.js.map +1 -1
  711. package/dist/components/PlBtnLink/PlBtnLink.js +2 -0
  712. package/dist/components/PlBtnLink/PlBtnLink.vue2.js +2 -0
  713. package/dist/components/PlBtnLink/PlBtnLink.vue2.js.map +1 -1
  714. package/dist/components/PlBtnPrimary/PlBtnPrimary.js +2 -0
  715. package/dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js +1 -0
  716. package/dist/components/PlBtnSecondary/PlBtnSecondary.js +2 -0
  717. package/dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js +1 -0
  718. package/dist/components/PlBtnSplit/PlBtnSplit.js +2 -0
  719. package/dist/components/PlBtnSplit/PlBtnSplit.vue2.js +2 -0
  720. package/dist/components/PlBtnSplit/PlBtnSplit.vue2.js.map +1 -1
  721. package/dist/components/PlChartHistogram/PlChartHistogram.js +1 -0
  722. package/dist/components/PlChartHistogram/PlChartHistogram.style.js +1 -0
  723. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js +2 -0
  724. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js.map +1 -1
  725. package/dist/components/PlChartHistogram/createGridlines.js +2 -0
  726. package/dist/components/PlChartHistogram/createGridlines.js.map +1 -1
  727. package/dist/components/PlChartHistogram/createLabels.js +2 -0
  728. package/dist/components/PlChartHistogram/createLabels.js.map +1 -1
  729. package/dist/components/PlChartHistogram/createSvgContainer.js +2 -0
  730. package/dist/components/PlChartHistogram/createSvgContainer.js.map +1 -1
  731. package/dist/components/PlChartHistogram/drawBins.js +2 -0
  732. package/dist/components/PlChartHistogram/drawBins.js.map +1 -1
  733. package/dist/components/PlChartHistogram/drawThreshold.js +2 -0
  734. package/dist/components/PlChartHistogram/drawThreshold.js.map +1 -1
  735. package/dist/components/PlChartHistogram/histogram.js +2 -0
  736. package/dist/components/PlChartHistogram/histogram.js.map +1 -1
  737. package/dist/components/PlChartHistogram/logspace.js +2 -0
  738. package/dist/components/PlChartHistogram/logspace.js.map +1 -1
  739. package/dist/components/PlChartHistogram/normalizeBins.js +2 -0
  740. package/dist/components/PlChartHistogram/normalizeBins.js.map +1 -1
  741. package/dist/components/PlChartStackedBar/Legends.js +1 -0
  742. package/dist/components/PlChartStackedBar/Legends.style.js +1 -0
  743. package/dist/components/PlChartStackedBar/Legends.vue2.js +2 -0
  744. package/dist/components/PlChartStackedBar/Legends.vue2.js.map +1 -1
  745. package/dist/components/PlChartStackedBar/PlChartStackedBar.js +1 -0
  746. package/dist/components/PlChartStackedBar/PlChartStackedBar.style.js +1 -0
  747. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js +2 -0
  748. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js.map +1 -1
  749. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.js +1 -0
  750. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.style.js +1 -0
  751. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js +2 -0
  752. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js.map +1 -1
  753. package/dist/components/PlChartStackedBar/StackedRow.js +1 -0
  754. package/dist/components/PlChartStackedBar/StackedRow.style.js +1 -0
  755. package/dist/components/PlChartStackedBar/StackedRow.vue2.js +2 -0
  756. package/dist/components/PlChartStackedBar/StackedRow.vue2.js.map +1 -1
  757. package/dist/components/PlChartStackedBar/StackedRowCompact.js +1 -0
  758. package/dist/components/PlChartStackedBar/StackedRowCompact.style.js +1 -0
  759. package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js +2 -0
  760. package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js.map +1 -1
  761. package/dist/components/PlCheckbox/PlCheckbox.js +2 -0
  762. package/dist/components/PlCheckbox/PlCheckbox.vue2.js +1 -0
  763. package/dist/components/PlCheckbox/PlCheckboxBase.js +2 -0
  764. package/dist/components/PlCheckbox/PlCheckboxBase.vue2.js +2 -0
  765. package/dist/components/PlCheckbox/PlCheckboxBase.vue2.js.map +1 -1
  766. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.js +2 -0
  767. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js +2 -0
  768. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js.map +1 -1
  769. package/dist/components/PlChip/PlChip.js +2 -0
  770. package/dist/components/PlChip/PlChip.vue2.js +2 -0
  771. package/dist/components/PlChip/PlChip.vue2.js.map +1 -1
  772. package/dist/components/PlClipboard/PlClipboard.js +1 -0
  773. package/dist/components/PlClipboard/PlClipboard.style.js +1 -0
  774. package/dist/components/PlClipboard/PlClipboard.vue2.js +1 -0
  775. package/dist/components/PlConfirmDialog.js +2 -0
  776. package/dist/components/PlConfirmDialog.vue2.js +2 -0
  777. package/dist/components/PlConfirmDialog.vue2.js.map +1 -1
  778. package/dist/components/PlDialogModal/PlDialogModal.js +2 -0
  779. package/dist/components/PlDialogModal/PlDialogModal.vue2.js +2 -0
  780. package/dist/components/PlDialogModal/PlDialogModal.vue2.js.map +1 -1
  781. package/dist/components/PlDropdown/OptionList.js +2 -0
  782. package/dist/components/PlDropdown/OptionList.vue2.js +2 -0
  783. package/dist/components/PlDropdown/OptionList.vue2.js.map +1 -1
  784. package/dist/components/PlDropdown/PlDropdown.js +2 -0
  785. package/dist/components/PlDropdown/PlDropdown.vue2.js +2 -0
  786. package/dist/components/PlDropdown/PlDropdown.vue2.js.map +1 -1
  787. package/dist/components/PlDropdown/useGroupBy.js +2 -0
  788. package/dist/components/PlDropdown/useGroupBy.js.map +1 -1
  789. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.js +2 -0
  790. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js +2 -0
  791. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js.map +1 -1
  792. package/dist/components/PlDropdownLine/PlDropdownLine.js +2 -0
  793. package/dist/components/PlDropdownLine/PlDropdownLine.vue2.js +2 -0
  794. package/dist/components/PlDropdownLine/PlDropdownLine.vue2.js.map +1 -1
  795. package/dist/components/PlDropdownLine/ResizableInput.js +2 -0
  796. package/dist/components/PlDropdownLine/ResizableInput.vue2.js +2 -0
  797. package/dist/components/PlDropdownLine/ResizableInput.vue2.js.map +1 -1
  798. package/dist/components/PlDropdownMulti/PlDropdownMulti.js +2 -0
  799. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js +2 -0
  800. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js.map +1 -1
  801. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.js +2 -0
  802. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js +2 -0
  803. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js.map +1 -1
  804. package/dist/components/PlDropdownRef/PlDropdownRef.js +2 -0
  805. package/dist/components/PlDropdownRef/PlDropdownRef.vue2.js +1 -0
  806. package/dist/components/PlEditableTitle/PlEditableTitle.js +2 -0
  807. package/dist/components/PlEditableTitle/PlEditableTitle.vue2.js +2 -0
  808. package/dist/components/PlEditableTitle/PlEditableTitle.vue2.js.map +1 -1
  809. package/dist/components/PlEditableTitle/pl-editable-title.module.js +1 -0
  810. package/dist/components/PlElementList/PlElementList.js +1 -0
  811. package/dist/components/PlElementList/PlElementList.style.js +1 -0
  812. package/dist/components/PlElementList/PlElementList.vue2.js +2 -0
  813. package/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
  814. package/dist/components/PlElementList/PlElementListItem.js +1 -0
  815. package/dist/components/PlElementList/PlElementListItem.style.js +1 -0
  816. package/dist/components/PlElementList/PlElementListItem.vue2.js +2 -0
  817. package/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
  818. package/dist/components/PlElementList/utils.js +3 -1
  819. package/dist/components/PlElementList/utils.js.map +1 -1
  820. package/dist/components/PlErrorAlert/PlErrorAlert.js +1 -0
  821. package/dist/components/PlErrorAlert/PlErrorAlert.style.js +1 -0
  822. package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js +1 -0
  823. package/dist/components/PlErrorBoundary/PlErrorBoundary.js +2 -0
  824. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js +2 -0
  825. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js.map +1 -1
  826. package/dist/components/PlFileDialog/Local.js +2 -0
  827. package/dist/components/PlFileDialog/Local.vue2.js +2 -0
  828. package/dist/components/PlFileDialog/Local.vue2.js.map +1 -1
  829. package/dist/components/PlFileDialog/PlFileDialog.js +2 -0
  830. package/dist/components/PlFileDialog/PlFileDialog.vue2.js +2 -0
  831. package/dist/components/PlFileDialog/PlFileDialog.vue2.js.map +1 -1
  832. package/dist/components/PlFileDialog/Remote.js +2 -0
  833. package/dist/components/PlFileDialog/Remote.vue2.js +2 -0
  834. package/dist/components/PlFileDialog/Remote.vue2.js.map +1 -1
  835. package/dist/components/PlFileDialog/Shortcuts.js +1 -0
  836. package/dist/components/PlFileDialog/Shortcuts.style.js +1 -0
  837. package/dist/components/PlFileDialog/Shortcuts.vue2.js +2 -0
  838. package/dist/components/PlFileDialog/Shortcuts.vue2.js.map +1 -1
  839. package/dist/components/PlFileDialog/pl-file-dialog.module.js +1 -0
  840. package/dist/components/PlFileDialog/remote-helpers.js +4 -2
  841. package/dist/components/PlFileDialog/remote-helpers.js.map +1 -1
  842. package/dist/components/PlFileDialog/utils.js +2 -0
  843. package/dist/components/PlFileDialog/utils.js.map +1 -1
  844. package/dist/components/PlFileInput/PlFileInput.js +2 -0
  845. package/dist/components/PlFileInput/PlFileInput.vue2.js +2 -0
  846. package/dist/components/PlFileInput/PlFileInput.vue2.js.map +1 -1
  847. package/dist/components/PlIcon16/PlIcon16.js +1 -0
  848. package/dist/components/PlIcon16/PlIcon16.style.js +1 -0
  849. package/dist/components/PlIcon16/PlIcon16.vue2.js +2 -0
  850. package/dist/components/PlIcon16/PlIcon16.vue2.js.map +1 -1
  851. package/dist/components/PlIcon24/PlIcon24.js +1 -0
  852. package/dist/components/PlIcon24/PlIcon24.style.js +1 -0
  853. package/dist/components/PlIcon24/PlIcon24.vue2.js +2 -0
  854. package/dist/components/PlIcon24/PlIcon24.vue2.js.map +1 -1
  855. package/dist/components/PlLoaderCircular/PlLoaderCircular.js +2 -0
  856. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js +2 -0
  857. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js.map +1 -1
  858. package/dist/components/PlLoaderLogo.js +1 -0
  859. package/dist/components/PlLoaderLogo.style.js +1 -0
  860. package/dist/components/PlLoaderLogo.vue2.js +2 -0
  861. package/dist/components/PlLoaderLogo.vue2.js.map +1 -1
  862. package/dist/components/PlLogView/PlLogView.js +2 -0
  863. package/dist/components/PlLogView/PlLogView.vue2.js +2 -0
  864. package/dist/components/PlLogView/PlLogView.vue2.js.map +1 -1
  865. package/dist/components/PlLogView/useLogHandle.js +2 -0
  866. package/dist/components/PlLogView/useLogHandle.js.map +1 -1
  867. package/dist/components/PlNotificationAlert/PlNotificationAlert.js +2 -0
  868. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js +2 -0
  869. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js.map +1 -1
  870. package/dist/components/PlNumberField/PlNumberField.js +2 -0
  871. package/dist/components/PlNumberField/PlNumberField.js.map +1 -1
  872. package/dist/components/PlNumberField/PlNumberField.vue.d.ts +1 -1
  873. package/dist/components/PlNumberField/PlNumberField.vue.d.ts.map +1 -1
  874. package/dist/components/PlNumberField/PlNumberField.vue2.js +2 -0
  875. package/dist/components/PlNumberField/PlNumberField.vue2.js.map +1 -1
  876. package/dist/components/PlNumberField/parseNumber.js +2 -11
  877. package/dist/components/PlNumberField/parseNumber.js.map +1 -1
  878. package/dist/components/PlProgressBar/PlProgressBar.js +2 -0
  879. package/dist/components/PlProgressBar/PlProgressBar.vue2.js +2 -0
  880. package/dist/components/PlProgressBar/PlProgressBar.vue2.js.map +1 -1
  881. package/dist/components/PlProgressCell/PlProgressCell.js +2 -0
  882. package/dist/components/PlProgressCell/PlProgressCell.vue2.js +2 -0
  883. package/dist/components/PlProgressCell/PlProgressCell.vue2.js.map +1 -1
  884. package/dist/components/PlRadio/PlRadio.js +1 -0
  885. package/dist/components/PlRadio/PlRadio.style.js +1 -0
  886. package/dist/components/PlRadio/PlRadio.vue2.js +2 -0
  887. package/dist/components/PlRadio/PlRadio.vue2.js.map +1 -1
  888. package/dist/components/PlRadio/PlRadioGroup.js +1 -0
  889. package/dist/components/PlRadio/PlRadioGroup.style.js +1 -0
  890. package/dist/components/PlRadio/PlRadioGroup.vue2.js +2 -0
  891. package/dist/components/PlRadio/PlRadioGroup.vue2.js.map +1 -1
  892. package/dist/components/PlRadio/keys.js +3 -1
  893. package/dist/components/PlRadio/keys.js.map +1 -1
  894. package/dist/components/PlSearchField/PlSearchField.js +1 -0
  895. package/dist/components/PlSearchField/PlSearchField.style.js +1 -0
  896. package/dist/components/PlSearchField/PlSearchField.vue2.js +2 -0
  897. package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
  898. package/dist/components/PlSectionSeparator/PlSectionSeparator.js +1 -0
  899. package/dist/components/PlSectionSeparator/PlSectionSeparator.style.js +1 -0
  900. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js +2 -0
  901. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js.map +1 -1
  902. package/dist/components/PlSidebar/PlSidebarGroup.js +1 -0
  903. package/dist/components/PlSidebar/PlSidebarGroup.style.js +1 -0
  904. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js +2 -0
  905. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js.map +1 -1
  906. package/dist/components/PlSidebar/PlSidebarItem.js +1 -0
  907. package/dist/components/PlSidebar/PlSidebarItem.style.js +1 -0
  908. package/dist/components/PlSidebar/PlSidebarItem.vue2.js +2 -0
  909. package/dist/components/PlSidebar/PlSidebarItem.vue2.js.map +1 -1
  910. package/dist/components/PlSlideModal/PlPureSlideModal.js +2 -0
  911. package/dist/components/PlSlideModal/PlPureSlideModal.vue2.js +1 -0
  912. package/dist/components/PlSlideModal/PlSlideModal.js +1 -0
  913. package/dist/components/PlSlideModal/PlSlideModal.style.js +1 -0
  914. package/dist/components/PlSlideModal/PlSlideModal.vue2.js +2 -0
  915. package/dist/components/PlSlideModal/PlSlideModal.vue2.js.map +1 -1
  916. package/dist/components/PlSlideModal/props.js +3 -1
  917. package/dist/components/PlSlideModal/props.js.map +1 -1
  918. package/dist/components/PlSplash/PlSplash.js +2 -0
  919. package/dist/components/PlSplash/PlSplash.vue2.js +2 -0
  920. package/dist/components/PlSplash/PlSplash.vue2.js.map +1 -1
  921. package/dist/components/PlSplash/pl-splash.module.js +1 -0
  922. package/dist/components/PlStatusTag/PlStatusTag.js +2 -0
  923. package/dist/components/PlStatusTag/PlStatusTag.vue2.js +2 -0
  924. package/dist/components/PlStatusTag/PlStatusTag.vue2.js.map +1 -1
  925. package/dist/components/PlSvg/PlSvg.js +1 -0
  926. package/dist/components/PlSvg/PlSvg.style.js +1 -0
  927. package/dist/components/PlSvg/PlSvg.vue2.js +2 -0
  928. package/dist/components/PlSvg/PlSvg.vue2.js.map +1 -1
  929. package/dist/components/PlSvg/registry.js +2 -0
  930. package/dist/components/PlSvg/registry.js.map +1 -1
  931. package/dist/components/PlTabs/PlTabs.js +2 -0
  932. package/dist/components/PlTabs/PlTabs.vue2.js +1 -0
  933. package/dist/components/PlTabs/Tab.js +2 -0
  934. package/dist/components/PlTabs/Tab.vue2.js +2 -0
  935. package/dist/components/PlTabs/Tab.vue2.js.map +1 -1
  936. package/dist/components/PlTabs/pl-tabs.module.js +1 -0
  937. package/dist/components/PlTextArea/PlTextArea.js +2 -0
  938. package/dist/components/PlTextArea/PlTextArea.vue2.js +2 -0
  939. package/dist/components/PlTextArea/PlTextArea.vue2.js.map +1 -1
  940. package/dist/components/PlTextField/PlTextField.js +2 -0
  941. package/dist/components/PlTextField/PlTextField.js.map +1 -1
  942. package/dist/components/PlTextField/PlTextField.vue.d.ts +8 -8
  943. package/dist/components/PlTextField/PlTextField.vue.d.ts.map +1 -1
  944. package/dist/components/PlTextField/PlTextField.vue2.js +4 -2
  945. package/dist/components/PlTextField/PlTextField.vue2.js.map +1 -1
  946. package/dist/components/PlToggleSwitch/PlToggleSwitch.js +2 -0
  947. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js +2 -0
  948. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js.map +1 -1
  949. package/dist/components/PlTooltip/PlTooltip.js +1 -0
  950. package/dist/components/PlTooltip/PlTooltip.style.js +1 -0
  951. package/dist/components/PlTooltip/PlTooltip.vue2.js +1 -0
  952. package/dist/components/PlTooltip/global.js +3 -1
  953. package/dist/components/PlTooltip/global.js.map +1 -1
  954. package/dist/components/Scrollable.js +2 -0
  955. package/dist/components/Scrollable.vue2.js +2 -0
  956. package/dist/components/Scrollable.vue2.js.map +1 -1
  957. package/dist/components/Slider.js +2 -0
  958. package/dist/components/Slider.vue2.js +2 -0
  959. package/dist/components/Slider.vue2.js.map +1 -1
  960. package/dist/components/SliderRange.js +2 -0
  961. package/dist/components/SliderRange.vue2.js +2 -0
  962. package/dist/components/SliderRange.vue2.js.map +1 -1
  963. package/dist/components/SliderRangeTriple.js +2 -0
  964. package/dist/components/SliderRangeTriple.vue2.js +2 -0
  965. package/dist/components/SliderRangeTriple.vue2.js.map +1 -1
  966. package/dist/components/TabItem.js +2 -0
  967. package/dist/components/TabItem.vue2.js +2 -0
  968. package/dist/components/TabItem.vue2.js.map +1 -1
  969. package/dist/components/ThemeSwitcher.js +2 -0
  970. package/dist/components/ThemeSwitcher.vue2.js +2 -0
  971. package/dist/components/ThemeSwitcher.vue2.js.map +1 -1
  972. package/dist/components/TransitionSlidePanel.js +2 -0
  973. package/dist/components/TransitionSlidePanel.vue2.js +2 -0
  974. package/dist/components/TransitionSlidePanel.vue2.js.map +1 -1
  975. package/dist/components/VScroll.js +2 -0
  976. package/dist/components/VScroll.vue2.js +2 -0
  977. package/dist/components/VScroll.vue2.js.map +1 -1
  978. package/dist/components/contextMenu/Menu.js +2 -0
  979. package/dist/components/contextMenu/Menu.vue2.js +2 -0
  980. package/dist/components/contextMenu/Menu.vue2.js.map +1 -1
  981. package/dist/components/contextMenu/index.js +2 -0
  982. package/dist/components/contextMenu/index.js.map +1 -1
  983. package/dist/composition/computedCached.js +2 -0
  984. package/dist/composition/computedCached.js.map +1 -1
  985. package/dist/composition/filters/metadata.js +3 -1
  986. package/dist/composition/filters/metadata.js.map +1 -1
  987. package/dist/composition/useClickOutside.js +2 -0
  988. package/dist/composition/useClickOutside.js.map +1 -1
  989. package/dist/composition/useComponentProp.js +2 -30
  990. package/dist/composition/useComponentProp.js.map +1 -1
  991. package/dist/composition/useConfirm.js +2 -0
  992. package/dist/composition/useConfirm.js.map +1 -1
  993. package/dist/composition/useDraggable.js +2 -0
  994. package/dist/composition/useDraggable.js.map +1 -1
  995. package/dist/composition/useEventListener.js +2 -0
  996. package/dist/composition/useEventListener.js.map +1 -1
  997. package/dist/composition/useFilteredList.js +2 -0
  998. package/dist/composition/useFilteredList.js.map +1 -1
  999. package/dist/composition/useFormState.js +2 -0
  1000. package/dist/composition/useFormState.js.map +1 -1
  1001. package/dist/composition/useHover.js +2 -0
  1002. package/dist/composition/useHover.js.map +1 -1
  1003. package/dist/composition/useInterval.js +2 -0
  1004. package/dist/composition/useInterval.js.map +1 -1
  1005. package/dist/composition/useLocalStorage.js +2 -0
  1006. package/dist/composition/useLocalStorage.js.map +1 -1
  1007. package/dist/composition/useMouse.js +2 -0
  1008. package/dist/composition/useMouse.js.map +1 -1
  1009. package/dist/composition/useMouseCapture.js +2 -0
  1010. package/dist/composition/useMouseCapture.js.map +1 -1
  1011. package/dist/composition/usePollingQuery.js +11 -94
  1012. package/dist/composition/usePollingQuery.js.map +1 -1
  1013. package/dist/composition/usePosition.js +2 -0
  1014. package/dist/composition/usePosition.js.map +1 -1
  1015. package/dist/composition/useQuery.js +2 -0
  1016. package/dist/composition/useQuery.js.map +1 -1
  1017. package/dist/composition/useResizeObserver.js +2 -0
  1018. package/dist/composition/useResizeObserver.js.map +1 -1
  1019. package/dist/composition/useRipple.js +2 -0
  1020. package/dist/composition/useRipple.js.map +1 -1
  1021. package/dist/composition/useScroll.js +2 -0
  1022. package/dist/composition/useScroll.js.map +1 -1
  1023. package/dist/composition/useSliderBreakpoints.js +3 -1
  1024. package/dist/composition/useSliderBreakpoints.js.map +1 -1
  1025. package/dist/composition/useSortable.js +2 -0
  1026. package/dist/composition/useSortable.js.map +1 -1
  1027. package/dist/composition/useSortable2.js +2 -9
  1028. package/dist/composition/useSortable2.js.map +1 -1
  1029. package/dist/composition/useTheme.js +2 -0
  1030. package/dist/composition/useTheme.js.map +1 -1
  1031. package/dist/composition/useTransformedModel.js +2 -31
  1032. package/dist/composition/useTransformedModel.js.map +1 -1
  1033. package/dist/composition/useWatchFetch.js +2 -20
  1034. package/dist/composition/useWatchFetch.js.map +1 -1
  1035. package/dist/composition/utils.js +2 -0
  1036. package/dist/composition/utils.js.map +1 -1
  1037. package/dist/composition/watchCached.js +2 -1
  1038. package/dist/demo-site-data/all-css-variables.js +2 -0
  1039. package/dist/demo-site-data/all-css-variables.js.map +1 -1
  1040. package/dist/generated/icons-16.js +3 -1
  1041. package/dist/generated/icons-16.js.map +1 -1
  1042. package/dist/generated/icons-24.js +3 -1
  1043. package/dist/generated/icons-24.js.map +1 -1
  1044. package/dist/global/resizeObserver.js +2 -0
  1045. package/dist/global/resizeObserver.js.map +1 -1
  1046. package/dist/helpers/dom.js +2 -0
  1047. package/dist/helpers/dom.js.map +1 -1
  1048. package/dist/helpers/downloadContent.js +3 -1
  1049. package/dist/helpers/downloadContent.js.map +1 -1
  1050. package/dist/helpers/error.js +2 -0
  1051. package/dist/helpers/error.js.map +1 -1
  1052. package/dist/helpers/functions.js +2 -0
  1053. package/dist/helpers/functions.js.map +1 -1
  1054. package/dist/helpers/index.js +2 -0
  1055. package/dist/helpers/index.js.map +1 -1
  1056. package/dist/helpers/iterators.js +2 -0
  1057. package/dist/helpers/iterators.js.map +1 -1
  1058. package/dist/helpers/math.js +2 -0
  1059. package/dist/helpers/math.js.map +1 -1
  1060. package/dist/helpers/objects.js +2 -0
  1061. package/dist/helpers/objects.js.map +1 -1
  1062. package/dist/helpers/utils.js +2 -0
  1063. package/dist/helpers/utils.js.map +1 -1
  1064. package/dist/index.js +2 -0
  1065. package/dist/index.js.map +1 -1
  1066. package/dist/layout/PlBlockPage/PlBlockPage.js +1 -0
  1067. package/dist/layout/PlBlockPage/PlBlockPage.style.js +1 -0
  1068. package/dist/layout/PlBlockPage/PlBlockPage.vue2.js +2 -0
  1069. package/dist/layout/PlBlockPage/PlBlockPage.vue2.js.map +1 -1
  1070. package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportTarget.js +3 -1
  1071. package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportTarget.js.map +1 -1
  1072. package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js +2 -0
  1073. package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js.map +1 -1
  1074. package/dist/layout/PlContainer/PlContainer.js +2 -0
  1075. package/dist/layout/PlContainer/PlContainer.vue2.js +1 -0
  1076. package/dist/layout/PlGrid/PlGrid.js +2 -0
  1077. package/dist/layout/PlGrid/PlGrid.vue2.js +1 -0
  1078. package/dist/layout/PlPlaceholder/PlPlaceholder.js +1 -0
  1079. package/dist/layout/PlPlaceholder/PlPlaceholder.style.js +1 -0
  1080. package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js +2 -0
  1081. package/dist/layout/PlPlaceholder/PlPlaceholder.vue2.js.map +1 -1
  1082. package/dist/layout/PlPlaceholder/index.js +3 -1
  1083. package/dist/layout/PlPlaceholder/index.js.map +1 -1
  1084. package/dist/layout/PlPlaceholder/paint-worklet.js +2 -0
  1085. package/dist/layout/PlPlaceholder/paint-worklet.js.map +1 -1
  1086. package/dist/layout/PlRow/PlRow.js +2 -0
  1087. package/dist/layout/PlRow/PlRow.vue2.js +1 -0
  1088. package/dist/layout/PlSpacer/PlSpacer.js +2 -0
  1089. package/dist/layout/PlSpacer/PlSpacer.vue2.js +2 -0
  1090. package/dist/layout/PlSpacer/PlSpacer.vue2.js.map +1 -1
  1091. package/dist/utils/DoubleContour.js +2 -0
  1092. package/dist/utils/DoubleContour.js.map +1 -1
  1093. package/dist/utils/DoubleContour.vue2.js +3 -1
  1094. package/dist/utils/DoubleContour.vue2.js.map +1 -1
  1095. package/dist/utils/DropdownOverlay/DropdownOverlay.js +2 -0
  1096. package/dist/utils/DropdownOverlay/DropdownOverlay.vue2.js +2 -0
  1097. package/dist/utils/DropdownOverlay/DropdownOverlay.vue2.js.map +1 -1
  1098. package/dist/utils/InnerBorder.js +2 -0
  1099. package/dist/utils/InnerBorder.js.map +1 -1
  1100. package/dist/utils/InnerBorder.vue2.js +2 -0
  1101. package/dist/utils/InnerBorder.vue2.js.map +1 -1
  1102. package/dist/utils/PlCloseModalBtn.js +2 -0
  1103. package/dist/utils/PlCloseModalBtn.js.map +1 -1
  1104. package/dist/utils/PlCloseModalBtn.style.js +1 -0
  1105. package/dist/utils/TextLabel.js +2 -0
  1106. package/dist/utils/TextLabel.js.map +1 -1
  1107. package/dist/utils/TextLabel.style.js +1 -0
  1108. package/dist/utils/useLabelNotch.js +2 -3
  1109. package/dist/utils/useLabelNotch.js.map +1 -1
  1110. package/dist/utils/useValidation.js +2 -0
  1111. package/dist/utils/useValidation.js.map +1 -1
  1112. package/package.json +6 -6
  1113. package/src/components/PlNumberField/PlNumberField.vue +1 -1
  1114. package/src/components/PlTextField/PlTextField.vue +8 -8
  1115. package/src/utils/DoubleContour.vue +2 -2
@@ -1,5 +1,6 @@
1
1
  import { useEventListener as e } from "./useEventListener.js";
2
2
  import { unref as t } from "vue";
3
+ //#region src/composition/useMouseCapture.ts
3
4
  function n(n, r) {
4
5
  let i = {
5
6
  el: void 0,
@@ -22,6 +23,7 @@ function n(n, r) {
22
23
  i.el && r(a(e), i);
23
24
  });
24
25
  }
26
+ //#endregion
25
27
  export { n as useMouseCapture };
26
28
 
27
29
  //# sourceMappingURL=useMouseCapture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMouseCapture.js","names":[],"sources":["../../src/composition/useMouseCapture.ts"],"sourcesContent":["import type { MaybeRef } from \"../types\";\nimport { unref } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\n\ntype CustomEvent = {\n x: number;\n y: number;\n dx: number;\n dy: number;\n stop?: boolean;\n};\n\ntype CaptureState = {\n el: HTMLElement | undefined;\n x: number;\n y: number;\n};\n\nexport function useMouseCapture<T extends HTMLElement>(\n elRef: MaybeRef<T | undefined>,\n cb: (ev: CustomEvent, state: CaptureState) => void,\n) {\n const state: CaptureState = {\n el: undefined as HTMLElement | undefined,\n x: 0,\n y: 0,\n };\n\n const createCustom = (ev: MouseEvent) => ({\n x: ev.x,\n y: ev.y,\n dx: ev.x - state.x,\n dy: ev.y - state.y,\n });\n\n useEventListener(document, \"mousedown\", (ev) => {\n if (ev.target === unref(elRef)) {\n // disable selection when moving\n if (ev.stopPropagation) ev.stopPropagation();\n if (ev.preventDefault) ev.preventDefault();\n state.el = unref(elRef);\n state.x = ev.x;\n state.y = ev.y;\n }\n });\n\n useEventListener(document, \"mouseup\", (ev) => {\n if (!state.el) {\n return;\n }\n\n state.el = undefined;\n\n cb(\n {\n ...createCustom(ev),\n stop: true,\n },\n state,\n );\n });\n\n useEventListener(document, \"mousemove\", (ev) => {\n if (state.el) {\n cb(createCustom(ev), state);\n }\n });\n}\n"],"mappings":";;AAkBA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAsB;EAC1B,IAAI,KAAA;EACJ,GAAG;EACH,GAAG;EACJ,EAEK,KAAgB,OAAoB;EACxC,GAAG,EAAG;EACN,GAAG,EAAG;EACN,IAAI,EAAG,IAAI,EAAM;EACjB,IAAI,EAAG,IAAI,EAAM;EAClB;AA6BD,CA3BA,EAAiB,UAAU,cAAc,MAAO;AAC9C,EAAI,EAAG,WAAW,EAAM,EAAM,KAExB,EAAG,mBAAiB,EAAG,iBAAiB,EACxC,EAAG,kBAAgB,EAAG,gBAAgB,EAC1C,EAAM,KAAK,EAAM,EAAM,EACvB,EAAM,IAAI,EAAG,GACb,EAAM,IAAI,EAAG;GAEf,EAEF,EAAiB,UAAU,YAAY,MAAO;AACvC,IAAM,OAIX,EAAM,KAAK,KAAA,GAEX,EACE;GACE,GAAG,EAAa,EAAG;GACnB,MAAM;GACP,EACD,EACD;GACD,EAEF,EAAiB,UAAU,cAAc,MAAO;AAC9C,EAAI,EAAM,MACR,EAAG,EAAa,EAAG,EAAE,EAAM;GAE7B"}
1
+ {"version":3,"file":"useMouseCapture.js","names":[],"sources":["../../src/composition/useMouseCapture.ts"],"sourcesContent":["import type { MaybeRef } from \"../types\";\nimport { unref } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\n\ntype CustomEvent = {\n x: number;\n y: number;\n dx: number;\n dy: number;\n stop?: boolean;\n};\n\ntype CaptureState = {\n el: HTMLElement | undefined;\n x: number;\n y: number;\n};\n\nexport function useMouseCapture<T extends HTMLElement>(\n elRef: MaybeRef<T | undefined>,\n cb: (ev: CustomEvent, state: CaptureState) => void,\n) {\n const state: CaptureState = {\n el: undefined as HTMLElement | undefined,\n x: 0,\n y: 0,\n };\n\n const createCustom = (ev: MouseEvent) => ({\n x: ev.x,\n y: ev.y,\n dx: ev.x - state.x,\n dy: ev.y - state.y,\n });\n\n useEventListener(document, \"mousedown\", (ev) => {\n if (ev.target === unref(elRef)) {\n // disable selection when moving\n if (ev.stopPropagation) ev.stopPropagation();\n if (ev.preventDefault) ev.preventDefault();\n state.el = unref(elRef);\n state.x = ev.x;\n state.y = ev.y;\n }\n });\n\n useEventListener(document, \"mouseup\", (ev) => {\n if (!state.el) {\n return;\n }\n\n state.el = undefined;\n\n cb(\n {\n ...createCustom(ev),\n stop: true,\n },\n state,\n );\n });\n\n useEventListener(document, \"mousemove\", (ev) => {\n if (state.el) {\n cb(createCustom(ev), state);\n }\n });\n}\n"],"mappings":";;;AAkBA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAsB;EAC1B,IAAI,KAAA;EACJ,GAAG;EACH,GAAG;EACJ,EAEK,KAAgB,OAAoB;EACxC,GAAG,EAAG;EACN,GAAG,EAAG;EACN,IAAI,EAAG,IAAI,EAAM;EACjB,IAAI,EAAG,IAAI,EAAM;EAClB;AA6BD,CA3BA,EAAiB,UAAU,cAAc,MAAO;AAC9C,EAAI,EAAG,WAAW,EAAM,EAAM,KAExB,EAAG,mBAAiB,EAAG,iBAAiB,EACxC,EAAG,kBAAgB,EAAG,gBAAgB,EAC1C,EAAM,KAAK,EAAM,EAAM,EACvB,EAAM,IAAI,EAAG,GACb,EAAM,IAAI,EAAG;GAEf,EAEF,EAAiB,UAAU,YAAY,MAAO;AACvC,IAAM,OAIX,EAAM,KAAK,KAAA,GAEX,EACE;GACE,GAAG,EAAa,EAAG;GACnB,MAAM;GACP,EACD,EACD;GACD,EAEF,EAAiB,UAAU,cAAc,MAAO;AAC9C,EAAI,EAAM,MACR,EAAG,EAAa,EAAG,EAAE,EAAM;GAE7B"}
@@ -1,95 +1,11 @@
1
1
  import { onScopeDispose as e, readonly as t, ref as n, shallowRef as r, toValue as i, watch as a } from "vue";
2
+ //#region src/composition/usePollingQuery.ts
2
3
  var o = /* @__PURE__ */ function(e) {
3
4
  return e.Normal = "normal", e.External = "external", e;
4
5
  }(o || {});
5
6
  function s(e) {
6
7
  return e instanceof Error ? e : Error(typeof e == "string" ? e : JSON.stringify(e));
7
8
  }
8
- /**
9
- * Repeatedly executes an asynchronous query while tracking arguments, state transitions,
10
- * and result freshness.
11
- *
12
- * @remarks
13
- *
14
- * ### Typical usage
15
- *
16
- * ```ts
17
- * const args = ref({ id: 'item-1' });
18
- * const { data, pause, resume, lastError } = usePollingQuery(args, fetchItem, {
19
- * minInterval: 5_000,
20
- * minDelay: 250,
21
- * });
22
- * ```
23
- *
24
- * The composable polls `fetchItem` while `resume()`d. Whenever the `args` ref changes the current
25
- * request is aborted, the status becomes `'stale'`, and a new poll is scheduled after the optional
26
- * debounce period and the configured timing constraints. Results from older requests are ignored
27
- * through version tracking, ensuring consumers only observe the freshest payload.
28
- *
29
- * ### Timing behaviour
30
- *
31
- * - `minInterval` defines the minimum duration between the start times of consecutive polls.
32
- * - `minDelay` (optional) enforces a minimum wait time between a poll finishing and the next poll starting.
33
- * - After each poll completes, the next poll is scheduled `max(minInterval - elapsed, minDelay)` ms later.
34
- * - When arguments change, the next poll still respects both constraints while also honouring the debounce.
35
- *
36
- * ### Abort handling
37
- *
38
- * Each poll receives a dedicated `AbortSignal`. The signal is aborted when pausing, disposing
39
- * the scope, or when the arguments ref changes. Queries should surface aborts by listening to
40
- * the signal. Aborted requests may settle later; outdated results are discarded via version checks.
41
- *
42
- * ### Pause, resume, and callback control
43
- *
44
- * - `pause()` stops future polls, clears pending timeouts, and aborts in-flight requests.
45
- * - `resume()` is idempotent; it reactivates polling only when currently inactive.
46
- * - The callback receives a bound `pause()` helper for conditional pausing.
47
- *
48
- * ### Error handling
49
- *
50
- * Errors bubble into `lastError`; they reset on the next successful poll or when `resume()`
51
- * transitions from inactive to active. With `pauseOnError: true` the composable pauses automatically.
52
- *
53
- * ### Argument tracking
54
- *
55
- * - Initial state is `{ status: 'idle' }`.
56
- * - Argument changes mark the status `'stale'` when a prior result exists; otherwise it stays `'idle'`.
57
- * - A successful poll for the latest arguments marks the status `'synced'` and updates `value`.
58
- *
59
- * ### Request versioning and concurrency
60
- *
61
- * Each poll increments an internal version counter. Only the latest version updates shared state,
62
- * preventing stale results from overwriting fresh data. `maxInFlightRequests` limits concurrent
63
- * polls; values > 1 allow the next poll to begin even if aborted requests are still settling, while
64
- * still capping total concurrency to protect upstream services.
65
- *
66
- * ### Debouncing
67
- *
68
- * Use `debounce` to accumulate rapid argument changes. The status still transitions to `'stale'`
69
- * immediately, all running polls are aborted, and the new poll waits for the debounce window
70
- * (and the timing constraints) before executing.
71
- *
72
- * ### Options
73
- *
74
- * - `minInterval` — required; must be positive. Zero or negative disables polling (`resume()` no-op). Accepts refs.
75
- * - `minDelay` — optional delay after completion before the next poll may start. Accepts refs.
76
- * - `autoStart` — start in active mode (default `true`).
77
- * - `triggerOnResume` — run the callback immediately on `resume()` (default `false`).
78
- * - `pauseOnError` — automatically pauses when the callback throws (default `false`).
79
- * - `maxInFlightRequests` — maximum concurrent polls (default `1`).
80
- * - `debounce` — debounce window for argument changes in milliseconds (default `0`).
81
- *
82
- * ### Returns
83
- *
84
- * - `data` — readonly ref of `{ status, value }`.
85
- * - `lastError` — readonly ref of the latest error (or `null`).
86
- * - `isActive` — readonly ref indicating active polling.
87
- * - `inFlightCount` — readonly ref with the number of active requests.
88
- * - `pause()` and `resume()` controls.
89
- *
90
- * @typeParam Args - Arguments shape passed to the polling callback.
91
- * @typeParam Result - Result type produced by the polling callback.
92
- */
93
9
  function c(c, l, u) {
94
10
  let d = {
95
11
  minInterval: u.minInterval,
@@ -150,15 +66,15 @@ function c(c, l, u) {
150
66
  }
151
67
  let a = new AbortController(), o = ++v;
152
68
  E.set(o, a), b.value += 1;
153
- let c = f(), u = Date.now();
154
- w = Math.max(w, u + c);
155
- let S = !1, C = () => {
156
- S || (S = !0, U());
69
+ let c = f();
70
+ w = Math.max(w, Date.now() + c);
71
+ let u = !1, S = () => {
72
+ u || (u = !0, U());
157
73
  };
158
74
  try {
159
75
  let e = await l(r, {
160
76
  signal: a.signal,
161
- pause: C
77
+ pause: S
162
78
  });
163
79
  a.signal.aborted || o === v && i === y && (g.value = null, h.value = {
164
80
  status: "synced",
@@ -167,10 +83,10 @@ function c(c, l, u) {
167
83
  } catch (e) {
168
84
  a.signal.aborted || (o === v && (g.value = s(e)), d.pauseOnError && U());
169
85
  } finally {
170
- let e = p(), t = Date.now();
171
- T = Math.max(T, t + e), E.delete(o), b.value = Math.max(0, b.value - 1), N();
172
- let n = D.get(o);
173
- n && D.delete(o), _.value && !x && n !== "args" && z();
86
+ let e = p();
87
+ T = Math.max(T, Date.now() + e), E.delete(o), b.value = Math.max(0, b.value - 1), N();
88
+ let t = D.get(o);
89
+ t && D.delete(o), _.value && !x && t !== "args" && z();
174
90
  }
175
91
  }, V = (e = o.External) => {
176
92
  !_.value || x || !m() || z(0, e);
@@ -207,6 +123,7 @@ function c(c, l, u) {
207
123
  resume: W
208
124
  };
209
125
  }
126
+ //#endregion
210
127
  export { c as usePollingQuery };
211
128
 
212
129
  //# sourceMappingURL=usePollingQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePollingQuery.js","names":[],"sources":["../../src/composition/usePollingQuery.ts"],"sourcesContent":["import type { MaybeRef, WatchSource } from \"vue\";\nimport { onScopeDispose, readonly, ref, shallowRef, toValue, watch } from \"vue\";\n\ntype AbortReason = \"args\" | \"pause\" | \"dispose\";\n\ntype PollingData<Result> =\n | { status: \"idle\" }\n | { status: \"synced\"; value: Result }\n | { status: \"stale\"; value: Result };\n\ninterface InternalOptions {\n minInterval: MaybeRef<number>;\n minDelay: MaybeRef<number | undefined>;\n autoStart: boolean;\n triggerOnResume: boolean;\n pauseOnError: boolean;\n maxInFlightRequests: number;\n debounce: number;\n}\n\ninterface Waiter {\n resolve: () => void;\n}\n\nconst enum ScheduleSource {\n Normal = \"normal\",\n External = \"external\",\n}\n\nfunction toError(error: unknown): Error {\n if (error instanceof Error) return error;\n return new Error(typeof error === \"string\" ? error : JSON.stringify(error));\n}\n\n/**\n * Repeatedly executes an asynchronous query while tracking arguments, state transitions,\n * and result freshness.\n *\n * @remarks\n *\n * ### Typical usage\n *\n * ```ts\n * const args = ref({ id: 'item-1' });\n * const { data, pause, resume, lastError } = usePollingQuery(args, fetchItem, {\n * minInterval: 5_000,\n * minDelay: 250,\n * });\n * ```\n *\n * The composable polls `fetchItem` while `resume()`d. Whenever the `args` ref changes the current\n * request is aborted, the status becomes `'stale'`, and a new poll is scheduled after the optional\n * debounce period and the configured timing constraints. Results from older requests are ignored\n * through version tracking, ensuring consumers only observe the freshest payload.\n *\n * ### Timing behaviour\n *\n * - `minInterval` defines the minimum duration between the start times of consecutive polls.\n * - `minDelay` (optional) enforces a minimum wait time between a poll finishing and the next poll starting.\n * - After each poll completes, the next poll is scheduled `max(minInterval - elapsed, minDelay)` ms later.\n * - When arguments change, the next poll still respects both constraints while also honouring the debounce.\n *\n * ### Abort handling\n *\n * Each poll receives a dedicated `AbortSignal`. The signal is aborted when pausing, disposing\n * the scope, or when the arguments ref changes. Queries should surface aborts by listening to\n * the signal. Aborted requests may settle later; outdated results are discarded via version checks.\n *\n * ### Pause, resume, and callback control\n *\n * - `pause()` stops future polls, clears pending timeouts, and aborts in-flight requests.\n * - `resume()` is idempotent; it reactivates polling only when currently inactive.\n * - The callback receives a bound `pause()` helper for conditional pausing.\n *\n * ### Error handling\n *\n * Errors bubble into `lastError`; they reset on the next successful poll or when `resume()`\n * transitions from inactive to active. With `pauseOnError: true` the composable pauses automatically.\n *\n * ### Argument tracking\n *\n * - Initial state is `{ status: 'idle' }`.\n * - Argument changes mark the status `'stale'` when a prior result exists; otherwise it stays `'idle'`.\n * - A successful poll for the latest arguments marks the status `'synced'` and updates `value`.\n *\n * ### Request versioning and concurrency\n *\n * Each poll increments an internal version counter. Only the latest version updates shared state,\n * preventing stale results from overwriting fresh data. `maxInFlightRequests` limits concurrent\n * polls; values > 1 allow the next poll to begin even if aborted requests are still settling, while\n * still capping total concurrency to protect upstream services.\n *\n * ### Debouncing\n *\n * Use `debounce` to accumulate rapid argument changes. The status still transitions to `'stale'`\n * immediately, all running polls are aborted, and the new poll waits for the debounce window\n * (and the timing constraints) before executing.\n *\n * ### Options\n *\n * - `minInterval` — required; must be positive. Zero or negative disables polling (`resume()` no-op). Accepts refs.\n * - `minDelay` — optional delay after completion before the next poll may start. Accepts refs.\n * - `autoStart` — start in active mode (default `true`).\n * - `triggerOnResume` — run the callback immediately on `resume()` (default `false`).\n * - `pauseOnError` — automatically pauses when the callback throws (default `false`).\n * - `maxInFlightRequests` — maximum concurrent polls (default `1`).\n * - `debounce` — debounce window for argument changes in milliseconds (default `0`).\n *\n * ### Returns\n *\n * - `data` — readonly ref of `{ status, value }`.\n * - `lastError` — readonly ref of the latest error (or `null`).\n * - `isActive` — readonly ref indicating active polling.\n * - `inFlightCount` — readonly ref with the number of active requests.\n * - `pause()` and `resume()` controls.\n *\n * @typeParam Args - Arguments shape passed to the polling callback.\n * @typeParam Result - Result type produced by the polling callback.\n */\nexport function usePollingQuery<Args, Result>(\n args: WatchSource<Args>,\n queryFn: (args: Args, options: { signal: AbortSignal; pause: () => void }) => Promise<Result>,\n options: {\n minInterval: MaybeRef<number>;\n minDelay?: MaybeRef<number | undefined>;\n autoStart?: boolean;\n triggerOnResume?: boolean;\n pauseOnError?: boolean;\n maxInFlightRequests?: number;\n debounce?: number;\n },\n) {\n const internal: InternalOptions = {\n minInterval: options.minInterval,\n minDelay: options.minDelay ?? 0,\n autoStart: options.autoStart ?? true,\n triggerOnResume: options.triggerOnResume ?? false,\n pauseOnError: options.pauseOnError ?? false,\n maxInFlightRequests: Math.max(1, options.maxInFlightRequests ?? 1),\n debounce: Math.max(0, options.debounce ?? 0),\n };\n\n const resolveMinInterval = () => Math.max(0, toValue(internal.minInterval));\n const resolveMinDelay = () => {\n const raw = internal.minDelay === undefined ? undefined : toValue(internal.minDelay);\n return Math.max(0, raw ?? 0);\n };\n const canRun = () => resolveMinInterval() > 0;\n\n const data = shallowRef<PollingData<Result>>({ status: \"idle\" });\n const lastError = ref<Error | null>(null);\n const isActive = ref(false);\n\n let latestVersion = 0;\n let argsVersion = 0;\n const inFlightCount = ref(0);\n let disposed = false;\n\n let scheduledTimeout: ReturnType<typeof setTimeout> | null = null;\n let debounceTimeout: ReturnType<typeof setTimeout> | null = null;\n\n let nextMinIntervalStart = 0;\n let nextMinDelayStart = 0;\n\n const controllers = new Map<number, AbortController>();\n const abortReasons = new Map<number, AbortReason>();\n const waiters: Waiter[] = [];\n\n let currentArgs: Args;\n let hasCurrentArgs = false;\n\n const setCurrentArgs = (value: Args) => {\n currentArgs = value;\n hasCurrentArgs = true;\n };\n\n const markStale = () => {\n if (data.value.status === \"synced\" || data.value.status === \"stale\") {\n const { value } = data.value;\n data.value = { status: \"stale\", value };\n }\n };\n\n const scheduleWaiters = () => {\n if (waiters.length === 0) return;\n const waiter = waiters.shift();\n waiter?.resolve();\n };\n\n const waitForSlot = async () => {\n if (inFlightCount.value < internal.maxInFlightRequests) return;\n await new Promise<void>((resolve) => {\n waiters.push({ resolve });\n });\n };\n\n const clearScheduled = () => {\n if (scheduledTimeout !== null) {\n clearTimeout(scheduledTimeout);\n scheduledTimeout = null;\n }\n };\n\n const clearDebounce = () => {\n if (debounceTimeout !== null) {\n clearTimeout(debounceTimeout);\n debounceTimeout = null;\n }\n };\n\n const abortAll = (reason: AbortReason) => {\n controllers.forEach((controller, version) => {\n if (!controller.signal.aborted) {\n abortReasons.set(version, reason);\n controller.abort();\n }\n });\n };\n\n const computeDelay = (requestedDelay = 0) => {\n const now = Date.now();\n const earliest = Math.max(nextMinIntervalStart, nextMinDelayStart);\n const baseDelay = earliest > now ? earliest - now : 0;\n return Math.max(0, requestedDelay, baseDelay);\n };\n\n const queueExecution = (requestedDelay = 0, source: ScheduleSource = ScheduleSource.Normal) => {\n if (!isActive.value || !canRun() || disposed) return;\n const delay = computeDelay(requestedDelay);\n\n if (scheduledTimeout !== null) {\n clearTimeout(scheduledTimeout);\n }\n\n scheduledTimeout = setTimeout(() => {\n scheduledTimeout = null;\n void runExecution(source);\n }, delay);\n };\n\n const runExecution = async (source: ScheduleSource) => {\n if (!isActive.value || disposed || !canRun()) return;\n\n const now = Date.now();\n const earliest = Math.max(nextMinIntervalStart, nextMinDelayStart);\n if (now < earliest) {\n queueExecution(earliest - now, source);\n return;\n }\n\n if (!hasCurrentArgs) return;\n\n const argsSnapshot = currentArgs;\n const assignedArgsVersion = argsVersion;\n\n await waitForSlot();\n\n if (!isActive.value || disposed || !canRun()) {\n scheduleWaiters();\n return;\n }\n\n const controller = new AbortController();\n const version = ++latestVersion;\n\n controllers.set(version, controller);\n inFlightCount.value += 1;\n\n const minInterval = resolveMinInterval();\n const startTime = Date.now();\n nextMinIntervalStart = Math.max(nextMinIntervalStart, startTime + minInterval);\n\n let pausedByCallback = false;\n\n const pauseFromCallback = () => {\n if (pausedByCallback) return;\n pausedByCallback = true;\n pause();\n };\n\n try {\n const result = await queryFn(argsSnapshot, {\n signal: controller.signal,\n pause: pauseFromCallback,\n });\n if (!controller.signal.aborted) {\n if (version === latestVersion && assignedArgsVersion === argsVersion) {\n lastError.value = null;\n data.value = { status: \"synced\", value: result };\n }\n }\n } catch (error) {\n if (controller.signal.aborted) {\n // ignore abort errors\n } else {\n if (version === latestVersion) {\n lastError.value = toError(error);\n }\n\n if (internal.pauseOnError) {\n pause();\n }\n }\n } finally {\n const minDelay = resolveMinDelay();\n const finishTime = Date.now();\n nextMinDelayStart = Math.max(nextMinDelayStart, finishTime + minDelay);\n\n controllers.delete(version);\n inFlightCount.value = Math.max(0, inFlightCount.value - 1);\n scheduleWaiters();\n\n const reason = abortReasons.get(version);\n if (reason) {\n abortReasons.delete(version);\n }\n\n const shouldSchedule = isActive.value && !disposed && reason !== \"args\";\n\n if (shouldSchedule) {\n queueExecution();\n }\n }\n };\n\n const triggerExecution = (source: ScheduleSource = ScheduleSource.External) => {\n if (!isActive.value || disposed || !canRun()) return;\n queueExecution(0, source);\n };\n\n const handleArgsChange = () => {\n argsVersion += 1;\n markStale();\n abortAll(\"args\");\n\n if (!isActive.value || !canRun()) {\n return;\n }\n\n const schedule = () => {\n triggerExecution(ScheduleSource.External);\n };\n\n if (internal.debounce > 0) {\n clearDebounce();\n debounceTimeout = setTimeout(() => {\n debounceTimeout = null;\n schedule();\n }, internal.debounce);\n } else {\n schedule();\n }\n };\n\n const pause = () => {\n if (!isActive.value) return;\n isActive.value = false;\n clearScheduled();\n clearDebounce();\n abortAll(\"pause\");\n nextMinIntervalStart = Date.now();\n nextMinDelayStart = Date.now();\n };\n\n const resume = () => {\n if (!canRun()) return;\n if (isActive.value) return;\n if (!hasCurrentArgs) return;\n isActive.value = true;\n lastError.value = null;\n\n const now = Date.now();\n nextMinIntervalStart = now;\n nextMinDelayStart = now;\n\n if (internal.triggerOnResume) {\n triggerExecution(ScheduleSource.External);\n } else {\n queueExecution(resolveMinInterval(), ScheduleSource.External);\n }\n };\n\n onScopeDispose(() => {\n disposed = true;\n clearScheduled();\n clearDebounce();\n abortAll(\"dispose\");\n isActive.value = false;\n waiters.splice(0, waiters.length).forEach(({ resolve }) => resolve());\n });\n\n watch(\n args,\n (value) => {\n const initial = !hasCurrentArgs;\n setCurrentArgs(value);\n if (initial) {\n return;\n }\n handleArgsChange();\n },\n { flush: \"sync\", immediate: true },\n );\n\n if (internal.autoStart && canRun()) {\n resume();\n }\n\n return {\n data: readonly(data),\n lastError: readonly(lastError),\n isActive: readonly(isActive),\n inFlightCount: readonly(inFlightCount),\n pause,\n resume,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"usePollingQuery.js","names":[],"sources":["../../src/composition/usePollingQuery.ts"],"sourcesContent":["import type { MaybeRef, WatchSource } from \"vue\";\nimport { onScopeDispose, readonly, ref, shallowRef, toValue, watch } from \"vue\";\n\ntype AbortReason = \"args\" | \"pause\" | \"dispose\";\n\ntype PollingData<Result> =\n | { status: \"idle\" }\n | { status: \"synced\"; value: Result }\n | { status: \"stale\"; value: Result };\n\ninterface InternalOptions {\n minInterval: MaybeRef<number>;\n minDelay: MaybeRef<number | undefined>;\n autoStart: boolean;\n triggerOnResume: boolean;\n pauseOnError: boolean;\n maxInFlightRequests: number;\n debounce: number;\n}\n\ninterface Waiter {\n resolve: () => void;\n}\n\nconst enum ScheduleSource {\n Normal = \"normal\",\n External = \"external\",\n}\n\nfunction toError(error: unknown): Error {\n if (error instanceof Error) return error;\n return new Error(typeof error === \"string\" ? error : JSON.stringify(error));\n}\n\n/**\n * Repeatedly executes an asynchronous query while tracking arguments, state transitions,\n * and result freshness.\n *\n * @remarks\n *\n * ### Typical usage\n *\n * ```ts\n * const args = ref({ id: 'item-1' });\n * const { data, pause, resume, lastError } = usePollingQuery(args, fetchItem, {\n * minInterval: 5_000,\n * minDelay: 250,\n * });\n * ```\n *\n * The composable polls `fetchItem` while `resume()`d. Whenever the `args` ref changes the current\n * request is aborted, the status becomes `'stale'`, and a new poll is scheduled after the optional\n * debounce period and the configured timing constraints. Results from older requests are ignored\n * through version tracking, ensuring consumers only observe the freshest payload.\n *\n * ### Timing behaviour\n *\n * - `minInterval` defines the minimum duration between the start times of consecutive polls.\n * - `minDelay` (optional) enforces a minimum wait time between a poll finishing and the next poll starting.\n * - After each poll completes, the next poll is scheduled `max(minInterval - elapsed, minDelay)` ms later.\n * - When arguments change, the next poll still respects both constraints while also honouring the debounce.\n *\n * ### Abort handling\n *\n * Each poll receives a dedicated `AbortSignal`. The signal is aborted when pausing, disposing\n * the scope, or when the arguments ref changes. Queries should surface aborts by listening to\n * the signal. Aborted requests may settle later; outdated results are discarded via version checks.\n *\n * ### Pause, resume, and callback control\n *\n * - `pause()` stops future polls, clears pending timeouts, and aborts in-flight requests.\n * - `resume()` is idempotent; it reactivates polling only when currently inactive.\n * - The callback receives a bound `pause()` helper for conditional pausing.\n *\n * ### Error handling\n *\n * Errors bubble into `lastError`; they reset on the next successful poll or when `resume()`\n * transitions from inactive to active. With `pauseOnError: true` the composable pauses automatically.\n *\n * ### Argument tracking\n *\n * - Initial state is `{ status: 'idle' }`.\n * - Argument changes mark the status `'stale'` when a prior result exists; otherwise it stays `'idle'`.\n * - A successful poll for the latest arguments marks the status `'synced'` and updates `value`.\n *\n * ### Request versioning and concurrency\n *\n * Each poll increments an internal version counter. Only the latest version updates shared state,\n * preventing stale results from overwriting fresh data. `maxInFlightRequests` limits concurrent\n * polls; values > 1 allow the next poll to begin even if aborted requests are still settling, while\n * still capping total concurrency to protect upstream services.\n *\n * ### Debouncing\n *\n * Use `debounce` to accumulate rapid argument changes. The status still transitions to `'stale'`\n * immediately, all running polls are aborted, and the new poll waits for the debounce window\n * (and the timing constraints) before executing.\n *\n * ### Options\n *\n * - `minInterval` — required; must be positive. Zero or negative disables polling (`resume()` no-op). Accepts refs.\n * - `minDelay` — optional delay after completion before the next poll may start. Accepts refs.\n * - `autoStart` — start in active mode (default `true`).\n * - `triggerOnResume` — run the callback immediately on `resume()` (default `false`).\n * - `pauseOnError` — automatically pauses when the callback throws (default `false`).\n * - `maxInFlightRequests` — maximum concurrent polls (default `1`).\n * - `debounce` — debounce window for argument changes in milliseconds (default `0`).\n *\n * ### Returns\n *\n * - `data` — readonly ref of `{ status, value }`.\n * - `lastError` — readonly ref of the latest error (or `null`).\n * - `isActive` — readonly ref indicating active polling.\n * - `inFlightCount` — readonly ref with the number of active requests.\n * - `pause()` and `resume()` controls.\n *\n * @typeParam Args - Arguments shape passed to the polling callback.\n * @typeParam Result - Result type produced by the polling callback.\n */\nexport function usePollingQuery<Args, Result>(\n args: WatchSource<Args>,\n queryFn: (args: Args, options: { signal: AbortSignal; pause: () => void }) => Promise<Result>,\n options: {\n minInterval: MaybeRef<number>;\n minDelay?: MaybeRef<number | undefined>;\n autoStart?: boolean;\n triggerOnResume?: boolean;\n pauseOnError?: boolean;\n maxInFlightRequests?: number;\n debounce?: number;\n },\n) {\n const internal: InternalOptions = {\n minInterval: options.minInterval,\n minDelay: options.minDelay ?? 0,\n autoStart: options.autoStart ?? true,\n triggerOnResume: options.triggerOnResume ?? false,\n pauseOnError: options.pauseOnError ?? false,\n maxInFlightRequests: Math.max(1, options.maxInFlightRequests ?? 1),\n debounce: Math.max(0, options.debounce ?? 0),\n };\n\n const resolveMinInterval = () => Math.max(0, toValue(internal.minInterval));\n const resolveMinDelay = () => {\n const raw = internal.minDelay === undefined ? undefined : toValue(internal.minDelay);\n return Math.max(0, raw ?? 0);\n };\n const canRun = () => resolveMinInterval() > 0;\n\n const data = shallowRef<PollingData<Result>>({ status: \"idle\" });\n const lastError = ref<Error | null>(null);\n const isActive = ref(false);\n\n let latestVersion = 0;\n let argsVersion = 0;\n const inFlightCount = ref(0);\n let disposed = false;\n\n let scheduledTimeout: ReturnType<typeof setTimeout> | null = null;\n let debounceTimeout: ReturnType<typeof setTimeout> | null = null;\n\n let nextMinIntervalStart = 0;\n let nextMinDelayStart = 0;\n\n const controllers = new Map<number, AbortController>();\n const abortReasons = new Map<number, AbortReason>();\n const waiters: Waiter[] = [];\n\n let currentArgs: Args;\n let hasCurrentArgs = false;\n\n const setCurrentArgs = (value: Args) => {\n currentArgs = value;\n hasCurrentArgs = true;\n };\n\n const markStale = () => {\n if (data.value.status === \"synced\" || data.value.status === \"stale\") {\n const { value } = data.value;\n data.value = { status: \"stale\", value };\n }\n };\n\n const scheduleWaiters = () => {\n if (waiters.length === 0) return;\n const waiter = waiters.shift();\n waiter?.resolve();\n };\n\n const waitForSlot = async () => {\n if (inFlightCount.value < internal.maxInFlightRequests) return;\n await new Promise<void>((resolve) => {\n waiters.push({ resolve });\n });\n };\n\n const clearScheduled = () => {\n if (scheduledTimeout !== null) {\n clearTimeout(scheduledTimeout);\n scheduledTimeout = null;\n }\n };\n\n const clearDebounce = () => {\n if (debounceTimeout !== null) {\n clearTimeout(debounceTimeout);\n debounceTimeout = null;\n }\n };\n\n const abortAll = (reason: AbortReason) => {\n controllers.forEach((controller, version) => {\n if (!controller.signal.aborted) {\n abortReasons.set(version, reason);\n controller.abort();\n }\n });\n };\n\n const computeDelay = (requestedDelay = 0) => {\n const now = Date.now();\n const earliest = Math.max(nextMinIntervalStart, nextMinDelayStart);\n const baseDelay = earliest > now ? earliest - now : 0;\n return Math.max(0, requestedDelay, baseDelay);\n };\n\n const queueExecution = (requestedDelay = 0, source: ScheduleSource = ScheduleSource.Normal) => {\n if (!isActive.value || !canRun() || disposed) return;\n const delay = computeDelay(requestedDelay);\n\n if (scheduledTimeout !== null) {\n clearTimeout(scheduledTimeout);\n }\n\n scheduledTimeout = setTimeout(() => {\n scheduledTimeout = null;\n void runExecution(source);\n }, delay);\n };\n\n const runExecution = async (source: ScheduleSource) => {\n if (!isActive.value || disposed || !canRun()) return;\n\n const now = Date.now();\n const earliest = Math.max(nextMinIntervalStart, nextMinDelayStart);\n if (now < earliest) {\n queueExecution(earliest - now, source);\n return;\n }\n\n if (!hasCurrentArgs) return;\n\n const argsSnapshot = currentArgs;\n const assignedArgsVersion = argsVersion;\n\n await waitForSlot();\n\n if (!isActive.value || disposed || !canRun()) {\n scheduleWaiters();\n return;\n }\n\n const controller = new AbortController();\n const version = ++latestVersion;\n\n controllers.set(version, controller);\n inFlightCount.value += 1;\n\n const minInterval = resolveMinInterval();\n const startTime = Date.now();\n nextMinIntervalStart = Math.max(nextMinIntervalStart, startTime + minInterval);\n\n let pausedByCallback = false;\n\n const pauseFromCallback = () => {\n if (pausedByCallback) return;\n pausedByCallback = true;\n pause();\n };\n\n try {\n const result = await queryFn(argsSnapshot, {\n signal: controller.signal,\n pause: pauseFromCallback,\n });\n if (!controller.signal.aborted) {\n if (version === latestVersion && assignedArgsVersion === argsVersion) {\n lastError.value = null;\n data.value = { status: \"synced\", value: result };\n }\n }\n } catch (error) {\n if (controller.signal.aborted) {\n // ignore abort errors\n } else {\n if (version === latestVersion) {\n lastError.value = toError(error);\n }\n\n if (internal.pauseOnError) {\n pause();\n }\n }\n } finally {\n const minDelay = resolveMinDelay();\n const finishTime = Date.now();\n nextMinDelayStart = Math.max(nextMinDelayStart, finishTime + minDelay);\n\n controllers.delete(version);\n inFlightCount.value = Math.max(0, inFlightCount.value - 1);\n scheduleWaiters();\n\n const reason = abortReasons.get(version);\n if (reason) {\n abortReasons.delete(version);\n }\n\n const shouldSchedule = isActive.value && !disposed && reason !== \"args\";\n\n if (shouldSchedule) {\n queueExecution();\n }\n }\n };\n\n const triggerExecution = (source: ScheduleSource = ScheduleSource.External) => {\n if (!isActive.value || disposed || !canRun()) return;\n queueExecution(0, source);\n };\n\n const handleArgsChange = () => {\n argsVersion += 1;\n markStale();\n abortAll(\"args\");\n\n if (!isActive.value || !canRun()) {\n return;\n }\n\n const schedule = () => {\n triggerExecution(ScheduleSource.External);\n };\n\n if (internal.debounce > 0) {\n clearDebounce();\n debounceTimeout = setTimeout(() => {\n debounceTimeout = null;\n schedule();\n }, internal.debounce);\n } else {\n schedule();\n }\n };\n\n const pause = () => {\n if (!isActive.value) return;\n isActive.value = false;\n clearScheduled();\n clearDebounce();\n abortAll(\"pause\");\n nextMinIntervalStart = Date.now();\n nextMinDelayStart = Date.now();\n };\n\n const resume = () => {\n if (!canRun()) return;\n if (isActive.value) return;\n if (!hasCurrentArgs) return;\n isActive.value = true;\n lastError.value = null;\n\n const now = Date.now();\n nextMinIntervalStart = now;\n nextMinDelayStart = now;\n\n if (internal.triggerOnResume) {\n triggerExecution(ScheduleSource.External);\n } else {\n queueExecution(resolveMinInterval(), ScheduleSource.External);\n }\n };\n\n onScopeDispose(() => {\n disposed = true;\n clearScheduled();\n clearDebounce();\n abortAll(\"dispose\");\n isActive.value = false;\n waiters.splice(0, waiters.length).forEach(({ resolve }) => resolve());\n });\n\n watch(\n args,\n (value) => {\n const initial = !hasCurrentArgs;\n setCurrentArgs(value);\n if (initial) {\n return;\n }\n handleArgsChange();\n },\n { flush: \"sync\", immediate: true },\n );\n\n if (internal.autoStart && canRun()) {\n resume();\n }\n\n return {\n data: readonly(data),\n lastError: readonly(lastError),\n isActive: readonly(isActive),\n inFlightCount: readonly(inFlightCount),\n pause,\n resume,\n };\n}\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { useEventListener as e } from "./useEventListener.js";
2
2
  import { requestTick as t } from "../helpers/utils.js";
3
3
  import { onMounted as n } from "vue";
4
+ //#region src/composition/usePosition.ts
4
5
  function r(r, i) {
5
6
  let a = t(() => {
6
7
  if (r.value) {
@@ -30,6 +31,7 @@ function r(r, i) {
30
31
  passive: !0
31
32
  }), e(window, "resize", a, { passive: !0 }), e(window, "adjust", a, !0);
32
33
  }
34
+ //#endregion
33
35
  export { r as useElementPosition };
34
36
 
35
37
  //# sourceMappingURL=usePosition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePosition.js","names":[],"sources":["../../src/composition/usePosition.ts"],"sourcesContent":["import { type Ref, onMounted } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\nimport { requestTick } from \"../helpers/utils\";\nimport type { ElementPosition } from \"../types\";\n\nexport function useElementPosition(\n el: Ref<HTMLElement | undefined>,\n cb: (pos: ElementPosition) => void,\n) {\n const update = () => {\n if (el.value) {\n const { scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth } =\n document.documentElement;\n const rect = el.value.getBoundingClientRect();\n cb({\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n offsetY: scrollTop + rect.y,\n offsetX: scrollLeft + rect.x,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n x: rect.x,\n y: rect.y,\n });\n }\n };\n\n const handle = requestTick(update);\n\n onMounted(handle);\n\n useEventListener(window, \"scroll\", handle, { capture: true, passive: true });\n\n useEventListener(window, \"resize\", handle, { passive: true });\n\n useEventListener(window, \"adjust\", handle, true);\n}\n"],"mappings":";;;AAKA,SAAgB,EACd,GACA,GACA;CA2BA,IAAM,IAAS,QA1BM;AACnB,MAAI,EAAG,OAAO;GACZ,IAAM,EAAE,cAAW,eAAY,iBAAc,gBAAa,iBAAc,mBACtE,SAAS,iBACL,IAAO,EAAG,MAAM,uBAAuB;AAC7C,KAAG;IACD;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,IAAY,EAAK;IAC1B,SAAS,IAAa,EAAK;IAC3B,KAAK,EAAK;IACV,OAAO,EAAK;IACZ,QAAQ,EAAK;IACb,MAAM,EAAK;IACX,OAAO,EAAK;IACZ,QAAQ,EAAK;IACb,GAAG,EAAK;IACR,GAAG,EAAK;IACT,CAAC;;GAI4B;AAQlC,CANA,EAAU,EAAO,EAEjB,EAAiB,QAAQ,UAAU,GAAQ;EAAE,SAAS;EAAM,SAAS;EAAM,CAAC,EAE5E,EAAiB,QAAQ,UAAU,GAAQ,EAAE,SAAS,IAAM,CAAC,EAE7D,EAAiB,QAAQ,UAAU,GAAQ,GAAK"}
1
+ {"version":3,"file":"usePosition.js","names":[],"sources":["../../src/composition/usePosition.ts"],"sourcesContent":["import { type Ref, onMounted } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\nimport { requestTick } from \"../helpers/utils\";\nimport type { ElementPosition } from \"../types\";\n\nexport function useElementPosition(\n el: Ref<HTMLElement | undefined>,\n cb: (pos: ElementPosition) => void,\n) {\n const update = () => {\n if (el.value) {\n const { scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth } =\n document.documentElement;\n const rect = el.value.getBoundingClientRect();\n cb({\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n offsetY: scrollTop + rect.y,\n offsetX: scrollLeft + rect.x,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n x: rect.x,\n y: rect.y,\n });\n }\n };\n\n const handle = requestTick(update);\n\n onMounted(handle);\n\n useEventListener(window, \"scroll\", handle, { capture: true, passive: true });\n\n useEventListener(window, \"resize\", handle, { passive: true });\n\n useEventListener(window, \"adjust\", handle, true);\n}\n"],"mappings":";;;;AAKA,SAAgB,EACd,GACA,GACA;CA2BA,IAAM,IAAS,QA1BM;AACnB,MAAI,EAAG,OAAO;GACZ,IAAM,EAAE,cAAW,eAAY,iBAAc,gBAAa,iBAAc,mBACtE,SAAS,iBACL,IAAO,EAAG,MAAM,uBAAuB;AAC7C,KAAG;IACD;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,IAAY,EAAK;IAC1B,SAAS,IAAa,EAAK;IAC3B,KAAK,EAAK;IACV,OAAO,EAAK;IACZ,QAAQ,EAAK;IACb,MAAM,EAAK;IACX,OAAO,EAAK;IACZ,QAAQ,EAAK;IACb,GAAG,EAAK;IACR,GAAG,EAAK;IACT,CAAC;;GAI4B;AAQlC,CANA,EAAU,EAAO,EAEjB,EAAiB,QAAQ,UAAU,GAAQ;EAAE,SAAS;EAAM,SAAS;EAAM,CAAC,EAE5E,EAAiB,QAAQ,UAAU,GAAQ,EAAE,SAAS,IAAM,CAAC,EAE7D,EAAiB,QAAQ,UAAU,GAAQ,GAAK"}
@@ -1,5 +1,6 @@
1
1
  import { reactive as e } from "vue";
2
2
  import { debounce as t } from "@milaboratories/helpers";
3
+ //#region src/composition/useQuery.ts
3
4
  function n(n) {
4
5
  let r = e({
5
6
  isLoading: !1,
@@ -24,6 +25,7 @@ function n(n) {
24
25
  });
25
26
  return r.run = r.run.bind(r), r;
26
27
  }
28
+ //#endregion
27
29
  export { n as useQuery };
28
30
 
29
31
  //# sourceMappingURL=useQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.js","names":[],"sources":["../../src/composition/useQuery.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { debounce } from \"@milaboratories/helpers\";\n\nexport function useQuery<P extends unknown[], R>(fn: (...args: P) => Promise<R>) {\n const self = reactive({\n isLoading: false,\n result: undefined as R | undefined,\n error: undefined as unknown,\n async run(...args: P) {\n this.isLoading = true;\n this.error = undefined;\n try {\n this.result = await fn(...args);\n } catch (err: unknown) {\n this.error = err;\n } finally {\n this.isLoading = false;\n }\n },\n debounce(cb: () => P, dt = 1000) {\n return debounce(() => {\n const args = cb();\n this.run(...args).catch(console.error);\n }, dt);\n },\n });\n\n self.run = self.run.bind(self);\n\n return self;\n}\n"],"mappings":";;AAGA,SAAgB,EAAiC,GAAgC;CAC/E,IAAM,IAAO,EAAS;EACpB,WAAW;EACX,QAAQ,KAAA;EACR,OAAO,KAAA;EACP,MAAM,IAAI,GAAG,GAAS;AAEpB,GADA,KAAK,YAAY,IACjB,KAAK,QAAQ,KAAA;AACb,OAAI;AACF,SAAK,SAAS,MAAM,EAAG,GAAG,EAAK;YACxB,GAAc;AACrB,SAAK,QAAQ;aACL;AACR,SAAK,YAAY;;;EAGrB,SAAS,GAAa,IAAK,KAAM;AAC/B,UAAO,QAAe;IACpB,IAAM,IAAO,GAAI;AACjB,SAAK,IAAI,GAAG,EAAK,CAAC,MAAM,QAAQ,MAAM;MACrC,EAAG;;EAET,CAAC;AAIF,QAFA,EAAK,MAAM,EAAK,IAAI,KAAK,EAAK,EAEvB"}
1
+ {"version":3,"file":"useQuery.js","names":[],"sources":["../../src/composition/useQuery.ts"],"sourcesContent":["import { reactive } from \"vue\";\nimport { debounce } from \"@milaboratories/helpers\";\n\nexport function useQuery<P extends unknown[], R>(fn: (...args: P) => Promise<R>) {\n const self = reactive({\n isLoading: false,\n result: undefined as R | undefined,\n error: undefined as unknown,\n async run(...args: P) {\n this.isLoading = true;\n this.error = undefined;\n try {\n this.result = await fn(...args);\n } catch (err: unknown) {\n this.error = err;\n } finally {\n this.isLoading = false;\n }\n },\n debounce(cb: () => P, dt = 1000) {\n return debounce(() => {\n const args = cb();\n this.run(...args).catch(console.error);\n }, dt);\n },\n });\n\n self.run = self.run.bind(self);\n\n return self;\n}\n"],"mappings":";;;AAGA,SAAgB,EAAiC,GAAgC;CAC/E,IAAM,IAAO,EAAS;EACpB,WAAW;EACX,QAAQ,KAAA;EACR,OAAO,KAAA;EACP,MAAM,IAAI,GAAG,GAAS;AAEpB,GADA,KAAK,YAAY,IACjB,KAAK,QAAQ,KAAA;AACb,OAAI;AACF,SAAK,SAAS,MAAM,EAAG,GAAG,EAAK;YACxB,GAAc;AACrB,SAAK,QAAQ;aACL;AACR,SAAK,YAAY;;;EAGrB,SAAS,GAAa,IAAK,KAAM;AAC/B,UAAO,QAAe;IACpB,IAAM,IAAO,GAAI;AACjB,SAAK,IAAI,GAAG,EAAK,CAAC,MAAM,QAAQ,MAAM;MACrC,EAAG;;EAET,CAAC;AAIF,QAFA,EAAK,MAAM,EAAK,IAAI,KAAK,EAAK,EAEvB"}
@@ -2,6 +2,7 @@ import { tapIf as e } from "../helpers/functions.js";
2
2
  import { onChanged as t } from "./utils.js";
3
3
  import { startResizeObserving as n, stopResizeObserving as r } from "../global/resizeObserver.js";
4
4
  import { onUnmounted as i, unref as a } from "vue";
5
+ //#region src/composition/useResizeObserver.ts
5
6
  function o(o, s) {
6
7
  t(() => {
7
8
  e(a(o), (e) => {
@@ -13,6 +14,7 @@ function o(o, s) {
13
14
  });
14
15
  });
15
16
  }
17
+ //#endregion
16
18
  export { o as useResizeObserver };
17
19
 
18
20
  //# sourceMappingURL=useResizeObserver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.js","names":[],"sources":["../../src/composition/useResizeObserver.ts"],"sourcesContent":["import { onUnmounted, unref } from \"vue\";\nimport { tapIf } from \"../helpers/functions\";\nimport { onChanged } from \"./utils\";\nimport { startResizeObserving, stopResizeObserving } from \"../global/resizeObserver\";\nimport type { MaybeRef } from \"../types\";\n\nexport function useResizeObserver<T extends HTMLElement>(\n target: MaybeRef<T | undefined>,\n cb: (el?: T | undefined) => void,\n) {\n onChanged(() => {\n tapIf(unref(target), (el) => {\n startResizeObserving(el, () => cb(el));\n });\n });\n\n onUnmounted(() => {\n tapIf(unref(target), (el) => {\n stopResizeObserving(el);\n });\n });\n}\n"],"mappings":";;;;AAMA,SAAgB,EACd,GACA,GACA;AAOA,CANA,QAAgB;AACd,IAAM,EAAM,EAAO,GAAG,MAAO;AAC3B,KAAqB,SAAU,EAAG,EAAG,CAAC;IACtC;GACF,EAEF,QAAkB;AAChB,IAAM,EAAM,EAAO,GAAG,MAAO;AAC3B,KAAoB,EAAG;IACvB;GACF"}
1
+ {"version":3,"file":"useResizeObserver.js","names":[],"sources":["../../src/composition/useResizeObserver.ts"],"sourcesContent":["import { onUnmounted, unref } from \"vue\";\nimport { tapIf } from \"../helpers/functions\";\nimport { onChanged } from \"./utils\";\nimport { startResizeObserving, stopResizeObserving } from \"../global/resizeObserver\";\nimport type { MaybeRef } from \"../types\";\n\nexport function useResizeObserver<T extends HTMLElement>(\n target: MaybeRef<T | undefined>,\n cb: (el?: T | undefined) => void,\n) {\n onChanged(() => {\n tapIf(unref(target), (el) => {\n startResizeObserving(el, () => cb(el));\n });\n });\n\n onUnmounted(() => {\n tapIf(unref(target), (el) => {\n stopResizeObserving(el);\n });\n });\n}\n"],"mappings":";;;;;AAMA,SAAgB,EACd,GACA,GACA;AAOA,CANA,QAAgB;AACd,IAAM,EAAM,EAAO,GAAG,MAAO;AAC3B,KAAqB,SAAU,EAAG,EAAG,CAAC;IACtC;GACF,EAEF,QAAkB;AAChB,IAAM,EAAM,EAAO,GAAG,MAAO;AAC3B,KAAoB,EAAG;IACvB;GACF"}
@@ -1,4 +1,5 @@
1
1
  import { onMounted as e } from "vue";
2
+ //#region src/composition/useRipple.ts
2
3
  function t(t) {
3
4
  function n(e) {
4
5
  let t = e.currentTarget, n = document.createElement("span"), r = Math.max(t.clientWidth, t.clientHeight), i = r / 2;
@@ -10,6 +11,7 @@ function t(t) {
10
11
  t.value?.addEventListener("click", n);
11
12
  });
12
13
  }
14
+ //#endregion
13
15
  export { t as useRipple };
14
16
 
15
17
  //# sourceMappingURL=useRipple.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRipple.js","names":[],"sources":["../../src/composition/useRipple.ts"],"sourcesContent":["import type { Ref } from \"vue\";\nimport { onMounted } from \"vue\";\n\nexport function useRipple(el: Ref<HTMLElement | undefined>) {\n function createRipple(event: MouseEvent) {\n const button = event.currentTarget as HTMLButtonElement;\n\n const circle = document.createElement(\"span\");\n const diameter = Math.max(button.clientWidth, button.clientHeight);\n const radius = diameter / 2;\n\n circle.style.width = circle.style.height = `${diameter}px`;\n circle.style.left = `${event.clientX - button.offsetLeft - radius}px`;\n circle.style.top = `${event.clientY - button.offsetTop - radius}px`;\n circle.classList.add(\"ripple\");\n\n const ripple = button.getElementsByClassName(\"ripple\")[0];\n\n if (ripple) {\n ripple.remove();\n }\n\n button.appendChild(circle);\n }\n\n onMounted(() => {\n el.value?.addEventListener(\"click\", createRipple);\n });\n}\n"],"mappings":";AAGA,SAAgB,EAAU,GAAkC;CAC1D,SAAS,EAAa,GAAmB;EACvC,IAAM,IAAS,EAAM,eAEf,IAAS,SAAS,cAAc,OAAO,EACvC,IAAW,KAAK,IAAI,EAAO,aAAa,EAAO,aAAa,EAC5D,IAAS,IAAW;AAK1B,EAHA,EAAO,MAAM,QAAQ,EAAO,MAAM,SAAS,GAAG,EAAS,KACvD,EAAO,MAAM,OAAO,GAAG,EAAM,UAAU,EAAO,aAAa,EAAO,KAClE,EAAO,MAAM,MAAM,GAAG,EAAM,UAAU,EAAO,YAAY,EAAO,KAChE,EAAO,UAAU,IAAI,SAAS;EAE9B,IAAM,IAAS,EAAO,uBAAuB,SAAS,CAAC;AAMvD,EAJI,KACF,EAAO,QAAQ,EAGjB,EAAO,YAAY,EAAO;;AAG5B,SAAgB;AACd,IAAG,OAAO,iBAAiB,SAAS,EAAa;GACjD"}
1
+ {"version":3,"file":"useRipple.js","names":[],"sources":["../../src/composition/useRipple.ts"],"sourcesContent":["import type { Ref } from \"vue\";\nimport { onMounted } from \"vue\";\n\nexport function useRipple(el: Ref<HTMLElement | undefined>) {\n function createRipple(event: MouseEvent) {\n const button = event.currentTarget as HTMLButtonElement;\n\n const circle = document.createElement(\"span\");\n const diameter = Math.max(button.clientWidth, button.clientHeight);\n const radius = diameter / 2;\n\n circle.style.width = circle.style.height = `${diameter}px`;\n circle.style.left = `${event.clientX - button.offsetLeft - radius}px`;\n circle.style.top = `${event.clientY - button.offsetTop - radius}px`;\n circle.classList.add(\"ripple\");\n\n const ripple = button.getElementsByClassName(\"ripple\")[0];\n\n if (ripple) {\n ripple.remove();\n }\n\n button.appendChild(circle);\n }\n\n onMounted(() => {\n el.value?.addEventListener(\"click\", createRipple);\n });\n}\n"],"mappings":";;AAGA,SAAgB,EAAU,GAAkC;CAC1D,SAAS,EAAa,GAAmB;EACvC,IAAM,IAAS,EAAM,eAEf,IAAS,SAAS,cAAc,OAAO,EACvC,IAAW,KAAK,IAAI,EAAO,aAAa,EAAO,aAAa,EAC5D,IAAS,IAAW;AAK1B,EAHA,EAAO,MAAM,QAAQ,EAAO,MAAM,SAAS,GAAG,EAAS,KACvD,EAAO,MAAM,OAAO,GAAG,EAAM,UAAU,EAAO,aAAa,EAAO,KAClE,EAAO,MAAM,MAAM,GAAG,EAAM,UAAU,EAAO,YAAY,EAAO,KAChE,EAAO,UAAU,IAAI,SAAS;EAE9B,IAAM,IAAS,EAAO,uBAAuB,SAAS,CAAC;AAMvD,EAJI,KACF,EAAO,QAAQ,EAGjB,EAAO,YAAY,EAAO;;AAG5B,SAAgB;AACd,IAAG,OAAO,iBAAiB,SAAS,EAAa;GACjD"}
@@ -1,6 +1,7 @@
1
1
  import { useEventListener as e } from "./useEventListener.js";
2
2
  import { requestTick as t } from "../helpers/utils.js";
3
3
  import { onMounted as n } from "vue";
4
+ //#region src/composition/useScroll.ts
4
5
  function r(r, i = null, a = null) {
5
6
  function o(e) {
6
7
  let { scrollTop: t, scrollHeight: n, clientHeight: r } = e;
@@ -35,6 +36,7 @@ function r(r, i = null, a = null) {
35
36
  let l = t(c);
36
37
  n(c), e(window, "scroll", l, !0), e(window, "resize", l, !0);
37
38
  }
39
+ //#endregion
38
40
  export { r as useScroll };
39
41
 
40
42
  //# sourceMappingURL=useScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScroll.js","names":[],"sources":["../../src/composition/useScroll.ts"],"sourcesContent":["import { type Ref, onMounted } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\nimport { requestTick } from \"../helpers/utils\";\n\nexport function useScroll(\n $el: Ref<HTMLElement | undefined>,\n fadeHeight: number | null = null,\n fadeWidth: number | null = null,\n) {\n function getYMask(el: HTMLElement) {\n const { scrollTop, scrollHeight, clientHeight } = el;\n\n const hasScroll = scrollHeight > clientHeight;\n\n if (!hasScroll || !fadeHeight) {\n return null;\n }\n\n const scrollBottom = scrollHeight - scrollTop - clientHeight;\n const offsetTop = scrollTop > fadeHeight ? fadeHeight : 0;\n const offsetBottom =\n scrollBottom > fadeHeight ? clientHeight - fadeHeight - offsetTop : clientHeight;\n\n return `linear-gradient(\n to bottom,\n transparent,\n black ${offsetTop}px,\n black ${offsetBottom}px,\n transparent 100%\n )`;\n }\n\n function getXMask(el: HTMLElement) {\n const { scrollLeft, scrollWidth, clientWidth } = el;\n\n const hasScroll = scrollWidth > clientWidth;\n\n if (!hasScroll || !fadeWidth) {\n return null;\n }\n\n const scrollRight = scrollWidth - scrollLeft - clientWidth;\n const offsetLeft = scrollLeft > fadeWidth ? fadeWidth : 0;\n const offsetRight =\n scrollRight > fadeWidth ? clientWidth - fadeWidth - offsetLeft : clientWidth;\n\n return `linear-gradient(\n to right,\n transparent,\n black ${offsetLeft}px,\n black ${offsetRight}px,\n transparent 100%\n )`;\n }\n\n function update() {\n const el = $el.value;\n\n if (!el) {\n return;\n }\n\n const masks = [getYMask(el), getXMask(el)].filter((m) => m !== null);\n el.style.setProperty(\"-webkit-mask-image\", masks.join(\",\"));\n el.style.setProperty(\"mask-image\", masks.join(\",\"));\n if (masks.length > 1) {\n el.style.setProperty(\"-webkit-mask-composite\", \"source-in\");\n el.style.setProperty(\"mask-composite\", \"source-in\");\n }\n }\n\n const handle = requestTick(update);\n\n onMounted(update);\n useEventListener(window, \"scroll\", handle, true);\n useEventListener(window, \"resize\", handle, true);\n}\n"],"mappings":";;;AAIA,SAAgB,EACd,GACA,IAA4B,MAC5B,IAA2B,MAC3B;CACA,SAAS,EAAS,GAAiB;EACjC,IAAM,EAAE,cAAW,iBAAc,oBAAiB;AAIlD,MAAI,EAFc,IAAe,MAEf,CAAC,EACjB,QAAO;EAGT,IAAM,IAAe,IAAe,IAAY,GAC1C,IAAY,IAAY,IAAa,IAAa;AAIxD,SAAO;;;gBAGK,EAAU;gBALpB,IAAe,IAAa,IAAe,IAAa,IAAY,EAM7C;;;;CAK3B,SAAS,EAAS,GAAiB;EACjC,IAAM,EAAE,eAAY,gBAAa,mBAAgB;AAIjD,MAAI,EAFc,IAAc,MAEd,CAAC,EACjB,QAAO;EAGT,IAAM,IAAc,IAAc,IAAa,GACzC,IAAa,IAAa,IAAY,IAAY;AAIxD,SAAO;;;gBAGK,EAAW;gBALrB,IAAc,IAAY,IAAc,IAAY,IAAa,EAM3C;;;;CAK1B,SAAS,IAAS;EAChB,IAAM,IAAK,EAAI;AAEf,MAAI,CAAC,EACH;EAGF,IAAM,IAAQ,CAAC,EAAS,EAAG,EAAE,EAAS,EAAG,CAAC,CAAC,QAAQ,MAAM,MAAM,KAAK;AAGpE,EAFA,EAAG,MAAM,YAAY,sBAAsB,EAAM,KAAK,IAAI,CAAC,EAC3D,EAAG,MAAM,YAAY,cAAc,EAAM,KAAK,IAAI,CAAC,EAC/C,EAAM,SAAS,MACjB,EAAG,MAAM,YAAY,0BAA0B,YAAY,EAC3D,EAAG,MAAM,YAAY,kBAAkB,YAAY;;CAIvD,IAAM,IAAS,EAAY,EAAO;AAIlC,CAFA,EAAU,EAAO,EACjB,EAAiB,QAAQ,UAAU,GAAQ,GAAK,EAChD,EAAiB,QAAQ,UAAU,GAAQ,GAAK"}
1
+ {"version":3,"file":"useScroll.js","names":[],"sources":["../../src/composition/useScroll.ts"],"sourcesContent":["import { type Ref, onMounted } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\nimport { requestTick } from \"../helpers/utils\";\n\nexport function useScroll(\n $el: Ref<HTMLElement | undefined>,\n fadeHeight: number | null = null,\n fadeWidth: number | null = null,\n) {\n function getYMask(el: HTMLElement) {\n const { scrollTop, scrollHeight, clientHeight } = el;\n\n const hasScroll = scrollHeight > clientHeight;\n\n if (!hasScroll || !fadeHeight) {\n return null;\n }\n\n const scrollBottom = scrollHeight - scrollTop - clientHeight;\n const offsetTop = scrollTop > fadeHeight ? fadeHeight : 0;\n const offsetBottom =\n scrollBottom > fadeHeight ? clientHeight - fadeHeight - offsetTop : clientHeight;\n\n return `linear-gradient(\n to bottom,\n transparent,\n black ${offsetTop}px,\n black ${offsetBottom}px,\n transparent 100%\n )`;\n }\n\n function getXMask(el: HTMLElement) {\n const { scrollLeft, scrollWidth, clientWidth } = el;\n\n const hasScroll = scrollWidth > clientWidth;\n\n if (!hasScroll || !fadeWidth) {\n return null;\n }\n\n const scrollRight = scrollWidth - scrollLeft - clientWidth;\n const offsetLeft = scrollLeft > fadeWidth ? fadeWidth : 0;\n const offsetRight =\n scrollRight > fadeWidth ? clientWidth - fadeWidth - offsetLeft : clientWidth;\n\n return `linear-gradient(\n to right,\n transparent,\n black ${offsetLeft}px,\n black ${offsetRight}px,\n transparent 100%\n )`;\n }\n\n function update() {\n const el = $el.value;\n\n if (!el) {\n return;\n }\n\n const masks = [getYMask(el), getXMask(el)].filter((m) => m !== null);\n el.style.setProperty(\"-webkit-mask-image\", masks.join(\",\"));\n el.style.setProperty(\"mask-image\", masks.join(\",\"));\n if (masks.length > 1) {\n el.style.setProperty(\"-webkit-mask-composite\", \"source-in\");\n el.style.setProperty(\"mask-composite\", \"source-in\");\n }\n }\n\n const handle = requestTick(update);\n\n onMounted(update);\n useEventListener(window, \"scroll\", handle, true);\n useEventListener(window, \"resize\", handle, true);\n}\n"],"mappings":";;;;AAIA,SAAgB,EACd,GACA,IAA4B,MAC5B,IAA2B,MAC3B;CACA,SAAS,EAAS,GAAiB;EACjC,IAAM,EAAE,cAAW,iBAAc,oBAAiB;AAIlD,MAAI,EAFc,IAAe,MAEf,CAAC,EACjB,QAAO;EAGT,IAAM,IAAe,IAAe,IAAY,GAC1C,IAAY,IAAY,IAAa,IAAa;AAIxD,SAAO;;;gBAGK,EAAU;gBALpB,IAAe,IAAa,IAAe,IAAa,IAAY,EAM7C;;;;CAK3B,SAAS,EAAS,GAAiB;EACjC,IAAM,EAAE,eAAY,gBAAa,mBAAgB;AAIjD,MAAI,EAFc,IAAc,MAEd,CAAC,EACjB,QAAO;EAGT,IAAM,IAAc,IAAc,IAAa,GACzC,IAAa,IAAa,IAAY,IAAY;AAIxD,SAAO;;;gBAGK,EAAW;gBALrB,IAAc,IAAY,IAAc,IAAY,IAAa,EAM3C;;;;CAK1B,SAAS,IAAS;EAChB,IAAM,IAAK,EAAI;AAEf,MAAI,CAAC,EACH;EAGF,IAAM,IAAQ,CAAC,EAAS,EAAG,EAAE,EAAS,EAAG,CAAC,CAAC,QAAQ,MAAM,MAAM,KAAK;AAGpE,EAFA,EAAG,MAAM,YAAY,sBAAsB,EAAM,KAAK,IAAI,CAAC,EAC3D,EAAG,MAAM,YAAY,cAAc,EAAM,KAAK,IAAI,CAAC,EAC/C,EAAM,SAAS,MACjB,EAAG,MAAM,YAAY,0BAA0B,YAAY,EAC3D,EAAG,MAAM,YAAY,kBAAkB,YAAY;;CAIvD,IAAM,IAAS,EAAY,EAAO;AAIlC,CAFA,EAAU,EAAO,EACjB,EAAiB,QAAQ,UAAU,GAAQ,GAAK,EAChD,EAAiB,QAAQ,UAAU,GAAQ,GAAK"}
@@ -1,6 +1,7 @@
1
1
  import { clamp as e } from "../helpers/math.js";
2
2
  import { computed as t } from "vue";
3
- const n = (n) => t(() => {
3
+ //#region src/composition/useSliderBreakpoints.ts
4
+ var n = (n) => t(() => {
4
5
  let t = [100], { min: r, max: i, step: a } = n.value, o = r;
5
6
  for (; o < i;) {
6
7
  o += a;
@@ -9,6 +10,7 @@ const n = (n) => t(() => {
9
10
  }
10
11
  return t;
11
12
  });
13
+ //#endregion
12
14
  export { n as useSliderBreakpoints };
13
15
 
14
16
  //# sourceMappingURL=useSliderBreakpoints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSliderBreakpoints.js","names":[],"sources":["../../src/composition/useSliderBreakpoints.ts"],"sourcesContent":["import { clamp } from \"../helpers/math\";\nimport type { ComputedRef } from \"vue\";\nimport { computed } from \"vue\";\nexport const useSliderBreakpoints = (\n props: ComputedRef<{ min: number; max: number; step: number }>,\n) => {\n return computed(() => {\n const result: number[] = [100];\n const { min, max, step } = props.value;\n let start = min;\n while (start < max) {\n start += step;\n const posValue = (clamp(start, min, max) - min) / (max - min);\n const percent = (1 - posValue) * 100;\n result.push(percent);\n }\n return result;\n });\n};\n"],"mappings":";;AAGA,MAAa,KACX,MAEO,QAAe;CACpB,IAAM,IAAmB,CAAC,IAAI,EACxB,EAAE,QAAK,QAAK,YAAS,EAAM,OAC7B,IAAQ;AACZ,QAAO,IAAQ,IAAK;AAClB,OAAS;EAET,IAAM,KAAW,KADC,EAAM,GAAO,GAAK,EAAI,GAAG,MAAQ,IAAM,MACxB;AACjC,IAAO,KAAK,EAAQ;;AAEtB,QAAO;EACP"}
1
+ {"version":3,"file":"useSliderBreakpoints.js","names":[],"sources":["../../src/composition/useSliderBreakpoints.ts"],"sourcesContent":["import { clamp } from \"../helpers/math\";\nimport type { ComputedRef } from \"vue\";\nimport { computed } from \"vue\";\nexport const useSliderBreakpoints = (\n props: ComputedRef<{ min: number; max: number; step: number }>,\n) => {\n return computed(() => {\n const result: number[] = [100];\n const { min, max, step } = props.value;\n let start = min;\n while (start < max) {\n start += step;\n const posValue = (clamp(start, min, max) - min) / (max - min);\n const percent = (1 - posValue) * 100;\n result.push(percent);\n }\n return result;\n });\n};\n"],"mappings":";;;AAGA,IAAa,KACX,MAEO,QAAe;CACpB,IAAM,IAAmB,CAAC,IAAI,EACxB,EAAE,QAAK,QAAK,YAAS,EAAM,OAC7B,IAAQ;AACZ,QAAO,IAAQ,IAAK;AAClB,OAAS;EAET,IAAM,KAAW,KADC,EAAM,GAAO,GAAK,EAAI,GAAG,MAAQ,IAAM,MACxB;AACjC,IAAO,KAAK,EAAQ;;AAEtB,QAAO;EACP"}
@@ -1,5 +1,6 @@
1
1
  import { useEventListener as e } from "./useEventListener.js";
2
2
  import { computed as t, watchEffect as n } from "vue";
3
+ //#region src/composition/useSortable.ts
3
4
  var r = {
4
5
  item: "sortable__item",
5
6
  animate: "sortable__animate"
@@ -104,6 +105,7 @@ function s(s, c) {
104
105
  });
105
106
  });
106
107
  }
108
+ //#endregion
107
109
  export { s as useSortable };
108
110
 
109
111
  //# sourceMappingURL=useSortable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSortable.js","names":[],"sources":["../../src/composition/useSortable.ts"],"sourcesContent":["import type { Ref } from \"vue\";\nimport { computed, watchEffect } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\n\ntype SortableItem = {\n el: HTMLElement;\n y: number;\n dy: number;\n orderChanged: boolean;\n};\n\nexport type SortableSettings = {\n onChange: (indices: number[]) => void;\n handle?: string;\n shakeBuffer?: number;\n reorderDelay?: number;\n transitionDelay?: string;\n};\n\nconst classes = {\n item: \"sortable__item\",\n animate: \"sortable__animate\",\n};\n\nconst getOffset = (el: HTMLElement) => {\n return el.getBoundingClientRect().y;\n};\n\nconst getMiddle = (el: HTMLElement) => {\n const { y, height } = el.getBoundingClientRect();\n return y + Math.ceil(height / 2);\n};\n\nconst getBottom = (el: HTMLElement) => {\n const { y, height } = el.getBoundingClientRect();\n return y + height;\n};\n\nexport function useSortable(listRef: Ref<HTMLElement | undefined>, settings: SortableSettings) {\n const state = {\n item: undefined as SortableItem | undefined,\n options() {\n return [...(listRef.value?.children ?? [])] as HTMLElement[];\n },\n };\n\n const optionsRef = computed(() => {\n return state.options();\n });\n\n const shakeBuffer = settings.shakeBuffer ?? 10;\n\n const reorderDelay = settings.reorderDelay ?? 100;\n\n function mouseDown(this: HTMLElement, e: { y: number; target: EventTarget | null }) {\n const handle = settings.handle ? this.querySelector(settings.handle) : null;\n\n if (!handle) {\n return;\n }\n\n if (handle && !handle.contains(e.target as HTMLElement)) {\n return;\n }\n\n this.classList.remove(classes.animate);\n this.classList.add(classes.item);\n\n state.item = {\n el: this,\n y: e.y,\n dy: 0,\n orderChanged: false,\n };\n }\n\n function elementsBefore(el: HTMLElement) {\n const options = state.options();\n return options.slice(0, options.indexOf(el));\n }\n\n function elementsAfter(el: HTMLElement) {\n const children = state.options();\n return children.slice(children.indexOf(el) + 1);\n }\n\n function insertBefore(before: HTMLElement, el: HTMLElement) {\n const children = state.options().filter((e) => e !== el);\n const index = children.indexOf(before);\n children.splice(index, 0, el);\n return children;\n }\n\n function insertAfter(after: HTMLElement, el: HTMLElement) {\n const children = state.options().filter((e) => e !== el);\n const index = children.indexOf(after);\n children.splice(index + 1, 0, el);\n return children;\n }\n\n function updatePosition(item: SortableItem, y: number) {\n item.dy = y - item.y;\n item.el.style.setProperty(\"transform\", `translateY(${item.dy}px)`);\n }\n\n function changeOrder(reordered: HTMLElement[]) {\n if (!state.item) {\n return;\n }\n\n const { el } = state.item;\n\n if (!el.isConnected) {\n state.item = undefined;\n return;\n }\n\n const oldPositions = reordered.map((e) => getOffset(e));\n\n const y1 = getOffset(el);\n listRef.value?.replaceChildren(...reordered);\n const y2 = getOffset(el);\n\n const newPositions = reordered.map((e) => getOffset(e));\n\n const toAnimate: HTMLElement[] = [];\n\n for (let i = 0; i < newPositions.length; i++) {\n const option = reordered[i];\n\n if (option === state.item.el) {\n continue;\n }\n\n const newY = newPositions[i];\n\n const oldY = oldPositions[i];\n\n const invert = oldY - newY;\n\n option.style.transform = `translateY(${invert}px)`;\n\n toAnimate.push(option);\n }\n\n const dy = y2 - y1;\n\n state.item.y = state.item.y + dy;\n state.item.dy = state.item.dy - dy;\n state.item.orderChanged = true;\n state.item.el.style.setProperty(\"transform\", `translateY(${state.item.dy}px)`);\n\n toAnimate.forEach((o) => o.classList.remove(classes.animate));\n\n requestAnimationFrame(function () {\n toAnimate.forEach((option) => {\n option.classList.add(classes.animate);\n option.style.transform = \"\";\n option.addEventListener(\"transitionend\", () => {\n option.classList.remove(classes.animate);\n });\n });\n });\n }\n\n useEventListener(window, \"mousemove\", (e: { y: number }) => {\n if (!state.item) {\n return;\n }\n\n const { el } = state.item;\n\n updatePosition(state.item, e.y);\n\n const upper = getOffset(state.item.el);\n const bottom = getBottom(state.item.el);\n\n const before = elementsBefore(el);\n const after = elementsAfter(el);\n\n before.forEach((e) => {\n const y = getMiddle(e);\n\n if (upper + shakeBuffer < y) {\n changeOrder(insertBefore(e, el));\n }\n });\n\n after.forEach((e) => {\n const y = getMiddle(e);\n\n if (bottom - shakeBuffer > y) {\n changeOrder(insertAfter(e, el));\n }\n });\n });\n\n useEventListener(window, \"mouseup\", () => {\n if (!state.item) {\n return;\n }\n\n const { el, orderChanged } = state.item;\n\n el.classList.add(classes.animate);\n el.style.removeProperty(\"transform\");\n\n el.addEventListener(\"transitionend\", () => {\n el.classList.remove(classes.animate, classes.item);\n });\n\n setTimeout(() => {\n if (!orderChanged) {\n return;\n }\n\n const newIndices = state.options().map((o) => Number(o.getAttribute(\"data-index\")));\n\n const list = listRef.value;\n\n if (list) {\n for (const child of state.options()) {\n list.removeChild(child);\n }\n\n optionsRef.value.forEach((child) => {\n list.appendChild(child);\n });\n }\n\n settings.onChange(newIndices);\n }, reorderDelay);\n\n state.item = undefined;\n });\n\n watchEffect(() => {\n optionsRef.value.forEach((child, i) => {\n child.removeEventListener(\"mousedown\", mouseDown);\n child.addEventListener(\"mousedown\", mouseDown);\n child.setAttribute(\"data-index\", String(i));\n });\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSortable.js","names":[],"sources":["../../src/composition/useSortable.ts"],"sourcesContent":["import type { Ref } from \"vue\";\nimport { computed, watchEffect } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\n\ntype SortableItem = {\n el: HTMLElement;\n y: number;\n dy: number;\n orderChanged: boolean;\n};\n\nexport type SortableSettings = {\n onChange: (indices: number[]) => void;\n handle?: string;\n shakeBuffer?: number;\n reorderDelay?: number;\n transitionDelay?: string;\n};\n\nconst classes = {\n item: \"sortable__item\",\n animate: \"sortable__animate\",\n};\n\nconst getOffset = (el: HTMLElement) => {\n return el.getBoundingClientRect().y;\n};\n\nconst getMiddle = (el: HTMLElement) => {\n const { y, height } = el.getBoundingClientRect();\n return y + Math.ceil(height / 2);\n};\n\nconst getBottom = (el: HTMLElement) => {\n const { y, height } = el.getBoundingClientRect();\n return y + height;\n};\n\nexport function useSortable(listRef: Ref<HTMLElement | undefined>, settings: SortableSettings) {\n const state = {\n item: undefined as SortableItem | undefined,\n options() {\n return [...(listRef.value?.children ?? [])] as HTMLElement[];\n },\n };\n\n const optionsRef = computed(() => {\n return state.options();\n });\n\n const shakeBuffer = settings.shakeBuffer ?? 10;\n\n const reorderDelay = settings.reorderDelay ?? 100;\n\n function mouseDown(this: HTMLElement, e: { y: number; target: EventTarget | null }) {\n const handle = settings.handle ? this.querySelector(settings.handle) : null;\n\n if (!handle) {\n return;\n }\n\n if (handle && !handle.contains(e.target as HTMLElement)) {\n return;\n }\n\n this.classList.remove(classes.animate);\n this.classList.add(classes.item);\n\n state.item = {\n el: this,\n y: e.y,\n dy: 0,\n orderChanged: false,\n };\n }\n\n function elementsBefore(el: HTMLElement) {\n const options = state.options();\n return options.slice(0, options.indexOf(el));\n }\n\n function elementsAfter(el: HTMLElement) {\n const children = state.options();\n return children.slice(children.indexOf(el) + 1);\n }\n\n function insertBefore(before: HTMLElement, el: HTMLElement) {\n const children = state.options().filter((e) => e !== el);\n const index = children.indexOf(before);\n children.splice(index, 0, el);\n return children;\n }\n\n function insertAfter(after: HTMLElement, el: HTMLElement) {\n const children = state.options().filter((e) => e !== el);\n const index = children.indexOf(after);\n children.splice(index + 1, 0, el);\n return children;\n }\n\n function updatePosition(item: SortableItem, y: number) {\n item.dy = y - item.y;\n item.el.style.setProperty(\"transform\", `translateY(${item.dy}px)`);\n }\n\n function changeOrder(reordered: HTMLElement[]) {\n if (!state.item) {\n return;\n }\n\n const { el } = state.item;\n\n if (!el.isConnected) {\n state.item = undefined;\n return;\n }\n\n const oldPositions = reordered.map((e) => getOffset(e));\n\n const y1 = getOffset(el);\n listRef.value?.replaceChildren(...reordered);\n const y2 = getOffset(el);\n\n const newPositions = reordered.map((e) => getOffset(e));\n\n const toAnimate: HTMLElement[] = [];\n\n for (let i = 0; i < newPositions.length; i++) {\n const option = reordered[i];\n\n if (option === state.item.el) {\n continue;\n }\n\n const newY = newPositions[i];\n\n const oldY = oldPositions[i];\n\n const invert = oldY - newY;\n\n option.style.transform = `translateY(${invert}px)`;\n\n toAnimate.push(option);\n }\n\n const dy = y2 - y1;\n\n state.item.y = state.item.y + dy;\n state.item.dy = state.item.dy - dy;\n state.item.orderChanged = true;\n state.item.el.style.setProperty(\"transform\", `translateY(${state.item.dy}px)`);\n\n toAnimate.forEach((o) => o.classList.remove(classes.animate));\n\n requestAnimationFrame(function () {\n toAnimate.forEach((option) => {\n option.classList.add(classes.animate);\n option.style.transform = \"\";\n option.addEventListener(\"transitionend\", () => {\n option.classList.remove(classes.animate);\n });\n });\n });\n }\n\n useEventListener(window, \"mousemove\", (e: { y: number }) => {\n if (!state.item) {\n return;\n }\n\n const { el } = state.item;\n\n updatePosition(state.item, e.y);\n\n const upper = getOffset(state.item.el);\n const bottom = getBottom(state.item.el);\n\n const before = elementsBefore(el);\n const after = elementsAfter(el);\n\n before.forEach((e) => {\n const y = getMiddle(e);\n\n if (upper + shakeBuffer < y) {\n changeOrder(insertBefore(e, el));\n }\n });\n\n after.forEach((e) => {\n const y = getMiddle(e);\n\n if (bottom - shakeBuffer > y) {\n changeOrder(insertAfter(e, el));\n }\n });\n });\n\n useEventListener(window, \"mouseup\", () => {\n if (!state.item) {\n return;\n }\n\n const { el, orderChanged } = state.item;\n\n el.classList.add(classes.animate);\n el.style.removeProperty(\"transform\");\n\n el.addEventListener(\"transitionend\", () => {\n el.classList.remove(classes.animate, classes.item);\n });\n\n setTimeout(() => {\n if (!orderChanged) {\n return;\n }\n\n const newIndices = state.options().map((o) => Number(o.getAttribute(\"data-index\")));\n\n const list = listRef.value;\n\n if (list) {\n for (const child of state.options()) {\n list.removeChild(child);\n }\n\n optionsRef.value.forEach((child) => {\n list.appendChild(child);\n });\n }\n\n settings.onChange(newIndices);\n }, reorderDelay);\n\n state.item = undefined;\n });\n\n watchEffect(() => {\n optionsRef.value.forEach((child, i) => {\n child.removeEventListener(\"mousedown\", mouseDown);\n child.addEventListener(\"mousedown\", mouseDown);\n child.setAttribute(\"data-index\", String(i));\n });\n });\n}\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { useEventListener as e } from "./useEventListener.js";
2
2
  import { computed as t, watch as n, watchEffect as r } from "vue";
3
+ //#region src/composition/useSortable2.ts
3
4
  var i = {
4
5
  item: "sortable__item",
5
6
  animate: "sortable__animate"
@@ -10,15 +11,6 @@ var i = {
10
11
  let { y: t, height: n } = e.getBoundingClientRect();
11
12
  return t + n;
12
13
  };
13
- /**
14
- * Description: Scroll support has been added to the container where sorting takes place.
15
- * Some functionality duplicates the behavior of useScrollable.
16
- *
17
- * Purpose: To enable automatic scrolling when dragging items beyond the visible area of the container.
18
- * Future Plan:
19
- * - Verify the behavior of the new scrolling functionality within blocks and text elements.
20
- * - Merge the current implementation with useScrollable to eliminate code duplication and create a unified scrolling solution.
21
- */
22
14
  function c(c, l) {
23
15
  let u = {
24
16
  item: void 0,
@@ -127,6 +119,7 @@ function c(c, l) {
127
119
  });
128
120
  });
129
121
  }
122
+ //#endregion
130
123
  export { c as useSortable2 };
131
124
 
132
125
  //# sourceMappingURL=useSortable2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSortable2.js","names":[],"sources":["../../src/composition/useSortable2.ts"],"sourcesContent":["import type { Ref } from \"vue\";\nimport { computed, watch, watchEffect } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\n\ntype SortableItem = {\n el: HTMLElement;\n y: number;\n dy: number;\n orderChanged: boolean;\n initialScrollTop: number;\n};\n\nexport type SortableSettings = {\n onChange: (indices: number[]) => void;\n handle?: string;\n shakeBuffer?: number;\n reorderDelay?: number;\n transitionDelay?: string;\n};\n\nconst classes = {\n item: \"sortable__item\",\n animate: \"sortable__animate\",\n};\n\nconst getOffset = (el: HTMLElement) => {\n return el.getBoundingClientRect().y;\n};\n\nconst getMiddle = (el: HTMLElement) => {\n const { y, height } = el.getBoundingClientRect();\n return y + Math.ceil(height / 2);\n};\n\nconst getBottom = (el: HTMLElement) => {\n const { y, height } = el.getBoundingClientRect();\n return y + height;\n};\n\n/**\n * Description: Scroll support has been added to the container where sorting takes place.\n * Some functionality duplicates the behavior of useScrollable.\n *\n * Purpose: To enable automatic scrolling when dragging items beyond the visible area of the container.\n * Future Plan:\n * - Verify the behavior of the new scrolling functionality within blocks and text elements.\n * - Merge the current implementation with useScrollable to eliminate code duplication and create a unified scrolling solution.\n */\nexport function useSortable2(listRef: Ref<HTMLElement | undefined>, settings: SortableSettings) {\n const state = {\n item: undefined as SortableItem | undefined,\n options() {\n return [...(listRef.value?.children ?? [])] as HTMLElement[];\n },\n };\n let oldScrollTop = 0;\n\n watch(\n () => listRef.value,\n () => {\n setTimeout(() => {\n if (listRef.value) {\n listRef.value.scrollTop = oldScrollTop;\n }\n }, 0);\n },\n );\n\n const optionsRef = computed(() => {\n return state.options();\n });\n\n const shakeBuffer = settings.shakeBuffer ?? 10;\n\n const reorderDelay = settings.reorderDelay ?? 100;\n\n function mouseDown(this: HTMLElement, e: { y: number; target: EventTarget | null }) {\n const handle = settings.handle ? this.querySelector(settings.handle) : null;\n\n if (!handle) {\n return;\n }\n\n if (handle && !handle.contains(e.target as HTMLElement)) {\n return;\n }\n\n this.classList.remove(classes.animate);\n this.classList.add(classes.item);\n\n state.item = {\n el: this,\n y: e.y,\n dy: 0,\n initialScrollTop: listRef.value?.scrollTop || 0,\n orderChanged: false,\n };\n }\n\n function elementsBefore(el: HTMLElement) {\n const options = state.options();\n return options.slice(0, options.indexOf(el));\n }\n\n function elementsAfter(el: HTMLElement) {\n const children = state.options();\n return children.slice(children.indexOf(el) + 1);\n }\n\n function insertBefore(before: HTMLElement, el: HTMLElement) {\n const children = state.options().filter((e) => e !== el);\n const index = children.indexOf(before);\n children.splice(index, 0, el);\n return children;\n }\n\n function insertAfter(after: HTMLElement, el: HTMLElement) {\n const children = state.options().filter((e) => e !== el);\n const index = children.indexOf(after);\n children.splice(index + 1, 0, el);\n return children;\n }\n\n function updatePosition(item: SortableItem, y: number) {\n const currentScrollTop = listRef.value?.scrollTop || 0;\n const scrollDiff = currentScrollTop - (item.initialScrollTop || 0);\n item.dy = y - item.y + scrollDiff;\n item.el.style.setProperty(\"transform\", `translateY(${item.dy}px)`);\n }\n\n function changeOrder(reordered: HTMLElement[]) {\n if (!state.item) {\n return;\n }\n\n const { el } = state.item;\n\n if (!el.isConnected) {\n state.item = undefined;\n return;\n }\n\n const oldPositions = reordered.map((e) => getOffset(e));\n\n const y1 = getOffset(el);\n listRef.value?.replaceChildren(...reordered);\n const y2 = getOffset(el);\n\n const newPositions = reordered.map((e) => getOffset(e));\n\n const toAnimate: HTMLElement[] = [];\n\n for (let i = 0; i < newPositions.length; i++) {\n const option = reordered[i];\n\n if (option === state.item.el) {\n continue;\n }\n\n const newY = newPositions[i];\n\n const oldY = oldPositions[i];\n\n const invert = oldY - newY;\n\n option.style.transform = `translateY(${invert}px)`;\n\n toAnimate.push(option);\n }\n\n const dy = y2 - y1;\n\n state.item.y = state.item.y + dy;\n state.item.dy = state.item.dy - dy;\n state.item.orderChanged = true;\n state.item.el.style.setProperty(\"transform\", `translateY(${state.item.dy}px)`);\n\n toAnimate.forEach((o) => o.classList.remove(classes.animate));\n\n requestAnimationFrame(function () {\n toAnimate.forEach((option) => {\n option.classList.add(classes.animate);\n option.style.transform = \"\";\n option.addEventListener(\"transitionend\", () => {\n option.classList.remove(classes.animate);\n });\n });\n });\n }\n\n useEventListener(window, \"mousemove\", (e: { y: number }) => {\n if (!state.item) {\n return;\n }\n\n const { el } = state.item;\n\n updatePosition(state.item, e.y);\n\n const upper = getOffset(state.item.el);\n const bottom = getBottom(state.item.el);\n\n const before = elementsBefore(el);\n const after = elementsAfter(el);\n\n before.forEach((e) => {\n const y = getMiddle(e);\n\n if (upper + shakeBuffer < y) {\n changeOrder(insertBefore(e, el));\n }\n });\n\n after.forEach((e) => {\n const y = getMiddle(e);\n\n if (bottom - shakeBuffer > y) {\n changeOrder(insertAfter(e, el));\n }\n });\n\n if (listRef.value) {\n const rect = listRef.value.getBoundingClientRect();\n\n const deltaUp = rect.top + el.getBoundingClientRect().height / 2;\n if ((e as MouseEvent).clientY < deltaUp) {\n listRef.value.scrollTop += (e as MouseEvent).clientY - deltaUp;\n }\n\n const deltaDown = rect.bottom - el.getBoundingClientRect().height / 2;\n if ((e as MouseEvent).clientY > deltaDown) {\n listRef.value.scrollTop += (e as MouseEvent).clientY - deltaDown;\n }\n }\n });\n\n useEventListener(window, \"mouseup\", () => {\n if (!state.item) {\n return;\n }\n\n oldScrollTop = listRef.value?.scrollTop || 0;\n\n const { el, orderChanged } = state.item;\n\n el.classList.add(classes.animate);\n el.style.removeProperty(\"transform\");\n\n el.addEventListener(\"transitionend\", () => {\n el.classList.remove(classes.animate, classes.item);\n });\n\n setTimeout(() => {\n if (!orderChanged) {\n return;\n }\n\n const newIndices = state.options().map((o) => Number(o.getAttribute(\"data-index\")));\n\n const list = listRef.value;\n\n if (list) {\n for (const child of state.options()) {\n list.removeChild(child);\n }\n\n optionsRef.value.forEach((child) => {\n list.appendChild(child);\n });\n }\n\n settings.onChange(newIndices);\n }, reorderDelay);\n\n state.item = undefined;\n });\n\n watchEffect(() => {\n optionsRef.value.forEach((child, i) => {\n child.removeEventListener(\"mousedown\", mouseDown);\n child.addEventListener(\"mousedown\", mouseDown);\n child.setAttribute(\"data-index\", String(i));\n });\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSortable2.js","names":[],"sources":["../../src/composition/useSortable2.ts"],"sourcesContent":["import type { Ref } from \"vue\";\nimport { computed, watch, watchEffect } from \"vue\";\nimport { useEventListener } from \"./useEventListener\";\n\ntype SortableItem = {\n el: HTMLElement;\n y: number;\n dy: number;\n orderChanged: boolean;\n initialScrollTop: number;\n};\n\nexport type SortableSettings = {\n onChange: (indices: number[]) => void;\n handle?: string;\n shakeBuffer?: number;\n reorderDelay?: number;\n transitionDelay?: string;\n};\n\nconst classes = {\n item: \"sortable__item\",\n animate: \"sortable__animate\",\n};\n\nconst getOffset = (el: HTMLElement) => {\n return el.getBoundingClientRect().y;\n};\n\nconst getMiddle = (el: HTMLElement) => {\n const { y, height } = el.getBoundingClientRect();\n return y + Math.ceil(height / 2);\n};\n\nconst getBottom = (el: HTMLElement) => {\n const { y, height } = el.getBoundingClientRect();\n return y + height;\n};\n\n/**\n * Description: Scroll support has been added to the container where sorting takes place.\n * Some functionality duplicates the behavior of useScrollable.\n *\n * Purpose: To enable automatic scrolling when dragging items beyond the visible area of the container.\n * Future Plan:\n * - Verify the behavior of the new scrolling functionality within blocks and text elements.\n * - Merge the current implementation with useScrollable to eliminate code duplication and create a unified scrolling solution.\n */\nexport function useSortable2(listRef: Ref<HTMLElement | undefined>, settings: SortableSettings) {\n const state = {\n item: undefined as SortableItem | undefined,\n options() {\n return [...(listRef.value?.children ?? [])] as HTMLElement[];\n },\n };\n let oldScrollTop = 0;\n\n watch(\n () => listRef.value,\n () => {\n setTimeout(() => {\n if (listRef.value) {\n listRef.value.scrollTop = oldScrollTop;\n }\n }, 0);\n },\n );\n\n const optionsRef = computed(() => {\n return state.options();\n });\n\n const shakeBuffer = settings.shakeBuffer ?? 10;\n\n const reorderDelay = settings.reorderDelay ?? 100;\n\n function mouseDown(this: HTMLElement, e: { y: number; target: EventTarget | null }) {\n const handle = settings.handle ? this.querySelector(settings.handle) : null;\n\n if (!handle) {\n return;\n }\n\n if (handle && !handle.contains(e.target as HTMLElement)) {\n return;\n }\n\n this.classList.remove(classes.animate);\n this.classList.add(classes.item);\n\n state.item = {\n el: this,\n y: e.y,\n dy: 0,\n initialScrollTop: listRef.value?.scrollTop || 0,\n orderChanged: false,\n };\n }\n\n function elementsBefore(el: HTMLElement) {\n const options = state.options();\n return options.slice(0, options.indexOf(el));\n }\n\n function elementsAfter(el: HTMLElement) {\n const children = state.options();\n return children.slice(children.indexOf(el) + 1);\n }\n\n function insertBefore(before: HTMLElement, el: HTMLElement) {\n const children = state.options().filter((e) => e !== el);\n const index = children.indexOf(before);\n children.splice(index, 0, el);\n return children;\n }\n\n function insertAfter(after: HTMLElement, el: HTMLElement) {\n const children = state.options().filter((e) => e !== el);\n const index = children.indexOf(after);\n children.splice(index + 1, 0, el);\n return children;\n }\n\n function updatePosition(item: SortableItem, y: number) {\n const currentScrollTop = listRef.value?.scrollTop || 0;\n const scrollDiff = currentScrollTop - (item.initialScrollTop || 0);\n item.dy = y - item.y + scrollDiff;\n item.el.style.setProperty(\"transform\", `translateY(${item.dy}px)`);\n }\n\n function changeOrder(reordered: HTMLElement[]) {\n if (!state.item) {\n return;\n }\n\n const { el } = state.item;\n\n if (!el.isConnected) {\n state.item = undefined;\n return;\n }\n\n const oldPositions = reordered.map((e) => getOffset(e));\n\n const y1 = getOffset(el);\n listRef.value?.replaceChildren(...reordered);\n const y2 = getOffset(el);\n\n const newPositions = reordered.map((e) => getOffset(e));\n\n const toAnimate: HTMLElement[] = [];\n\n for (let i = 0; i < newPositions.length; i++) {\n const option = reordered[i];\n\n if (option === state.item.el) {\n continue;\n }\n\n const newY = newPositions[i];\n\n const oldY = oldPositions[i];\n\n const invert = oldY - newY;\n\n option.style.transform = `translateY(${invert}px)`;\n\n toAnimate.push(option);\n }\n\n const dy = y2 - y1;\n\n state.item.y = state.item.y + dy;\n state.item.dy = state.item.dy - dy;\n state.item.orderChanged = true;\n state.item.el.style.setProperty(\"transform\", `translateY(${state.item.dy}px)`);\n\n toAnimate.forEach((o) => o.classList.remove(classes.animate));\n\n requestAnimationFrame(function () {\n toAnimate.forEach((option) => {\n option.classList.add(classes.animate);\n option.style.transform = \"\";\n option.addEventListener(\"transitionend\", () => {\n option.classList.remove(classes.animate);\n });\n });\n });\n }\n\n useEventListener(window, \"mousemove\", (e: { y: number }) => {\n if (!state.item) {\n return;\n }\n\n const { el } = state.item;\n\n updatePosition(state.item, e.y);\n\n const upper = getOffset(state.item.el);\n const bottom = getBottom(state.item.el);\n\n const before = elementsBefore(el);\n const after = elementsAfter(el);\n\n before.forEach((e) => {\n const y = getMiddle(e);\n\n if (upper + shakeBuffer < y) {\n changeOrder(insertBefore(e, el));\n }\n });\n\n after.forEach((e) => {\n const y = getMiddle(e);\n\n if (bottom - shakeBuffer > y) {\n changeOrder(insertAfter(e, el));\n }\n });\n\n if (listRef.value) {\n const rect = listRef.value.getBoundingClientRect();\n\n const deltaUp = rect.top + el.getBoundingClientRect().height / 2;\n if ((e as MouseEvent).clientY < deltaUp) {\n listRef.value.scrollTop += (e as MouseEvent).clientY - deltaUp;\n }\n\n const deltaDown = rect.bottom - el.getBoundingClientRect().height / 2;\n if ((e as MouseEvent).clientY > deltaDown) {\n listRef.value.scrollTop += (e as MouseEvent).clientY - deltaDown;\n }\n }\n });\n\n useEventListener(window, \"mouseup\", () => {\n if (!state.item) {\n return;\n }\n\n oldScrollTop = listRef.value?.scrollTop || 0;\n\n const { el, orderChanged } = state.item;\n\n el.classList.add(classes.animate);\n el.style.removeProperty(\"transform\");\n\n el.addEventListener(\"transitionend\", () => {\n el.classList.remove(classes.animate, classes.item);\n });\n\n setTimeout(() => {\n if (!orderChanged) {\n return;\n }\n\n const newIndices = state.options().map((o) => Number(o.getAttribute(\"data-index\")));\n\n const list = listRef.value;\n\n if (list) {\n for (const child of state.options()) {\n list.removeChild(child);\n }\n\n optionsRef.value.forEach((child) => {\n list.appendChild(child);\n });\n }\n\n settings.onChange(newIndices);\n }, reorderDelay);\n\n state.item = undefined;\n });\n\n watchEffect(() => {\n optionsRef.value.forEach((child, i) => {\n child.removeEventListener(\"mousedown\", mouseDown);\n child.addEventListener(\"mousedown\", mouseDown);\n child.setAttribute(\"data-index\", String(i));\n });\n });\n}\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { mapIterable as e, toList as t } from "../helpers/iterators.js";
2
2
  import { useLocalStorage as n } from "./useLocalStorage.js";
3
3
  import { computed as r, onMounted as i, onUnmounted as a, ref as o, unref as s, watch as c } from "vue";
4
+ //#region src/composition/useTheme.ts
4
5
  var l = /* @__PURE__ */ new Set();
5
6
  window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (n) => {
6
7
  t(e(l.values(), (e) => e(n.matches ? "dark" : "light")));
@@ -21,6 +22,7 @@ function f(e) {
21
22
  l.delete(n);
22
23
  }), [t, o];
23
24
  }
25
+ //#endregion
24
26
  export { f as useTheme };
25
27
 
26
28
  //# sourceMappingURL=useTheme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTheme.js","names":[],"sources":["../../src/composition/useTheme.ts"],"sourcesContent":["import { computed, onMounted, onUnmounted, ref, unref, watch } from \"vue\";\nimport { mapIterable, toList } from \"../helpers/iterators\";\nimport { useLocalStorage } from \"./useLocalStorage\";\n\ntype Theme = \"light\" | \"dark\";\n\ntype Callback = (mode: Theme) => void;\n\nconst cm = new Set<Callback>();\n\nif (window.matchMedia) {\n window.matchMedia(\"(prefers-color-scheme: dark)\").addEventListener(\"change\", (e) => {\n toList(mapIterable(cm.values(), (cb) => cb(e.matches ? \"dark\" : \"light\")));\n });\n}\n\nconst init =\n window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n\nconst browserTheme = ref<Theme>(init);\nconst savedTheme = useLocalStorage<Theme>(\"theme\");\n\nexport function useTheme(_cb?: Callback) {\n const theme = computed<Theme>(() => {\n return savedTheme.value ? savedTheme.value : browserTheme.value;\n });\n\n const cb = (theme: Theme) => {\n browserTheme.value = theme;\n _cb?.(theme);\n };\n\n function toggleTheme() {\n savedTheme.value =\n theme.value === \"light\" ? \"dark\" : theme.value === \"dark\" ? \"light\" : \"light\";\n }\n\n watch(theme, (v) => {\n _cb?.(unref(v));\n });\n\n onMounted(() => {\n cm.add(cb);\n });\n\n onUnmounted(() => {\n cm.delete(cb);\n });\n\n return [theme, toggleTheme] as const;\n}\n"],"mappings":";;;AAQA,IAAM,oBAAK,IAAI,KAAe;AAE1B,OAAO,cACT,OAAO,WAAW,+BAA+B,CAAC,iBAAiB,WAAW,MAAM;AAClF,GAAO,EAAY,EAAG,QAAQ,GAAG,MAAO,EAAG,EAAE,UAAU,SAAS,QAAQ,CAAC,CAAC;EAC1E;AAMJ,IAAM,IAAe,EAFnB,OAAO,cAAc,OAAO,WAAW,+BAA+B,CAAC,UAAU,SAAS,QAEvD,EAC/B,IAAa,EAAuB,QAAQ;AAElD,SAAgB,EAAS,GAAgB;CACvC,IAAM,IAAQ,QACL,EAAW,QAAQ,EAAW,QAAQ,EAAa,MAC1D,EAEI,KAAM,MAAiB;AAE3B,EADA,EAAa,QAAQ,GACrB,IAAM,EAAM;;CAGd,SAAS,IAAc;AACrB,IAAW,QACT,EAAM,UAAU,UAAU,UAAS,EAAM,OAAmB;;AAehE,QAZA,EAAM,IAAQ,MAAM;AAClB,MAAM,EAAM,EAAE,CAAC;GACf,EAEF,QAAgB;AACd,IAAG,IAAI,EAAG;GACV,EAEF,QAAkB;AAChB,IAAG,OAAO,EAAG;GACb,EAEK,CAAC,GAAO,EAAY"}
1
+ {"version":3,"file":"useTheme.js","names":[],"sources":["../../src/composition/useTheme.ts"],"sourcesContent":["import { computed, onMounted, onUnmounted, ref, unref, watch } from \"vue\";\nimport { mapIterable, toList } from \"../helpers/iterators\";\nimport { useLocalStorage } from \"./useLocalStorage\";\n\ntype Theme = \"light\" | \"dark\";\n\ntype Callback = (mode: Theme) => void;\n\nconst cm = new Set<Callback>();\n\nif (window.matchMedia) {\n window.matchMedia(\"(prefers-color-scheme: dark)\").addEventListener(\"change\", (e) => {\n toList(mapIterable(cm.values(), (cb) => cb(e.matches ? \"dark\" : \"light\")));\n });\n}\n\nconst init =\n window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n\nconst browserTheme = ref<Theme>(init);\nconst savedTheme = useLocalStorage<Theme>(\"theme\");\n\nexport function useTheme(_cb?: Callback) {\n const theme = computed<Theme>(() => {\n return savedTheme.value ? savedTheme.value : browserTheme.value;\n });\n\n const cb = (theme: Theme) => {\n browserTheme.value = theme;\n _cb?.(theme);\n };\n\n function toggleTheme() {\n savedTheme.value =\n theme.value === \"light\" ? \"dark\" : theme.value === \"dark\" ? \"light\" : \"light\";\n }\n\n watch(theme, (v) => {\n _cb?.(unref(v));\n });\n\n onMounted(() => {\n cm.add(cb);\n });\n\n onUnmounted(() => {\n cm.delete(cb);\n });\n\n return [theme, toggleTheme] as const;\n}\n"],"mappings":";;;;AAQA,IAAM,oBAAK,IAAI,KAAe;AAE1B,OAAO,cACT,OAAO,WAAW,+BAA+B,CAAC,iBAAiB,WAAW,MAAM;AAClF,GAAO,EAAY,EAAG,QAAQ,GAAG,MAAO,EAAG,EAAE,UAAU,SAAS,QAAQ,CAAC,CAAC;EAC1E;AAMJ,IAAM,IAAe,EAFnB,OAAO,cAAc,OAAO,WAAW,+BAA+B,CAAC,UAAU,SAAS,QAEvD,EAC/B,IAAa,EAAuB,QAAQ;AAElD,SAAgB,EAAS,GAAgB;CACvC,IAAM,IAAQ,QACL,EAAW,QAAQ,EAAW,QAAQ,EAAa,MAC1D,EAEI,KAAM,MAAiB;AAE3B,EADA,EAAa,QAAQ,GACrB,IAAM,EAAM;;CAGd,SAAS,IAAc;AACrB,IAAW,QACT,EAAM,UAAU,UAAU,UAAS,EAAM,OAAmB;;AAehE,QAZA,EAAM,IAAQ,MAAM;AAClB,MAAM,EAAM,EAAE,CAAC;GACf,EAEF,QAAgB;AACd,IAAG,IAAI,EAAG;GACV,EAEF,QAAkB;AAChB,IAAG,OAAO,EAAG;GACb,EAEK,CAAC,GAAO,EAAY"}