@hortonstudio/main 1.2.12 → 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 (490) hide show
  1. package/index.js +8 -8
  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/debug-version.html +0 -37
  488. package/utils/navbar.js +0 -214
  489. package/utils/scroll-progress.js +0 -29
  490. package/utils/toc.js +0 -77
@@ -1,861 +0,0 @@
1
- import {
2
- CMS_CSS_CLASSES,
3
- fetchPageDocument,
4
- getObjectEntries,
5
- isHTMLAnchorElement,
6
- isNumber,
7
- restartWebflow,
8
- type WebflowModule,
9
- } from '@finsweet/attributes-utils';
10
- import { computed, effect, type Ref, ref, type ShallowRef, shallowRef, watch } from '@vue/reactivity';
11
-
12
- import type { AllFieldsData, Filters } from '../filter/types';
13
- import type { Sorting } from '../sort/types';
14
- import { RENDER_INDEX_CSS_VARIABLE } from '../utils/constants';
15
- import { getAllCollectionListWrappers, getCMSElementSelector, getCollectionElements } from '../utils/dom';
16
- import { getPaginationSearchEntries } from '../utils/pagination';
17
- import { getAttribute, getInstance, hasAttributeValue, queryAllElements, queryElement } from '../utils/selectors';
18
- import { listInstancesStore } from '../utils/store';
19
- import { ListItem } from './ListItem';
20
-
21
- type HookKey = 'start' | 'filter' | 'sort' | 'pagination' | 'beforeRender' | 'render' | 'afterRender';
22
- type HookCallback = (items: ListItem[]) => ListItem[] | Promise<ListItem[]> | void | Promise<void>;
23
- type Hooks = {
24
- [key in HookKey]: {
25
- previous?: HookKey;
26
- callbacks: HookCallback[];
27
- result: ShallowRef<ListItem[]>;
28
- };
29
- };
30
-
31
- export class List {
32
- /**
33
- * A signal holding all {@link ListItem} instances of the list.
34
- */
35
- public readonly items = shallowRef<ListItem[]>([]);
36
-
37
- /**
38
- * Contains all lifecycle hooks with their callbacks and last result.
39
- */
40
- public readonly hooks: Hooks = {
41
- start: {
42
- callbacks: [],
43
- result: shallowRef([]),
44
- },
45
-
46
- filter: {
47
- previous: 'start',
48
- callbacks: [],
49
- result: shallowRef([]),
50
- },
51
-
52
- sort: {
53
- previous: 'filter',
54
- callbacks: [],
55
- result: shallowRef([]),
56
- },
57
-
58
- pagination: {
59
- previous: 'sort',
60
- callbacks: [],
61
- result: shallowRef([]),
62
- },
63
-
64
- beforeRender: {
65
- previous: 'pagination',
66
- callbacks: [],
67
- result: shallowRef([]),
68
- },
69
-
70
- render: {
71
- previous: 'beforeRender',
72
- callbacks: [],
73
- result: shallowRef([]),
74
- },
75
-
76
- afterRender: {
77
- previous: 'render',
78
- callbacks: [],
79
- result: shallowRef([]),
80
- },
81
- };
82
-
83
- /**
84
- * The current hook being executed.
85
- */
86
- public currentHook?: HookKey;
87
-
88
- /**
89
- * The hook that triggered the current lifecycle.
90
- */
91
- public triggeredHook?: HookKey;
92
-
93
- /**
94
- * A set holding all rendered {@link ListItem} instances.
95
- */
96
- public renderedItems: Set<ListItem> = new Set();
97
-
98
- /**
99
- * The instance.
100
- */
101
- public readonly instance: string | null;
102
-
103
- /**
104
- * The `Collection List` element.
105
- */
106
- public readonly listElement: HTMLElement | null;
107
-
108
- /**
109
- * The `Pagination` wrapper element.
110
- */
111
- public readonly paginationWrapperElement?: HTMLElement | null;
112
-
113
- /**
114
- * The `Page Count` element.
115
- */
116
- public readonly paginationCountElement?: HTMLElement | null;
117
-
118
- /**
119
- * All the `Previous` buttons defined by the user or native Webflow CMS.
120
- * TODO: the way we're assigning to this shallowRef property may not trigger reactivity
121
- */
122
- public readonly allPaginationPreviousElements = shallowRef<Set<HTMLElement>>(new Set());
123
-
124
- /**
125
- * The native Webflow CMS `Previous` button.
126
- */
127
- public readonly paginationPreviousCMSElement = computed(() =>
128
- [...this.allPaginationPreviousElements.value]
129
- .filter(isHTMLAnchorElement)
130
- .find((paginationPreviousElement) =>
131
- paginationPreviousElement.classList.contains(CMS_CSS_CLASSES['paginationPrevious'])
132
- )
133
- );
134
-
135
- /**
136
- * The `Next` buttons defined by the user or native Webflow CMS.
137
- * TODO: the way we're assigning to this shallowRef property may not trigger reactivity
138
- */
139
- public readonly allPaginationNextElements = shallowRef<Set<HTMLElement>>(new Set());
140
-
141
- /**
142
- * The native Webflow CMS `Next` button.
143
- */
144
- public readonly paginationNextCMSElement = computed(() =>
145
- [...this.allPaginationNextElements.value]
146
- .filter(isHTMLAnchorElement)
147
- .find((paginationNextElement) => paginationNextElement.classList.contains(CMS_CSS_CLASSES['paginationNext']))
148
- );
149
-
150
- /**
151
- * The `Empty State` element.
152
- */
153
- public readonly emptyElement = ref<HTMLElement | null | undefined>();
154
-
155
- /**
156
- * An initial element to display when there are no filters applied.
157
- */
158
- public readonly initialElement?: HTMLElement | null;
159
-
160
- /**
161
- * A custom loader element.
162
- */
163
- public readonly loaderElement?: HTMLElement | null;
164
-
165
- /**
166
- * An element that displays the total amount of items in the list.
167
- */
168
- public readonly itemsCountElement?: HTMLElement | null;
169
-
170
- /**
171
- * An element that displays the total amount of items in the list after filtering.
172
- */
173
- public readonly resultsCountElement?: HTMLElement | null;
174
-
175
- /**
176
- * An element that displays the amount of visible items.
177
- */
178
- public readonly visibleCountElement?: HTMLElement | null;
179
-
180
- /**
181
- * An element that displays the lower range of visible items.
182
- */
183
- public readonly visibleCountFromElement?: HTMLElement | null;
184
-
185
- /**
186
- * An element that displays the upper range of visible items.
187
- */
188
- public readonly visibleCountToElement?: HTMLElement | null;
189
-
190
- /**
191
- * The scroll anchor element.
192
- */
193
- public readonly scrollAnchorElement?: HTMLElement | null;
194
-
195
- /**
196
- * A custom scroll anchor element for filter actions.
197
- */
198
- public readonly scrollAnchorFilterElement?: HTMLElement | null;
199
-
200
- /**
201
- * A custom scroll anchor element for sort actions.
202
- */
203
- public readonly scrollAnchorSortElement?: HTMLElement | null;
204
-
205
- /**
206
- * A custom scroll anchor element for pagination actions.
207
- */
208
- public readonly scrollAnchorPaginationElement?: HTMLElement | null;
209
-
210
- /**
211
- * Defines the original amount of items per page.
212
- */
213
- public initialItemsPerPage: number;
214
-
215
- /**
216
- * Defines the amount of items per page.
217
- */
218
- public readonly itemsPerPage: Ref<number>;
219
-
220
- /**
221
- * Defines the total amount of pages in the list.
222
- */
223
- public readonly totalPages = computed(() =>
224
- Math.ceil(this.hooks.filter.result.value.length / this.itemsPerPage.value)
225
- );
226
-
227
- /**
228
- * Defines the current page in `Pagination` mode.
229
- */
230
- public readonly currentPage = ref(1);
231
-
232
- /**
233
- * Defines the active filters.
234
- */
235
- public readonly filters = ref<Filters>({
236
- groups: [],
237
- });
238
-
239
- /**
240
- * Contains all the fields data of the list.
241
- */
242
- public readonly allFieldsData = computed(() =>
243
- this.items.value.reduce<AllFieldsData>((acc, item) => {
244
- for (const [key, field] of Object.entries(item.fields)) {
245
- acc[key] ||= {
246
- type: field.type,
247
- valueType: Array.isArray(field.value) ? 'multiple' : 'single',
248
- rawValues: new Set<string>(),
249
- };
250
-
251
- const fieldRawValues = Array.isArray(field.rawValue) ? field.rawValue : [field.rawValue];
252
-
253
- for (const rawValue of fieldRawValues) {
254
- acc[key].rawValues.add(rawValue);
255
- }
256
- }
257
-
258
- return acc;
259
- }, {})
260
- );
261
-
262
- /**
263
- * Defines the active sorting.
264
- */
265
- public readonly sorting = ref<Sorting>({});
266
-
267
- /**
268
- * Defines if the user has interacted with the filters.
269
- */
270
- public readonly hasInteracted = computed(
271
- () =>
272
- this.sorting.value.interacted ||
273
- this.filters.value.groups.some((group) => group.conditions.some((condition) => condition.interacted))
274
- );
275
-
276
- /**
277
- * Defines if the pagination query param should be added to the URL when switching pages.
278
- * @example '?5f7457b3_page=1'
279
- */
280
- public readonly showQuery: boolean;
281
-
282
- /**
283
- * Defines if the matched fields when filtering should be highlighted.
284
- */
285
- public readonly highlight?: boolean;
286
-
287
- /**
288
- * Defines if loaded Items can be cached using IndexedDB after fetching them.
289
- */
290
- public readonly cache: boolean;
291
-
292
- /**
293
- * Defines the Webflow modules to restart after rendering.
294
- */
295
- public readonly webflowModules = new Set<WebflowModule>();
296
-
297
- /**
298
- * Defines the URL query key for the paginated pages.
299
- * @example '5f7457b3_page'
300
- */
301
- public paginationSearchParam?: string;
302
-
303
- /**
304
- * Defines the query prefix for all the list's query params.
305
- * If pagination query exists, it is used as the prefix: '5f7457b3_page' => '5f7457b3'
306
- * If not, it falls back to the list's instance or the list's index.
307
- */
308
- public searchParamsPrefix!: string;
309
-
310
- /**
311
- * Defines an awaitable Promise that resolves once the pagination data (`currentPage` + `paginationSearchParam`) has been retrieved.
312
- */
313
- public loadingSearchParamsData?: Promise<void>;
314
-
315
- /**
316
- * Defines an awaitable Promise that resolves once the pagination elements have been loaded.
317
- */
318
- public loadingPaginationElements?: Promise<void>;
319
-
320
- /**
321
- * Defines an awaitable Promise that resolves once all the Webflow CMS paginated items have been loaded.
322
- */
323
- public loadingPaginatedItems?: Promise<void>;
324
-
325
- /**
326
- * Defines if the filter field values are being collected from the DOM or event listeners are being set.
327
- */
328
- public readingFilters?: boolean;
329
-
330
- /**
331
- * Defines if the filter field values are being set to the DOM.
332
- */
333
- public settingFilters?: boolean;
334
-
335
- /**
336
- * `@vue/reactivity`: [watch](https://vuejs.org/api/reactivity-core.html#watch)
337
- */
338
- public watch = watch;
339
-
340
- /**
341
- * `@vue/reactivity`: [watch](https://vuejs.org/api/reactivity-core.html#watcheffect)
342
- */
343
- public effect = effect;
344
-
345
- constructor(
346
- /**
347
- * The `Collection List Wrapper` element.
348
- */
349
- public readonly wrapperElement: HTMLElement,
350
-
351
- /**
352
- * The index of the list in the page.
353
- */
354
- public readonly pageIndex: number,
355
-
356
- /**
357
- * Defines if the instance should be reactive.
358
- * If set to `false`, the instance will not load any CMS data nor will it trigger any hooks.
359
- */
360
- reactive = true
361
- ) {
362
- // Collect elements
363
- const listElement = getCollectionElements(wrapperElement, 'list');
364
- this.listElement = listElement;
365
-
366
- const instance = getInstance(listElement || wrapperElement);
367
- this.instance = instance;
368
-
369
- this.paginationWrapperElement = getCollectionElements(wrapperElement, 'pagination-wrapper');
370
- this.paginationCountElement = getCollectionElements(wrapperElement, 'page-count');
371
-
372
- this.emptyElement.value =
373
- getCollectionElements(wrapperElement, 'empty') || queryElement<HTMLElement>('empty', { instance });
374
- this.initialElement = queryElement('initial', { instance });
375
- this.loaderElement = queryElement('loader', { instance });
376
- this.itemsCountElement = queryElement('items-count', { instance });
377
- this.visibleCountElement = queryElement('visible-count', { instance });
378
- this.visibleCountFromElement = queryElement('visible-count-from', { instance });
379
- this.visibleCountToElement = queryElement('visible-count-to', { instance });
380
- this.resultsCountElement = queryElement('results-count', { instance });
381
- this.scrollAnchorElement = queryElement('scroll-anchor', { instance });
382
- this.scrollAnchorFilterElement = queryElement('scroll-anchor-filter', { instance });
383
- this.scrollAnchorSortElement = queryElement('scroll-anchor-sort', { instance });
384
- this.scrollAnchorPaginationElement = queryElement('scroll-anchor-pagination', { instance });
385
- this.cache = hasAttributeValue(this.listOrWrapper, 'cache', 'true');
386
- this.showQuery = hasAttributeValue(this.listOrWrapper, 'showquery', 'true');
387
- this.highlight = hasAttributeValue(this.listOrWrapper, 'highlight', 'true');
388
-
389
- // Get pagination next elements
390
- const paginationNextElement = getCollectionElements(wrapperElement, 'pagination-next');
391
- if (paginationNextElement) {
392
- this.allPaginationNextElements.value.add(paginationNextElement);
393
- }
394
-
395
- queryAllElements<HTMLAnchorElement>('pagination-next', { instance }).forEach((element) =>
396
- this.allPaginationNextElements.value.add(element)
397
- );
398
-
399
- // Get pagination previous elements
400
- const paginationPreviousElement = getCollectionElements(wrapperElement, 'pagination-previous');
401
- if (paginationPreviousElement) {
402
- this.allPaginationPreviousElements.value.add(paginationPreviousElement);
403
- }
404
-
405
- queryAllElements<HTMLAnchorElement>('pagination-previous', { instance }).forEach((element) =>
406
- this.allPaginationPreviousElements.value.add(element)
407
- );
408
-
409
- // Collect items
410
- const collectionItemElements = getCollectionElements(wrapperElement, 'item');
411
-
412
- this.initialItemsPerPage = getAttribute(this.listOrWrapper, 'itemsperpage') || collectionItemElements.length;
413
- this.itemsPerPage = ref(this.initialItemsPerPage);
414
-
415
- if (listElement) {
416
- const items = collectionItemElements.map((element, index) => new ListItem(element, this, index));
417
-
418
- this.items.value = items;
419
- this.renderedItems = new Set(items);
420
- }
421
-
422
- // Init reactivity
423
- if (!reactive) return;
424
-
425
- // Extract pagination data
426
- this.loadingSearchParamsData = this.#getCMSPaginationData().then((paginationSearchParam) => {
427
- const prefix = paginationSearchParam ? paginationSearchParam.split('_')[0] : undefined;
428
-
429
- this.searchParamsPrefix = prefix || instance || `${pageIndex}`;
430
- });
431
-
432
- this.loadingPaginationElements = this.#getCMSPaginationElements();
433
-
434
- // Init hooks
435
- this.#initHooks();
436
-
437
- // Elements side effects
438
- // TODO: Cleanup
439
- this.#initElements();
440
- }
441
-
442
- /**
443
- * Initializes the lifecycle hooks.
444
- */
445
- #initHooks() {
446
- // Add render hook
447
- this.addHook('render', async (items) => {
448
- let renderIndex = 0;
449
-
450
- const renderPromise = Promise.all(
451
- items.map((item, index) => {
452
- const previousItem = items[index - 1];
453
-
454
- const render = async () => {
455
- item.element.style.setProperty(RENDER_INDEX_CSS_VARIABLE, `${renderIndex}`);
456
- item.element.classList.add(item.startingClass);
457
-
458
- if (item.stagger) {
459
- item.element.style.transitionDelay = `${renderIndex * item.stagger}ms`;
460
- }
461
-
462
- if (previousItem) {
463
- previousItem.element.after(item.element);
464
- } else {
465
- this.listElement?.prepend(item.element);
466
- }
467
-
468
- item.currentIndex = index;
469
- renderIndex += 1;
470
-
471
- await new Promise(requestAnimationFrame);
472
-
473
- item.element.classList.remove(item.startingClass);
474
-
475
- const animations = item.element.getAnimations({ subtree: true });
476
-
477
- return Promise.all(animations.map((a) => a.finished)).then(() => {
478
- item.element.style.removeProperty(RENDER_INDEX_CSS_VARIABLE);
479
-
480
- if (item.stagger) {
481
- item.element.style.transitionDelay = '';
482
- }
483
- });
484
- };
485
-
486
- // Is rendered
487
- if (isNumber(item.currentIndex)) {
488
- this.renderedItems.delete(item);
489
-
490
- if (item.currentIndex !== index) {
491
- return render();
492
- }
493
- }
494
-
495
- // Is not rendered
496
- else {
497
- return render();
498
- }
499
- })
500
- );
501
-
502
- // Remove items that should not be rendered anymore
503
- this.renderedItems.forEach((renderedItem) => {
504
- renderedItem.element.remove();
505
- renderedItem.currentIndex = undefined;
506
- });
507
-
508
- this.renderedItems = new Set(items);
509
-
510
- await renderPromise;
511
-
512
- return items;
513
- });
514
-
515
- // Restart Webflow modules
516
- this.addHook('afterRender', async () => {
517
- restartWebflow([...this.webflowModules]);
518
- });
519
-
520
- // Start hooks chain
521
- for (const [key, { previous }] of getObjectEntries(this.hooks)) {
522
- const items = previous ? this.hooks[previous].result : this.items;
523
-
524
- // TODO: Cleanups
525
- watch(items, () => this.#runHook(key), { immediate: true });
526
- }
527
- }
528
-
529
- /**
530
- * Initializes the elements side effects.
531
- */
532
- #initElements() {
533
- // items-count
534
- const itemsCountRunner = effect(() => {
535
- if (this.itemsCountElement) {
536
- this.itemsCountElement.textContent = `${this.items.value.length}`;
537
- }
538
- });
539
-
540
- // initial
541
- const initialElementRunner = effect(() => {
542
- if (this.initialElement) {
543
- this.wrapperElement.style.display = this.hasInteracted.value ? '' : 'none';
544
- this.initialElement.style.display = this.hasInteracted.value ? 'none' : '';
545
- }
546
- });
547
-
548
- return () => {
549
- itemsCountRunner.effect.stop();
550
- initialElementRunner.effect.stop();
551
- };
552
- }
553
-
554
- /**
555
- * Collects the pagination query info.
556
- * @returns A Promise that resolves once the pagination query info has been collected.
557
- */
558
- async #getCMSPaginationData() {
559
- const paginationButton = this.paginationNextCMSElement.value || this.paginationPreviousCMSElement.value;
560
- if (!paginationButton) return;
561
-
562
- const searchEntries = getPaginationSearchEntries(paginationButton);
563
- if (!searchEntries.length) return;
564
-
565
- let paginationSearchParam: string | undefined;
566
- let rawTargetPage: string | undefined;
567
-
568
- if (searchEntries.length === 1) {
569
- const [pageEntry] = searchEntries;
570
-
571
- if (!pageEntry) return;
572
-
573
- [paginationSearchParam, rawTargetPage] = pageEntry;
574
- }
575
-
576
- // If there's more than one `searchParam` we need to fetch the original page to find the correspondent pageQuery.
577
- else {
578
- const { origin, pathname } = location;
579
-
580
- const initialPage = await fetchPageDocument(origin + pathname);
581
- if (!initialPage) return;
582
-
583
- const initialCollectionListWrappers = initialPage.querySelectorAll(getCMSElementSelector('wrapper'));
584
-
585
- const initialCollectionListWrapper = initialCollectionListWrappers[this.pageIndex];
586
- if (!initialCollectionListWrapper) return;
587
-
588
- const initialPaginationNext = getCollectionElements(initialCollectionListWrapper, 'pagination-next');
589
- if (!initialPaginationNext) return;
590
-
591
- const [initialPageEntry] = getPaginationSearchEntries(initialPaginationNext) || [];
592
- if (!initialPageEntry) return;
593
-
594
- [paginationSearchParam] = initialPageEntry;
595
-
596
- [, rawTargetPage] = searchEntries.find(([query]) => query === paginationSearchParam) || [];
597
- }
598
-
599
- if (!paginationSearchParam || !rawTargetPage) return;
600
-
601
- const targetPage = parseInt(rawTargetPage);
602
- const currentPage = this.paginationNextCMSElement.value ? targetPage - 1 : targetPage + 1;
603
-
604
- this.paginationSearchParam = paginationSearchParam;
605
- this.currentPage.value = currentPage;
606
-
607
- return paginationSearchParam;
608
- }
609
-
610
- /**
611
- * Collects the missing pagination elements.
612
- * @returns A Promise that resolves once the missing pagination elements have been collected.
613
- */
614
- async #getCMSPaginationElements() {
615
- await this.loadingSearchParamsData;
616
-
617
- const { origin, pathname } = window.location;
618
- const {
619
- wrapperElement,
620
- listElement,
621
- paginationWrapperElement,
622
- paginationNextCMSElement,
623
- paginationPreviousCMSElement,
624
- emptyElement,
625
- currentPage,
626
- paginationSearchParam,
627
- pageIndex,
628
- } = this;
629
-
630
- await Promise.all([
631
- // Pagination next
632
- (async () => {
633
- if (paginationNextCMSElement.value) return;
634
-
635
- const $currentPage = currentPage.value;
636
- if (!$currentPage || $currentPage === 1) return;
637
-
638
- const page = await fetchPageDocument(`${origin}${pathname}?${paginationSearchParam}=${$currentPage - 1}`);
639
- if (!page) return;
640
-
641
- const allCollectionWrappers = getAllCollectionListWrappers(page);
642
- const collectionListWrapper = allCollectionWrappers[pageIndex];
643
- if (!collectionListWrapper) return;
644
-
645
- const paginationNext = getCollectionElements(collectionListWrapper, 'pagination-next');
646
- if (!paginationNext) return;
647
-
648
- const anchor = paginationPreviousCMSElement.value?.parentElement || paginationWrapperElement;
649
- if (!anchor) return;
650
-
651
- paginationNext.style.display = 'none';
652
-
653
- anchor.append(paginationNext);
654
- this.allPaginationNextElements.value.add(paginationNext);
655
- })(),
656
-
657
- // Pagination previous & Empty state
658
- (async () => {
659
- if (paginationPreviousCMSElement.value && emptyElement.value) return;
660
-
661
- const page = await fetchPageDocument(`${origin}${pathname}?${paginationSearchParam}=9999`);
662
- if (!page) return;
663
-
664
- const allCollectionWrappers = getAllCollectionListWrappers(page);
665
- const collectionListWrapper = allCollectionWrappers[pageIndex];
666
- if (!collectionListWrapper) return;
667
-
668
- const paginationPrevious = getCollectionElements(collectionListWrapper, 'pagination-previous');
669
- const empty = getCollectionElements(collectionListWrapper, 'empty');
670
-
671
- // Pagination previous
672
- if (paginationPrevious && !paginationPreviousCMSElement.value) {
673
- const anchor = paginationNextCMSElement.value?.parentElement || paginationWrapperElement;
674
- if (!anchor) return;
675
-
676
- paginationPrevious.style.display = 'none';
677
-
678
- anchor.prepend(paginationPrevious);
679
- this.allPaginationPreviousElements.value.add(paginationPrevious);
680
- }
681
-
682
- // Empty state
683
- if (empty && !emptyElement.value) {
684
- empty.style.display = 'none';
685
-
686
- wrapperElement.insertBefore(empty, listElement?.nextSibling || null);
687
- emptyElement.value = empty;
688
- }
689
- })(),
690
- ]);
691
- }
692
-
693
- /**
694
- * Adds a hook.
695
- * @param key
696
- * @param callback
697
- */
698
- addHook(key: HookKey, callback: HookCallback) {
699
- const hook = this.hooks[key];
700
-
701
- hook.callbacks.push(callback);
702
-
703
- return () => {
704
- hook.callbacks = hook.callbacks.filter((cb) => cb !== callback);
705
- };
706
- }
707
-
708
- /**
709
- * Runs a hook.
710
- * @param key
711
- * @param scrollToAnchor
712
- */
713
- async #runHook(key: HookKey) {
714
- this.currentHook = key;
715
-
716
- const hook = this.hooks[key];
717
-
718
- const { previous } = hook;
719
-
720
- const previousHookResult = previous ? this.hooks[previous].result : undefined;
721
-
722
- let result = previousHookResult?.value || this.items.value;
723
-
724
- for (const callback of hook.callbacks) {
725
- result = (await callback(result)) || result;
726
- }
727
-
728
- hook.result.value = [...result];
729
-
730
- this.currentHook = undefined;
731
- }
732
-
733
- /**
734
- * Triggers a hook.
735
- * @param key
736
- * @param options.scrollToAnchor
737
- */
738
- async triggerHook(
739
- key: HookKey,
740
- { scrollToAnchor, resetCurrentPage }: { scrollToAnchor?: boolean; resetCurrentPage?: boolean } = {}
741
- ) {
742
- this.triggeredHook = key;
743
-
744
- if (scrollToAnchor) {
745
- this.scrollToAnchor(key);
746
- }
747
-
748
- if (resetCurrentPage) {
749
- this.currentPage.value = 1;
750
- }
751
-
752
- await this.#runHook(key);
753
-
754
- this.triggeredHook = undefined;
755
- }
756
-
757
- /**
758
- * Creates a new {@link ListItem} instance.
759
- * @param itemElement The Collection Item element.
760
- * @returns The created {@link ListItem} instance.
761
- */
762
- createItem = (itemElement: HTMLElement) => new ListItem(itemElement, this);
763
-
764
- /**
765
- * Scrolls to the specified anchor based on the action provided.
766
- * @param key
767
- */
768
- scrollToAnchor(key?: HookKey) {
769
- const { scrollAnchorFilterElement, scrollAnchorSortElement, scrollAnchorPaginationElement, scrollAnchorElement } =
770
- this;
771
-
772
- const anchor =
773
- (key === 'filter'
774
- ? scrollAnchorFilterElement
775
- : key === 'sort'
776
- ? scrollAnchorSortElement
777
- : key === 'pagination'
778
- ? scrollAnchorPaginationElement
779
- : scrollAnchorElement) || scrollAnchorElement;
780
-
781
- if (!anchor) return;
782
-
783
- anchor.scrollIntoView({ behavior: 'smooth' });
784
- }
785
-
786
- /**
787
- * Gets a search param from the URL using the list's search params prefix.
788
- * @param key
789
- * @param usePrefix Whether to use the list's search params prefix or not.
790
- * @returns The value of the search param or null if not found.
791
- */
792
- async getSearchParam(key: string, usePrefix = true) {
793
- await this.loadingSearchParamsData;
794
-
795
- const { searchParams } = new URL(location.href);
796
-
797
- const name = usePrefix ? `${this.searchParamsPrefix}_${key}` : key;
798
-
799
- return searchParams.get(name);
800
- }
801
-
802
- /**
803
- * @returns All search params from the URL using the list's search params prefix (if true).
804
- * @param usePrefix Whether to use the list's search params prefix or not.
805
- */
806
- async getAllSearchParams(usePrefix = true) {
807
- await this.loadingSearchParamsData;
808
-
809
- const { searchParams } = new URL(location.href);
810
-
811
- const rawEntries = [...searchParams.entries()];
812
-
813
- const entries = usePrefix
814
- ? rawEntries
815
- .filter(([key]) => key.startsWith(`${this.searchParamsPrefix}_`))
816
- .map(([key, value]) => {
817
- const newKey = key.replace(`${this.searchParamsPrefix}_`, '');
818
- return [newKey, value] as const;
819
- })
820
- : rawEntries;
821
-
822
- return entries;
823
- }
824
-
825
- /**
826
- * Sets a search param in the URL using the list's search params prefix.
827
- * @param key
828
- * @param value
829
- * @param usePrefix Whether to use the list's search params prefix or not.
830
- */
831
- async setSearchParam(key: string, value: string | null | undefined, usePrefix = true) {
832
- await this.loadingSearchParamsData;
833
-
834
- const url = new URL(location.href);
835
- const name = usePrefix ? `${this.searchParamsPrefix}_${key}` : key;
836
-
837
- if (value) {
838
- url.searchParams.set(name, value);
839
- } else {
840
- url.searchParams.delete(name);
841
- }
842
-
843
- history.replaceState({}, '', url.toString());
844
- }
845
-
846
- /**
847
- * Destroys the instance.
848
- */
849
- destroy() {
850
- // TODO: Call store.off() on all stores
851
-
852
- listInstancesStore.delete(this.wrapperElement);
853
- }
854
-
855
- /**
856
- * @returns The list element or wrapper element, whichever exists.
857
- */
858
- get listOrWrapper() {
859
- return this.listElement || this.wrapperElement;
860
- }
861
- }