@hortonstudio/main 1.2.11 → 1.2.13

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 (489) hide show
  1. package/index.js +23 -10
  2. package/package.json +17 -6
  3. package/.claude/settings.local.json +0 -21
  4. package/animations/hero.js +0 -599
  5. package/animations/text.js +0 -369
  6. package/animations/transition.js +0 -57
  7. package/attributes-master/.changeset/README.md +0 -8
  8. package/attributes-master/.changeset/config.json +0 -11
  9. package/attributes-master/.gitattributes +0 -2
  10. package/attributes-master/.github/ISSUE_TEMPLATE/bug_report.md +0 -42
  11. package/attributes-master/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  12. package/attributes-master/.github/workflows/ci.yml +0 -66
  13. package/attributes-master/.github/workflows/release.yml +0 -40
  14. package/attributes-master/.prettierignore +0 -3
  15. package/attributes-master/.prettierrc +0 -8
  16. package/attributes-master/.vscode/extensions.json +0 -3
  17. package/attributes-master/.vscode/settings.json +0 -7
  18. package/attributes-master/CONTRIBUTING.md +0 -72
  19. package/attributes-master/LICENSE.md +0 -201
  20. package/attributes-master/README.md +0 -31
  21. package/attributes-master/eslint.config.js +0 -3
  22. package/attributes-master/package.json +0 -34
  23. package/attributes-master/packages/accordion/CHANGELOG.md +0 -89
  24. package/attributes-master/packages/accordion/README.md +0 -31
  25. package/attributes-master/packages/accordion/package.json +0 -25
  26. package/attributes-master/packages/accordion/src/actions/a11y.ts +0 -39
  27. package/attributes-master/packages/accordion/src/actions/classes.ts +0 -27
  28. package/attributes-master/packages/accordion/src/actions/content.ts +0 -42
  29. package/attributes-master/packages/accordion/src/actions/list.ts +0 -36
  30. package/attributes-master/packages/accordion/src/actions/query.ts +0 -27
  31. package/attributes-master/packages/accordion/src/actions/settings.ts +0 -61
  32. package/attributes-master/packages/accordion/src/factory.ts +0 -145
  33. package/attributes-master/packages/accordion/src/index.ts +0 -3
  34. package/attributes-master/packages/accordion/src/init.ts +0 -37
  35. package/attributes-master/packages/accordion/src/utils/constants.ts +0 -62
  36. package/attributes-master/packages/accordion/src/utils/helpers.ts +0 -5
  37. package/attributes-master/packages/accordion/src/utils/selectors.ts +0 -12
  38. package/attributes-master/packages/accordion/src/utils/types.ts +0 -23
  39. package/attributes-master/packages/accordion/tsconfig.json +0 -3
  40. package/attributes-master/packages/attributes/CHANGELOG.md +0 -564
  41. package/attributes-master/packages/attributes/README.md +0 -66
  42. package/attributes-master/packages/attributes/bin/build.ts +0 -107
  43. package/attributes-master/packages/attributes/bin/live-reload.js +0 -1
  44. package/attributes-master/packages/attributes/package.json +0 -77
  45. package/attributes-master/packages/attributes/playwright.config.ts +0 -89
  46. package/attributes-master/packages/attributes/src/attributes.ts +0 -153
  47. package/attributes-master/packages/attributes/src/load.ts +0 -125
  48. package/attributes-master/packages/attributes/tests/accordion.spec.ts +0 -137
  49. package/attributes-master/packages/attributes/tests/codehighlight.spec.ts +0 -23
  50. package/attributes-master/packages/attributes/tests/combobox.spec.ts +0 -321
  51. package/attributes-master/packages/attributes/tests/copyclip.spec.ts +0 -19
  52. package/attributes-master/packages/attributes/tests/displayvalues.spec.ts +0 -48
  53. package/attributes-master/packages/attributes/tests/favcustom.spec.ts +0 -23
  54. package/attributes-master/packages/attributes/tests/inject.spec.ts +0 -40
  55. package/attributes-master/packages/attributes/tests/inputactive.spec.ts +0 -77
  56. package/attributes-master/packages/attributes/tests/inputcounter.spec.ts +0 -83
  57. package/attributes-master/packages/attributes/tests/list.spec.ts +0 -800
  58. package/attributes-master/packages/attributes/tests/mirrorclick.spec.ts +0 -22
  59. package/attributes-master/packages/attributes/tests/mirrorinput.spec.ts +0 -37
  60. package/attributes-master/packages/attributes/tests/modal.spec.ts +0 -34
  61. package/attributes-master/packages/attributes/tests/numbercount.spec.ts +0 -40
  62. package/attributes-master/packages/attributes/tests/readtime.spec.ts +0 -19
  63. package/attributes-master/packages/attributes/tests/selectcustom.spec.ts +0 -51
  64. package/attributes-master/packages/attributes/tests/socialshare.spec.ts +0 -54
  65. package/attributes-master/packages/attributes/tests/starrating.spec.ts +0 -79
  66. package/attributes-master/packages/attributes/tests/toc.spec.ts +0 -38
  67. package/attributes-master/packages/attributes/tests/utils/index.ts +0 -16
  68. package/attributes-master/packages/attributes/tsconfig.json +0 -6
  69. package/attributes-master/packages/autovideo/CHANGELOG.md +0 -182
  70. package/attributes-master/packages/autovideo/README.md +0 -31
  71. package/attributes-master/packages/autovideo/package.json +0 -22
  72. package/attributes-master/packages/autovideo/src/index.ts +0 -3
  73. package/attributes-master/packages/autovideo/src/init.ts +0 -52
  74. package/attributes-master/packages/autovideo/src/types.ts +0 -5
  75. package/attributes-master/packages/autovideo/src/utils/constants.ts +0 -4
  76. package/attributes-master/packages/autovideo/tsconfig.json +0 -3
  77. package/attributes-master/packages/codehighlight/CHANGELOG.md +0 -185
  78. package/attributes-master/packages/codehighlight/README.md +0 -27
  79. package/attributes-master/packages/codehighlight/package.json +0 -23
  80. package/attributes-master/packages/codehighlight/src/actions/import.ts +0 -50
  81. package/attributes-master/packages/codehighlight/src/index.ts +0 -3
  82. package/attributes-master/packages/codehighlight/src/init.ts +0 -53
  83. package/attributes-master/packages/codehighlight/src/utils/constants.ts +0 -24
  84. package/attributes-master/packages/codehighlight/src/utils/selectors.ts +0 -5
  85. package/attributes-master/packages/codehighlight/src/utils/themes.ts +0 -202
  86. package/attributes-master/packages/codehighlight/tsconfig.json +0 -3
  87. package/attributes-master/packages/combobox/CHANGELOG.md +0 -99
  88. package/attributes-master/packages/combobox/README.md +0 -27
  89. package/attributes-master/packages/combobox/package.json +0 -23
  90. package/attributes-master/packages/combobox/src/actions/a11y.ts +0 -29
  91. package/attributes-master/packages/combobox/src/actions/body/index.ts +0 -12
  92. package/attributes-master/packages/combobox/src/actions/clearDropdown/index.ts +0 -37
  93. package/attributes-master/packages/combobox/src/actions/dropdownList/index.ts +0 -220
  94. package/attributes-master/packages/combobox/src/actions/dropdownToggle/index.ts +0 -34
  95. package/attributes-master/packages/combobox/src/actions/events.ts +0 -75
  96. package/attributes-master/packages/combobox/src/actions/input/index.ts +0 -235
  97. package/attributes-master/packages/combobox/src/actions/observe.ts +0 -158
  98. package/attributes-master/packages/combobox/src/actions/populate.ts +0 -97
  99. package/attributes-master/packages/combobox/src/actions/selectElement/index.ts +0 -23
  100. package/attributes-master/packages/combobox/src/actions/settings.ts +0 -134
  101. package/attributes-master/packages/combobox/src/actions/state.ts +0 -34
  102. package/attributes-master/packages/combobox/src/index.ts +0 -3
  103. package/attributes-master/packages/combobox/src/init.ts +0 -52
  104. package/attributes-master/packages/combobox/src/utils/constants.ts +0 -48
  105. package/attributes-master/packages/combobox/src/utils/dropdowns.ts +0 -120
  106. package/attributes-master/packages/combobox/src/utils/index.ts +0 -1
  107. package/attributes-master/packages/combobox/src/utils/selectors.ts +0 -9
  108. package/attributes-master/packages/combobox/src/utils/types.ts +0 -14
  109. package/attributes-master/packages/combobox/tsconfig.json +0 -3
  110. package/attributes-master/packages/copyclip/CHANGELOG.md +0 -213
  111. package/attributes-master/packages/copyclip/README.md +0 -27
  112. package/attributes-master/packages/copyclip/package.json +0 -23
  113. package/attributes-master/packages/copyclip/src/factory.ts +0 -67
  114. package/attributes-master/packages/copyclip/src/index.ts +0 -3
  115. package/attributes-master/packages/copyclip/src/init.ts +0 -68
  116. package/attributes-master/packages/copyclip/src/utils/constants.ts +0 -40
  117. package/attributes-master/packages/copyclip/src/utils/selectors.ts +0 -9
  118. package/attributes-master/packages/copyclip/tsconfig.json +0 -3
  119. package/attributes-master/packages/displayvalues/CHANGELOG.md +0 -164
  120. package/attributes-master/packages/displayvalues/README.md +0 -27
  121. package/attributes-master/packages/displayvalues/package.json +0 -22
  122. package/attributes-master/packages/displayvalues/src/actions/collect.ts +0 -17
  123. package/attributes-master/packages/displayvalues/src/actions/events.ts +0 -22
  124. package/attributes-master/packages/displayvalues/src/actions/sync.ts +0 -23
  125. package/attributes-master/packages/displayvalues/src/index.ts +0 -3
  126. package/attributes-master/packages/displayvalues/src/init.ts +0 -31
  127. package/attributes-master/packages/displayvalues/src/utils/constants.ts +0 -20
  128. package/attributes-master/packages/displayvalues/src/utils/selectors.ts +0 -9
  129. package/attributes-master/packages/displayvalues/src/utils/stores.ts +0 -3
  130. package/attributes-master/packages/displayvalues/tsconfig.json +0 -3
  131. package/attributes-master/packages/docs/CHANGELOG.md +0 -108
  132. package/attributes-master/packages/docs/README.md +0 -3
  133. package/attributes-master/packages/docs/bin/build.js +0 -92
  134. package/attributes-master/packages/docs/bin/live-reload.js +0 -1
  135. package/attributes-master/packages/docs/package.json +0 -40
  136. package/attributes-master/packages/docs/src/copy.ts +0 -260
  137. package/attributes-master/packages/docs/src/x-ray.ts +0 -377
  138. package/attributes-master/packages/docs/tsconfig.json +0 -3
  139. package/attributes-master/packages/favcustom/CHANGELOG.md +0 -194
  140. package/attributes-master/packages/favcustom/README.md +0 -27
  141. package/attributes-master/packages/favcustom/package.json +0 -22
  142. package/attributes-master/packages/favcustom/src/index.ts +0 -3
  143. package/attributes-master/packages/favcustom/src/init.ts +0 -30
  144. package/attributes-master/packages/favcustom/src/utils/constants.ts +0 -10
  145. package/attributes-master/packages/favcustom/src/utils/selectors.ts +0 -5
  146. package/attributes-master/packages/favcustom/tsconfig.json +0 -3
  147. package/attributes-master/packages/formsubmit/CHANGELOG.md +0 -161
  148. package/attributes-master/packages/formsubmit/README.md +0 -51
  149. package/attributes-master/packages/formsubmit/package.json +0 -22
  150. package/attributes-master/packages/formsubmit/src/actions/redirect.ts +0 -9
  151. package/attributes-master/packages/formsubmit/src/actions/reset.ts +0 -49
  152. package/attributes-master/packages/formsubmit/src/actions/submit.ts +0 -34
  153. package/attributes-master/packages/formsubmit/src/components/Form.ts +0 -231
  154. package/attributes-master/packages/formsubmit/src/factory.ts +0 -62
  155. package/attributes-master/packages/formsubmit/src/index.ts +0 -3
  156. package/attributes-master/packages/formsubmit/src/init.ts +0 -24
  157. package/attributes-master/packages/formsubmit/src/utils/attributes.ts +0 -19
  158. package/attributes-master/packages/formsubmit/src/utils/constants.ts +0 -89
  159. package/attributes-master/packages/formsubmit/src/utils/dom.ts +0 -76
  160. package/attributes-master/packages/formsubmit/src/utils/selectors.ts +0 -9
  161. package/attributes-master/packages/formsubmit/src/utils/types.ts +0 -7
  162. package/attributes-master/packages/formsubmit/tsconfig.json +0 -3
  163. package/attributes-master/packages/inject/CHANGELOG.md +0 -117
  164. package/attributes-master/packages/inject/README.md +0 -60
  165. package/attributes-master/packages/inject/package.json +0 -22
  166. package/attributes-master/packages/inject/src/actions/collect.ts +0 -125
  167. package/attributes-master/packages/inject/src/actions/css.ts +0 -27
  168. package/attributes-master/packages/inject/src/actions/prefetch.ts +0 -44
  169. package/attributes-master/packages/inject/src/factory.ts +0 -123
  170. package/attributes-master/packages/inject/src/index.ts +0 -3
  171. package/attributes-master/packages/inject/src/init.ts +0 -22
  172. package/attributes-master/packages/inject/src/utils/constants.ts +0 -89
  173. package/attributes-master/packages/inject/src/utils/helpers.ts +0 -36
  174. package/attributes-master/packages/inject/src/utils/selectors.ts +0 -9
  175. package/attributes-master/packages/inject/src/utils/types.ts +0 -16
  176. package/attributes-master/packages/inject/tsconfig.json +0 -3
  177. package/attributes-master/packages/inputactive/CHANGELOG.md +0 -58
  178. package/attributes-master/packages/inputactive/README.md +0 -25
  179. package/attributes-master/packages/inputactive/package.json +0 -22
  180. package/attributes-master/packages/inputactive/src/actions/classes.ts +0 -43
  181. package/attributes-master/packages/inputactive/src/factory.ts +0 -24
  182. package/attributes-master/packages/inputactive/src/index.ts +0 -3
  183. package/attributes-master/packages/inputactive/src/init.ts +0 -18
  184. package/attributes-master/packages/inputactive/src/utils/constants.ts +0 -13
  185. package/attributes-master/packages/inputactive/src/utils/selectors.ts +0 -5
  186. package/attributes-master/packages/inputactive/tsconfig.json +0 -3
  187. package/attributes-master/packages/inputcounter/CHANGELOG.md +0 -110
  188. package/attributes-master/packages/inputcounter/README.md +0 -25
  189. package/attributes-master/packages/inputcounter/package.json +0 -22
  190. package/attributes-master/packages/inputcounter/src/actions/a11y.ts +0 -23
  191. package/attributes-master/packages/inputcounter/src/actions/buttons.ts +0 -61
  192. package/attributes-master/packages/inputcounter/src/actions/input.ts +0 -31
  193. package/attributes-master/packages/inputcounter/src/actions/style.ts +0 -12
  194. package/attributes-master/packages/inputcounter/src/factory.ts +0 -51
  195. package/attributes-master/packages/inputcounter/src/index.ts +0 -3
  196. package/attributes-master/packages/inputcounter/src/init.ts +0 -22
  197. package/attributes-master/packages/inputcounter/src/utils/constants.ts +0 -59
  198. package/attributes-master/packages/inputcounter/src/utils/selectors.ts +0 -9
  199. package/attributes-master/packages/inputcounter/tsconfig.json +0 -3
  200. package/attributes-master/packages/list/CHANGELOG.md +0 -185
  201. package/attributes-master/packages/list/README.md +0 -331
  202. package/attributes-master/packages/list/package.json +0 -37
  203. package/attributes-master/packages/list/src/combine/index.ts +0 -38
  204. package/attributes-master/packages/list/src/components/List.ts +0 -861
  205. package/attributes-master/packages/list/src/components/ListItem.ts +0 -229
  206. package/attributes-master/packages/list/src/components/index.ts +0 -2
  207. package/attributes-master/packages/list/src/factory.ts +0 -130
  208. package/attributes-master/packages/list/src/filter/dynamic/conditions.ts +0 -639
  209. package/attributes-master/packages/list/src/filter/dynamic/groups.ts +0 -221
  210. package/attributes-master/packages/list/src/filter/dynamic/index.ts +0 -119
  211. package/attributes-master/packages/list/src/filter/dynamic/utils.ts +0 -44
  212. package/attributes-master/packages/list/src/filter/elements.ts +0 -93
  213. package/attributes-master/packages/list/src/filter/filter.ts +0 -118
  214. package/attributes-master/packages/list/src/filter/filter.worker.ts +0 -152
  215. package/attributes-master/packages/list/src/filter/index.ts +0 -94
  216. package/attributes-master/packages/list/src/filter/standard/conditions.ts +0 -123
  217. package/attributes-master/packages/list/src/filter/standard/facets.ts +0 -253
  218. package/attributes-master/packages/list/src/filter/standard/index.ts +0 -176
  219. package/attributes-master/packages/list/src/filter/standard/query.ts +0 -111
  220. package/attributes-master/packages/list/src/filter/tags.ts +0 -314
  221. package/attributes-master/packages/list/src/filter/types.ts +0 -62
  222. package/attributes-master/packages/list/src/filter/utils.ts +0 -126
  223. package/attributes-master/packages/list/src/index.ts +0 -4
  224. package/attributes-master/packages/list/src/init.ts +0 -38
  225. package/attributes-master/packages/list/src/load/all.ts +0 -27
  226. package/attributes-master/packages/list/src/load/elements.ts +0 -39
  227. package/attributes-master/packages/list/src/load/index.ts +0 -63
  228. package/attributes-master/packages/list/src/load/infinite.ts +0 -79
  229. package/attributes-master/packages/list/src/load/load.ts +0 -191
  230. package/attributes-master/packages/list/src/load/more.ts +0 -97
  231. package/attributes-master/packages/list/src/load/pagination.ts +0 -402
  232. package/attributes-master/packages/list/src/nest/index.ts +0 -198
  233. package/attributes-master/packages/list/src/prevnext/index.ts +0 -98
  234. package/attributes-master/packages/list/src/select/index.ts +0 -56
  235. package/attributes-master/packages/list/src/slider/index.ts +0 -62
  236. package/attributes-master/packages/list/src/sort/buttons.ts +0 -96
  237. package/attributes-master/packages/list/src/sort/dropdown.ts +0 -179
  238. package/attributes-master/packages/list/src/sort/index.ts +0 -81
  239. package/attributes-master/packages/list/src/sort/query.ts +0 -63
  240. package/attributes-master/packages/list/src/sort/select.ts +0 -67
  241. package/attributes-master/packages/list/src/sort/sort.ts +0 -79
  242. package/attributes-master/packages/list/src/sort/types.ts +0 -28
  243. package/attributes-master/packages/list/src/static/index.ts +0 -73
  244. package/attributes-master/packages/list/src/tabs/index.ts +0 -97
  245. package/attributes-master/packages/list/src/utils/constants.ts +0 -728
  246. package/attributes-master/packages/list/src/utils/dom.ts +0 -108
  247. package/attributes-master/packages/list/src/utils/pagination.ts +0 -14
  248. package/attributes-master/packages/list/src/utils/selectors.ts +0 -18
  249. package/attributes-master/packages/list/src/utils/store.ts +0 -5
  250. package/attributes-master/packages/list/tsconfig.json +0 -3
  251. package/attributes-master/packages/mirrorclick/CHANGELOG.md +0 -171
  252. package/attributes-master/packages/mirrorclick/README.md +0 -25
  253. package/attributes-master/packages/mirrorclick/package.json +0 -22
  254. package/attributes-master/packages/mirrorclick/src/index.ts +0 -3
  255. package/attributes-master/packages/mirrorclick/src/init.ts +0 -35
  256. package/attributes-master/packages/mirrorclick/src/utils/constants.ts +0 -20
  257. package/attributes-master/packages/mirrorclick/src/utils/selectors.ts +0 -9
  258. package/attributes-master/packages/mirrorclick/tsconfig.json +0 -3
  259. package/attributes-master/packages/mirrorinput/CHANGELOG.md +0 -172
  260. package/attributes-master/packages/mirrorinput/README.md +0 -25
  261. package/attributes-master/packages/mirrorinput/package.json +0 -22
  262. package/attributes-master/packages/mirrorinput/src/index.ts +0 -3
  263. package/attributes-master/packages/mirrorinput/src/init.ts +0 -48
  264. package/attributes-master/packages/mirrorinput/src/utils/constants.ts +0 -15
  265. package/attributes-master/packages/mirrorinput/src/utils/selectors.ts +0 -9
  266. package/attributes-master/packages/mirrorinput/tsconfig.json +0 -3
  267. package/attributes-master/packages/modal/CHANGELOG.md +0 -94
  268. package/attributes-master/packages/modal/README.md +0 -29
  269. package/attributes-master/packages/modal/package.json +0 -23
  270. package/attributes-master/packages/modal/src/actions/a11y.ts +0 -46
  271. package/attributes-master/packages/modal/src/actions/modal.ts +0 -164
  272. package/attributes-master/packages/modal/src/actions/settings.ts +0 -21
  273. package/attributes-master/packages/modal/src/factory.ts +0 -26
  274. package/attributes-master/packages/modal/src/index.ts +0 -3
  275. package/attributes-master/packages/modal/src/init.ts +0 -22
  276. package/attributes-master/packages/modal/src/utils/constants.ts +0 -54
  277. package/attributes-master/packages/modal/src/utils/selectors.ts +0 -9
  278. package/attributes-master/packages/modal/src/utils/types.ts +0 -12
  279. package/attributes-master/packages/modal/tsconfig.json +0 -3
  280. package/attributes-master/packages/numbercount/CHANGELOG.md +0 -90
  281. package/attributes-master/packages/numbercount/README.md +0 -27
  282. package/attributes-master/packages/numbercount/package.json +0 -23
  283. package/attributes-master/packages/numbercount/src/actions/a11y.ts +0 -26
  284. package/attributes-master/packages/numbercount/src/actions/animate.ts +0 -43
  285. package/attributes-master/packages/numbercount/src/actions/observe.ts +0 -44
  286. package/attributes-master/packages/numbercount/src/factory.ts +0 -31
  287. package/attributes-master/packages/numbercount/src/index.ts +0 -3
  288. package/attributes-master/packages/numbercount/src/init.ts +0 -22
  289. package/attributes-master/packages/numbercount/src/utils/constants.ts +0 -40
  290. package/attributes-master/packages/numbercount/src/utils/helpers.ts +0 -31
  291. package/attributes-master/packages/numbercount/src/utils/selectors.ts +0 -9
  292. package/attributes-master/packages/numbercount/tsconfig.json +0 -3
  293. package/attributes-master/packages/queryparam/CHANGELOG.md +0 -118
  294. package/attributes-master/packages/queryparam/README.md +0 -25
  295. package/attributes-master/packages/queryparam/package.json +0 -22
  296. package/attributes-master/packages/queryparam/src/factory.ts +0 -51
  297. package/attributes-master/packages/queryparam/src/index.ts +0 -3
  298. package/attributes-master/packages/queryparam/src/init.ts +0 -40
  299. package/attributes-master/packages/queryparam/src/utils/constants.ts +0 -18
  300. package/attributes-master/packages/queryparam/src/utils/selectors.ts +0 -5
  301. package/attributes-master/packages/queryparam/tsconfig.json +0 -3
  302. package/attributes-master/packages/rangeslider/CHANGELOG.md +0 -236
  303. package/attributes-master/packages/rangeslider/README.md +0 -95
  304. package/attributes-master/packages/rangeslider/package.json +0 -23
  305. package/attributes-master/packages/rangeslider/src/actions/a11y.ts +0 -21
  306. package/attributes-master/packages/rangeslider/src/actions/events.ts +0 -9
  307. package/attributes-master/packages/rangeslider/src/actions/settings.ts +0 -97
  308. package/attributes-master/packages/rangeslider/src/actions/styles.ts +0 -10
  309. package/attributes-master/packages/rangeslider/src/actions/values.ts +0 -47
  310. package/attributes-master/packages/rangeslider/src/components/Fill.ts +0 -70
  311. package/attributes-master/packages/rangeslider/src/components/Handle.ts +0 -281
  312. package/attributes-master/packages/rangeslider/src/factory.ts +0 -100
  313. package/attributes-master/packages/rangeslider/src/index.ts +0 -3
  314. package/attributes-master/packages/rangeslider/src/init.ts +0 -194
  315. package/attributes-master/packages/rangeslider/src/utils/constants.ts +0 -87
  316. package/attributes-master/packages/rangeslider/src/utils/selectors.ts +0 -9
  317. package/attributes-master/packages/rangeslider/src/utils/types.ts +0 -6
  318. package/attributes-master/packages/rangeslider/tsconfig.json +0 -3
  319. package/attributes-master/packages/readtime/CHANGELOG.md +0 -108
  320. package/attributes-master/packages/readtime/README.md +0 -25
  321. package/attributes-master/packages/readtime/package.json +0 -22
  322. package/attributes-master/packages/readtime/src/factory.ts +0 -21
  323. package/attributes-master/packages/readtime/src/index.ts +0 -3
  324. package/attributes-master/packages/readtime/src/init.ts +0 -19
  325. package/attributes-master/packages/readtime/src/utils/constants.ts +0 -33
  326. package/attributes-master/packages/readtime/src/utils/selectors.ts +0 -9
  327. package/attributes-master/packages/readtime/tsconfig.json +0 -3
  328. package/attributes-master/packages/removequery/CHANGELOG.md +0 -8
  329. package/attributes-master/packages/removequery/README.md +0 -25
  330. package/attributes-master/packages/removequery/package.json +0 -22
  331. package/attributes-master/packages/removequery/src/index.ts +0 -3
  332. package/attributes-master/packages/removequery/src/init.ts +0 -18
  333. package/attributes-master/packages/removequery/src/utils/constants.ts +0 -5
  334. package/attributes-master/packages/removequery/tsconfig.json +0 -3
  335. package/attributes-master/packages/scrolldisable/CHANGELOG.md +0 -164
  336. package/attributes-master/packages/scrolldisable/README.md +0 -29
  337. package/attributes-master/packages/scrolldisable/package.json +0 -27
  338. package/attributes-master/packages/scrolldisable/src/click.ts +0 -40
  339. package/attributes-master/packages/scrolldisable/src/display.ts +0 -117
  340. package/attributes-master/packages/scrolldisable/src/index.ts +0 -3
  341. package/attributes-master/packages/scrolldisable/src/init.ts +0 -36
  342. package/attributes-master/packages/scrolldisable/src/scroll.ts +0 -63
  343. package/attributes-master/packages/scrolldisable/src/utils/constants.ts +0 -56
  344. package/attributes-master/packages/scrolldisable/src/utils/selectors.ts +0 -6
  345. package/attributes-master/packages/scrolldisable/tsconfig.json +0 -3
  346. package/attributes-master/packages/selectcustom/CHANGELOG.md +0 -242
  347. package/attributes-master/packages/selectcustom/README.md +0 -25
  348. package/attributes-master/packages/selectcustom/package.json +0 -23
  349. package/attributes-master/packages/selectcustom/src/actions/a11y.ts +0 -29
  350. package/attributes-master/packages/selectcustom/src/actions/events.ts +0 -159
  351. package/attributes-master/packages/selectcustom/src/actions/observe.ts +0 -83
  352. package/attributes-master/packages/selectcustom/src/actions/populate.ts +0 -67
  353. package/attributes-master/packages/selectcustom/src/actions/settings.ts +0 -68
  354. package/attributes-master/packages/selectcustom/src/actions/state.ts +0 -41
  355. package/attributes-master/packages/selectcustom/src/index.ts +0 -3
  356. package/attributes-master/packages/selectcustom/src/init.ts +0 -51
  357. package/attributes-master/packages/selectcustom/src/utils/constants.ts +0 -34
  358. package/attributes-master/packages/selectcustom/src/utils/selectors.ts +0 -9
  359. package/attributes-master/packages/selectcustom/src/utils/types.ts +0 -14
  360. package/attributes-master/packages/selectcustom/tsconfig.json +0 -3
  361. package/attributes-master/packages/sliderdots/CHANGELOG.md +0 -220
  362. package/attributes-master/packages/sliderdots/README.md +0 -27
  363. package/attributes-master/packages/sliderdots/package.json +0 -22
  364. package/attributes-master/packages/sliderdots/src/actions/events.ts +0 -26
  365. package/attributes-master/packages/sliderdots/src/actions/observe.ts +0 -40
  366. package/attributes-master/packages/sliderdots/src/actions/populate.ts +0 -46
  367. package/attributes-master/packages/sliderdots/src/actions/sync.ts +0 -28
  368. package/attributes-master/packages/sliderdots/src/actions/wait.ts +0 -28
  369. package/attributes-master/packages/sliderdots/src/factory.ts +0 -57
  370. package/attributes-master/packages/sliderdots/src/index.ts +0 -3
  371. package/attributes-master/packages/sliderdots/src/init.ts +0 -30
  372. package/attributes-master/packages/sliderdots/src/utils/constants.ts +0 -33
  373. package/attributes-master/packages/sliderdots/src/utils/selectors.ts +0 -9
  374. package/attributes-master/packages/sliderdots/src/utils/types.ts +0 -7
  375. package/attributes-master/packages/sliderdots/tsconfig.json +0 -3
  376. package/attributes-master/packages/smartlightbox/CHANGELOG.md +0 -203
  377. package/attributes-master/packages/smartlightbox/README.md +0 -25
  378. package/attributes-master/packages/smartlightbox/package.json +0 -22
  379. package/attributes-master/packages/smartlightbox/src/actions/collect.ts +0 -15
  380. package/attributes-master/packages/smartlightbox/src/actions/move.ts +0 -25
  381. package/attributes-master/packages/smartlightbox/src/index.ts +0 -3
  382. package/attributes-master/packages/smartlightbox/src/init.ts +0 -61
  383. package/attributes-master/packages/smartlightbox/src/utils/constants.ts +0 -31
  384. package/attributes-master/packages/smartlightbox/src/utils/selectors.ts +0 -9
  385. package/attributes-master/packages/smartlightbox/tsconfig.json +0 -3
  386. package/attributes-master/packages/socialshare/CHANGELOG.md +0 -170
  387. package/attributes-master/packages/socialshare/README.md +0 -25
  388. package/attributes-master/packages/socialshare/package.json +0 -25
  389. package/attributes-master/packages/socialshare/src/actions/collect.ts +0 -93
  390. package/attributes-master/packages/socialshare/src/actions/share.ts +0 -91
  391. package/attributes-master/packages/socialshare/src/actions/trigger.ts +0 -46
  392. package/attributes-master/packages/socialshare/src/factory.ts +0 -149
  393. package/attributes-master/packages/socialshare/src/index.ts +0 -3
  394. package/attributes-master/packages/socialshare/src/init.ts +0 -35
  395. package/attributes-master/packages/socialshare/src/utils/constants.ts +0 -94
  396. package/attributes-master/packages/socialshare/src/utils/dom.ts +0 -8
  397. package/attributes-master/packages/socialshare/src/utils/selectors.ts +0 -6
  398. package/attributes-master/packages/socialshare/src/utils/stores.ts +0 -10
  399. package/attributes-master/packages/socialshare/src/utils/types.ts +0 -34
  400. package/attributes-master/packages/socialshare/tsconfig.json +0 -3
  401. package/attributes-master/packages/starrating/CHANGELOG.md +0 -70
  402. package/attributes-master/packages/starrating/README.md +0 -25
  403. package/attributes-master/packages/starrating/package.json +0 -22
  404. package/attributes-master/packages/starrating/src/actions/classes.ts +0 -41
  405. package/attributes-master/packages/starrating/src/actions/events.ts +0 -80
  406. package/attributes-master/packages/starrating/src/factory.ts +0 -24
  407. package/attributes-master/packages/starrating/src/index.ts +0 -3
  408. package/attributes-master/packages/starrating/src/init.ts +0 -24
  409. package/attributes-master/packages/starrating/src/utils/constants.ts +0 -20
  410. package/attributes-master/packages/starrating/src/utils/helpers.ts +0 -63
  411. package/attributes-master/packages/starrating/src/utils/selectors.ts +0 -9
  412. package/attributes-master/packages/starrating/tsconfig.json +0 -3
  413. package/attributes-master/packages/template/README.md +0 -25
  414. package/attributes-master/packages/template/package.json +0 -22
  415. package/attributes-master/packages/template/src/actions/console.ts +0 -4
  416. package/attributes-master/packages/template/src/index.ts +0 -3
  417. package/attributes-master/packages/template/src/init.ts +0 -14
  418. package/attributes-master/packages/template/src/utils/constants.ts +0 -18
  419. package/attributes-master/packages/template/src/utils/selectors.ts +0 -5
  420. package/attributes-master/packages/template/tsconfig.json +0 -3
  421. package/attributes-master/packages/toc/CHANGELOG.md +0 -192
  422. package/attributes-master/packages/toc/README.md +0 -25
  423. package/attributes-master/packages/toc/package.json +0 -23
  424. package/attributes-master/packages/toc/src/actions/collect.ts +0 -136
  425. package/attributes-master/packages/toc/src/actions/create.ts +0 -44
  426. package/attributes-master/packages/toc/src/actions/events.ts +0 -29
  427. package/attributes-master/packages/toc/src/actions/observe.ts +0 -31
  428. package/attributes-master/packages/toc/src/actions/populate.ts +0 -68
  429. package/attributes-master/packages/toc/src/actions/prepare.ts +0 -25
  430. package/attributes-master/packages/toc/src/actions/scroll.ts +0 -33
  431. package/attributes-master/packages/toc/src/components/TOCItem.ts +0 -88
  432. package/attributes-master/packages/toc/src/factory.ts +0 -47
  433. package/attributes-master/packages/toc/src/index.ts +0 -3
  434. package/attributes-master/packages/toc/src/init.ts +0 -37
  435. package/attributes-master/packages/toc/src/utils/constants.ts +0 -55
  436. package/attributes-master/packages/toc/src/utils/helpers.ts +0 -23
  437. package/attributes-master/packages/toc/src/utils/selectors.ts +0 -6
  438. package/attributes-master/packages/toc/src/utils/types.ts +0 -21
  439. package/attributes-master/packages/toc/tsconfig.json +0 -3
  440. package/attributes-master/packages/utils/CHANGELOG.md +0 -43
  441. package/attributes-master/packages/utils/package.json +0 -27
  442. package/attributes-master/packages/utils/src/animations/factory.ts +0 -100
  443. package/attributes-master/packages/utils/src/animations/index.ts +0 -73
  444. package/attributes-master/packages/utils/src/animations/types.ts +0 -37
  445. package/attributes-master/packages/utils/src/components/Interaction.ts +0 -79
  446. package/attributes-master/packages/utils/src/components/Renderer.ts +0 -59
  447. package/attributes-master/packages/utils/src/components/index.ts +0 -2
  448. package/attributes-master/packages/utils/src/constants/a11y.ts +0 -50
  449. package/attributes-master/packages/utils/src/constants/attributes.ts +0 -57
  450. package/attributes-master/packages/utils/src/constants/index.ts +0 -5
  451. package/attributes-master/packages/utils/src/constants/keyboard.ts +0 -10
  452. package/attributes-master/packages/utils/src/constants/webflow.ts +0 -74
  453. package/attributes-master/packages/utils/src/helpers/dates.ts +0 -17
  454. package/attributes-master/packages/utils/src/helpers/dom.ts +0 -82
  455. package/attributes-master/packages/utils/src/helpers/events.ts +0 -59
  456. package/attributes-master/packages/utils/src/helpers/fetch.ts +0 -217
  457. package/attributes-master/packages/utils/src/helpers/forms.ts +0 -238
  458. package/attributes-master/packages/utils/src/helpers/guards.ts +0 -138
  459. package/attributes-master/packages/utils/src/helpers/index.ts +0 -11
  460. package/attributes-master/packages/utils/src/helpers/numbers.ts +0 -86
  461. package/attributes-master/packages/utils/src/helpers/selectors.ts +0 -249
  462. package/attributes-master/packages/utils/src/helpers/strings.ts +0 -19
  463. package/attributes-master/packages/utils/src/helpers/wait.ts +0 -36
  464. package/attributes-master/packages/utils/src/helpers/webflow.ts +0 -117
  465. package/attributes-master/packages/utils/src/index.ts +0 -5
  466. package/attributes-master/packages/utils/src/types/core.ts +0 -100
  467. package/attributes-master/packages/utils/src/types/dom.ts +0 -31
  468. package/attributes-master/packages/utils/src/types/index.ts +0 -4
  469. package/attributes-master/packages/utils/src/types/utils.ts +0 -20
  470. package/attributes-master/packages/utils/src/types/webflow.ts +0 -147
  471. package/attributes-master/packages/utils/tsconfig.json +0 -3
  472. package/attributes-master/packages/videohls/CHANGELOG.md +0 -76
  473. package/attributes-master/packages/videohls/README.md +0 -27
  474. package/attributes-master/packages/videohls/package.json +0 -26
  475. package/attributes-master/packages/videohls/src/actions/list.ts +0 -23
  476. package/attributes-master/packages/videohls/src/actions/video.ts +0 -44
  477. package/attributes-master/packages/videohls/src/index.ts +0 -3
  478. package/attributes-master/packages/videohls/src/init.ts +0 -28
  479. package/attributes-master/packages/videohls/src/utils/constants.ts +0 -12
  480. package/attributes-master/packages/videohls/src/utils/selectors.ts +0 -5
  481. package/attributes-master/packages/videohls/src/utils/stores.ts +0 -3
  482. package/attributes-master/packages/videohls/tsconfig.json +0 -3
  483. package/attributes-master/pnpm-lock.yaml +0 -3317
  484. package/attributes-master/pnpm-workspace.yaml +0 -3
  485. package/attributes-master/tsconfig.json +0 -6
  486. package/autoInit/smooth-scroll.js +0 -89
  487. package/utils/navbar.js +0 -214
  488. package/utils/scroll-progress.js +0 -29
  489. package/utils/toc.js +0 -77
