@hortonstudio/main 1.2.12 → 1.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/index.js +8 -8
  2. package/package.json +17 -6
  3. package/.claude/settings.local.json +0 -21
  4. package/animations/hero.js +0 -599
  5. package/animations/text.js +0 -369
  6. package/animations/transition.js +0 -57
  7. package/attributes-master/.changeset/README.md +0 -8
  8. package/attributes-master/.changeset/config.json +0 -11
  9. package/attributes-master/.gitattributes +0 -2
  10. package/attributes-master/.github/ISSUE_TEMPLATE/bug_report.md +0 -42
  11. package/attributes-master/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  12. package/attributes-master/.github/workflows/ci.yml +0 -66
  13. package/attributes-master/.github/workflows/release.yml +0 -40
  14. package/attributes-master/.prettierignore +0 -3
  15. package/attributes-master/.prettierrc +0 -8
  16. package/attributes-master/.vscode/extensions.json +0 -3
  17. package/attributes-master/.vscode/settings.json +0 -7
  18. package/attributes-master/CONTRIBUTING.md +0 -72
  19. package/attributes-master/LICENSE.md +0 -201
  20. package/attributes-master/README.md +0 -31
  21. package/attributes-master/eslint.config.js +0 -3
  22. package/attributes-master/package.json +0 -34
  23. package/attributes-master/packages/accordion/CHANGELOG.md +0 -89
  24. package/attributes-master/packages/accordion/README.md +0 -31
  25. package/attributes-master/packages/accordion/package.json +0 -25
  26. package/attributes-master/packages/accordion/src/actions/a11y.ts +0 -39
  27. package/attributes-master/packages/accordion/src/actions/classes.ts +0 -27
  28. package/attributes-master/packages/accordion/src/actions/content.ts +0 -42
  29. package/attributes-master/packages/accordion/src/actions/list.ts +0 -36
  30. package/attributes-master/packages/accordion/src/actions/query.ts +0 -27
  31. package/attributes-master/packages/accordion/src/actions/settings.ts +0 -61
  32. package/attributes-master/packages/accordion/src/factory.ts +0 -145
  33. package/attributes-master/packages/accordion/src/index.ts +0 -3
  34. package/attributes-master/packages/accordion/src/init.ts +0 -37
  35. package/attributes-master/packages/accordion/src/utils/constants.ts +0 -62
  36. package/attributes-master/packages/accordion/src/utils/helpers.ts +0 -5
  37. package/attributes-master/packages/accordion/src/utils/selectors.ts +0 -12
  38. package/attributes-master/packages/accordion/src/utils/types.ts +0 -23
  39. package/attributes-master/packages/accordion/tsconfig.json +0 -3
  40. package/attributes-master/packages/attributes/CHANGELOG.md +0 -564
  41. package/attributes-master/packages/attributes/README.md +0 -66
  42. package/attributes-master/packages/attributes/bin/build.ts +0 -107
  43. package/attributes-master/packages/attributes/bin/live-reload.js +0 -1
  44. package/attributes-master/packages/attributes/package.json +0 -77
  45. package/attributes-master/packages/attributes/playwright.config.ts +0 -89
  46. package/attributes-master/packages/attributes/src/attributes.ts +0 -153
  47. package/attributes-master/packages/attributes/src/load.ts +0 -125
  48. package/attributes-master/packages/attributes/tests/accordion.spec.ts +0 -137
  49. package/attributes-master/packages/attributes/tests/codehighlight.spec.ts +0 -23
  50. package/attributes-master/packages/attributes/tests/combobox.spec.ts +0 -321
  51. package/attributes-master/packages/attributes/tests/copyclip.spec.ts +0 -19
  52. package/attributes-master/packages/attributes/tests/displayvalues.spec.ts +0 -48
  53. package/attributes-master/packages/attributes/tests/favcustom.spec.ts +0 -23
  54. package/attributes-master/packages/attributes/tests/inject.spec.ts +0 -40
  55. package/attributes-master/packages/attributes/tests/inputactive.spec.ts +0 -77
  56. package/attributes-master/packages/attributes/tests/inputcounter.spec.ts +0 -83
  57. package/attributes-master/packages/attributes/tests/list.spec.ts +0 -800
  58. package/attributes-master/packages/attributes/tests/mirrorclick.spec.ts +0 -22
  59. package/attributes-master/packages/attributes/tests/mirrorinput.spec.ts +0 -37
  60. package/attributes-master/packages/attributes/tests/modal.spec.ts +0 -34
  61. package/attributes-master/packages/attributes/tests/numbercount.spec.ts +0 -40
  62. package/attributes-master/packages/attributes/tests/readtime.spec.ts +0 -19
  63. package/attributes-master/packages/attributes/tests/selectcustom.spec.ts +0 -51
  64. package/attributes-master/packages/attributes/tests/socialshare.spec.ts +0 -54
  65. package/attributes-master/packages/attributes/tests/starrating.spec.ts +0 -79
  66. package/attributes-master/packages/attributes/tests/toc.spec.ts +0 -38
  67. package/attributes-master/packages/attributes/tests/utils/index.ts +0 -16
  68. package/attributes-master/packages/attributes/tsconfig.json +0 -6
  69. package/attributes-master/packages/autovideo/CHANGELOG.md +0 -182
  70. package/attributes-master/packages/autovideo/README.md +0 -31
  71. package/attributes-master/packages/autovideo/package.json +0 -22
  72. package/attributes-master/packages/autovideo/src/index.ts +0 -3
  73. package/attributes-master/packages/autovideo/src/init.ts +0 -52
  74. package/attributes-master/packages/autovideo/src/types.ts +0 -5
  75. package/attributes-master/packages/autovideo/src/utils/constants.ts +0 -4
  76. package/attributes-master/packages/autovideo/tsconfig.json +0 -3
  77. package/attributes-master/packages/codehighlight/CHANGELOG.md +0 -185
  78. package/attributes-master/packages/codehighlight/README.md +0 -27
  79. package/attributes-master/packages/codehighlight/package.json +0 -23
  80. package/attributes-master/packages/codehighlight/src/actions/import.ts +0 -50
  81. package/attributes-master/packages/codehighlight/src/index.ts +0 -3
  82. package/attributes-master/packages/codehighlight/src/init.ts +0 -53
  83. package/attributes-master/packages/codehighlight/src/utils/constants.ts +0 -24
  84. package/attributes-master/packages/codehighlight/src/utils/selectors.ts +0 -5
  85. package/attributes-master/packages/codehighlight/src/utils/themes.ts +0 -202
  86. package/attributes-master/packages/codehighlight/tsconfig.json +0 -3
  87. package/attributes-master/packages/combobox/CHANGELOG.md +0 -99
  88. package/attributes-master/packages/combobox/README.md +0 -27
  89. package/attributes-master/packages/combobox/package.json +0 -23
  90. package/attributes-master/packages/combobox/src/actions/a11y.ts +0 -29
  91. package/attributes-master/packages/combobox/src/actions/body/index.ts +0 -12
  92. package/attributes-master/packages/combobox/src/actions/clearDropdown/index.ts +0 -37
  93. package/attributes-master/packages/combobox/src/actions/dropdownList/index.ts +0 -220
  94. package/attributes-master/packages/combobox/src/actions/dropdownToggle/index.ts +0 -34
  95. package/attributes-master/packages/combobox/src/actions/events.ts +0 -75
  96. package/attributes-master/packages/combobox/src/actions/input/index.ts +0 -235
  97. package/attributes-master/packages/combobox/src/actions/observe.ts +0 -158
  98. package/attributes-master/packages/combobox/src/actions/populate.ts +0 -97
  99. package/attributes-master/packages/combobox/src/actions/selectElement/index.ts +0 -23
  100. package/attributes-master/packages/combobox/src/actions/settings.ts +0 -134
  101. package/attributes-master/packages/combobox/src/actions/state.ts +0 -34
  102. package/attributes-master/packages/combobox/src/index.ts +0 -3
  103. package/attributes-master/packages/combobox/src/init.ts +0 -52
  104. package/attributes-master/packages/combobox/src/utils/constants.ts +0 -48
  105. package/attributes-master/packages/combobox/src/utils/dropdowns.ts +0 -120
  106. package/attributes-master/packages/combobox/src/utils/index.ts +0 -1
  107. package/attributes-master/packages/combobox/src/utils/selectors.ts +0 -9
  108. package/attributes-master/packages/combobox/src/utils/types.ts +0 -14
  109. package/attributes-master/packages/combobox/tsconfig.json +0 -3
  110. package/attributes-master/packages/copyclip/CHANGELOG.md +0 -213
  111. package/attributes-master/packages/copyclip/README.md +0 -27
  112. package/attributes-master/packages/copyclip/package.json +0 -23
  113. package/attributes-master/packages/copyclip/src/factory.ts +0 -67
  114. package/attributes-master/packages/copyclip/src/index.ts +0 -3
  115. package/attributes-master/packages/copyclip/src/init.ts +0 -68
  116. package/attributes-master/packages/copyclip/src/utils/constants.ts +0 -40
  117. package/attributes-master/packages/copyclip/src/utils/selectors.ts +0 -9
  118. package/attributes-master/packages/copyclip/tsconfig.json +0 -3
  119. package/attributes-master/packages/displayvalues/CHANGELOG.md +0 -164
  120. package/attributes-master/packages/displayvalues/README.md +0 -27
  121. package/attributes-master/packages/displayvalues/package.json +0 -22
  122. package/attributes-master/packages/displayvalues/src/actions/collect.ts +0 -17
  123. package/attributes-master/packages/displayvalues/src/actions/events.ts +0 -22
  124. package/attributes-master/packages/displayvalues/src/actions/sync.ts +0 -23
  125. package/attributes-master/packages/displayvalues/src/index.ts +0 -3
  126. package/attributes-master/packages/displayvalues/src/init.ts +0 -31
  127. package/attributes-master/packages/displayvalues/src/utils/constants.ts +0 -20
  128. package/attributes-master/packages/displayvalues/src/utils/selectors.ts +0 -9
  129. package/attributes-master/packages/displayvalues/src/utils/stores.ts +0 -3
  130. package/attributes-master/packages/displayvalues/tsconfig.json +0 -3
  131. package/attributes-master/packages/docs/CHANGELOG.md +0 -108
  132. package/attributes-master/packages/docs/README.md +0 -3
  133. package/attributes-master/packages/docs/bin/build.js +0 -92
  134. package/attributes-master/packages/docs/bin/live-reload.js +0 -1
  135. package/attributes-master/packages/docs/package.json +0 -40
  136. package/attributes-master/packages/docs/src/copy.ts +0 -260
  137. package/attributes-master/packages/docs/src/x-ray.ts +0 -377
  138. package/attributes-master/packages/docs/tsconfig.json +0 -3
  139. package/attributes-master/packages/favcustom/CHANGELOG.md +0 -194
  140. package/attributes-master/packages/favcustom/README.md +0 -27
  141. package/attributes-master/packages/favcustom/package.json +0 -22
  142. package/attributes-master/packages/favcustom/src/index.ts +0 -3
  143. package/attributes-master/packages/favcustom/src/init.ts +0 -30
  144. package/attributes-master/packages/favcustom/src/utils/constants.ts +0 -10
  145. package/attributes-master/packages/favcustom/src/utils/selectors.ts +0 -5
  146. package/attributes-master/packages/favcustom/tsconfig.json +0 -3
  147. package/attributes-master/packages/formsubmit/CHANGELOG.md +0 -161
  148. package/attributes-master/packages/formsubmit/README.md +0 -51
  149. package/attributes-master/packages/formsubmit/package.json +0 -22
  150. package/attributes-master/packages/formsubmit/src/actions/redirect.ts +0 -9
  151. package/attributes-master/packages/formsubmit/src/actions/reset.ts +0 -49
  152. package/attributes-master/packages/formsubmit/src/actions/submit.ts +0 -34
  153. package/attributes-master/packages/formsubmit/src/components/Form.ts +0 -231
  154. package/attributes-master/packages/formsubmit/src/factory.ts +0 -62
  155. package/attributes-master/packages/formsubmit/src/index.ts +0 -3
  156. package/attributes-master/packages/formsubmit/src/init.ts +0 -24
  157. package/attributes-master/packages/formsubmit/src/utils/attributes.ts +0 -19
  158. package/attributes-master/packages/formsubmit/src/utils/constants.ts +0 -89
  159. package/attributes-master/packages/formsubmit/src/utils/dom.ts +0 -76
  160. package/attributes-master/packages/formsubmit/src/utils/selectors.ts +0 -9
  161. package/attributes-master/packages/formsubmit/src/utils/types.ts +0 -7
  162. package/attributes-master/packages/formsubmit/tsconfig.json +0 -3
  163. package/attributes-master/packages/inject/CHANGELOG.md +0 -117
  164. package/attributes-master/packages/inject/README.md +0 -60
  165. package/attributes-master/packages/inject/package.json +0 -22
  166. package/attributes-master/packages/inject/src/actions/collect.ts +0 -125
  167. package/attributes-master/packages/inject/src/actions/css.ts +0 -27
  168. package/attributes-master/packages/inject/src/actions/prefetch.ts +0 -44
  169. package/attributes-master/packages/inject/src/factory.ts +0 -123
  170. package/attributes-master/packages/inject/src/index.ts +0 -3
  171. package/attributes-master/packages/inject/src/init.ts +0 -22
  172. package/attributes-master/packages/inject/src/utils/constants.ts +0 -89
  173. package/attributes-master/packages/inject/src/utils/helpers.ts +0 -36
  174. package/attributes-master/packages/inject/src/utils/selectors.ts +0 -9
  175. package/attributes-master/packages/inject/src/utils/types.ts +0 -16
  176. package/attributes-master/packages/inject/tsconfig.json +0 -3
  177. package/attributes-master/packages/inputactive/CHANGELOG.md +0 -58
  178. package/attributes-master/packages/inputactive/README.md +0 -25
  179. package/attributes-master/packages/inputactive/package.json +0 -22
  180. package/attributes-master/packages/inputactive/src/actions/classes.ts +0 -43
  181. package/attributes-master/packages/inputactive/src/factory.ts +0 -24
  182. package/attributes-master/packages/inputactive/src/index.ts +0 -3
  183. package/attributes-master/packages/inputactive/src/init.ts +0 -18
  184. package/attributes-master/packages/inputactive/src/utils/constants.ts +0 -13
  185. package/attributes-master/packages/inputactive/src/utils/selectors.ts +0 -5
  186. package/attributes-master/packages/inputactive/tsconfig.json +0 -3
  187. package/attributes-master/packages/inputcounter/CHANGELOG.md +0 -110
  188. package/attributes-master/packages/inputcounter/README.md +0 -25
  189. package/attributes-master/packages/inputcounter/package.json +0 -22
  190. package/attributes-master/packages/inputcounter/src/actions/a11y.ts +0 -23
  191. package/attributes-master/packages/inputcounter/src/actions/buttons.ts +0 -61
  192. package/attributes-master/packages/inputcounter/src/actions/input.ts +0 -31
  193. package/attributes-master/packages/inputcounter/src/actions/style.ts +0 -12
  194. package/attributes-master/packages/inputcounter/src/factory.ts +0 -51
  195. package/attributes-master/packages/inputcounter/src/index.ts +0 -3
  196. package/attributes-master/packages/inputcounter/src/init.ts +0 -22
  197. package/attributes-master/packages/inputcounter/src/utils/constants.ts +0 -59
  198. package/attributes-master/packages/inputcounter/src/utils/selectors.ts +0 -9
  199. package/attributes-master/packages/inputcounter/tsconfig.json +0 -3
  200. package/attributes-master/packages/list/CHANGELOG.md +0 -185
  201. package/attributes-master/packages/list/README.md +0 -331
  202. package/attributes-master/packages/list/package.json +0 -37
  203. package/attributes-master/packages/list/src/combine/index.ts +0 -38
  204. package/attributes-master/packages/list/src/components/List.ts +0 -861
  205. package/attributes-master/packages/list/src/components/ListItem.ts +0 -229
  206. package/attributes-master/packages/list/src/components/index.ts +0 -2
  207. package/attributes-master/packages/list/src/factory.ts +0 -130
  208. package/attributes-master/packages/list/src/filter/dynamic/conditions.ts +0 -639
  209. package/attributes-master/packages/list/src/filter/dynamic/groups.ts +0 -221
  210. package/attributes-master/packages/list/src/filter/dynamic/index.ts +0 -119
  211. package/attributes-master/packages/list/src/filter/dynamic/utils.ts +0 -44
  212. package/attributes-master/packages/list/src/filter/elements.ts +0 -93
  213. package/attributes-master/packages/list/src/filter/filter.ts +0 -118
  214. package/attributes-master/packages/list/src/filter/filter.worker.ts +0 -152
  215. package/attributes-master/packages/list/src/filter/index.ts +0 -94
  216. package/attributes-master/packages/list/src/filter/standard/conditions.ts +0 -123
  217. package/attributes-master/packages/list/src/filter/standard/facets.ts +0 -253
  218. package/attributes-master/packages/list/src/filter/standard/index.ts +0 -176
  219. package/attributes-master/packages/list/src/filter/standard/query.ts +0 -111
  220. package/attributes-master/packages/list/src/filter/tags.ts +0 -314
  221. package/attributes-master/packages/list/src/filter/types.ts +0 -62
  222. package/attributes-master/packages/list/src/filter/utils.ts +0 -126
  223. package/attributes-master/packages/list/src/index.ts +0 -4
  224. package/attributes-master/packages/list/src/init.ts +0 -38
  225. package/attributes-master/packages/list/src/load/all.ts +0 -27
  226. package/attributes-master/packages/list/src/load/elements.ts +0 -39
  227. package/attributes-master/packages/list/src/load/index.ts +0 -63
  228. package/attributes-master/packages/list/src/load/infinite.ts +0 -79
  229. package/attributes-master/packages/list/src/load/load.ts +0 -191
  230. package/attributes-master/packages/list/src/load/more.ts +0 -97
  231. package/attributes-master/packages/list/src/load/pagination.ts +0 -402
  232. package/attributes-master/packages/list/src/nest/index.ts +0 -198
  233. package/attributes-master/packages/list/src/prevnext/index.ts +0 -98
  234. package/attributes-master/packages/list/src/select/index.ts +0 -56
  235. package/attributes-master/packages/list/src/slider/index.ts +0 -62
  236. package/attributes-master/packages/list/src/sort/buttons.ts +0 -96
  237. package/attributes-master/packages/list/src/sort/dropdown.ts +0 -179
  238. package/attributes-master/packages/list/src/sort/index.ts +0 -81
  239. package/attributes-master/packages/list/src/sort/query.ts +0 -63
  240. package/attributes-master/packages/list/src/sort/select.ts +0 -67
  241. package/attributes-master/packages/list/src/sort/sort.ts +0 -79
  242. package/attributes-master/packages/list/src/sort/types.ts +0 -28
  243. package/attributes-master/packages/list/src/static/index.ts +0 -73
  244. package/attributes-master/packages/list/src/tabs/index.ts +0 -97
  245. package/attributes-master/packages/list/src/utils/constants.ts +0 -728
  246. package/attributes-master/packages/list/src/utils/dom.ts +0 -108
  247. package/attributes-master/packages/list/src/utils/pagination.ts +0 -14
  248. package/attributes-master/packages/list/src/utils/selectors.ts +0 -18
  249. package/attributes-master/packages/list/src/utils/store.ts +0 -5
  250. package/attributes-master/packages/list/tsconfig.json +0 -3
  251. package/attributes-master/packages/mirrorclick/CHANGELOG.md +0 -171
  252. package/attributes-master/packages/mirrorclick/README.md +0 -25
  253. package/attributes-master/packages/mirrorclick/package.json +0 -22
  254. package/attributes-master/packages/mirrorclick/src/index.ts +0 -3
  255. package/attributes-master/packages/mirrorclick/src/init.ts +0 -35
  256. package/attributes-master/packages/mirrorclick/src/utils/constants.ts +0 -20
  257. package/attributes-master/packages/mirrorclick/src/utils/selectors.ts +0 -9
  258. package/attributes-master/packages/mirrorclick/tsconfig.json +0 -3
  259. package/attributes-master/packages/mirrorinput/CHANGELOG.md +0 -172
  260. package/attributes-master/packages/mirrorinput/README.md +0 -25
  261. package/attributes-master/packages/mirrorinput/package.json +0 -22
  262. package/attributes-master/packages/mirrorinput/src/index.ts +0 -3
  263. package/attributes-master/packages/mirrorinput/src/init.ts +0 -48
  264. package/attributes-master/packages/mirrorinput/src/utils/constants.ts +0 -15
  265. package/attributes-master/packages/mirrorinput/src/utils/selectors.ts +0 -9
  266. package/attributes-master/packages/mirrorinput/tsconfig.json +0 -3
  267. package/attributes-master/packages/modal/CHANGELOG.md +0 -94
  268. package/attributes-master/packages/modal/README.md +0 -29
  269. package/attributes-master/packages/modal/package.json +0 -23
  270. package/attributes-master/packages/modal/src/actions/a11y.ts +0 -46
  271. package/attributes-master/packages/modal/src/actions/modal.ts +0 -164
  272. package/attributes-master/packages/modal/src/actions/settings.ts +0 -21
  273. package/attributes-master/packages/modal/src/factory.ts +0 -26
  274. package/attributes-master/packages/modal/src/index.ts +0 -3
  275. package/attributes-master/packages/modal/src/init.ts +0 -22
  276. package/attributes-master/packages/modal/src/utils/constants.ts +0 -54
  277. package/attributes-master/packages/modal/src/utils/selectors.ts +0 -9
  278. package/attributes-master/packages/modal/src/utils/types.ts +0 -12
  279. package/attributes-master/packages/modal/tsconfig.json +0 -3
  280. package/attributes-master/packages/numbercount/CHANGELOG.md +0 -90
  281. package/attributes-master/packages/numbercount/README.md +0 -27
  282. package/attributes-master/packages/numbercount/package.json +0 -23
  283. package/attributes-master/packages/numbercount/src/actions/a11y.ts +0 -26
  284. package/attributes-master/packages/numbercount/src/actions/animate.ts +0 -43
  285. package/attributes-master/packages/numbercount/src/actions/observe.ts +0 -44
  286. package/attributes-master/packages/numbercount/src/factory.ts +0 -31
  287. package/attributes-master/packages/numbercount/src/index.ts +0 -3
  288. package/attributes-master/packages/numbercount/src/init.ts +0 -22
  289. package/attributes-master/packages/numbercount/src/utils/constants.ts +0 -40
  290. package/attributes-master/packages/numbercount/src/utils/helpers.ts +0 -31
  291. package/attributes-master/packages/numbercount/src/utils/selectors.ts +0 -9
  292. package/attributes-master/packages/numbercount/tsconfig.json +0 -3
  293. package/attributes-master/packages/queryparam/CHANGELOG.md +0 -118
  294. package/attributes-master/packages/queryparam/README.md +0 -25
  295. package/attributes-master/packages/queryparam/package.json +0 -22
  296. package/attributes-master/packages/queryparam/src/factory.ts +0 -51
  297. package/attributes-master/packages/queryparam/src/index.ts +0 -3
  298. package/attributes-master/packages/queryparam/src/init.ts +0 -40
  299. package/attributes-master/packages/queryparam/src/utils/constants.ts +0 -18
  300. package/attributes-master/packages/queryparam/src/utils/selectors.ts +0 -5
  301. package/attributes-master/packages/queryparam/tsconfig.json +0 -3
  302. package/attributes-master/packages/rangeslider/CHANGELOG.md +0 -236
  303. package/attributes-master/packages/rangeslider/README.md +0 -95
  304. package/attributes-master/packages/rangeslider/package.json +0 -23
  305. package/attributes-master/packages/rangeslider/src/actions/a11y.ts +0 -21
  306. package/attributes-master/packages/rangeslider/src/actions/events.ts +0 -9
  307. package/attributes-master/packages/rangeslider/src/actions/settings.ts +0 -97
  308. package/attributes-master/packages/rangeslider/src/actions/styles.ts +0 -10
  309. package/attributes-master/packages/rangeslider/src/actions/values.ts +0 -47
  310. package/attributes-master/packages/rangeslider/src/components/Fill.ts +0 -70
  311. package/attributes-master/packages/rangeslider/src/components/Handle.ts +0 -281
  312. package/attributes-master/packages/rangeslider/src/factory.ts +0 -100
  313. package/attributes-master/packages/rangeslider/src/index.ts +0 -3
  314. package/attributes-master/packages/rangeslider/src/init.ts +0 -194
  315. package/attributes-master/packages/rangeslider/src/utils/constants.ts +0 -87
  316. package/attributes-master/packages/rangeslider/src/utils/selectors.ts +0 -9
  317. package/attributes-master/packages/rangeslider/src/utils/types.ts +0 -6
  318. package/attributes-master/packages/rangeslider/tsconfig.json +0 -3
  319. package/attributes-master/packages/readtime/CHANGELOG.md +0 -108
  320. package/attributes-master/packages/readtime/README.md +0 -25
  321. package/attributes-master/packages/readtime/package.json +0 -22
  322. package/attributes-master/packages/readtime/src/factory.ts +0 -21
  323. package/attributes-master/packages/readtime/src/index.ts +0 -3
  324. package/attributes-master/packages/readtime/src/init.ts +0 -19
  325. package/attributes-master/packages/readtime/src/utils/constants.ts +0 -33
  326. package/attributes-master/packages/readtime/src/utils/selectors.ts +0 -9
  327. package/attributes-master/packages/readtime/tsconfig.json +0 -3
  328. package/attributes-master/packages/removequery/CHANGELOG.md +0 -8
  329. package/attributes-master/packages/removequery/README.md +0 -25
  330. package/attributes-master/packages/removequery/package.json +0 -22
  331. package/attributes-master/packages/removequery/src/index.ts +0 -3
  332. package/attributes-master/packages/removequery/src/init.ts +0 -18
  333. package/attributes-master/packages/removequery/src/utils/constants.ts +0 -5
  334. package/attributes-master/packages/removequery/tsconfig.json +0 -3
  335. package/attributes-master/packages/scrolldisable/CHANGELOG.md +0 -164
  336. package/attributes-master/packages/scrolldisable/README.md +0 -29
  337. package/attributes-master/packages/scrolldisable/package.json +0 -27
  338. package/attributes-master/packages/scrolldisable/src/click.ts +0 -40
  339. package/attributes-master/packages/scrolldisable/src/display.ts +0 -117
  340. package/attributes-master/packages/scrolldisable/src/index.ts +0 -3
  341. package/attributes-master/packages/scrolldisable/src/init.ts +0 -36
  342. package/attributes-master/packages/scrolldisable/src/scroll.ts +0 -63
  343. package/attributes-master/packages/scrolldisable/src/utils/constants.ts +0 -56
  344. package/attributes-master/packages/scrolldisable/src/utils/selectors.ts +0 -6
  345. package/attributes-master/packages/scrolldisable/tsconfig.json +0 -3
  346. package/attributes-master/packages/selectcustom/CHANGELOG.md +0 -242
  347. package/attributes-master/packages/selectcustom/README.md +0 -25
  348. package/attributes-master/packages/selectcustom/package.json +0 -23
  349. package/attributes-master/packages/selectcustom/src/actions/a11y.ts +0 -29
  350. package/attributes-master/packages/selectcustom/src/actions/events.ts +0 -159
  351. package/attributes-master/packages/selectcustom/src/actions/observe.ts +0 -83
  352. package/attributes-master/packages/selectcustom/src/actions/populate.ts +0 -67
  353. package/attributes-master/packages/selectcustom/src/actions/settings.ts +0 -68
  354. package/attributes-master/packages/selectcustom/src/actions/state.ts +0 -41
  355. package/attributes-master/packages/selectcustom/src/index.ts +0 -3
  356. package/attributes-master/packages/selectcustom/src/init.ts +0 -51
  357. package/attributes-master/packages/selectcustom/src/utils/constants.ts +0 -34
  358. package/attributes-master/packages/selectcustom/src/utils/selectors.ts +0 -9
  359. package/attributes-master/packages/selectcustom/src/utils/types.ts +0 -14
  360. package/attributes-master/packages/selectcustom/tsconfig.json +0 -3
  361. package/attributes-master/packages/sliderdots/CHANGELOG.md +0 -220
  362. package/attributes-master/packages/sliderdots/README.md +0 -27
  363. package/attributes-master/packages/sliderdots/package.json +0 -22
  364. package/attributes-master/packages/sliderdots/src/actions/events.ts +0 -26
  365. package/attributes-master/packages/sliderdots/src/actions/observe.ts +0 -40
  366. package/attributes-master/packages/sliderdots/src/actions/populate.ts +0 -46
  367. package/attributes-master/packages/sliderdots/src/actions/sync.ts +0 -28
  368. package/attributes-master/packages/sliderdots/src/actions/wait.ts +0 -28
  369. package/attributes-master/packages/sliderdots/src/factory.ts +0 -57
  370. package/attributes-master/packages/sliderdots/src/index.ts +0 -3
  371. package/attributes-master/packages/sliderdots/src/init.ts +0 -30
  372. package/attributes-master/packages/sliderdots/src/utils/constants.ts +0 -33
  373. package/attributes-master/packages/sliderdots/src/utils/selectors.ts +0 -9
  374. package/attributes-master/packages/sliderdots/src/utils/types.ts +0 -7
  375. package/attributes-master/packages/sliderdots/tsconfig.json +0 -3
  376. package/attributes-master/packages/smartlightbox/CHANGELOG.md +0 -203
  377. package/attributes-master/packages/smartlightbox/README.md +0 -25
  378. package/attributes-master/packages/smartlightbox/package.json +0 -22
  379. package/attributes-master/packages/smartlightbox/src/actions/collect.ts +0 -15
  380. package/attributes-master/packages/smartlightbox/src/actions/move.ts +0 -25
  381. package/attributes-master/packages/smartlightbox/src/index.ts +0 -3
  382. package/attributes-master/packages/smartlightbox/src/init.ts +0 -61
  383. package/attributes-master/packages/smartlightbox/src/utils/constants.ts +0 -31
  384. package/attributes-master/packages/smartlightbox/src/utils/selectors.ts +0 -9
  385. package/attributes-master/packages/smartlightbox/tsconfig.json +0 -3
  386. package/attributes-master/packages/socialshare/CHANGELOG.md +0 -170
  387. package/attributes-master/packages/socialshare/README.md +0 -25
  388. package/attributes-master/packages/socialshare/package.json +0 -25
  389. package/attributes-master/packages/socialshare/src/actions/collect.ts +0 -93
  390. package/attributes-master/packages/socialshare/src/actions/share.ts +0 -91
  391. package/attributes-master/packages/socialshare/src/actions/trigger.ts +0 -46
  392. package/attributes-master/packages/socialshare/src/factory.ts +0 -149
  393. package/attributes-master/packages/socialshare/src/index.ts +0 -3
  394. package/attributes-master/packages/socialshare/src/init.ts +0 -35
  395. package/attributes-master/packages/socialshare/src/utils/constants.ts +0 -94
  396. package/attributes-master/packages/socialshare/src/utils/dom.ts +0 -8
  397. package/attributes-master/packages/socialshare/src/utils/selectors.ts +0 -6
  398. package/attributes-master/packages/socialshare/src/utils/stores.ts +0 -10
  399. package/attributes-master/packages/socialshare/src/utils/types.ts +0 -34
  400. package/attributes-master/packages/socialshare/tsconfig.json +0 -3
  401. package/attributes-master/packages/starrating/CHANGELOG.md +0 -70
  402. package/attributes-master/packages/starrating/README.md +0 -25
  403. package/attributes-master/packages/starrating/package.json +0 -22
  404. package/attributes-master/packages/starrating/src/actions/classes.ts +0 -41
  405. package/attributes-master/packages/starrating/src/actions/events.ts +0 -80
  406. package/attributes-master/packages/starrating/src/factory.ts +0 -24
  407. package/attributes-master/packages/starrating/src/index.ts +0 -3
  408. package/attributes-master/packages/starrating/src/init.ts +0 -24
  409. package/attributes-master/packages/starrating/src/utils/constants.ts +0 -20
  410. package/attributes-master/packages/starrating/src/utils/helpers.ts +0 -63
  411. package/attributes-master/packages/starrating/src/utils/selectors.ts +0 -9
  412. package/attributes-master/packages/starrating/tsconfig.json +0 -3
  413. package/attributes-master/packages/template/README.md +0 -25
  414. package/attributes-master/packages/template/package.json +0 -22
  415. package/attributes-master/packages/template/src/actions/console.ts +0 -4
  416. package/attributes-master/packages/template/src/index.ts +0 -3
  417. package/attributes-master/packages/template/src/init.ts +0 -14
  418. package/attributes-master/packages/template/src/utils/constants.ts +0 -18
  419. package/attributes-master/packages/template/src/utils/selectors.ts +0 -5
  420. package/attributes-master/packages/template/tsconfig.json +0 -3
  421. package/attributes-master/packages/toc/CHANGELOG.md +0 -192
  422. package/attributes-master/packages/toc/README.md +0 -25
  423. package/attributes-master/packages/toc/package.json +0 -23
  424. package/attributes-master/packages/toc/src/actions/collect.ts +0 -136
  425. package/attributes-master/packages/toc/src/actions/create.ts +0 -44
  426. package/attributes-master/packages/toc/src/actions/events.ts +0 -29
  427. package/attributes-master/packages/toc/src/actions/observe.ts +0 -31
  428. package/attributes-master/packages/toc/src/actions/populate.ts +0 -68
  429. package/attributes-master/packages/toc/src/actions/prepare.ts +0 -25
  430. package/attributes-master/packages/toc/src/actions/scroll.ts +0 -33
  431. package/attributes-master/packages/toc/src/components/TOCItem.ts +0 -88
  432. package/attributes-master/packages/toc/src/factory.ts +0 -47
  433. package/attributes-master/packages/toc/src/index.ts +0 -3
  434. package/attributes-master/packages/toc/src/init.ts +0 -37
  435. package/attributes-master/packages/toc/src/utils/constants.ts +0 -55
  436. package/attributes-master/packages/toc/src/utils/helpers.ts +0 -23
  437. package/attributes-master/packages/toc/src/utils/selectors.ts +0 -6
  438. package/attributes-master/packages/toc/src/utils/types.ts +0 -21
  439. package/attributes-master/packages/toc/tsconfig.json +0 -3
  440. package/attributes-master/packages/utils/CHANGELOG.md +0 -43
  441. package/attributes-master/packages/utils/package.json +0 -27
  442. package/attributes-master/packages/utils/src/animations/factory.ts +0 -100
  443. package/attributes-master/packages/utils/src/animations/index.ts +0 -73
  444. package/attributes-master/packages/utils/src/animations/types.ts +0 -37
  445. package/attributes-master/packages/utils/src/components/Interaction.ts +0 -79
  446. package/attributes-master/packages/utils/src/components/Renderer.ts +0 -59
  447. package/attributes-master/packages/utils/src/components/index.ts +0 -2
  448. package/attributes-master/packages/utils/src/constants/a11y.ts +0 -50
  449. package/attributes-master/packages/utils/src/constants/attributes.ts +0 -57
  450. package/attributes-master/packages/utils/src/constants/index.ts +0 -5
  451. package/attributes-master/packages/utils/src/constants/keyboard.ts +0 -10
  452. package/attributes-master/packages/utils/src/constants/webflow.ts +0 -74
  453. package/attributes-master/packages/utils/src/helpers/dates.ts +0 -17
  454. package/attributes-master/packages/utils/src/helpers/dom.ts +0 -82
  455. package/attributes-master/packages/utils/src/helpers/events.ts +0 -59
  456. package/attributes-master/packages/utils/src/helpers/fetch.ts +0 -217
  457. package/attributes-master/packages/utils/src/helpers/forms.ts +0 -238
  458. package/attributes-master/packages/utils/src/helpers/guards.ts +0 -138
  459. package/attributes-master/packages/utils/src/helpers/index.ts +0 -11
  460. package/attributes-master/packages/utils/src/helpers/numbers.ts +0 -86
  461. package/attributes-master/packages/utils/src/helpers/selectors.ts +0 -249
  462. package/attributes-master/packages/utils/src/helpers/strings.ts +0 -19
  463. package/attributes-master/packages/utils/src/helpers/wait.ts +0 -36
  464. package/attributes-master/packages/utils/src/helpers/webflow.ts +0 -117
  465. package/attributes-master/packages/utils/src/index.ts +0 -5
  466. package/attributes-master/packages/utils/src/types/core.ts +0 -100
  467. package/attributes-master/packages/utils/src/types/dom.ts +0 -31
  468. package/attributes-master/packages/utils/src/types/index.ts +0 -4
  469. package/attributes-master/packages/utils/src/types/utils.ts +0 -20
  470. package/attributes-master/packages/utils/src/types/webflow.ts +0 -147
  471. package/attributes-master/packages/utils/tsconfig.json +0 -3
  472. package/attributes-master/packages/videohls/CHANGELOG.md +0 -76
  473. package/attributes-master/packages/videohls/README.md +0 -27
  474. package/attributes-master/packages/videohls/package.json +0 -26
  475. package/attributes-master/packages/videohls/src/actions/list.ts +0 -23
  476. package/attributes-master/packages/videohls/src/actions/video.ts +0 -44
  477. package/attributes-master/packages/videohls/src/index.ts +0 -3
  478. package/attributes-master/packages/videohls/src/init.ts +0 -28
  479. package/attributes-master/packages/videohls/src/utils/constants.ts +0 -12
  480. package/attributes-master/packages/videohls/src/utils/selectors.ts +0 -5
  481. package/attributes-master/packages/videohls/src/utils/stores.ts +0 -3
  482. package/attributes-master/packages/videohls/tsconfig.json +0 -3
  483. package/attributes-master/pnpm-lock.yaml +0 -3317
  484. package/attributes-master/pnpm-workspace.yaml +0 -3
  485. package/attributes-master/tsconfig.json +0 -6
  486. package/autoInit/smooth-scroll.js +0 -89
  487. package/debug-version.html +0 -37
  488. package/utils/navbar.js +0 -214
  489. package/utils/scroll-progress.js +0 -29
  490. package/utils/toc.js +0 -77
