@hortonstudio/main 1.2.12 → 1.2.14

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 +9 -9
  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,402 +0,0 @@
1
- import {
2
- addListener,
3
- cloneNode,
4
- CURRENT_CSS_CLASS,
5
- extractCommaSeparatedValues,
6
- getCurrentBreakpoint,
7
- isElement,
8
- isHTMLAnchorElement,
9
- isNotEmpty,
10
- isNumber,
11
- } from '@finsweet/attributes-utils';
12
- import { effect, type Ref, ref, watch } from '@vue/reactivity';
13
- import debounce from 'just-debounce';
14
-
15
- import type { List } from '../components/List';
16
- import { BREAKPOINTS_INDEX } from '../utils/constants';
17
- import { getCMSElementSelector } from '../utils/dom';
18
- import { getAttribute, getElementSelector, queryElement } from '../utils/selectors';
19
- import { loadPaginatedCMSItems } from './load';
20
-
21
- /**
22
- * Inits the `Pagination` mode.
23
- * @param list The {@link List} instance.
24
- *
25
- * @returns A callback to destroy the event listeners.
26
- */
27
- export const initPaginationMode = (list: List) => {
28
- const { currentPage, itemsPerPage, paginationWrapperElement } = list;
29
- if (!paginationWrapperElement) return;
30
-
31
- // Init hook
32
- list.addHook('pagination', (items) => {
33
- const $itemsPerPage = itemsPerPage.value;
34
-
35
- const start = (currentPage.value - 1) * $itemsPerPage;
36
- const end = start + $itemsPerPage;
37
-
38
- const paginatedItems = items.slice(start, end);
39
- return paginatedItems;
40
- });
41
-
42
- const currentPageCleanup = watch(
43
- list.currentPage,
44
- () => {
45
- // We reset currentPage to 1 when filtering and sorting,
46
- // we don't want to trigger pagination again when that happens
47
- if (list.currentHook) return;
48
-
49
- list.triggerHook('pagination', { scrollToAnchor: true });
50
-
51
- if (list.showQuery) {
52
- list.setSearchParam('page', currentPage.value.toString());
53
- }
54
- },
55
- {}
56
- );
57
-
58
- const paginateCleanup = watch(list.itemsPerPage, () => {
59
- list.triggerHook('pagination', { scrollToAnchor: true });
60
- });
61
-
62
- // Get settings
63
- const [pageBoundary, pageBoundaryCleanup] = getBreakpointSetting(list, 'pageboundary');
64
- const [pageSiblings, pageSiblingsCleanup] = getBreakpointSetting(list, 'pagesiblings');
65
-
66
- // Page Button Template
67
- const pageButtonTemplate = queryElement('page-button', { scope: paginationWrapperElement });
68
-
69
- // Page Dots Template
70
- let pageDotsTemplate = queryElement('page-dots', { scope: paginationWrapperElement });
71
-
72
- if (pageDotsTemplate) {
73
- pageDotsTemplate.remove();
74
- } else {
75
- pageDotsTemplate = document.createElement('div');
76
- pageDotsTemplate.textContent = '...';
77
- }
78
-
79
- // Handle page buttons
80
- let pageButtonsCleanup: (() => void) | undefined;
81
-
82
- if (pageButtonTemplate) {
83
- const { parentElement } = pageButtonTemplate;
84
-
85
- pageButtonTemplate.remove();
86
-
87
- if (parentElement) {
88
- pageButtonsCleanup = handlePageButtons(
89
- list,
90
- parentElement,
91
- pageButtonTemplate,
92
- pageDotsTemplate,
93
- pageSiblings,
94
- pageBoundary
95
- );
96
- }
97
- }
98
-
99
- // Init items load
100
- loadPaginatedCMSItems(list);
101
-
102
- // Handle pagination elements
103
- const paginationWrapperCleanup = handlePaginationWrapper(list);
104
- const paginationButtonsCleanup = handlePaginationButtons(list);
105
- const paginationCountCleanup = handlePaginationCount(list);
106
-
107
- // Return destroy callback
108
- return () => {
109
- pageBoundaryCleanup?.();
110
- pageSiblingsCleanup?.();
111
- pageButtonsCleanup?.();
112
- paginationWrapperCleanup?.();
113
- paginationCountCleanup?.();
114
- paginationButtonsCleanup();
115
- currentPageCleanup();
116
- paginateCleanup();
117
- };
118
- };
119
-
120
- /**
121
- * Handles the page buttons elements.
122
- * @param list
123
- * @param parentElement
124
- * @param pageButtonTemplate
125
- * @param pageDotsTemplate
126
- * @param pageSiblings
127
- * @param pageBoundary
128
- */
129
- const handlePageButtons = (
130
- list: List,
131
- parentElement: HTMLElement,
132
- pageButtonTemplate: HTMLElement,
133
- pageDotsTemplate: HTMLElement,
134
- pageSiblings: Ref<number>,
135
- pageBoundary: Ref<number>
136
- ) => {
137
- const { currentPage, totalPages } = list;
138
-
139
- let renderedButtons = new Map<HTMLElement, number | null>();
140
-
141
- const pageButtonsRunner = effect(() => {
142
- const totalSiblings = pageSiblings.value * 2 + 1;
143
- const totalBoundary = pageBoundary.value * 2;
144
-
145
- const maxElements = totalBoundary + totalSiblings + 2;
146
-
147
- const isStartRange = currentPage.value - 1 < maxElements - totalSiblings;
148
- const isEndRange = totalPages.value - currentPage.value < maxElements - totalSiblings;
149
-
150
- const existingElements: Array<[HTMLElement, number | null] | undefined> = [...renderedButtons];
151
-
152
- for (let index = 1; index <= maxElements; index++) {
153
- // Get previous elements
154
- const [existingElement, existingTargetPage] = existingElements[index - 1] || [];
155
- const [lastElement] = existingElements[index - 2] || [];
156
-
157
- // Get rid of invalid elements
158
- if (index > totalPages.value) {
159
- if (existingElement) {
160
- existingElement.remove();
161
- existingElements[index - 1] = undefined;
162
- }
163
- continue;
164
- }
165
-
166
- // Collect new target page
167
- let targetPage: number | null;
168
-
169
- if (totalPages.value <= maxElements) targetPage = index;
170
- else if (isStartRange) {
171
- if (index > maxElements - pageBoundary.value) targetPage = totalPages.value - (maxElements - index);
172
- else if (index === maxElements - pageBoundary.value) targetPage = null;
173
- else targetPage = index;
174
- } else if (isEndRange) {
175
- if (index < pageBoundary.value + 1) targetPage = index;
176
- else if (index === pageBoundary.value + 1) targetPage = null;
177
- else targetPage = totalPages.value - (maxElements - index);
178
- } else {
179
- if (index < pageBoundary.value + 1) targetPage = index;
180
- else if (index > maxElements - pageBoundary.value) targetPage = totalPages.value - (maxElements - index);
181
- else if (index === pageBoundary.value + 1 || index === maxElements - pageBoundary.value) targetPage = null;
182
- else targetPage = currentPage.value + (index - (pageBoundary.value + 1) - (1 + pageSiblings.value));
183
- }
184
-
185
- // Render a new item only when needed
186
- let newElement: HTMLElement | undefined;
187
-
188
- if (existingTargetPage !== targetPage) {
189
- // Remove the existing element
190
- existingElement?.remove();
191
-
192
- // Add the new item
193
- newElement = createPageButton(pageButtonTemplate, pageDotsTemplate, targetPage, list);
194
- existingElements[index - 1] = [newElement, targetPage];
195
-
196
- if (lastElement) parentElement.insertBefore(newElement, lastElement.nextSibling);
197
- else parentElement.appendChild(newElement);
198
-
199
- newElement.style.opacity = '';
200
- }
201
-
202
- const elementToUpdate = newElement || existingElement;
203
- if (!elementToUpdate) continue;
204
-
205
- // Update CSS and Aria
206
- if (targetPage === currentPage.value) {
207
- elementToUpdate.classList.add(CURRENT_CSS_CLASS);
208
- elementToUpdate.setAttribute('aria-current', 'page');
209
- } else {
210
- elementToUpdate.classList.remove(CURRENT_CSS_CLASS);
211
- elementToUpdate.removeAttribute('aria-current');
212
- }
213
- }
214
-
215
- // Store new state
216
- renderedButtons = new Map([...existingElements.filter(isNotEmpty)]);
217
- });
218
-
219
- // Handle clicks
220
- const cleanupClicks = addListener(parentElement, 'click', (e) => {
221
- const { target } = e;
222
-
223
- if (!isElement(target)) return;
224
-
225
- const isPageButton = target.closest<HTMLElement>(getElementSelector('page-button'));
226
- if (!isPageButton) return;
227
-
228
- e.preventDefault();
229
-
230
- const targetPage = renderedButtons.get(isPageButton);
231
- if (!targetPage) return;
232
-
233
- list.currentPage.value = targetPage;
234
- });
235
-
236
- return () => {
237
- pageButtonsRunner.effect.stop();
238
- cleanupClicks();
239
- };
240
- };
241
-
242
- /**
243
- * Creates a new page button element.
244
- *
245
- * @param pageButtonTemplate
246
- * @param pageDotsTemplate
247
- * @param targetPage The page where it will point to. If no target page is defined, a `Page Dots` element will be returned.
248
- * @param list The {@link List} instance.
249
- *
250
- * @returns The new element.
251
- */
252
- const createPageButton = (
253
- pageButtonTemplate: HTMLElement,
254
- pageDotsTemplate: HTMLElement,
255
- targetPage: number | null,
256
- { paginationSearchParam }: List
257
- ) => {
258
- if (!targetPage) return cloneNode(pageDotsTemplate);
259
-
260
- const newElement = cloneNode(pageButtonTemplate);
261
- newElement.classList.remove(CURRENT_CSS_CLASS);
262
- newElement.textContent = `${targetPage}`;
263
-
264
- if (isHTMLAnchorElement(newElement) && paginationSearchParam) {
265
- newElement.href = `?${paginationSearchParam}=${targetPage}`;
266
- }
267
-
268
- return newElement;
269
- };
270
-
271
- /**
272
- * Updates the native `Page Count` element.
273
- * @param list The {@link List} instance.
274
- * @returns A cleanup function to remove the effect.
275
- */
276
- const handlePaginationCount = ({ paginationCountElement, currentPage, totalPages }: List) => {
277
- if (!paginationCountElement) return;
278
-
279
- const runner = effect(() => {
280
- paginationCountElement.setAttribute('aria-label', `Page ${currentPage.value} of ${totalPages.value}`);
281
- paginationCountElement.textContent = `${currentPage.value} / ${totalPages.value}`;
282
- });
283
-
284
- return () => runner.effect.stop();
285
- };
286
-
287
- /**
288
- * Handles the display of the pagination wrapper element.
289
- * @param list The {@link List} instance.
290
- * @returns A cleanup function to remove the effect.
291
- */
292
- const handlePaginationWrapper = (list: List) => {
293
- if (!list.paginationWrapperElement) return;
294
-
295
- const runner = effect(() => {
296
- list.paginationWrapperElement!.style.display = list.hooks.pagination.result.value.length > 0 ? '' : 'none';
297
- });
298
-
299
- return () => runner.effect.stop();
300
- };
301
-
302
- /**
303
- * Handles the `display` and `href` properties of native pagination buttons (`Previous` & `Next`).
304
- * @param list The {@link List} instance.
305
- * @returns A cleanup function to remove the effect.
306
- */
307
- const handlePaginationButtons = (list: List) => {
308
- const setAttributes = (element: HTMLElement, shouldDisplay: boolean) => {
309
- const disabledClass = getAttribute(element, 'paginationdisabledclass');
310
-
311
- element.style.display = '';
312
- element.classList[shouldDisplay ? 'remove' : 'add'](disabledClass);
313
- element.setAttribute('aria-disabled', shouldDisplay ? 'false' : 'true');
314
- element.setAttribute('aria-hidden', shouldDisplay ? 'false' : 'true');
315
- element.setAttribute('tabindex', shouldDisplay ? '0' : '-1');
316
- };
317
-
318
- const buttonsRunner = effect(() => {
319
- list.allPaginationPreviousElements.value.forEach((element) => {
320
- const shouldDisplay = list.currentPage.value !== 1;
321
-
322
- setAttributes(element, shouldDisplay);
323
-
324
- if (isHTMLAnchorElement(element)) {
325
- element.href = `?${list.paginationSearchParam}=${list.currentPage.value - 1}`;
326
- }
327
- });
328
-
329
- list.allPaginationNextElements.value.forEach((element) => {
330
- const shouldDisplay = list.currentPage.value !== list.totalPages.value;
331
-
332
- setAttributes(element, shouldDisplay);
333
-
334
- if (isHTMLAnchorElement(element)) {
335
- element.href = `?${list.paginationSearchParam}=${list.currentPage.value + 1}`;
336
- }
337
- });
338
- });
339
-
340
- const clicksCleanup = addListener(window, 'click', (e) => {
341
- const { target } = e;
342
-
343
- if (!isElement(target)) return;
344
-
345
- const isNextButton = target.closest(getCMSElementSelector('pagination-next'));
346
- const isPreviousButton = target.closest(getCMSElementSelector('pagination-previous'));
347
-
348
- if (!isNextButton && !isPreviousButton) return;
349
-
350
- e.preventDefault();
351
-
352
- const { currentPage, totalPages } = list;
353
-
354
- let targetPage: number | null | undefined;
355
-
356
- if (isNextButton) targetPage = currentPage.value + 1;
357
- else targetPage = currentPage.value - 1;
358
-
359
- if (!targetPage) return;
360
- if (targetPage < 1) return;
361
- if (targetPage > totalPages.value) return;
362
-
363
- list.currentPage.value = targetPage;
364
- });
365
-
366
- return () => {
367
- buttonsRunner.effect.stop();
368
- clicksCleanup();
369
- };
370
- };
371
-
372
- /**
373
- * Gets a breakpoint setting and returns it as a store that will be updated on resize.
374
- * @param list
375
- * @param setting
376
- * @returns A store atom and a cleanup function.
377
- */
378
- const getBreakpointSetting = ({ listOrWrapper }: List, setting: 'pagesiblings' | 'pageboundary') => {
379
- const rawValues = getAttribute(listOrWrapper, setting);
380
- const values = extractCommaSeparatedValues(rawValues).map(parseInt);
381
- const store = ref(values[0]);
382
-
383
- const updateValue = () => {
384
- const currentBreakpoint = getCurrentBreakpoint();
385
- const breakpointIndex = BREAKPOINTS_INDEX[currentBreakpoint];
386
-
387
- for (let i = breakpointIndex; i >= 0; i--) {
388
- const value = values[i];
389
-
390
- if (isNumber(value)) {
391
- store.value = value;
392
- break;
393
- }
394
- }
395
- };
396
-
397
- const cleanup = addListener(window, 'resize', debounce(updateValue, 100));
398
-
399
- updateValue();
400
-
401
- return [store, cleanup] as const;
402
- };
@@ -1,198 +0,0 @@
1
- import { cloneNode, extractCommaSeparatedValues, fetchPageDocument } from '@finsweet/attributes-utils';
2
- import { effect, triggerRef } from '@vue/reactivity';
3
-
4
- import { List, ListItem } from '../components';
5
- import { getAllCollectionListWrappers, getCollectionElements } from '../utils/dom';
6
- import {
7
- getAttribute,
8
- getElementSelector,
9
- getSettingSelector,
10
- queryAllElements,
11
- queryElement,
12
- } from '../utils/selectors';
13
- import { listInstancesStore } from '../utils/store';
14
-
15
- /**
16
- * Initializes list nesting.
17
- * @param list - The list to initialize nesting for.
18
- */
19
- export const initListNest = (list: List) => {
20
- const handledItems = new Set<ListItem>();
21
-
22
- const runner = effect(() => {
23
- let hasChanges = false;
24
-
25
- Promise.all(
26
- list.items.value.map(async (item) => {
27
- if (handledItems.has(item)) return;
28
-
29
- handledItems.add(item);
30
-
31
- const nestTargets = queryAllElements('nest-target', { scope: item.element });
32
- if (!nestTargets.length) return;
33
-
34
- await Promise.all(nestTargets.map(async (target) => handleNestTarget(list, item, target)));
35
-
36
- hasChanges = true;
37
- })
38
- ).then(() => {
39
- if (hasChanges) {
40
- triggerRef(list.items);
41
- }
42
- });
43
- });
44
-
45
- return () => {
46
- runner.effect.stop();
47
- handledItems.clear();
48
- };
49
- };
50
-
51
- /**
52
- * Handles a nest target element.
53
- * @param list
54
- * @param item
55
- * @param target
56
- * @returns
57
- */
58
- const handleNestTarget = (list: List, item: ListItem, target: HTMLElement) => {
59
- if (!item.href) return;
60
-
61
- const instance = getAttribute(target, 'nest');
62
- if (!instance) return;
63
-
64
- const slugsElement = item.element.querySelector<HTMLElement>(
65
- `${getElementSelector('nest-slugs')}${getSettingSelector('nest', instance)}`
66
- );
67
-
68
- item.nesting = new Promise((resolve) => {
69
- if (slugsElement) {
70
- const slugs = extractCommaSeparatedValues(slugsElement.textContent);
71
-
72
- handleManualNesting(list, item, target, slugs, instance).then(resolve);
73
- } else {
74
- handleExternalNesting(list, item, target, instance).then(resolve);
75
- }
76
- });
77
-
78
- return item.nesting;
79
- };
80
-
81
- /**
82
- * Handles manual nesting.
83
- * @param list
84
- * @param item
85
- * @param target
86
- * @param slugs
87
- * @param instance
88
- */
89
- const handleManualNesting = async (
90
- list: List,
91
- item: ListItem,
92
- target: HTMLElement,
93
- slugs: string[],
94
- instance: string
95
- ) => {
96
- if (!slugs.length) return;
97
- if (!item.href) return;
98
-
99
- const source = [...listInstancesStore.values()].find(
100
- (sourceList) => sourceList !== list && sourceList.instance === instance
101
- );
102
- if (!source) return;
103
-
104
- const sourceItems = source.items.value;
105
-
106
- const sourceWrapper = cloneNode(source.wrapperElement, false);
107
-
108
- // Items list
109
- if (sourceItems.length) {
110
- const sourceList = source.listElement ? cloneNode(source.listElement, false) : document.createElement('div');
111
-
112
- await Promise.resolve();
113
-
114
- const elements = await Promise.all(
115
- sourceItems.map(async (item) => {
116
- await item.nesting;
117
-
118
- return cloneNode(item.element);
119
- })
120
- );
121
-
122
- sourceList.append(...elements);
123
- sourceWrapper.append(sourceList);
124
- }
125
-
126
- // Empty state
127
- else {
128
- let sourceEmpty = source.emptyElement.value;
129
-
130
- if (!sourceEmpty) {
131
- await source.loadingPaginationElements;
132
- sourceEmpty = source.emptyElement.value;
133
- }
134
-
135
- if (sourceEmpty) {
136
- sourceWrapper.append(sourceEmpty);
137
- }
138
- }
139
-
140
- target.append(sourceWrapper);
141
- item.collectFields();
142
- };
143
-
144
- /**
145
- * Handles external nesting.
146
- * @param list
147
- * @param item
148
- * @param target
149
- * @param instance
150
- */
151
- const handleExternalNesting = async (list: List, item: ListItem, target: HTMLElement, instance: string) => {
152
- if (!item.href) return;
153
-
154
- const scope = await fetchPageDocument(item.href, { cache: list.cache });
155
- if (!scope) return;
156
-
157
- const sourceReference = queryElement('wrapper', { scope, instance }) || queryElement('list', { scope, instance });
158
- if (!sourceReference) return;
159
-
160
- const sourceWrapper = getCollectionElements(sourceReference, 'wrapper');
161
- if (!sourceWrapper) return;
162
-
163
- const allWrappers = getAllCollectionListWrappers(scope);
164
-
165
- const index = allWrappers.indexOf(sourceWrapper);
166
- if (index === -1) return;
167
-
168
- const sourceInstance = new List(sourceWrapper, index, false);
169
-
170
- if (sourceInstance.emptyElement.value) {
171
- target.append(sourceInstance.emptyElement.value);
172
- return;
173
- }
174
-
175
- if (!sourceInstance.items.value.length) return;
176
-
177
- // Recursively nest items
178
- await Promise.all(
179
- sourceInstance.items.value.map(async (sourceItem) => {
180
- const nestedTargets = queryAllElements('nest-target', { scope: sourceItem.element });
181
- if (!nestedTargets.length) return;
182
-
183
- await Promise.all(
184
- nestedTargets.map(async (nestedTarget) => {
185
- const nestedInstance = getAttribute(nestedTarget, 'nest');
186
- if (!nestedInstance) return;
187
-
188
- await handleExternalNesting(list, sourceItem, nestedTarget, nestedInstance);
189
-
190
- item.collectFields();
191
- })
192
- );
193
- })
194
- );
195
-
196
- target.append(sourceWrapper);
197
- item.collectFields();
198
- };
@@ -1,98 +0,0 @@
1
- import { cloneNode } from '@finsweet/attributes-utils';
2
- import { watch } from '@vue/reactivity';
3
-
4
- import type { List, ListItem } from '../components';
5
- import { queryElement } from '../utils/selectors';
6
-
7
- /**
8
- * Initializes the previous and next items for a collection template page.
9
- * @param list
10
- * @param previousItemTarget
11
- * @param nextItemTarget
12
- * @returns A cleanup function.
13
- */
14
- export const initPrevNext = (
15
- list: List,
16
- previousItemTarget: HTMLElement | null,
17
- nextItemTarget: HTMLElement | null
18
- ) => {
19
- const previousEmptyPlaceholder = queryElement('previous-empty', { instance: list.instance });
20
- const nextEmptyPlaceholder = queryElement('next-empty', { instance: list.instance });
21
-
22
- previousEmptyPlaceholder?.remove();
23
- nextEmptyPlaceholder?.remove();
24
-
25
- let loadingItems = !!list.loadingPaginatedItems;
26
- let previousItem: ListItem | undefined;
27
- let nextItem: ListItem | undefined;
28
-
29
- list.loadingPaginatedItems?.then(() => {
30
- loadingItems = false;
31
- handleItems(list.items.value);
32
- });
33
-
34
- /**
35
- * Handles items for the previous and next functionality.
36
- * @param items
37
- */
38
- const handleItems = (items: ListItem[]) => {
39
- if (previousItem && nextItem) {
40
- return;
41
- }
42
-
43
- const href = window.location.origin + window.location.pathname;
44
- const currentItemIndex = items.findIndex((item) => item.href === href);
45
-
46
- // Display empty placeholders if the current item is not found
47
- if (currentItemIndex === -1 && !loadingItems) {
48
- if (previousEmptyPlaceholder) {
49
- previousItemTarget?.append(previousEmptyPlaceholder);
50
- }
51
-
52
- if (nextEmptyPlaceholder) {
53
- nextItemTarget?.append(nextEmptyPlaceholder);
54
- }
55
- }
56
-
57
- if (currentItemIndex === -1) return;
58
-
59
- // Previous item
60
- if (!previousItem) {
61
- previousItem = items[currentItemIndex - 1];
62
-
63
- // If found, clone the element and append it to the target
64
- if (previousItem) {
65
- const clone = cloneNode(previousItem.element);
66
-
67
- previousEmptyPlaceholder?.remove();
68
- previousItemTarget?.append(clone);
69
- }
70
-
71
- // If not found, show the empty placeholder only if the items have finished loading
72
- else if (!loadingItems && previousEmptyPlaceholder) {
73
- previousItemTarget?.append(previousEmptyPlaceholder);
74
- }
75
- }
76
-
77
- // Next item
78
- if (!nextItem) {
79
- nextItem = items[currentItemIndex + 1];
80
-
81
- // If found, clone the element and append it to the target
82
- if (nextItem) {
83
- const clone = cloneNode(nextItem.element);
84
-
85
- nextEmptyPlaceholder?.remove();
86
- nextItemTarget?.append(clone);
87
- }
88
-
89
- // If not found, show the empty placeholder only if the items have finished loading
90
- else if (!loadingItems && nextEmptyPlaceholder) {
91
- nextItemTarget?.append(nextEmptyPlaceholder);
92
- }
93
- }
94
- };
95
-
96
- const cleanup = watch(list.items, handleItems, { immediate: true });
97
- return cleanup;
98
- };