@@ -1,126 +0,0 @@
1
- import {
2
- type FormFieldType,
3
- isDate,
4
- isString,
5
- isUndefined,
6
- normalizeDate,
7
- normalizeNumber,
8
- } from '@finsweet/attributes-utils';
9
- import * as fuzzysort from 'fuzzysort';
10
-
11
- import type { ListItemField } from '../components';
12
- import type { FieldValue } from './types';
13
-
14
- /**
15
- * Parses the filter value based on the field type.
16
- * @param filterValue
17
- * @param fieldData
18
- * @returns The parsed filter value, if it could be parsed. Otherwise, `null`.
19
- */
20
- export const parseFilterValue = (
21
- filterValue: string,
22
- filterType: FormFieldType,
23
- fieldType?: ListItemField['type']
24
- ): FieldValue | null => {
25
- if (
26
- fieldType === 'date' ||
27
- filterType === 'date' ||
28
- filterType === 'time' ||
29
- filterType === 'datetime-local' ||
30
- filterType === 'month' ||
31
- filterType === 'week'
32
- ) {
33
- const parsedFilterValue = normalizeDate(filterValue);
34
-
35
- if (parsedFilterValue === undefined || isNaN(parsedFilterValue.getTime())) {
36
- return null;
37
- }
38
-
39
- return parsedFilterValue;
40
- }
41
-
42
- if (fieldType === 'number' || filterType === 'number' || filterType === 'range') {
43
- const parsedFilterValue = normalizeNumber(filterValue);
44
-
45
- if (parsedFilterValue === undefined || isNaN(parsedFilterValue)) {
46
- return null;
47
- }
48
-
49
- return parsedFilterValue;
50
- }
51
-
52
- return filterValue;
53
- };
54
-
55
- /**
56
- * Checks if two values are equal.
57
- * @param fieldValue
58
- * @param filterValue
59
- * @param fuzzyThreshold
60
- */
61
- export const areEqual = (fieldValue: FieldValue, filterValue: FieldValue, fuzzyThreshold?: number) => {
62
- // Ensure that dates are compared as dates
63
- if (typeof fieldValue !== typeof filterValue) {
64
- if (isDate(fieldValue)) {
65
- filterValue = normalizeDate(filterValue) || filterValue;
66
- } else if (isDate(filterValue)) {
67
- fieldValue = normalizeDate(fieldValue) || fieldValue;
68
- }
69
- }
70
-
71
- const normalizedFieldValue = isDate(fieldValue)
72
- ? fieldValue.getTime()
73
- : isString(fieldValue)
74
- ? fieldValue.toLowerCase()
75
- : fieldValue;
76
- const normalizedFilterValue = isDate(filterValue)
77
- ? filterValue.getTime()
78
- : isString(filterValue)
79
- ? filterValue.toLowerCase()
80
- : filterValue;
81
-
82
- if (fuzzyThreshold) {
83
- const normalizedFuzzyThreshold = fuzzyThreshold / 100;
84
-
85
- const score = fuzzysort.single(normalizedFilterValue.toString(), normalizedFieldValue.toString())?.score;
86
- return !!score && score >= normalizedFuzzyThreshold;
87
- }
88
-
89
- return normalizedFieldValue === normalizedFilterValue;
90
- };
91
-
92
- /**
93
- * Compares two numeric values.
94
- * @param rawA
95
- * @param rawB
96
- * @param op
97
- * @returns `true` if the comparison is successful.
98
- */
99
- export const numericCompare = (
100
- rawA: FieldValue,
101
- rawB: FieldValue,
102
- op: 'greater' | 'greater-equal' | 'less' | 'less-equal'
103
- ) => {
104
- let a: number | undefined;
105
- let b: number | undefined;
106
-
107
- if (isDate(rawA) || isDate(rawB)) {
108
- a = normalizeDate(rawA)?.getTime();
109
- b = normalizeDate(rawB)?.getTime();
110
- } else if (isString(rawA) || isString(rawB)) {
111
- a = normalizeNumber(rawA);
112
- b = normalizeNumber(rawB);
113
- } else {
114
- a = rawA;
115
- b = rawB;
116
- }
117
-
118
- if (isUndefined(a) || isUndefined(b)) return false;
119
-
120
- if (op === 'greater') return a > b;
121
- if (op === 'greater-equal') return a >= b;
122
- if (op === 'less') return a < b;
123
- if (op === 'less-equal') return a <= b;
124
-
125
- return false;
126
- };
@@ -1,4 +0,0 @@
1
- export { version } from '../package.json';
2
- export * from './components';
3
- export { init } from './init';
4
- export { ELEMENTS, SETTINGS } from './utils/constants';
@@ -1,38 +0,0 @@
1
- import { type FinsweetAttributeInit, isNotEmpty, waitWebflowReady } from '@finsweet/attributes-utils';
2
-
3
- import { createListInstance, initList } from './factory';
4
- import { getCMSElementSelector } from './utils/dom';
5
- import { queryAllElements } from './utils/selectors';
6
-
7
- /**
8
- * Inits the attribute.
9
- */
10
- export const init: FinsweetAttributeInit = async () => {
11
- await waitWebflowReady();
12
-
13
- const listElements = queryAllElements('list');
14
- const lists = listElements
15
- .map((listElement) => {
16
- const listSelector = getCMSElementSelector('list');
17
- const parentList = listElement.parentElement?.closest(listSelector);
18
-
19
- // TODO: We don't support nested CMS lists for now,
20
- // but we may want to revisit this in the future
21
- const isNestedList = !!parentList && listElement !== parentList;
22
- if (isNestedList) return;
23
-
24
- return createListInstance(listElement);
25
- })
26
- .filter(isNotEmpty);
27
-
28
- const cleanups = lists.map(initList);
29
-
30
- return {
31
- result: lists,
32
- destroy() {
33
- for (const cleanup of cleanups) {
34
- cleanup();
35
- }
36
- },
37
- };
38
- };
@@ -1,27 +0,0 @@
1
- import { addListener } from '@finsweet/attributes-utils';
2
-
3
- import type { List } from '../components/List';
4
- import { loadPaginatedCMSItems } from './load';
5
-
6
- /**
7
- * Inits the `Load All` mode.
8
- * @param list The {@link List} instance.
9
- * @returns A cleanup function.
10
- */
11
- export const initAllMode = (list: List) => {
12
- loadPaginatedCMSItems(list).then(() => {
13
- list.itemsPerPage.value = list.items.value.length;
14
- });
15
-
16
- const cleanupClick = addListener(
17
- [...list.allPaginationPreviousElements.value, ...list.allPaginationNextElements.value],
18
- 'click',
19
- (e) => {
20
- e.preventDefault();
21
- }
22
- );
23
-
24
- return () => {
25
- cleanupClick();
26
- };
27
- };
@@ -1,39 +0,0 @@
1
- import { effect } from '@vue/reactivity';
2
-
3
- import type { List } from '../components';
4
-
5
- /**
6
- * Handles the load-specific elements.
7
- * @param list
8
- * @returns A cleanup function.
9
- */
10
- export const handleLoadElements = (list: List) => {
11
- const runner = effect(() => {
12
- const filteredItems = list.hooks.filter.result.value;
13
-
14
- if (list.visibleCountElement) {
15
- const visibleCountTotal = Math.min(list.itemsPerPage.value, filteredItems.length);
16
-
17
- list.visibleCountElement.textContent = `${visibleCountTotal}`;
18
- }
19
-
20
- if (list.visibleCountFromElement) {
21
- const visibleCountFrom = Math.min(
22
- (list.currentPage.value - 1) * list.itemsPerPage.value + 1,
23
- filteredItems.length
24
- );
25
-
26
- list.visibleCountFromElement.textContent = `${visibleCountFrom}`;
27
- }
28
-
29
- if (list.visibleCountToElement) {
30
- const visibleCountTo = Math.min(list.currentPage.value * list.itemsPerPage.value, filteredItems.length);
31
-
32
- list.visibleCountToElement.textContent = `${visibleCountTo}`;
33
- }
34
- });
35
-
36
- return () => {
37
- runner.effect.stop();
38
- };
39
- };
@@ -1,63 +0,0 @@
1
- import type { List } from '../components/List';
2
- import type { SETTINGS } from '../utils/constants';
3
- import { getAttribute, hasAttributeValue } from '../utils/selectors';
4
- import { initAllMode } from './all';
5
- import { handleLoadElements } from './elements';
6
- import { initInfiniteMode } from './infinite';
7
- import { initMoreMode } from './more';
8
- import { initPaginationMode } from './pagination';
9
-
10
- type LoadModeValues = (typeof SETTINGS)['load']['values'];
11
- type LoadMode = LoadModeValues[keyof LoadModeValues];
12
-
13
- /**
14
- * Inits loading functionality for the list.
15
- * @param list
16
- * @param mode
17
- */
18
- export const initListLoading = (list: List, mode: LoadMode) => {
19
- const loadingClass = getAttribute(list.listElement, 'loadingclass');
20
- const resetIx = hasAttributeValue(list.listOrWrapper, 'resetix', 'true');
21
-
22
- if (resetIx) {
23
- list.webflowModules.add('ix2');
24
- }
25
-
26
- // Handle elements
27
- const elementsCleanup = handleLoadElements(list);
28
-
29
- // Init mode
30
- const loadModeCleanup =
31
- mode === 'all'
32
- ? initAllMode(list)
33
- : mode === 'more'
34
- ? initMoreMode(list)
35
- : mode === 'infinite'
36
- ? initInfiniteMode(list)
37
- : initPaginationMode(list);
38
-
39
- const beforeRenderHookCleanup = list.addHook('beforeRender', async (items) => {
40
- if (list.triggeredHook === 'pagination') {
41
- list.wrapperElement.classList.add(loadingClass);
42
-
43
- const animations = list.wrapperElement.getAnimations({ subtree: true });
44
-
45
- await Promise.all(animations.map((a) => a.finished));
46
- }
47
-
48
- return items;
49
- });
50
-
51
- const afterRenderHookCleanup = list.addHook('afterRender', (items) => {
52
- list.wrapperElement.classList.remove(loadingClass);
53
-
54
- return items;
55
- });
56
-
57
- return () => {
58
- loadModeCleanup?.();
59
- beforeRenderHookCleanup();
60
- afterRenderHookCleanup();
61
- elementsCleanup();
62
- };
63
- };
@@ -1,79 +0,0 @@
1
- import { addListener } from '@finsweet/attributes-utils';
2
- import throttle from 'just-throttle';
3
-
4
- import type { List } from '../components/List';
5
- import { getAttribute } from '../utils/selectors';
6
- import { loadPaginatedCMSItems } from './load';
7
- import { handleElements, handlePaginationNextButtons } from './more';
8
-
9
- /**
10
- * Inits the infinite mode.
11
- * @param list The {@link List} instance.
12
- *
13
- * @returns A callback to remove all event listeners.
14
- */
15
- export const initInfiniteMode = (list: List) => {
16
- if (!list.listElement) return;
17
-
18
- const thresholdCoefficient = getInfiniteThreshold(list);
19
-
20
- // Add hook
21
- list.addHook('pagination', (items) => {
22
- const paginatedItems = items.slice(0, list.itemsPerPage.value);
23
- return paginatedItems;
24
- });
25
-
26
- // Init
27
- loadPaginatedCMSItems(list);
28
-
29
- /**
30
- * Handles a scroll event.
31
- * Recalculates the scroll ratio of the element.
32
- */
33
- const handleScroll = throttle(async () => {
34
- if (!list.listElement) return;
35
-
36
- const { innerHeight } = window;
37
- const { bottom } = list.listElement.getBoundingClientRect();
38
-
39
- const validRange = thresholdCoefficient * innerHeight;
40
- const shouldLoad = bottom > 0 && bottom <= validRange;
41
-
42
- if (shouldLoad && list.itemsPerPage.value < list.items.value.length) {
43
- list.itemsPerPage.value += list.initialItemsPerPage;
44
- list.triggerHook('pagination');
45
- }
46
- }, 10);
47
-
48
- const observer = new IntersectionObserver((entries) => {
49
- for (const { isIntersecting } of entries) {
50
- const action = isIntersecting ? 'addEventListener' : 'removeEventListener';
51
- window[action]('scroll', handleScroll);
52
- }
53
- });
54
-
55
- // Set listeners
56
- observer.observe(list.listElement);
57
-
58
- const cleanupScroll = addListener(window, 'scroll', handleScroll);
59
- const cleanupPaginationNextButtons = handlePaginationNextButtons(list);
60
- const cleanupElements = handleElements(list);
61
-
62
- return () => {
63
- observer.disconnect();
64
- cleanupScroll();
65
- cleanupPaginationNextButtons();
66
- cleanupElements();
67
- };
68
- };
69
-
70
- /**
71
- * Collects the `Infinite` mode settings.
72
- * @param list The {@link List} instance.
73
- */
74
- const getInfiniteThreshold = (list: List): number => {
75
- const threshold = getAttribute(list.listOrWrapper, 'threshold');
76
-
77
- const thresholdCoefficient = 1 - threshold / 100;
78
- return thresholdCoefficient;
79
- };
@@ -1,191 +0,0 @@
1
- import { CMS_CSS_CLASSES, fetchPageDocument, isNotEmpty } from '@finsweet/attributes-utils';
2
-
3
- import type { List } from '../components/List';
4
- import { getCollectionElements } from '../utils/dom';
5
-
6
- /**
7
- * Loads all paginated items of a `List` instance.
8
- * @param list The {@link List} instance.
9
- *
10
- * @returns Nothing, it mutates the `List` instance.
11
- */
12
- export const loadPaginatedCMSItems = (list: List): Promise<void> => {
13
- const {
14
- paginationNextCMSElement,
15
- paginationPreviousCMSElement,
16
- paginationCountElement,
17
- loadingSearchParamsData,
18
- loaderElement,
19
- cache: cacheItems,
20
- } = list;
21
-
22
- if (!paginationNextCMSElement.value && !paginationPreviousCMSElement.value) {
23
- return Promise.resolve();
24
- }
25
-
26
- if (loaderElement) {
27
- loaderElement.style.display = '';
28
- loaderElement.style.opacity = '1';
29
- }
30
-
31
- // Attempt to get the total amount of pages from the `Page Count` element.
32
- let totalPages;
33
-
34
- if (paginationCountElement) {
35
- const [, rawTotalPages] = paginationCountElement.textContent?.split('/') || [];
36
- if (rawTotalPages) {
37
- totalPages = parseInt(rawTotalPages.trim());
38
- }
39
- }
40
-
41
- list.loadingPaginatedItems = (async () => {
42
- await loadingSearchParamsData;
43
-
44
- if (totalPages) {
45
- await parallelItemsLoad(list, totalPages, cacheItems);
46
- } else {
47
- await chainedPagesLoad(list, cacheItems);
48
- }
49
-
50
- if (loaderElement) {
51
- loaderElement.style.display = 'none';
52
- }
53
- })();
54
-
55
- return list.loadingPaginatedItems;
56
- };
57
-
58
- /**
59
- * Collects Collection Items from a Collection List's pagination.
60
- * Loads all pages in a chained sequence until there are no more valid pages to load.
61
- *
62
- * @param list The List instance.
63
- * @param cache Whether to cache the loaded items or not.
64
- *
65
- * @returns Nothing, it mutates the `List` instance.
66
- */
67
- const chainedPagesLoad = async (list: List, cache: boolean): Promise<void> => {
68
- const currentPage = list.currentPage.value;
69
- if (currentPage > 1) {
70
- await parallelItemsLoad(list, currentPage, cache);
71
- }
72
-
73
- if (!list.paginationNextCMSElement.value) return;
74
-
75
- const { href } = list.paginationNextCMSElement.value;
76
- const pageLinks: string[] = [href];
77
-
78
- /**
79
- * Loads the items from the specified URL.
80
- * @param href The URL to load.
81
- */
82
- const loadPage = async (href: string) => {
83
- // Fetch the page
84
- const page = await fetchPageDocument(href, { cache });
85
- if (!page) return;
86
-
87
- // Check for recursion (action: `all`)
88
- const nextPageURL = await parseLoadedPage(page, list);
89
-
90
- if (!nextPageURL || pageLinks.includes(nextPageURL)) return;
91
-
92
- pageLinks.push(nextPageURL);
93
-
94
- await loadPage(nextPageURL);
95
- };
96
-
97
- await loadPage(href);
98
- };
99
-
100
- /**
101
- * Collects Collection Items from a Collection List's pagination.
102
- * Loads all pages in parallel.
103
- *
104
- * @param list The List instance.
105
- * @param totalPages The total number of pages to load.
106
- * @param cache Whether to cache the loaded items or not.
107
- *
108
- * @returns Nothing, it mutates the `List` instance.
109
- */
110
- const parallelItemsLoad = async (list: List, totalPages: number, cache: boolean) => {
111
- if (!list.paginationNextCMSElement.value && !list.paginationPreviousCMSElement.value) return;
112
-
113
- const currentPage = list.currentPage.value;
114
-
115
- if (!list.paginationSearchParam || !currentPage) return;
116
-
117
- const { origin, pathname } = window.location;
118
-
119
- /**
120
- * @param pageNumber
121
- * @returns The URL of the specified page.
122
- */
123
- const getPageURL = (pageNumber: number) => `${origin}${pathname}?${list.paginationSearchParam}=${pageNumber}`;
124
-
125
- // Previous Pages
126
- for (let pageNumber = currentPage - 1; pageNumber >= 1; pageNumber--) {
127
- const url = getPageURL(pageNumber);
128
-
129
- const page = await fetchPageDocument(url, { cache });
130
- if (!page) return;
131
-
132
- await parseLoadedPage(page, list, 'unshift');
133
- }
134
-
135
- // Next Pages
136
- const fetchPromises: Promise<void>[] = [];
137
-
138
- for (let pageNumber = currentPage + 1; pageNumber <= totalPages; pageNumber++) {
139
- fetchPromises[pageNumber] = (async () => {
140
- const previousPromise = fetchPromises[pageNumber - 1];
141
-
142
- const url = getPageURL(pageNumber);
143
-
144
- const page = await fetchPageDocument(url, { cache });
145
-
146
- await previousPromise;
147
-
148
- if (!page) return;
149
-
150
- await parseLoadedPage(page, list);
151
- })();
152
- }
153
-
154
- await Promise.all(fetchPromises);
155
- };
156
-
157
- /**
158
- * Parses a loaded page and adds the items to the `List` instance.
159
- * @param page
160
- * @param list
161
- * @param itemsTarget
162
- * @returns The URL of the next page, if any.
163
- */
164
- const parseLoadedPage = async (page: Document, list: List, itemsTarget: 'push' | 'unshift' = 'push') => {
165
- // Get DOM Elements
166
- const allCollectionWrappers = page.querySelectorAll(`.${CMS_CSS_CLASSES.wrapper}`);
167
- const collectionListWrapper = allCollectionWrappers[list.pageIndex];
168
- if (!collectionListWrapper) return;
169
-
170
- // Store and mount the new items
171
- const nextPageURL = getCollectionElements(collectionListWrapper, 'pagination-next')?.href;
172
- const collectionItems = getCollectionElements(collectionListWrapper, 'item');
173
-
174
- const { length: itemsLength } = collectionItems;
175
-
176
- // Make sure the itemsPerPage value is correct
177
- if (nextPageURL && list.initialItemsPerPage !== itemsLength) {
178
- list.initialItemsPerPage = itemsLength;
179
- }
180
-
181
- // Add the new items to the list
182
- const newItems = collectionItems.map(list.createItem).filter(isNotEmpty);
183
-
184
- if (itemsTarget === 'push') {
185
- list.items.value = [...list.items.value, ...newItems];
186
- } else {
187
- list.items.value = [...newItems, ...list.items.value];
188
- }
189
-
190
- return nextPageURL;
191
- };
@@ -1,97 +0,0 @@
1
- import { addListener, isElement, parseNumericAttribute } from '@finsweet/attributes-utils';
2
- import { effect, watch, type WatchHandle } from '@vue/reactivity';
3
-
4
- import type { List } from '../components/List';
5
- import { getAttribute } from '../utils/selectors';
6
- import { loadPaginatedCMSItems } from './load';
7
-
8
- /**
9
- * Inits the default mode.
10
- * @param list The {@link List} instance.
11
- *
12
- * @returns A callback to remove event listeners.
13
- */
14
- export const initMoreMode = (list: List) => {
15
- // Add hook
16
- list.addHook('pagination', (items) => {
17
- const paginatedItems = items.slice(0, list.itemsPerPage.value);
18
- return paginatedItems;
19
- });
20
-
21
- // Init
22
- loadPaginatedCMSItems(list);
23
-
24
- // Listeners
25
- const cleanupPaginationNextButtons = handlePaginationNextButtons(list);
26
- const cleanupElements = handleElements(list);
27
-
28
- return () => {
29
- cleanupPaginationNextButtons();
30
- cleanupElements();
31
- };
32
- };
33
-
34
- /**
35
- * Handles the pagination next buttons.
36
- * @param list
37
- * @returns A cleanup function.
38
- */
39
- export const handlePaginationNextButtons = (list: List) => {
40
- let cleanupLoadRemaining: WatchHandle | undefined;
41
-
42
- const cleanupClick = addListener(list.allPaginationNextElements.value, 'click', async (e) => {
43
- if (!e.target || !isElement(e.target)) return;
44
-
45
- e.preventDefault();
46
-
47
- const rawLoadCount = getAttribute(e.target, 'loadcount') || getAttribute(list.listOrWrapper, 'loadcount');
48
-
49
- if (rawLoadCount === 'all') {
50
- cleanupLoadRemaining ||= watch(
51
- list.items,
52
- (items) => {
53
- list.itemsPerPage.value = items.length;
54
- },
55
- { immediate: true }
56
- );
57
- } else {
58
- list.itemsPerPage.value += parseNumericAttribute(rawLoadCount, list.initialItemsPerPage);
59
- }
60
-
61
- list.triggerHook('pagination');
62
- });
63
-
64
- return () => {
65
- cleanupClick();
66
- cleanupLoadRemaining?.();
67
- };
68
- };
69
-
70
- /**
71
- * Handles the display of elements.
72
- * @param list
73
- * @returns A cleanup function.
74
- */
75
- export const handleElements = (list: List) => {
76
- const runner = effect(() => {
77
- const allItemsDisplayed = list.itemsPerPage.value >= list.hooks.filter.result.value.length;
78
-
79
- list.allPaginationNextElements.value.forEach((element) => {
80
- element.style.display = allItemsDisplayed ? 'none' : '';
81
- element.setAttribute('aria-hidden', allItemsDisplayed ? 'true' : 'false');
82
- element.setAttribute('tabindex', allItemsDisplayed ? '-1' : '0');
83
- });
84
-
85
- if (list.paginationCountElement) {
86
- const totalPages = Math.ceil(list.hooks.filter.result.value.length / list.initialItemsPerPage);
87
- const currentPage = Math.ceil(list.itemsPerPage.value / list.initialItemsPerPage);
88
-
89
- list.paginationCountElement.innerText = `${currentPage} / ${totalPages}`;
90
- list.paginationCountElement.setAttribute('aria-label', `Page ${currentPage} of ${totalPages}`);
91
- }
92
- });
93
-
94
- return () => {
95
- runner.effect.stop();
96
- };
97
- };