@@ -1,235 +0,0 @@
1
- import {
2
- ARIA_EXPANDED_KEY,
3
- ARROW_DOWN_KEY,
4
- ARROW_LEFT_KEY,
5
- ARROW_RIGHT_KEY,
6
- ARROW_UP_KEY,
7
- BACKSPACE_KEY,
8
- CLICK,
9
- ENTER_KEY,
10
- ESCAPE_KEY,
11
- SPACE_KEY,
12
- TAB_KEY,
13
- } from '@finsweet/attributes-utils';
14
-
15
- import { focusOnInput, setActiveDescendant, toggleDropdown, toggleDropdownCloseIcon } from '../../utils';
16
- import { FS_DROPDOWN_TOGGLE_KEY } from '../../utils/constants';
17
- import type { Settings } from '../../utils/types';
18
- import { populateOptions } from '../populate';
19
-
20
- /**
21
- * Handles `keyup` events on the `inputElement` and updates the dropdown.
22
- * @param e The `keyup` event.
23
- * @param settings The instance {@link Settings}.
24
- */
25
- export const handleInputKeyUpEvents = (e: KeyboardEvent, settings: Settings) => {
26
- e.stopPropagation();
27
- e.stopImmediatePropagation();
28
-
29
- const { dropdownToggle, inputElement } = settings;
30
-
31
- const { key } = e;
32
- const referenceInput = e.target as HTMLInputElement;
33
-
34
- const inputValue = referenceInput.value.toLowerCase().trim() ?? '';
35
- populateOptions(settings, inputValue, !inputValue, true);
36
-
37
- const dropdownIsOpen = dropdownToggle.getAttribute(ARIA_EXPANDED_KEY) === 'true';
38
-
39
- if (key === ARROW_DOWN_KEY) {
40
- if (!dropdownIsOpen) toggleDropdown(settings);
41
-
42
- if (inputValue.length > 0) {
43
- const selected = settings.optionsStore.find(({ selected }) => selected);
44
- const inputIsEqualToSelectedOption = selected?.value.toLocaleLowerCase() === inputValue.toLowerCase();
45
-
46
- if (selected && inputIsEqualToSelectedOption) {
47
- populateOptions(settings, inputValue, true, true);
48
- } else {
49
- populateOptions(settings, inputValue, false, true);
50
- }
51
- } else {
52
- populateOptions(settings, '', true, true);
53
- }
54
-
55
- inputElement.setAttribute(FS_DROPDOWN_TOGGLE_KEY, ARROW_DOWN_KEY);
56
-
57
- focusOnDropdownItem(settings);
58
- return;
59
- }
60
- };
61
- /**
62
- * Handles `keydown` events on the `inputElement` and updates the dropdown.
63
- * @param e The `keydown` event.
64
- * @param settings The instance {@link Settings}.
65
- */
66
- export const handleInputKeyDownEvents = (e: KeyboardEvent, settings: Settings) => {
67
- e.stopPropagation();
68
-
69
- const { key } = e;
70
-
71
- const { dropdownToggle, inputElement } = settings;
72
-
73
- inputElement.setAttribute(FS_DROPDOWN_TOGGLE_KEY, CLICK);
74
-
75
- const referenceInput = e.target as HTMLInputElement;
76
-
77
- const inputValue = referenceInput.value.toLowerCase().trim() ?? '';
78
-
79
- const dropdownIsOpen = dropdownToggle.getAttribute(ARIA_EXPANDED_KEY) === 'true';
80
-
81
- if (key === ESCAPE_KEY) {
82
- handleClearInput(e, settings);
83
-
84
- if (dropdownIsOpen) {
85
- toggleDropdown(settings);
86
- }
87
- return;
88
- }
89
-
90
- if (
91
- key === ENTER_KEY ||
92
- key === ARROW_DOWN_KEY ||
93
- key === TAB_KEY ||
94
- key === SPACE_KEY ||
95
- key === ARROW_RIGHT_KEY ||
96
- key === ARROW_LEFT_KEY
97
- )
98
- return;
99
-
100
- if (key === ARROW_UP_KEY && dropdownIsOpen) {
101
- toggleDropdown(settings);
102
- return;
103
- }
104
-
105
- if (key === BACKSPACE_KEY && inputValue.length === 0) {
106
- populateOptions(settings, '', true, true);
107
- return;
108
- }
109
-
110
- if (key === BACKSPACE_KEY && inputValue.length > 0) {
111
- populateOptions(settings, inputValue, !inputValue, true);
112
- if (!dropdownIsOpen) toggleDropdown(settings);
113
- return;
114
- }
115
-
116
- if (!dropdownIsOpen && inputValue && key !== ARROW_UP_KEY) {
117
- toggleDropdown(settings);
118
- }
119
-
120
- toggleDropdownCloseIcon(settings);
121
- populateOptions(settings, inputValue, !inputValue, true);
122
- };
123
-
124
- /**
125
- * Shows the dropdown if hidden.
126
- * @param settings The instance {@link Settings}.
127
- */
128
- export const handleInputClickEvents = (e: MouseEvent, settings: Settings) => {
129
- e.stopPropagation();
130
- e.preventDefault();
131
-
132
- const { dropdownToggle, inputElement } = settings;
133
-
134
- inputElement.setAttribute(FS_DROPDOWN_TOGGLE_KEY, CLICK);
135
-
136
- const toggled = dropdownToggle.getAttribute(ARIA_EXPANDED_KEY) === 'true';
137
- inputElement.setAttribute(ARIA_EXPANDED_KEY, `${!toggled}`);
138
-
139
- if (toggled) {
140
- return;
141
- }
142
-
143
- populateOptions(settings, '', true, true);
144
- toggleDropdown(settings);
145
- };
146
-
147
- /**
148
- * Listens to the `input` escape key or focusout events.
149
- * @param e The Event object.
150
- * @param settings The instance {@link Settings}.
151
- * @param fromInput Whether the event was triggered from the input element.
152
- */
153
- export const handleClearInput = (e: KeyboardEvent | FocusEvent, settings: Settings, fromInput = false) => {
154
- const { inputElement, selectElement, preventClear } = settings;
155
-
156
- if (!fromInput) {
157
- focusOnInput(settings);
158
- }
159
-
160
- toggleDropdownCloseIcon(settings);
161
-
162
- const selected = settings.optionsStore.find(({ selected }) => selected);
163
-
164
- if (selected) return;
165
-
166
- if (fromInput) {
167
- const relatedTarget = (e as FocusEvent).relatedTarget as HTMLElement;
168
- if (relatedTarget || preventClear) return;
169
-
170
- inputElement.value = '';
171
- selectElement.value = '';
172
- return;
173
- }
174
-
175
- if (!selected) {
176
- if (preventClear) return;
177
-
178
- inputElement.value = '';
179
- selectElement.value = '';
180
- }
181
-
182
- const dropdownIsOpen = settings.dropdownToggle.getAttribute(ARIA_EXPANDED_KEY) === 'true';
183
-
184
- if (dropdownIsOpen) {
185
- toggleDropdown(settings);
186
- }
187
- };
188
-
189
- /**
190
- * Listens to `updateComboboxInputField` custom event and updates input value and select value
191
- * @param settings The instance {@link Settings}.
192
- */
193
- export const updateInputField = (e: Event, settings: Settings) => {
194
- const { optionsStore, inputElement } = settings;
195
- const input = e.target as HTMLInputElement;
196
-
197
- const selectedOption = optionsStore.find(({ selected }) => selected);
198
- const selectedText = selectedOption?.text ?? '';
199
- const selectedValue = selectedOption?.value ?? '';
200
- const inputValue = input.value;
201
-
202
- if (selectedOption && selectedValue !== inputValue) {
203
- inputElement.value = selectedText;
204
-
205
- toggleDropdownCloseIcon(settings);
206
- return;
207
- }
208
- };
209
-
210
- /**
211
- * Focuses on the dropdown list item based on the current selection.
212
- * @param settings The instance {@link Settings}.
213
- * @returns void
214
- */
215
- const focusOnDropdownItem = (settings: Settings) => {
216
- const { optionsStore, inputElement } = settings;
217
- const selectedOption = optionsStore.find(({ selected }) => selected);
218
-
219
- if (!selectedOption && optionsStore.length > 0) {
220
- const [firstOption] = optionsStore.filter(({ hidden }) => !hidden);
221
-
222
- firstOption.element.focus();
223
- setActiveDescendant(inputElement, firstOption.element);
224
-
225
- return;
226
- }
227
-
228
- if (selectedOption) {
229
- selectedOption.element.focus();
230
- setActiveDescendant(inputElement, selectedOption.element);
231
-
232
- return;
233
- }
234
- return;
235
- };
@@ -1,158 +0,0 @@
1
- import {
2
- ARIA_ACTIVEDESCENDANT_KEY,
3
- ARIA_EXPANDED_KEY,
4
- ARROW_DOWN_KEY,
5
- CLICK,
6
- ID_KEY,
7
- isHTMLOptionElement,
8
- } from '@finsweet/attributes-utils';
9
- import debounce from 'just-debounce';
10
-
11
- import { focusOnInput, updateComboboxInputField } from '../utils';
12
- import { DROPDOWN_IS_OPEN, FS_DROPDOWN_TOGGLE_KEY } from '../utils/constants';
13
- import type { Settings } from '../utils/types';
14
- import { populateOptions } from './populate';
15
-
16
- /**
17
- * Observes when the dropdown list is opened/closed.
18
- * @param settings The instance {@link Settings}.
19
- *
20
- * @returns The MutationObserver.
21
- */
22
- const observeDropdownList = (settings: Settings) => {
23
- const { dropdownList, navListElement, optionsStore, selectElement, inputElement } = settings;
24
- let prevDropdownState = navListElement.classList.contains(DROPDOWN_IS_OPEN);
25
- let currentStateIsOpen = false;
26
-
27
- const callback: MutationCallback = debounce((mutations: MutationRecord[]) => {
28
- mutations.forEach((mutation) => {
29
- if (mutation.attributeName === 'class') {
30
- const selectValue = selectElement.value;
31
- const inputValue = inputElement.value;
32
- const dropdownToggleKey = inputElement.getAttribute(FS_DROPDOWN_TOGGLE_KEY);
33
- const firstOption = Array.from(optionsStore).find((el) => !el.hidden);
34
-
35
- const selectedOption = Array.from(optionsStore).find(
36
- (el) => el?.value.toLowerCase().trim() === selectValue?.toLowerCase().trim()
37
- );
38
-
39
- currentStateIsOpen = (mutation.target as HTMLDivElement).classList.contains(DROPDOWN_IS_OPEN);
40
- if (prevDropdownState !== currentStateIsOpen) {
41
- prevDropdownState = currentStateIsOpen;
42
- }
43
-
44
- if (!selectedOption && currentStateIsOpen) {
45
- navListElement.scrollTop = 0;
46
- }
47
-
48
- if (currentStateIsOpen) {
49
- const toFocus = selectedOption || firstOption;
50
-
51
- if (toFocus) toFocus.element.focus();
52
- }
53
-
54
- inputElement.setAttribute(ARIA_EXPANDED_KEY, `${currentStateIsOpen}`);
55
-
56
- if (selectedOption) {
57
- const id = selectedOption.element.getAttribute(ID_KEY);
58
- inputElement.setAttribute(ARIA_ACTIVEDESCENDANT_KEY, `${id}`);
59
-
60
- if (currentStateIsOpen && dropdownToggleKey === ARROW_DOWN_KEY) {
61
- selectedOption.element.focus();
62
- return;
63
- }
64
- if (currentStateIsOpen && dropdownToggleKey === CLICK) {
65
- selectedOption.element.focus();
66
- focusOnInput(settings);
67
- return;
68
- }
69
-
70
- if (!currentStateIsOpen) {
71
- updateComboboxInputField(settings);
72
- focusOnInput(settings);
73
- }
74
-
75
- return;
76
- }
77
-
78
- if (!selectedOption && inputValue && currentStateIsOpen && firstOption) {
79
- if (dropdownToggleKey === ARROW_DOWN_KEY) firstOption.element.focus();
80
- if (dropdownToggleKey === CLICK) focusOnInput(settings);
81
-
82
- return;
83
- }
84
-
85
- if (currentStateIsOpen && !selectedOption) {
86
- inputElement.setAttribute(ARIA_ACTIVEDESCENDANT_KEY, '');
87
-
88
- if (dropdownToggleKey === ARROW_DOWN_KEY && firstOption) {
89
- firstOption.element.focus();
90
- return;
91
- }
92
-
93
- focusOnInput(settings);
94
- }
95
- if (!currentStateIsOpen) {
96
- updateComboboxInputField(settings);
97
- focusOnInput(settings);
98
-
99
- if (!selectedOption) inputElement.setAttribute(ARIA_ACTIVEDESCENDANT_KEY, '');
100
- }
101
- }
102
- });
103
-
104
- const selectedOption = optionsStore.find(({ selected }) => selected);
105
- const firstNonHiddenOption = optionsStore.find(({ hidden }) => !hidden);
106
-
107
- if (!selectedOption || !firstNonHiddenOption) return;
108
- }, 20);
109
-
110
- const observer = new MutationObserver(callback);
111
-
112
- observer.observe(dropdownList, {
113
- attributes: true,
114
- attributeFilter: ['class', 'style'],
115
- });
116
-
117
- return observer;
118
- };
119
-
120
- /**
121
- * Observes changes in the {@link HTMLSelectElement} options.
122
- * @param settings The instance {@link Settings}.
123
- *
124
- * @returns The MutationObserver.
125
- */
126
- const observeSelectElement = (settings: Settings) => {
127
- const { selectElement } = settings;
128
-
129
- const observer = new MutationObserver((mutations) => {
130
- const hasMutatedOptions = mutations.some(({ addedNodes, removedNodes }) =>
131
- [...addedNodes, ...removedNodes].some(isHTMLOptionElement)
132
- );
133
-
134
- if (hasMutatedOptions) populateOptions(settings);
135
- });
136
-
137
- observer.observe(selectElement, {
138
- childList: true,
139
- });
140
-
141
- return observer;
142
- };
143
-
144
- /**
145
- * Observes mutations on elements of the instance.
146
- * @param settings The instance {@link Settings}.
147
- *
148
- * @returns A callback to destroy the MutationObservers.
149
- */
150
- export const observeElements = (settings: Settings) => {
151
- const dropdownListObserver = observeDropdownList(settings);
152
- const selectElementObserver = observeSelectElement(settings);
153
-
154
- return () => {
155
- dropdownListObserver.disconnect();
156
- selectElementObserver.disconnect();
157
- };
158
- };
@@ -1,97 +0,0 @@
1
- import { ARIA_POSINSET_KEY, ARIA_SETSIZE_KEY, cloneNode, findTextNode, ID_KEY } from '@finsweet/attributes-utils';
2
-
3
- import type { OptionData, Settings } from '../utils/types';
4
- import { setOptionAria } from './a11y';
5
- import { updateOptionsState } from './state';
6
-
7
- /**
8
- * Populates the custom options based on the `HTMLSelectElement`'s options.
9
- * @param settings The instance {@link Settings}.
10
- * @param {string} inputValue Value from input field.
11
- * @param {boolean} showAll if dropdown should show all or filtered options.
12
- * @param {boolean} isTyping user is searching.
13
- * @param {boolean} initialLoad if dropdown is loaded for the first time.
14
- */
15
- export const populateOptions = (
16
- settings: Settings,
17
- inputValue = '',
18
- showAll = false,
19
- isTyping = false,
20
- initialLoad = false
21
- ) => {
22
- const {
23
- optionsStore,
24
- optionTemplate,
25
- optionsList,
26
- label,
27
- noResultsTemplate,
28
- selectElement: { options, value: currentValue },
29
- } = settings;
30
-
31
- // Clear existing options
32
- noResultsTemplate?.remove();
33
- for (const { element } of optionsStore.values()) {
34
- element.remove();
35
- }
36
-
37
- optionsStore.splice(0, optionsStore.length);
38
-
39
- let selectedOption: OptionData | undefined;
40
-
41
- const optionsConfigured = Array.from(options).filter((item) => item.value && item.textContent);
42
- const optionsFiltered = optionsConfigured.filter((item) =>
43
- item.text.trim().toLowerCase().includes(inputValue.trim().toLowerCase())
44
- );
45
-
46
- if (optionsFiltered.length === 0 && noResultsTemplate) {
47
- optionsList.appendChild(noResultsTemplate);
48
-
49
- return;
50
- }
51
-
52
- const optionsArr = (showAll ? optionsConfigured : optionsFiltered).sort((a, b) => a.value.localeCompare(b.value));
53
-
54
- // Create new options
55
- for (const { value, text } of optionsArr) {
56
- const element = cloneNode(optionTemplate) as HTMLAnchorElement;
57
-
58
- const textNode = findTextNode(element) || element;
59
- textNode.textContent = text;
60
-
61
- const elementId = element.getAttribute(ID_KEY) || '';
62
- const id = `fs-option-${value.toLowerCase().trim().replace(/\s/g, '-')}`;
63
-
64
- element.setAttribute(ID_KEY, elementId || id);
65
- element.setAttribute(ARIA_SETSIZE_KEY, `${optionsArr.length}`);
66
-
67
- const index = optionsArr.findIndex((item) => item.value === value);
68
- element.setAttribute(ARIA_POSINSET_KEY, `${index + 1}`);
69
-
70
- setOptionAria(element);
71
-
72
- optionsList.appendChild(element);
73
-
74
- const selected = value === currentValue;
75
-
76
- const optionData: OptionData = {
77
- text,
78
- value,
79
- element,
80
- selected,
81
- focused: false,
82
- };
83
-
84
- if (selected) selectedOption = optionData;
85
-
86
- optionsStore.push(optionData);
87
- }
88
- if (isTyping) {
89
- updateOptionsState(settings, selectedOption);
90
- }
91
-
92
- if (!inputValue && selectedOption && label) {
93
- const labelText = label.textContent || '';
94
-
95
- updateOptionsState(settings, { ...selectedOption, value: '', text: labelText }, initialLoad);
96
- }
97
- };
@@ -1,23 +0,0 @@
1
- import { setFormFieldValue } from '@finsweet/attributes-utils';
2
-
3
- import { toggleDropdownCloseIcon } from '../../utils';
4
- import type { Settings } from '../../utils/types';
5
- import { updateOptionsState } from '../state';
6
-
7
- /**
8
- * Adds two way data binding.
9
- * Handles `change` events on the hidden `selectElement` and updates the dropdown.
10
- * @param settings The instance {@link Settings}.
11
- */
12
- export const handleSelectChangeEvents = (settings: Settings) => {
13
- const { selectElement, optionsStore } = settings;
14
-
15
- const selectedOption = optionsStore.find(({ value }) => value === selectElement.value);
16
- if (!selectedOption) return;
17
-
18
- setFormFieldValue(settings.inputElement, selectedOption.text);
19
- settings.inputElement.dispatchEvent(new Event('change'));
20
-
21
- toggleDropdownCloseIcon(settings);
22
- updateOptionsState(settings, selectedOption);
23
- };
@@ -1,134 +0,0 @@
1
- import {
2
- ARIA_AUTOCOMPLETE_KEY,
3
- ARIA_CONTROLS_KEY,
4
- ARIA_CURRENT_KEY,
5
- ARIA_EXPANDED_KEY,
6
- ARIA_HIDDEN_KEY,
7
- ARIA_OWNS_KEY,
8
- AUTOCOMPLETE_KEY,
9
- DROPDOWN_CSS_CLASSES,
10
- type DropdownElement,
11
- type DropdownList,
12
- type DropdownToggle,
13
- findTextNode,
14
- isHTMLAnchorElement,
15
- NAME_KEY,
16
- REQUIRED_KEY,
17
- ROLE_KEY,
18
- TABINDEX_KEY,
19
- } from '@finsweet/attributes-utils';
20
-
21
- import { getElementSelector, hasAttributeValue, queryElement } from '../utils/selectors';
22
- import type { OptionsStore } from '../utils/types';
23
- import { setDropdownAria } from './a11y';
24
-
25
- /**
26
- * Collects the required elements/settings for the setup.
27
- * @param dropdown The {@link Dropdown} element.
28
- */
29
- export const collectSettings = (referenceElement: HTMLElement) => {
30
- const optionsStore: OptionsStore = [];
31
-
32
- const dropdown = referenceElement.closest<DropdownElement>(`.${DROPDOWN_CSS_CLASSES.dropdown}`);
33
- if (!dropdown) return;
34
-
35
- const selectElement = dropdown.querySelector('select');
36
- const inputElement = dropdown.querySelector('input');
37
- const navListElement = queryElement('dropdown')?.querySelector('nav');
38
- const { body } = document;
39
-
40
- if (!selectElement || !inputElement || !navListElement) return;
41
-
42
- const dropdownToggle = dropdown.querySelector<DropdownToggle>(`.${DROPDOWN_CSS_CLASSES.dropdownToggle}`);
43
- const dropdownList = dropdown.querySelector<DropdownList>(`.${DROPDOWN_CSS_CLASSES.dropdownList}`);
44
-
45
- if (!dropdownToggle || !dropdownList) return;
46
- dropdownToggle.setAttribute('disabled', 'disabled');
47
-
48
- setDropdownAria(dropdownToggle, dropdownList);
49
-
50
- const label = queryElement('label', { scope: dropdownToggle }) || findTextNode(dropdownToggle) || dropdownToggle;
51
-
52
- const optionTemplate = dropdownList.querySelector(`a:not(${getElementSelector('clear')})`);
53
- if (!isHTMLAnchorElement(optionTemplate)) return;
54
-
55
- const optionsList = optionTemplate.parentElement;
56
- if (!optionsList) return;
57
-
58
- const defaultOption = Array.from(selectElement.querySelectorAll('option')).find((opt) => opt.value === '');
59
-
60
- const noResultsTemplate = queryElement('empty', { scope: dropdown });
61
- const clearDropdown = queryElement('clear', { scope: dropdown }) as HTMLElement;
62
-
63
- for (const element of [optionTemplate]) {
64
- if (!element) continue;
65
-
66
- element.href = '#';
67
- element.setAttribute(TABINDEX_KEY, '-1');
68
- element.removeAttribute(ARIA_CURRENT_KEY);
69
- element.remove();
70
- }
71
-
72
- const hideInitial = hasAttributeValue(referenceElement, 'hideinitial', 'true');
73
- const preventClear = hasAttributeValue(referenceElement, 'preventclear', 'true');
74
-
75
- initializeAttributes(inputElement, selectElement, navListElement, clearDropdown, preventClear);
76
-
77
- return {
78
- optionsStore,
79
- selectElement,
80
- dropdownToggle,
81
- dropdownList,
82
- label,
83
- optionTemplate,
84
- noResultsTemplate,
85
- optionsList,
86
- hideInitial,
87
- preventClear,
88
- inputElement,
89
- clearDropdown,
90
- defaultOption,
91
- navListElement,
92
- body,
93
- };
94
- };
95
-
96
- /**
97
- * Initializes the attributes for the dropdown.
98
- * @param inputElement The input element.
99
- * @param selectElement The select element.
100
- * @param navListElement The nav list element.
101
- * @param clearDropdown The clear dropdown element.
102
- */
103
- const initializeAttributes = (
104
- inputElement: HTMLInputElement,
105
- selectElement: HTMLSelectElement,
106
- navListElement: HTMLElement,
107
- clearDropdown: HTMLElement,
108
- preventClear: boolean
109
- ) => {
110
- inputElement?.parentElement?.setAttribute(TABINDEX_KEY, '-1');
111
- if (!preventClear) inputElement?.removeAttribute(NAME_KEY);
112
- inputElement?.setAttribute(TABINDEX_KEY, '0');
113
- inputElement?.removeAttribute('data-name');
114
- if (selectElement.hasAttribute(REQUIRED_KEY)) {
115
- inputElement?.setAttribute(REQUIRED_KEY, 'required');
116
- }
117
- inputElement?.setAttribute(ROLE_KEY, 'combobox');
118
-
119
- inputElement?.setAttribute(AUTOCOMPLETE_KEY, 'off');
120
- const navListElementId = navListElement.getAttribute('id') || '';
121
- inputElement?.setAttribute(ARIA_CONTROLS_KEY, navListElementId);
122
- inputElement?.setAttribute(ARIA_OWNS_KEY, navListElementId);
123
- inputElement?.setAttribute(ARIA_AUTOCOMPLETE_KEY, 'list');
124
- inputElement?.setAttribute(ARIA_EXPANDED_KEY, 'false');
125
-
126
- selectElement.setAttribute(ARIA_HIDDEN_KEY, 'true');
127
- selectElement.setAttribute(TABINDEX_KEY, '-1');
128
-
129
- navListElement.setAttribute(TABINDEX_KEY, '-1');
130
-
131
- clearDropdown?.setAttribute(TABINDEX_KEY, '0');
132
- clearDropdown?.setAttribute(ROLE_KEY, 'button');
133
- clearDropdown.style.display = 'none';
134
- };
@@ -1,34 +0,0 @@
1
- import { ARIA_SELECTED_KEY, CURRENT_CSS_CLASS, setFormFieldValue, TABINDEX_KEY } from '@finsweet/attributes-utils';
2
-
3
- import { toggleDropdown } from '../utils';
4
- import type { OptionData, Settings } from '../utils/types';
5
-
6
- /**
7
- * Sets the selected state to an option and removes it from a previous one, if existing.
8
- * This also determines whether the close icon should show or hide
9
- * @param settings The instance {@link Settings}.
10
- * @param selectedOption The selected {@link OptionData}, if existing.
11
- * @param {boolean} close if dropdown should be closed or opened
12
- */
13
- export const updateOptionsState = (settings: Settings, selectedOption?: OptionData, close = false) => {
14
- const { selectElement, optionsStore } = settings;
15
-
16
- if (selectedOption && selectedOption.value) {
17
- setFormFieldValue(selectElement, selectedOption.value);
18
- }
19
-
20
- for (const optionData of optionsStore) {
21
- const { element } = optionData;
22
-
23
- const selected = element === selectedOption?.element;
24
-
25
- optionData.selected = selected;
26
- optionData.focused = selected;
27
-
28
- element.classList[selected ? 'add' : 'remove'](CURRENT_CSS_CLASS);
29
- element.setAttribute(ARIA_SELECTED_KEY, `${selected}`);
30
- element.setAttribute(TABINDEX_KEY, '-1');
31
- }
32
-
33
- if (close) toggleDropdown(settings);
34
- };
@@ -1,3 +0,0 @@
1
- export { version } from '../package.json';
2
- export { init } from './init';
3
- export { ELEMENTS, SETTINGS } from './utils/constants';