@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,159 +0,0 @@
1
- import {
2
- addListener,
3
- ARROW_DOWN_KEY,
4
- ARROW_UP_KEY,
5
- closeDropdown,
6
- isElement,
7
- SPACE_KEY,
8
- TAB_KEY,
9
- } from '@finsweet/attributes-utils';
10
-
11
- import { CONTROL_KEYS } from '../utils/constants';
12
- import type { Settings } from '../utils/types';
13
- import { updateOptionsState } from './state';
14
-
15
- /**
16
- * Returns the {@link OptionData} of an event target.
17
- *
18
- * @param e The Event object.
19
- * @param settings The instance {@link Settings}.
20
- *
21
- * @returns The {@link OptionData} object, if found.
22
- */
23
- const getClickedOptionData = (e: Event, { optionsStore }: Settings) => {
24
- const { target } = e;
25
-
26
- if (!isElement(target)) return;
27
-
28
- const optionElement = target.closest('a');
29
- if (!optionElement) return;
30
-
31
- const optionData = optionsStore.find(({ element }) => element === optionElement);
32
- if (!optionData) return;
33
-
34
- return optionData;
35
- };
36
-
37
- /**
38
- * Handles click events on the dropdown list.
39
- * @param e The Event object.
40
- * @param settings The instance {@link Settings}.
41
- */
42
- const handleDropdownListClickEvents = (e: MouseEvent | KeyboardEvent, settings: Settings) => {
43
- if (e.target === settings.selectElement) return;
44
-
45
- e.preventDefault();
46
-
47
- const optionData = getClickedOptionData(e, settings);
48
- if (!optionData) return;
49
-
50
- if (!optionData.selected) updateOptionsState(settings, optionData);
51
-
52
- closeDropdown(settings.dropdownToggle);
53
- };
54
-
55
- /**
56
- * Handles tab key events on the dropdown list.
57
- * @param e The Event object.
58
- * @param settings The instance {@link Settings}.
59
- */
60
- const handleTabKeyEvents = (e: KeyboardEvent, { dropdownToggle }: Settings) => {
61
- const { shiftKey } = e;
62
-
63
- if (shiftKey) e.preventDefault();
64
-
65
- closeDropdown(dropdownToggle, shiftKey);
66
- };
67
-
68
- /**
69
- * Handles arrow keys events on the dropdown list.
70
- * @param e The Event object.
71
- * @param settings The instance {@link Settings}.
72
- */
73
- const handleDropdownListArrowKeyEvents = ({ key }: KeyboardEvent, { optionsStore }: Settings) => {
74
- const focusedOptionIndex = optionsStore.findIndex(({ focused }) => focused);
75
- if (focusedOptionIndex < 0) return;
76
-
77
- const nextOption = optionsStore[key === ARROW_UP_KEY ? focusedOptionIndex - 1 : focusedOptionIndex + 1];
78
- nextOption?.element.focus();
79
- };
80
-
81
- /**
82
- * Handles keyboard events on the dropdown list.
83
- * @param e The Event object.
84
- * @param settings The instance {@link Settings}.
85
- */
86
- const handleDropdownListKeydownEvents = (e: KeyboardEvent, settings: Settings) => {
87
- const { key } = e;
88
-
89
- if (!CONTROL_KEYS.includes(key)) return;
90
-
91
- if (key === SPACE_KEY) handleDropdownListClickEvents(e, settings);
92
- else if (key === TAB_KEY) handleTabKeyEvents(e, settings);
93
- else if (key === ARROW_UP_KEY || key === ARROW_DOWN_KEY) handleDropdownListArrowKeyEvents(e, settings);
94
- };
95
-
96
- /**
97
- * Handles focus events on the dropdown list.
98
- * @param e The Event object.
99
- * @param settings The instance {@link Settings}.
100
- */
101
- const handleDropdownListFocusEvents = (e: FocusEvent, focused: boolean, settings: Settings) => {
102
- const optionData = getClickedOptionData(e, settings);
103
- if (!optionData) return;
104
-
105
- optionData.focused = focused;
106
- };
107
-
108
- /**
109
- * Handles arrow keys events on the dropdown list.
110
- * @param e The Event object.
111
- * @param settings The instance {@link Settings}.
112
- */
113
- const handleDropdownToggleArrowKeyEvents = ({ key }: KeyboardEvent, { optionsStore }: Settings) => {
114
- if (key !== ARROW_DOWN_KEY) return;
115
-
116
- const firstOption = optionsStore.find(({ hidden }) => !hidden);
117
- if (!firstOption) return;
118
-
119
- firstOption.element.focus();
120
- };
121
-
122
- /**
123
- * Adds two way data binding.
124
- * Handles `change` events on the hidden `selectElement` and updates the dropdown.
125
- * @param settings The instance {@link Settings}.
126
- */
127
- const handleSelectChangeEvents = (settings: Settings) => {
128
- const { selectElement, optionsStore } = settings;
129
-
130
- const selectedOption = optionsStore.find(({ value }) => value === selectElement.value);
131
- if (!selectedOption) return;
132
-
133
- updateOptionsState(settings, selectedOption);
134
- };
135
-
136
- /**
137
- * Listens for click events on the custom elements.
138
- * @param settings The instance {@link Settings}.
139
- *
140
- * @returns A callback to remove all event listeners.
141
- */
142
- export const listenEvents = (settings: Settings) => {
143
- const { dropdownToggle, dropdownList, selectElement } = settings;
144
-
145
- const cleanups = [
146
- addListener(dropdownToggle, 'keydown', (e) => handleDropdownToggleArrowKeyEvents(e, settings)),
147
-
148
- addListener(dropdownList, 'click', (e) => handleDropdownListClickEvents(e, settings)),
149
- addListener(dropdownList, 'keydown', (e) => handleDropdownListKeydownEvents(e, settings)),
150
- addListener(dropdownList, 'focusin', (e) => handleDropdownListFocusEvents(e, true, settings)),
151
- addListener(dropdownList, 'focusout', (e) => handleDropdownListFocusEvents(e, false, settings)),
152
-
153
- addListener(selectElement, 'change', () => handleSelectChangeEvents(settings)),
154
- ];
155
-
156
- return () => {
157
- for (const cleanup of cleanups) cleanup();
158
- };
159
- };
@@ -1,83 +0,0 @@
1
- import { ARIA_EXPANDED_KEY, isHTMLOptionElement } from '@finsweet/attributes-utils';
2
- import debounce from 'just-debounce';
3
-
4
- import type { Settings } from '../utils/types';
5
- import { populateOptions } from './populate';
6
- import { toggleResetVisibility } from './state';
7
-
8
- /**
9
- * Observes when the dropdown list is opened/closed.
10
- * @param settings The instance {@link Settings}.
11
- *
12
- * @returns The MutationObserver.
13
- */
14
- const observeDropdownList = (settings: Settings) => {
15
- const { dropdownToggle, dropdownList, optionsStore, hideInitial } = settings;
16
-
17
- const callback: MutationCallback = debounce(() => {
18
- const selectedOption = optionsStore.find(({ selected }) => selected);
19
- const firstNonHiddenOption = optionsStore.find(({ hidden }) => !hidden);
20
-
21
- if (!selectedOption || !firstNonHiddenOption) return;
22
-
23
- const isOpen = dropdownToggle.getAttribute(ARIA_EXPANDED_KEY) === 'true';
24
-
25
- if (isOpen) {
26
- if (selectedOption.hidden) firstNonHiddenOption.element.focus();
27
- else selectedOption.element.focus();
28
-
29
- return;
30
- }
31
-
32
- if (hideInitial) window.requestAnimationFrame(() => toggleResetVisibility(!!selectedOption.value, settings));
33
- }, 20);
34
-
35
- const observer = new MutationObserver(callback);
36
-
37
- observer.observe(dropdownList, {
38
- attributes: true,
39
- attributeFilter: ['class', 'style'],
40
- });
41
-
42
- return observer;
43
- };
44
-
45
- /**
46
- * Observes changes in the {@link HTMLSelectElement} options.
47
- * @param settings The instance {@link Settings}.
48
- *
49
- * @returns The MutationObserver.
50
- */
51
- const observeSelectElement = (settings: Settings) => {
52
- const { selectElement } = settings;
53
-
54
- const observer = new MutationObserver((mutations) => {
55
- const hasMutatedOptions = mutations.some(({ addedNodes, removedNodes }) =>
56
- [...addedNodes, ...removedNodes].some(isHTMLOptionElement)
57
- );
58
-
59
- if (hasMutatedOptions) populateOptions(settings);
60
- });
61
-
62
- observer.observe(selectElement, {
63
- childList: true,
64
- });
65
-
66
- return observer;
67
- };
68
-
69
- /**
70
- * Observes mutations on elements of the instance.
71
- * @param settings The instance {@link Settings}.
72
- *
73
- * @returns A callback to destroy the MutationObservers.
74
- */
75
- export const observeElements = (settings: Settings) => {
76
- const dropdownListObserver = observeDropdownList(settings);
77
- const selectElementObserver = observeSelectElement(settings);
78
-
79
- return () => {
80
- dropdownListObserver.disconnect();
81
- selectElementObserver.disconnect();
82
- };
83
- };
@@ -1,67 +0,0 @@
1
- import { cloneNode, findTextNode } from '@finsweet/attributes-utils';
2
-
3
- import type { OptionData, Settings } from '../utils/types';
4
- import { setOptionAria } from './a11y';
5
- import { toggleResetVisibility, updateOptionsState } from './state';
6
-
7
- /**
8
- * Populates the custom options based on the `HTMLSelectElement`'s options.
9
- * @param settings The instance {@link Settings}.
10
- */
11
- export const populateOptions = (settings: Settings) => {
12
- const {
13
- optionsStore,
14
- optionTemplate,
15
- optionsList,
16
- emptyOption,
17
- hideInitial,
18
- selectElement: { options, value: currentValue },
19
- } = settings;
20
-
21
- // Clear existing options
22
- for (const { element } of optionsStore.values()) {
23
- element.remove();
24
- }
25
-
26
- optionsStore.splice(0, optionsStore.length);
27
-
28
- let selectedOption: OptionData | undefined;
29
-
30
- // Create new options
31
- for (const { value, text } of options) {
32
- let element: HTMLAnchorElement | undefined;
33
-
34
- if (!value && emptyOption) {
35
- element = cloneNode(emptyOption);
36
- } else {
37
- element = cloneNode(optionTemplate);
38
-
39
- const textNode = findTextNode(element) || element;
40
- textNode.textContent = text;
41
- }
42
-
43
- setOptionAria(element);
44
-
45
- optionsList.appendChild(element);
46
-
47
- const selected = value === currentValue;
48
-
49
- const optionData: OptionData = {
50
- text,
51
- value,
52
- element,
53
- selected,
54
- focused: false,
55
- };
56
-
57
- if (selected) selectedOption = optionData;
58
-
59
- optionsStore.push(optionData);
60
- }
61
-
62
- updateOptionsState(settings, selectedOption);
63
-
64
- if (hideInitial) {
65
- toggleResetVisibility(!!selectedOption?.value, settings);
66
- }
67
- };
@@ -1,68 +0,0 @@
1
- import {
2
- ARIA_CURRENT_KEY,
3
- DROPDOWN_CSS_CLASSES,
4
- type DropdownElement,
5
- type DropdownList,
6
- type DropdownToggle,
7
- findTextNode,
8
- isHTMLAnchorElement,
9
- TABINDEX_KEY,
10
- } from '@finsweet/attributes-utils';
11
-
12
- import { getElementSelector, hasAttributeValue, queryElement } from '../utils/selectors';
13
- import type { OptionsStore } from '../utils/types';
14
- import { setDropdownAria } from './a11y';
15
-
16
- /**
17
- * Collects the required elements/settings for the setup.
18
- * @param dropdown The {@link Dropdown} element.
19
- */
20
- export const collectSettings = (referenceElement: HTMLElement) => {
21
- const optionsStore: OptionsStore = [];
22
-
23
- const dropdown = referenceElement.closest<DropdownElement>(`.${DROPDOWN_CSS_CLASSES.dropdown}`);
24
- if (!dropdown) return;
25
-
26
- const selectElement = dropdown.querySelector('select');
27
- if (!selectElement) return;
28
-
29
- const dropdownToggle = dropdown.querySelector<DropdownToggle>(`.${DROPDOWN_CSS_CLASSES.dropdownToggle}`);
30
- const dropdownList = dropdown.querySelector<DropdownList>(`.${DROPDOWN_CSS_CLASSES.dropdownList}`);
31
- if (!dropdownToggle || !dropdownList) return;
32
-
33
- setDropdownAria(dropdownToggle, dropdownList);
34
-
35
- const label = queryElement('label', { scope: dropdownToggle }) || findTextNode(dropdownToggle) || dropdownToggle;
36
-
37
- const optionTemplate = dropdownList.querySelector(`a:not(${getElementSelector('clear')})`);
38
-
39
- if (!isHTMLAnchorElement(optionTemplate)) return;
40
-
41
- const optionsList = optionTemplate.parentElement;
42
- if (!optionsList) return;
43
-
44
- const emptyOption = queryElement<HTMLAnchorElement>('clear', { scope: dropdownList });
45
-
46
- for (const element of [optionTemplate, emptyOption]) {
47
- if (!element) continue;
48
-
49
- element.href = '#';
50
- element.setAttribute(TABINDEX_KEY, '-1');
51
- element.removeAttribute(ARIA_CURRENT_KEY);
52
- element.remove();
53
- }
54
-
55
- const hideInitial = hasAttributeValue(referenceElement, 'hideinitial', 'true');
56
-
57
- return {
58
- optionsStore,
59
- selectElement,
60
- dropdownToggle,
61
- dropdownList,
62
- label,
63
- optionTemplate,
64
- optionsList,
65
- emptyOption,
66
- hideInitial,
67
- };
68
- };
@@ -1,41 +0,0 @@
1
- import { ARIA_SELECTED_KEY, CURRENT_CSS_CLASS, setFormFieldValue, TABINDEX_KEY } from '@finsweet/attributes-utils';
2
-
3
- import type { OptionData, Settings } from '../utils/types';
4
-
5
- /**
6
- * Sets the selected state to an option and removes it from a previous one, if existing.
7
- * @param settings The instance {@link Settings}.
8
- * @param selectedOption The selected {@link OptionData}, if existing.
9
- */
10
- export const updateOptionsState = (settings: Settings, selectedOption?: OptionData) => {
11
- const { selectElement, optionsStore, label } = settings;
12
-
13
- if (selectedOption) setFormFieldValue(selectElement, selectedOption.value);
14
-
15
- for (const optionData of optionsStore) {
16
- const { element } = optionData;
17
-
18
- const selected = element === selectedOption?.element;
19
-
20
- optionData.selected = selected;
21
-
22
- element.classList[selected ? 'add' : 'remove'](CURRENT_CSS_CLASS);
23
- element.setAttribute(ARIA_SELECTED_KEY, `${selected}`);
24
- element.setAttribute(TABINDEX_KEY, selected ? '0' : '-1');
25
- }
26
-
27
- if (selectedOption) label.textContent = selectedOption.text;
28
- };
29
-
30
- /**
31
- * Toggles the visibility of the reset option.
32
- * @param show `true` to show, `false` to hide.
33
- * @param settings The instance {@link Settings}.
34
- */
35
- export const toggleResetVisibility = (show: boolean, { optionsStore }: Settings) => {
36
- const resetOption = optionsStore.find(({ value }) => !value);
37
- if (!resetOption) return;
38
-
39
- resetOption.hidden = !show;
40
- resetOption.element.style.display = show ? '' : 'none';
41
- };
@@ -1,3 +0,0 @@
1
- export { version } from '../package.json';
2
- export { init } from './init';
3
- export { ELEMENTS, SETTINGS } from './utils/constants';
@@ -1,51 +0,0 @@
1
- import {
2
- type FinsweetAttributeInit,
3
- isNotEmpty,
4
- waitAttributeLoaded,
5
- waitWebflowReady,
6
- } from '@finsweet/attributes-utils';
7
-
8
- import { listenEvents } from './actions/events';
9
- import { observeElements } from './actions/observe';
10
- import { populateOptions } from './actions/populate';
11
- import { collectSettings } from './actions/settings';
12
- import { queryAllElements } from './utils/selectors';
13
-
14
- /**
15
- * Inits the attribute.
16
- */
17
- export const init: FinsweetAttributeInit = async () => {
18
- await waitWebflowReady();
19
- await waitAttributeLoaded('list');
20
-
21
- const referenceElements = queryAllElements('dropdown');
22
-
23
- const cleanups = referenceElements.map(initCustomSelect).filter(isNotEmpty);
24
-
25
- return {
26
- result: referenceElements,
27
- destroy() {
28
- for (const cleanup of cleanups) cleanup();
29
- },
30
- };
31
- };
32
-
33
- /**
34
- * Inits a new custom select instance.
35
- * @param referenceElement The element that has the `dropdown` attribute.
36
- *
37
- * @returns A callback to destroy all listeners.
38
- */
39
- const initCustomSelect = (referenceElement: HTMLElement) => {
40
- const settings = collectSettings(referenceElement);
41
- if (!settings) return;
42
-
43
- populateOptions(settings);
44
- const disconnectObservers = observeElements(settings);
45
- const removeEventListeners = listenEvents(settings);
46
-
47
- return () => {
48
- disconnectObservers();
49
- removeEventListeners();
50
- };
51
- };
@@ -1,34 +0,0 @@
1
- import {
2
- ARROW_DOWN_KEY,
3
- ARROW_UP_KEY,
4
- type AttributeElements,
5
- type AttributeSettings,
6
- SPACE_KEY,
7
- TAB_KEY,
8
- } from '@finsweet/attributes-utils';
9
-
10
- export const ELEMENTS = [
11
- /**
12
- * Defines a dropdown element.
13
- */
14
- 'dropdown',
15
-
16
- /**
17
- * Defines the label that displays the currently selected option.
18
- */
19
- 'label',
20
-
21
- /**
22
- * Defines an option that will remove the selected value.
23
- */
24
- 'clear',
25
- ] as const satisfies AttributeElements;
26
-
27
- export const SETTINGS = {
28
- /**
29
- * Defines if the reset option should be hidden whenever there isn't an active selection.
30
- */
31
- hideinitial: { key: 'hideinitial', values: ['true'] },
32
- } as const satisfies AttributeSettings;
33
-
34
- export const CONTROL_KEYS = [SPACE_KEY, TAB_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY];
@@ -1,9 +0,0 @@
1
- import { generateSelectors, SELECT_CUSTOM_ATTRIBUTE } from '@finsweet/attributes-utils';
2
-
3
- import { ELEMENTS, SETTINGS } from './constants';
4
-
5
- export const { queryElement, getElementSelector, hasAttributeValue, queryAllElements } = generateSelectors(
6
- SELECT_CUSTOM_ATTRIBUTE,
7
- ELEMENTS,
8
- SETTINGS
9
- );
@@ -1,14 +0,0 @@
1
- import type { collectSettings } from '../actions/settings';
2
-
3
- export type Settings = NonNullable<ReturnType<typeof collectSettings>>;
4
-
5
- export interface OptionData {
6
- text: string;
7
- value: string;
8
- element: HTMLAnchorElement;
9
- selected: boolean;
10
- focused: boolean;
11
- hidden?: boolean;
12
- }
13
-
14
- export type OptionsStore = OptionData[];
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json"
3
- }