@hortonstudio/main 1.2.4 → 1.2.6

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 (481) hide show
  1. package/attributes-master/.changeset/README.md +8 -0
  2. package/attributes-master/.changeset/config.json +11 -0
  3. package/attributes-master/.gitattributes +2 -0
  4. package/attributes-master/.github/ISSUE_TEMPLATE/bug_report.md +42 -0
  5. package/attributes-master/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
  6. package/attributes-master/.github/workflows/ci.yml +66 -0
  7. package/attributes-master/.github/workflows/release.yml +40 -0
  8. package/attributes-master/.prettierignore +3 -0
  9. package/attributes-master/.prettierrc +8 -0
  10. package/attributes-master/.vscode/extensions.json +3 -0
  11. package/attributes-master/.vscode/settings.json +7 -0
  12. package/attributes-master/CONTRIBUTING.md +72 -0
  13. package/attributes-master/LICENSE.md +201 -0
  14. package/attributes-master/README.md +31 -0
  15. package/attributes-master/eslint.config.js +3 -0
  16. package/attributes-master/package.json +34 -0
  17. package/attributes-master/packages/accordion/CHANGELOG.md +89 -0
  18. package/attributes-master/packages/accordion/README.md +31 -0
  19. package/attributes-master/packages/accordion/package.json +25 -0
  20. package/attributes-master/packages/accordion/src/actions/a11y.ts +39 -0
  21. package/attributes-master/packages/accordion/src/actions/classes.ts +27 -0
  22. package/attributes-master/packages/accordion/src/actions/content.ts +42 -0
  23. package/attributes-master/packages/accordion/src/actions/list.ts +36 -0
  24. package/attributes-master/packages/accordion/src/actions/query.ts +27 -0
  25. package/attributes-master/packages/accordion/src/actions/settings.ts +61 -0
  26. package/attributes-master/packages/accordion/src/factory.ts +145 -0
  27. package/attributes-master/packages/accordion/src/index.ts +3 -0
  28. package/attributes-master/packages/accordion/src/init.ts +37 -0
  29. package/attributes-master/packages/accordion/src/utils/constants.ts +62 -0
  30. package/attributes-master/packages/accordion/src/utils/helpers.ts +5 -0
  31. package/attributes-master/packages/accordion/src/utils/selectors.ts +12 -0
  32. package/attributes-master/packages/accordion/src/utils/types.ts +23 -0
  33. package/attributes-master/packages/accordion/tsconfig.json +3 -0
  34. package/attributes-master/packages/attributes/CHANGELOG.md +564 -0
  35. package/attributes-master/packages/attributes/README.md +66 -0
  36. package/attributes-master/packages/attributes/bin/build.ts +107 -0
  37. package/attributes-master/packages/attributes/bin/live-reload.js +1 -0
  38. package/attributes-master/packages/attributes/package.json +77 -0
  39. package/attributes-master/packages/attributes/playwright.config.ts +89 -0
  40. package/attributes-master/packages/attributes/src/attributes.ts +153 -0
  41. package/attributes-master/packages/attributes/src/load.ts +125 -0
  42. package/attributes-master/packages/attributes/tests/accordion.spec.ts +137 -0
  43. package/attributes-master/packages/attributes/tests/codehighlight.spec.ts +23 -0
  44. package/attributes-master/packages/attributes/tests/combobox.spec.ts +321 -0
  45. package/attributes-master/packages/attributes/tests/copyclip.spec.ts +19 -0
  46. package/attributes-master/packages/attributes/tests/displayvalues.spec.ts +48 -0
  47. package/attributes-master/packages/attributes/tests/favcustom.spec.ts +23 -0
  48. package/attributes-master/packages/attributes/tests/inject.spec.ts +40 -0
  49. package/attributes-master/packages/attributes/tests/inputactive.spec.ts +77 -0
  50. package/attributes-master/packages/attributes/tests/inputcounter.spec.ts +83 -0
  51. package/attributes-master/packages/attributes/tests/list.spec.ts +800 -0
  52. package/attributes-master/packages/attributes/tests/mirrorclick.spec.ts +22 -0
  53. package/attributes-master/packages/attributes/tests/mirrorinput.spec.ts +37 -0
  54. package/attributes-master/packages/attributes/tests/modal.spec.ts +34 -0
  55. package/attributes-master/packages/attributes/tests/numbercount.spec.ts +40 -0
  56. package/attributes-master/packages/attributes/tests/readtime.spec.ts +19 -0
  57. package/attributes-master/packages/attributes/tests/selectcustom.spec.ts +51 -0
  58. package/attributes-master/packages/attributes/tests/socialshare.spec.ts +54 -0
  59. package/attributes-master/packages/attributes/tests/starrating.spec.ts +79 -0
  60. package/attributes-master/packages/attributes/tests/toc.spec.ts +38 -0
  61. package/attributes-master/packages/attributes/tests/utils/index.ts +16 -0
  62. package/attributes-master/packages/attributes/tsconfig.json +6 -0
  63. package/attributes-master/packages/autovideo/CHANGELOG.md +182 -0
  64. package/attributes-master/packages/autovideo/README.md +31 -0
  65. package/attributes-master/packages/autovideo/package.json +22 -0
  66. package/attributes-master/packages/autovideo/src/index.ts +3 -0
  67. package/attributes-master/packages/autovideo/src/init.ts +52 -0
  68. package/attributes-master/packages/autovideo/src/types.ts +5 -0
  69. package/attributes-master/packages/autovideo/src/utils/constants.ts +4 -0
  70. package/attributes-master/packages/autovideo/tsconfig.json +3 -0
  71. package/attributes-master/packages/codehighlight/CHANGELOG.md +185 -0
  72. package/attributes-master/packages/codehighlight/README.md +27 -0
  73. package/attributes-master/packages/codehighlight/package.json +23 -0
  74. package/attributes-master/packages/codehighlight/src/actions/import.ts +50 -0
  75. package/attributes-master/packages/codehighlight/src/index.ts +3 -0
  76. package/attributes-master/packages/codehighlight/src/init.ts +53 -0
  77. package/attributes-master/packages/codehighlight/src/utils/constants.ts +24 -0
  78. package/attributes-master/packages/codehighlight/src/utils/selectors.ts +5 -0
  79. package/attributes-master/packages/codehighlight/src/utils/themes.ts +202 -0
  80. package/attributes-master/packages/codehighlight/tsconfig.json +3 -0
  81. package/attributes-master/packages/combobox/CHANGELOG.md +99 -0
  82. package/attributes-master/packages/combobox/README.md +27 -0
  83. package/attributes-master/packages/combobox/package.json +23 -0
  84. package/attributes-master/packages/combobox/src/actions/a11y.ts +29 -0
  85. package/attributes-master/packages/combobox/src/actions/body/index.ts +12 -0
  86. package/attributes-master/packages/combobox/src/actions/clearDropdown/index.ts +37 -0
  87. package/attributes-master/packages/combobox/src/actions/dropdownList/index.ts +220 -0
  88. package/attributes-master/packages/combobox/src/actions/dropdownToggle/index.ts +34 -0
  89. package/attributes-master/packages/combobox/src/actions/events.ts +75 -0
  90. package/attributes-master/packages/combobox/src/actions/input/index.ts +235 -0
  91. package/attributes-master/packages/combobox/src/actions/observe.ts +158 -0
  92. package/attributes-master/packages/combobox/src/actions/populate.ts +97 -0
  93. package/attributes-master/packages/combobox/src/actions/selectElement/index.ts +23 -0
  94. package/attributes-master/packages/combobox/src/actions/settings.ts +134 -0
  95. package/attributes-master/packages/combobox/src/actions/state.ts +34 -0
  96. package/attributes-master/packages/combobox/src/index.ts +3 -0
  97. package/attributes-master/packages/combobox/src/init.ts +52 -0
  98. package/attributes-master/packages/combobox/src/utils/constants.ts +48 -0
  99. package/attributes-master/packages/combobox/src/utils/dropdowns.ts +120 -0
  100. package/attributes-master/packages/combobox/src/utils/index.ts +1 -0
  101. package/attributes-master/packages/combobox/src/utils/selectors.ts +9 -0
  102. package/attributes-master/packages/combobox/src/utils/types.ts +14 -0
  103. package/attributes-master/packages/combobox/tsconfig.json +3 -0
  104. package/attributes-master/packages/copyclip/CHANGELOG.md +213 -0
  105. package/attributes-master/packages/copyclip/README.md +27 -0
  106. package/attributes-master/packages/copyclip/package.json +23 -0
  107. package/attributes-master/packages/copyclip/src/factory.ts +67 -0
  108. package/attributes-master/packages/copyclip/src/index.ts +3 -0
  109. package/attributes-master/packages/copyclip/src/init.ts +68 -0
  110. package/attributes-master/packages/copyclip/src/utils/constants.ts +40 -0
  111. package/attributes-master/packages/copyclip/src/utils/selectors.ts +9 -0
  112. package/attributes-master/packages/copyclip/tsconfig.json +3 -0
  113. package/attributes-master/packages/displayvalues/CHANGELOG.md +164 -0
  114. package/attributes-master/packages/displayvalues/README.md +27 -0
  115. package/attributes-master/packages/displayvalues/package.json +22 -0
  116. package/attributes-master/packages/displayvalues/src/actions/collect.ts +17 -0
  117. package/attributes-master/packages/displayvalues/src/actions/events.ts +22 -0
  118. package/attributes-master/packages/displayvalues/src/actions/sync.ts +23 -0
  119. package/attributes-master/packages/displayvalues/src/index.ts +3 -0
  120. package/attributes-master/packages/displayvalues/src/init.ts +31 -0
  121. package/attributes-master/packages/displayvalues/src/utils/constants.ts +20 -0
  122. package/attributes-master/packages/displayvalues/src/utils/selectors.ts +9 -0
  123. package/attributes-master/packages/displayvalues/src/utils/stores.ts +3 -0
  124. package/attributes-master/packages/displayvalues/tsconfig.json +3 -0
  125. package/attributes-master/packages/docs/CHANGELOG.md +108 -0
  126. package/attributes-master/packages/docs/README.md +3 -0
  127. package/attributes-master/packages/docs/bin/build.js +92 -0
  128. package/attributes-master/packages/docs/bin/live-reload.js +1 -0
  129. package/attributes-master/packages/docs/package.json +40 -0
  130. package/attributes-master/packages/docs/src/copy.ts +260 -0
  131. package/attributes-master/packages/docs/src/x-ray.ts +377 -0
  132. package/attributes-master/packages/docs/tsconfig.json +3 -0
  133. package/attributes-master/packages/favcustom/CHANGELOG.md +194 -0
  134. package/attributes-master/packages/favcustom/README.md +27 -0
  135. package/attributes-master/packages/favcustom/package.json +22 -0
  136. package/attributes-master/packages/favcustom/src/index.ts +3 -0
  137. package/attributes-master/packages/favcustom/src/init.ts +30 -0
  138. package/attributes-master/packages/favcustom/src/utils/constants.ts +10 -0
  139. package/attributes-master/packages/favcustom/src/utils/selectors.ts +5 -0
  140. package/attributes-master/packages/favcustom/tsconfig.json +3 -0
  141. package/attributes-master/packages/formsubmit/CHANGELOG.md +161 -0
  142. package/attributes-master/packages/formsubmit/README.md +51 -0
  143. package/attributes-master/packages/formsubmit/package.json +22 -0
  144. package/attributes-master/packages/formsubmit/src/actions/redirect.ts +9 -0
  145. package/attributes-master/packages/formsubmit/src/actions/reset.ts +49 -0
  146. package/attributes-master/packages/formsubmit/src/actions/submit.ts +34 -0
  147. package/attributes-master/packages/formsubmit/src/components/Form.ts +231 -0
  148. package/attributes-master/packages/formsubmit/src/factory.ts +62 -0
  149. package/attributes-master/packages/formsubmit/src/index.ts +3 -0
  150. package/attributes-master/packages/formsubmit/src/init.ts +24 -0
  151. package/attributes-master/packages/formsubmit/src/utils/attributes.ts +19 -0
  152. package/attributes-master/packages/formsubmit/src/utils/constants.ts +89 -0
  153. package/attributes-master/packages/formsubmit/src/utils/dom.ts +76 -0
  154. package/attributes-master/packages/formsubmit/src/utils/selectors.ts +9 -0
  155. package/attributes-master/packages/formsubmit/src/utils/types.ts +7 -0
  156. package/attributes-master/packages/formsubmit/tsconfig.json +3 -0
  157. package/attributes-master/packages/inject/CHANGELOG.md +117 -0
  158. package/attributes-master/packages/inject/README.md +60 -0
  159. package/attributes-master/packages/inject/package.json +22 -0
  160. package/attributes-master/packages/inject/src/actions/collect.ts +125 -0
  161. package/attributes-master/packages/inject/src/actions/css.ts +27 -0
  162. package/attributes-master/packages/inject/src/actions/prefetch.ts +44 -0
  163. package/attributes-master/packages/inject/src/factory.ts +123 -0
  164. package/attributes-master/packages/inject/src/index.ts +3 -0
  165. package/attributes-master/packages/inject/src/init.ts +22 -0
  166. package/attributes-master/packages/inject/src/utils/constants.ts +89 -0
  167. package/attributes-master/packages/inject/src/utils/helpers.ts +36 -0
  168. package/attributes-master/packages/inject/src/utils/selectors.ts +9 -0
  169. package/attributes-master/packages/inject/src/utils/types.ts +16 -0
  170. package/attributes-master/packages/inject/tsconfig.json +3 -0
  171. package/attributes-master/packages/inputactive/CHANGELOG.md +58 -0
  172. package/attributes-master/packages/inputactive/README.md +25 -0
  173. package/attributes-master/packages/inputactive/package.json +22 -0
  174. package/attributes-master/packages/inputactive/src/actions/classes.ts +43 -0
  175. package/attributes-master/packages/inputactive/src/factory.ts +24 -0
  176. package/attributes-master/packages/inputactive/src/index.ts +3 -0
  177. package/attributes-master/packages/inputactive/src/init.ts +18 -0
  178. package/attributes-master/packages/inputactive/src/utils/constants.ts +13 -0
  179. package/attributes-master/packages/inputactive/src/utils/selectors.ts +5 -0
  180. package/attributes-master/packages/inputactive/tsconfig.json +3 -0
  181. package/attributes-master/packages/inputcounter/CHANGELOG.md +110 -0
  182. package/attributes-master/packages/inputcounter/README.md +25 -0
  183. package/attributes-master/packages/inputcounter/package.json +22 -0
  184. package/attributes-master/packages/inputcounter/src/actions/a11y.ts +23 -0
  185. package/attributes-master/packages/inputcounter/src/actions/buttons.ts +61 -0
  186. package/attributes-master/packages/inputcounter/src/actions/input.ts +31 -0
  187. package/attributes-master/packages/inputcounter/src/actions/style.ts +12 -0
  188. package/attributes-master/packages/inputcounter/src/factory.ts +51 -0
  189. package/attributes-master/packages/inputcounter/src/index.ts +3 -0
  190. package/attributes-master/packages/inputcounter/src/init.ts +22 -0
  191. package/attributes-master/packages/inputcounter/src/utils/constants.ts +59 -0
  192. package/attributes-master/packages/inputcounter/src/utils/selectors.ts +9 -0
  193. package/attributes-master/packages/inputcounter/tsconfig.json +3 -0
  194. package/attributes-master/packages/list/CHANGELOG.md +185 -0
  195. package/attributes-master/packages/list/README.md +331 -0
  196. package/attributes-master/packages/list/package.json +37 -0
  197. package/attributes-master/packages/list/src/combine/index.ts +38 -0
  198. package/attributes-master/packages/list/src/components/List.ts +861 -0
  199. package/attributes-master/packages/list/src/components/ListItem.ts +229 -0
  200. package/attributes-master/packages/list/src/components/index.ts +2 -0
  201. package/attributes-master/packages/list/src/factory.ts +130 -0
  202. package/attributes-master/packages/list/src/filter/dynamic/conditions.ts +639 -0
  203. package/attributes-master/packages/list/src/filter/dynamic/groups.ts +221 -0
  204. package/attributes-master/packages/list/src/filter/dynamic/index.ts +119 -0
  205. package/attributes-master/packages/list/src/filter/dynamic/utils.ts +44 -0
  206. package/attributes-master/packages/list/src/filter/elements.ts +93 -0
  207. package/attributes-master/packages/list/src/filter/filter.ts +118 -0
  208. package/attributes-master/packages/list/src/filter/filter.worker.ts +152 -0
  209. package/attributes-master/packages/list/src/filter/index.ts +94 -0
  210. package/attributes-master/packages/list/src/filter/standard/conditions.ts +123 -0
  211. package/attributes-master/packages/list/src/filter/standard/facets.ts +253 -0
  212. package/attributes-master/packages/list/src/filter/standard/index.ts +176 -0
  213. package/attributes-master/packages/list/src/filter/standard/query.ts +111 -0
  214. package/attributes-master/packages/list/src/filter/tags.ts +314 -0
  215. package/attributes-master/packages/list/src/filter/types.ts +62 -0
  216. package/attributes-master/packages/list/src/filter/utils.ts +126 -0
  217. package/attributes-master/packages/list/src/index.ts +4 -0
  218. package/attributes-master/packages/list/src/init.ts +38 -0
  219. package/attributes-master/packages/list/src/load/all.ts +27 -0
  220. package/attributes-master/packages/list/src/load/elements.ts +39 -0
  221. package/attributes-master/packages/list/src/load/index.ts +63 -0
  222. package/attributes-master/packages/list/src/load/infinite.ts +79 -0
  223. package/attributes-master/packages/list/src/load/load.ts +191 -0
  224. package/attributes-master/packages/list/src/load/more.ts +97 -0
  225. package/attributes-master/packages/list/src/load/pagination.ts +402 -0
  226. package/attributes-master/packages/list/src/nest/index.ts +198 -0
  227. package/attributes-master/packages/list/src/prevnext/index.ts +98 -0
  228. package/attributes-master/packages/list/src/select/index.ts +56 -0
  229. package/attributes-master/packages/list/src/slider/index.ts +62 -0
  230. package/attributes-master/packages/list/src/sort/buttons.ts +96 -0
  231. package/attributes-master/packages/list/src/sort/dropdown.ts +179 -0
  232. package/attributes-master/packages/list/src/sort/index.ts +81 -0
  233. package/attributes-master/packages/list/src/sort/query.ts +63 -0
  234. package/attributes-master/packages/list/src/sort/select.ts +67 -0
  235. package/attributes-master/packages/list/src/sort/sort.ts +79 -0
  236. package/attributes-master/packages/list/src/sort/types.ts +28 -0
  237. package/attributes-master/packages/list/src/static/index.ts +73 -0
  238. package/attributes-master/packages/list/src/tabs/index.ts +97 -0
  239. package/attributes-master/packages/list/src/utils/constants.ts +728 -0
  240. package/attributes-master/packages/list/src/utils/dom.ts +108 -0
  241. package/attributes-master/packages/list/src/utils/pagination.ts +14 -0
  242. package/attributes-master/packages/list/src/utils/selectors.ts +18 -0
  243. package/attributes-master/packages/list/src/utils/store.ts +5 -0
  244. package/attributes-master/packages/list/tsconfig.json +3 -0
  245. package/attributes-master/packages/mirrorclick/CHANGELOG.md +171 -0
  246. package/attributes-master/packages/mirrorclick/README.md +25 -0
  247. package/attributes-master/packages/mirrorclick/package.json +22 -0
  248. package/attributes-master/packages/mirrorclick/src/index.ts +3 -0
  249. package/attributes-master/packages/mirrorclick/src/init.ts +35 -0
  250. package/attributes-master/packages/mirrorclick/src/utils/constants.ts +20 -0
  251. package/attributes-master/packages/mirrorclick/src/utils/selectors.ts +9 -0
  252. package/attributes-master/packages/mirrorclick/tsconfig.json +3 -0
  253. package/attributes-master/packages/mirrorinput/CHANGELOG.md +172 -0
  254. package/attributes-master/packages/mirrorinput/README.md +25 -0
  255. package/attributes-master/packages/mirrorinput/package.json +22 -0
  256. package/attributes-master/packages/mirrorinput/src/index.ts +3 -0
  257. package/attributes-master/packages/mirrorinput/src/init.ts +48 -0
  258. package/attributes-master/packages/mirrorinput/src/utils/constants.ts +15 -0
  259. package/attributes-master/packages/mirrorinput/src/utils/selectors.ts +9 -0
  260. package/attributes-master/packages/mirrorinput/tsconfig.json +3 -0
  261. package/attributes-master/packages/modal/CHANGELOG.md +94 -0
  262. package/attributes-master/packages/modal/README.md +29 -0
  263. package/attributes-master/packages/modal/package.json +23 -0
  264. package/attributes-master/packages/modal/src/actions/a11y.ts +46 -0
  265. package/attributes-master/packages/modal/src/actions/modal.ts +164 -0
  266. package/attributes-master/packages/modal/src/actions/settings.ts +21 -0
  267. package/attributes-master/packages/modal/src/factory.ts +26 -0
  268. package/attributes-master/packages/modal/src/index.ts +3 -0
  269. package/attributes-master/packages/modal/src/init.ts +22 -0
  270. package/attributes-master/packages/modal/src/utils/constants.ts +54 -0
  271. package/attributes-master/packages/modal/src/utils/selectors.ts +9 -0
  272. package/attributes-master/packages/modal/src/utils/types.ts +12 -0
  273. package/attributes-master/packages/modal/tsconfig.json +3 -0
  274. package/attributes-master/packages/numbercount/CHANGELOG.md +90 -0
  275. package/attributes-master/packages/numbercount/README.md +27 -0
  276. package/attributes-master/packages/numbercount/package.json +23 -0
  277. package/attributes-master/packages/numbercount/src/actions/a11y.ts +26 -0
  278. package/attributes-master/packages/numbercount/src/actions/animate.ts +43 -0
  279. package/attributes-master/packages/numbercount/src/actions/observe.ts +44 -0
  280. package/attributes-master/packages/numbercount/src/factory.ts +31 -0
  281. package/attributes-master/packages/numbercount/src/index.ts +3 -0
  282. package/attributes-master/packages/numbercount/src/init.ts +22 -0
  283. package/attributes-master/packages/numbercount/src/utils/constants.ts +40 -0
  284. package/attributes-master/packages/numbercount/src/utils/helpers.ts +31 -0
  285. package/attributes-master/packages/numbercount/src/utils/selectors.ts +9 -0
  286. package/attributes-master/packages/numbercount/tsconfig.json +3 -0
  287. package/attributes-master/packages/queryparam/CHANGELOG.md +118 -0
  288. package/attributes-master/packages/queryparam/README.md +25 -0
  289. package/attributes-master/packages/queryparam/package.json +22 -0
  290. package/attributes-master/packages/queryparam/src/factory.ts +51 -0
  291. package/attributes-master/packages/queryparam/src/index.ts +3 -0
  292. package/attributes-master/packages/queryparam/src/init.ts +40 -0
  293. package/attributes-master/packages/queryparam/src/utils/constants.ts +18 -0
  294. package/attributes-master/packages/queryparam/src/utils/selectors.ts +5 -0
  295. package/attributes-master/packages/queryparam/tsconfig.json +3 -0
  296. package/attributes-master/packages/rangeslider/CHANGELOG.md +236 -0
  297. package/attributes-master/packages/rangeslider/README.md +95 -0
  298. package/attributes-master/packages/rangeslider/package.json +23 -0
  299. package/attributes-master/packages/rangeslider/src/actions/a11y.ts +21 -0
  300. package/attributes-master/packages/rangeslider/src/actions/events.ts +9 -0
  301. package/attributes-master/packages/rangeslider/src/actions/settings.ts +97 -0
  302. package/attributes-master/packages/rangeslider/src/actions/styles.ts +10 -0
  303. package/attributes-master/packages/rangeslider/src/actions/values.ts +47 -0
  304. package/attributes-master/packages/rangeslider/src/components/Fill.ts +70 -0
  305. package/attributes-master/packages/rangeslider/src/components/Handle.ts +281 -0
  306. package/attributes-master/packages/rangeslider/src/factory.ts +100 -0
  307. package/attributes-master/packages/rangeslider/src/index.ts +3 -0
  308. package/attributes-master/packages/rangeslider/src/init.ts +194 -0
  309. package/attributes-master/packages/rangeslider/src/utils/constants.ts +87 -0
  310. package/attributes-master/packages/rangeslider/src/utils/selectors.ts +9 -0
  311. package/attributes-master/packages/rangeslider/src/utils/types.ts +6 -0
  312. package/attributes-master/packages/rangeslider/tsconfig.json +3 -0
  313. package/attributes-master/packages/readtime/CHANGELOG.md +108 -0
  314. package/attributes-master/packages/readtime/README.md +25 -0
  315. package/attributes-master/packages/readtime/package.json +22 -0
  316. package/attributes-master/packages/readtime/src/factory.ts +21 -0
  317. package/attributes-master/packages/readtime/src/index.ts +3 -0
  318. package/attributes-master/packages/readtime/src/init.ts +19 -0
  319. package/attributes-master/packages/readtime/src/utils/constants.ts +33 -0
  320. package/attributes-master/packages/readtime/src/utils/selectors.ts +9 -0
  321. package/attributes-master/packages/readtime/tsconfig.json +3 -0
  322. package/attributes-master/packages/removequery/CHANGELOG.md +8 -0
  323. package/attributes-master/packages/removequery/README.md +25 -0
  324. package/attributes-master/packages/removequery/package.json +22 -0
  325. package/attributes-master/packages/removequery/src/index.ts +3 -0
  326. package/attributes-master/packages/removequery/src/init.ts +18 -0
  327. package/attributes-master/packages/removequery/src/utils/constants.ts +5 -0
  328. package/attributes-master/packages/removequery/tsconfig.json +3 -0
  329. package/attributes-master/packages/scrolldisable/CHANGELOG.md +164 -0
  330. package/attributes-master/packages/scrolldisable/README.md +29 -0
  331. package/attributes-master/packages/scrolldisable/package.json +27 -0
  332. package/attributes-master/packages/scrolldisable/src/click.ts +40 -0
  333. package/attributes-master/packages/scrolldisable/src/display.ts +117 -0
  334. package/attributes-master/packages/scrolldisable/src/index.ts +3 -0
  335. package/attributes-master/packages/scrolldisable/src/init.ts +36 -0
  336. package/attributes-master/packages/scrolldisable/src/scroll.ts +63 -0
  337. package/attributes-master/packages/scrolldisable/src/utils/constants.ts +56 -0
  338. package/attributes-master/packages/scrolldisable/src/utils/selectors.ts +6 -0
  339. package/attributes-master/packages/scrolldisable/tsconfig.json +3 -0
  340. package/attributes-master/packages/selectcustom/CHANGELOG.md +242 -0
  341. package/attributes-master/packages/selectcustom/README.md +25 -0
  342. package/attributes-master/packages/selectcustom/package.json +23 -0
  343. package/attributes-master/packages/selectcustom/src/actions/a11y.ts +29 -0
  344. package/attributes-master/packages/selectcustom/src/actions/events.ts +159 -0
  345. package/attributes-master/packages/selectcustom/src/actions/observe.ts +83 -0
  346. package/attributes-master/packages/selectcustom/src/actions/populate.ts +67 -0
  347. package/attributes-master/packages/selectcustom/src/actions/settings.ts +68 -0
  348. package/attributes-master/packages/selectcustom/src/actions/state.ts +41 -0
  349. package/attributes-master/packages/selectcustom/src/index.ts +3 -0
  350. package/attributes-master/packages/selectcustom/src/init.ts +51 -0
  351. package/attributes-master/packages/selectcustom/src/utils/constants.ts +34 -0
  352. package/attributes-master/packages/selectcustom/src/utils/selectors.ts +9 -0
  353. package/attributes-master/packages/selectcustom/src/utils/types.ts +14 -0
  354. package/attributes-master/packages/selectcustom/tsconfig.json +3 -0
  355. package/attributes-master/packages/sliderdots/CHANGELOG.md +220 -0
  356. package/attributes-master/packages/sliderdots/README.md +27 -0
  357. package/attributes-master/packages/sliderdots/package.json +22 -0
  358. package/attributes-master/packages/sliderdots/src/actions/events.ts +26 -0
  359. package/attributes-master/packages/sliderdots/src/actions/observe.ts +40 -0
  360. package/attributes-master/packages/sliderdots/src/actions/populate.ts +46 -0
  361. package/attributes-master/packages/sliderdots/src/actions/sync.ts +28 -0
  362. package/attributes-master/packages/sliderdots/src/actions/wait.ts +28 -0
  363. package/attributes-master/packages/sliderdots/src/factory.ts +57 -0
  364. package/attributes-master/packages/sliderdots/src/index.ts +3 -0
  365. package/attributes-master/packages/sliderdots/src/init.ts +30 -0
  366. package/attributes-master/packages/sliderdots/src/utils/constants.ts +33 -0
  367. package/attributes-master/packages/sliderdots/src/utils/selectors.ts +9 -0
  368. package/attributes-master/packages/sliderdots/src/utils/types.ts +7 -0
  369. package/attributes-master/packages/sliderdots/tsconfig.json +3 -0
  370. package/attributes-master/packages/smartlightbox/CHANGELOG.md +203 -0
  371. package/attributes-master/packages/smartlightbox/README.md +25 -0
  372. package/attributes-master/packages/smartlightbox/package.json +22 -0
  373. package/attributes-master/packages/smartlightbox/src/actions/collect.ts +15 -0
  374. package/attributes-master/packages/smartlightbox/src/actions/move.ts +25 -0
  375. package/attributes-master/packages/smartlightbox/src/index.ts +3 -0
  376. package/attributes-master/packages/smartlightbox/src/init.ts +61 -0
  377. package/attributes-master/packages/smartlightbox/src/utils/constants.ts +31 -0
  378. package/attributes-master/packages/smartlightbox/src/utils/selectors.ts +9 -0
  379. package/attributes-master/packages/smartlightbox/tsconfig.json +3 -0
  380. package/attributes-master/packages/socialshare/CHANGELOG.md +170 -0
  381. package/attributes-master/packages/socialshare/README.md +25 -0
  382. package/attributes-master/packages/socialshare/package.json +25 -0
  383. package/attributes-master/packages/socialshare/src/actions/collect.ts +93 -0
  384. package/attributes-master/packages/socialshare/src/actions/share.ts +91 -0
  385. package/attributes-master/packages/socialshare/src/actions/trigger.ts +46 -0
  386. package/attributes-master/packages/socialshare/src/factory.ts +149 -0
  387. package/attributes-master/packages/socialshare/src/index.ts +3 -0
  388. package/attributes-master/packages/socialshare/src/init.ts +35 -0
  389. package/attributes-master/packages/socialshare/src/utils/constants.ts +94 -0
  390. package/attributes-master/packages/socialshare/src/utils/dom.ts +8 -0
  391. package/attributes-master/packages/socialshare/src/utils/selectors.ts +6 -0
  392. package/attributes-master/packages/socialshare/src/utils/stores.ts +10 -0
  393. package/attributes-master/packages/socialshare/src/utils/types.ts +34 -0
  394. package/attributes-master/packages/socialshare/tsconfig.json +3 -0
  395. package/attributes-master/packages/starrating/CHANGELOG.md +70 -0
  396. package/attributes-master/packages/starrating/README.md +25 -0
  397. package/attributes-master/packages/starrating/package.json +22 -0
  398. package/attributes-master/packages/starrating/src/actions/classes.ts +41 -0
  399. package/attributes-master/packages/starrating/src/actions/events.ts +80 -0
  400. package/attributes-master/packages/starrating/src/factory.ts +24 -0
  401. package/attributes-master/packages/starrating/src/index.ts +3 -0
  402. package/attributes-master/packages/starrating/src/init.ts +24 -0
  403. package/attributes-master/packages/starrating/src/utils/constants.ts +20 -0
  404. package/attributes-master/packages/starrating/src/utils/helpers.ts +63 -0
  405. package/attributes-master/packages/starrating/src/utils/selectors.ts +9 -0
  406. package/attributes-master/packages/starrating/tsconfig.json +3 -0
  407. package/attributes-master/packages/template/README.md +25 -0
  408. package/attributes-master/packages/template/package.json +22 -0
  409. package/attributes-master/packages/template/src/actions/console.ts +4 -0
  410. package/attributes-master/packages/template/src/index.ts +3 -0
  411. package/attributes-master/packages/template/src/init.ts +14 -0
  412. package/attributes-master/packages/template/src/utils/constants.ts +18 -0
  413. package/attributes-master/packages/template/src/utils/selectors.ts +5 -0
  414. package/attributes-master/packages/template/tsconfig.json +3 -0
  415. package/attributes-master/packages/toc/CHANGELOG.md +192 -0
  416. package/attributes-master/packages/toc/README.md +25 -0
  417. package/attributes-master/packages/toc/package.json +23 -0
  418. package/attributes-master/packages/toc/src/actions/collect.ts +136 -0
  419. package/attributes-master/packages/toc/src/actions/create.ts +44 -0
  420. package/attributes-master/packages/toc/src/actions/events.ts +29 -0
  421. package/attributes-master/packages/toc/src/actions/observe.ts +31 -0
  422. package/attributes-master/packages/toc/src/actions/populate.ts +68 -0
  423. package/attributes-master/packages/toc/src/actions/prepare.ts +25 -0
  424. package/attributes-master/packages/toc/src/actions/scroll.ts +33 -0
  425. package/attributes-master/packages/toc/src/components/TOCItem.ts +88 -0
  426. package/attributes-master/packages/toc/src/factory.ts +47 -0
  427. package/attributes-master/packages/toc/src/index.ts +3 -0
  428. package/attributes-master/packages/toc/src/init.ts +37 -0
  429. package/attributes-master/packages/toc/src/utils/constants.ts +55 -0
  430. package/attributes-master/packages/toc/src/utils/helpers.ts +23 -0
  431. package/attributes-master/packages/toc/src/utils/selectors.ts +6 -0
  432. package/attributes-master/packages/toc/src/utils/types.ts +21 -0
  433. package/attributes-master/packages/toc/tsconfig.json +3 -0
  434. package/attributes-master/packages/utils/CHANGELOG.md +43 -0
  435. package/attributes-master/packages/utils/package.json +27 -0
  436. package/attributes-master/packages/utils/src/animations/factory.ts +100 -0
  437. package/attributes-master/packages/utils/src/animations/index.ts +73 -0
  438. package/attributes-master/packages/utils/src/animations/types.ts +37 -0
  439. package/attributes-master/packages/utils/src/components/Interaction.ts +79 -0
  440. package/attributes-master/packages/utils/src/components/Renderer.ts +59 -0
  441. package/attributes-master/packages/utils/src/components/index.ts +2 -0
  442. package/attributes-master/packages/utils/src/constants/a11y.ts +50 -0
  443. package/attributes-master/packages/utils/src/constants/attributes.ts +57 -0
  444. package/attributes-master/packages/utils/src/constants/index.ts +5 -0
  445. package/attributes-master/packages/utils/src/constants/keyboard.ts +10 -0
  446. package/attributes-master/packages/utils/src/constants/webflow.ts +74 -0
  447. package/attributes-master/packages/utils/src/helpers/dates.ts +17 -0
  448. package/attributes-master/packages/utils/src/helpers/dom.ts +82 -0
  449. package/attributes-master/packages/utils/src/helpers/events.ts +59 -0
  450. package/attributes-master/packages/utils/src/helpers/fetch.ts +217 -0
  451. package/attributes-master/packages/utils/src/helpers/forms.ts +238 -0
  452. package/attributes-master/packages/utils/src/helpers/guards.ts +138 -0
  453. package/attributes-master/packages/utils/src/helpers/index.ts +11 -0
  454. package/attributes-master/packages/utils/src/helpers/numbers.ts +86 -0
  455. package/attributes-master/packages/utils/src/helpers/selectors.ts +249 -0
  456. package/attributes-master/packages/utils/src/helpers/strings.ts +19 -0
  457. package/attributes-master/packages/utils/src/helpers/wait.ts +36 -0
  458. package/attributes-master/packages/utils/src/helpers/webflow.ts +117 -0
  459. package/attributes-master/packages/utils/src/index.ts +5 -0
  460. package/attributes-master/packages/utils/src/types/core.ts +100 -0
  461. package/attributes-master/packages/utils/src/types/dom.ts +31 -0
  462. package/attributes-master/packages/utils/src/types/index.ts +4 -0
  463. package/attributes-master/packages/utils/src/types/utils.ts +20 -0
  464. package/attributes-master/packages/utils/src/types/webflow.ts +147 -0
  465. package/attributes-master/packages/utils/tsconfig.json +3 -0
  466. package/attributes-master/packages/videohls/CHANGELOG.md +76 -0
  467. package/attributes-master/packages/videohls/README.md +27 -0
  468. package/attributes-master/packages/videohls/package.json +26 -0
  469. package/attributes-master/packages/videohls/src/actions/list.ts +23 -0
  470. package/attributes-master/packages/videohls/src/actions/video.ts +44 -0
  471. package/attributes-master/packages/videohls/src/index.ts +3 -0
  472. package/attributes-master/packages/videohls/src/init.ts +28 -0
  473. package/attributes-master/packages/videohls/src/utils/constants.ts +12 -0
  474. package/attributes-master/packages/videohls/src/utils/selectors.ts +5 -0
  475. package/attributes-master/packages/videohls/src/utils/stores.ts +3 -0
  476. package/attributes-master/packages/videohls/tsconfig.json +3 -0
  477. package/attributes-master/pnpm-lock.yaml +3317 -0
  478. package/attributes-master/pnpm-workspace.yaml +3 -0
  479. package/attributes-master/tsconfig.json +6 -0
  480. package/index.js +173 -257
  481. package/package.json +1 -1
@@ -0,0 +1,3 @@
1
+ packages:
2
+ - 'packages/*'
3
+ - '!packages/template'
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "@finsweet/tsconfig",
3
+ "compilerOptions": {
4
+ "moduleResolution": "bundler"
5
+ }
6
+ }
package/index.js CHANGED
@@ -1,19 +1,43 @@
1
- // ver 1.2.3
1
+ // ver 1.2.5
2
2
 
3
3
  const API_NAME = 'hsmain';
4
4
 
5
- console.log(`🟢 ${API_NAME} v1.2.3 initializing...`);
5
+ console.log(`🟢 ${API_NAME} v1.2.5 initializing...`);
6
6
  console.log('🔍 DOM state:', document.readyState);
7
7
  console.log('🔍 Script URL:', import.meta.url);
8
8
 
9
- window[API_NAME] = window[API_NAME] || {};
10
- window[API_NAME].loaded = false
9
+ // Prevent double initialization
10
+ if (window[API_NAME] && !Array.isArray(window[API_NAME])) {
11
+ console.log('⚠️ API already initialized');
12
+ throw new Error(`${API_NAME} is already running.`);
13
+ }
11
14
 
12
- // Dynamic module loader function (like Finsweet's approach)
15
+ // Store any early API calls
16
+ const existingRequests = Array.isArray(window[API_NAME]) ? window[API_NAME] : [];
17
+
18
+ // Module definitions
19
+ const animationModules = {
20
+ "data-hs-anim-text": true,
21
+ "data-hs-anim-hero": true,
22
+ "data-hs-anim-transition": true
23
+ };
24
+
25
+ const utilityModules = {
26
+ "data-hs-util-toc": true,
27
+ "data-hs-util-progress": true,
28
+ "data-hs-util-navbar": true
29
+ };
30
+
31
+ const autoInitModules = {
32
+ "smooth-scroll": true
33
+ };
34
+
35
+ // All available modules
36
+ const allModules = { ...animationModules, ...utilityModules };
37
+
38
+ // Dynamic module loader (like Finsweet)
13
39
  const loadModule = async (moduleName) => {
14
40
  console.log(`📦 Loading module: ${moduleName}`);
15
- const baseURL = new URL('./', import.meta.url).href;
16
- console.log(`📂 Base URL: ${baseURL}`);
17
41
 
18
42
  switch (moduleName) {
19
43
  case "data-hs-anim-text":
@@ -32,150 +56,59 @@ const loadModule = async (moduleName) => {
32
56
  return import(new URL('./autoInit/smooth-scroll.js', import.meta.url).href);
33
57
  default:
34
58
  console.error(`❌ Unsupported module: ${moduleName}`);
35
- throw new Error(`HortonStudio module "${moduleName}" is not supported.`);
59
+ throw new Error(`${API_NAME} module "${moduleName}" is not supported.`);
36
60
  }
37
-
38
- // Refresh Webflow after processing
39
- setTimeout(() => {
40
- if (window.Webflow && window.Webflow.ready) {
41
- window.Webflow.ready();
42
- }
43
-
44
- // Run all registered post-Webflow callbacks (even without Webflow)
45
- setTimeout(() => {
46
- postWebflowCallbacks.forEach(callback => {
47
- try {
48
- callback();
49
- } catch (error) {
50
- console.error('Callback error:', error);
51
- }
52
- });
53
- window[API_NAME].loaded = true;
54
- }, 100);
55
- }, 100);
56
- };
57
-
58
- const animationModules = {
59
- "data-hs-anim-text": true,
60
- "data-hs-anim-hero": true,
61
- "data-hs-anim-transition": true
62
- };
63
-
64
- const utilityModules = {
65
- "data-hs-util-toc": true,
66
- "data-hs-util-progress": true,
67
- "data-hs-util-navbar": true
68
- };
69
-
70
- // Modules that auto-initialize
71
- const autoInitModules = {
72
- "smooth-scroll": true
73
- };
74
-
75
- // Store callbacks to run after Webflow.ready()
76
- const postWebflowCallbacks = [];
77
-
78
- const findCurrentScriptTag = () => {
79
- // Use import.meta.url like Finsweet does
80
- const scripts = [...document.querySelectorAll(`script[data-hs-main][src="${import.meta.url}"]`)];
81
- const fallbackScript = document.querySelector('script[data-hs-main]');
82
- const found = scripts[0] || fallbackScript;
83
- console.log(`🏷️ Script tag found:`, found);
84
- console.log(`🏷️ Script attributes:`, found ? [...found.attributes].map(a => `${a.name}="${a.value}"`).join(' ') : 'none');
85
- return found;
86
61
  };
87
62
 
88
- const processModules = async (scriptTag) => {
89
- console.log(`⚙️ Processing modules with script tag:`, scriptTag);
90
- const modulePromises = [];
91
-
92
- // Load manual modules based on attributes
93
- const manualModules = Object.keys({ ...animationModules, ...utilityModules });
94
- console.log(`🔍 Checking for manual modules:`, manualModules);
95
-
96
- for (const moduleName of manualModules) {
97
- if (scriptTag && scriptTag.hasAttribute(moduleName)) {
98
- console.log(`✅ Found attribute for: ${moduleName}`);
99
- modulePromises.push(loadHsModule(moduleName));
100
- }
101
- }
102
-
103
- // Load auto-init modules
104
- const autoModules = Object.keys(autoInitModules);
105
- console.log(`🔄 Auto-loading modules:`, autoModules);
106
- for (const moduleName of autoModules) {
107
- modulePromises.push(loadHsModule(moduleName));
108
- }
109
-
110
- // Hide .transition elements if transition module is not loaded
111
- if (!scriptTag || !scriptTag.hasAttribute('data-hs-anim-transition')) {
112
- const transitionElements = document.querySelectorAll('.transition');
113
- transitionElements.forEach(element => {
114
- element.style.display = 'none';
115
- });
116
- }
117
-
118
- // Wait for ALL modules to finish loading
119
- console.log(`⏳ Waiting for ${modulePromises.length} modules to load...`);
120
- await Promise.all(modulePromises);
121
- console.log(`✅ All modules loaded successfully`);
122
-
123
- // Always refresh Webflow after all modules are loaded
124
- refreshWebflow();
63
+ // Webflow ready helper (like Finsweet)
64
+ const waitWebflowReady = async () => {
65
+ return new Promise((resolve) => {
66
+ window.Webflow ||= [];
67
+ window.Webflow.push(resolve);
68
+ });
125
69
  };
126
70
 
127
- const refreshWebflow = () => {
128
- console.log(`🔄 Refreshing Webflow...`);
129
- setTimeout(() => {
130
- if (window.Webflow && window.Webflow.ready) {
131
- console.log(`🌐 Calling Webflow.ready()`);
132
- window.Webflow.ready();
71
+ // DOM ready helper (like Finsweet)
72
+ const waitDOMReady = async () => {
73
+ return new Promise((resolve) => {
74
+ if (document.readyState === 'loading') {
75
+ document.addEventListener('DOMContentLoaded', resolve);
133
76
  } else {
134
- console.log(`⚠️ Webflow not detected`);
77
+ resolve();
135
78
  }
136
-
137
- // Run all registered post-Webflow callbacks (even without Webflow)
138
- setTimeout(() => {
139
- console.log(`🔄 Running ${postWebflowCallbacks.length} post-Webflow callbacks`);
140
- postWebflowCallbacks.forEach((callback, index) => {
141
- try {
142
- console.log(`📞 Executing callback ${index + 1}/${postWebflowCallbacks.length}`);
143
- callback();
144
- } catch (error) {
145
- console.error(`❌ Callback ${index + 1} failed:`, error);
146
- }
147
- });
148
- window[API_NAME].loaded = true;
149
- console.log(`🎉 ${API_NAME} fully loaded and ready!`);
150
- }, 100);
151
- }, 100);
79
+ });
152
80
  };
153
81
 
82
+ // Find script tags (Finsweet approach)
83
+ const scripts = [...document.querySelectorAll(`script[type="module"][src="${import.meta.url}"]`)];
84
+ console.log(`📄 Found ${scripts.length} matching script tags`);
85
+
86
+ // Module loading function
154
87
  const loadHsModule = async (moduleName) => {
155
88
  console.log(`🔄 loadHsModule called for: ${moduleName}`);
89
+
156
90
  const apiInstance = window[API_NAME];
157
-
158
- if (!apiInstance || !apiInstance.process) {
159
- console.error(`❌ API not initialized properly:`, apiInstance);
160
- throw new Error(`${API_NAME} API not initialized`);
161
- }
162
-
91
+
92
+ // Check if already processing
163
93
  if (apiInstance.process.has(moduleName)) {
164
- console.log(`⚠️ Module ${moduleName} already processing, returning existing promise`);
94
+ console.log(`⚠️ Module ${moduleName} already processing`);
165
95
  return apiInstance.modules[moduleName]?.loading;
166
96
  }
167
-
97
+
98
+ // Add to processing set
168
99
  console.log(`➕ Adding ${moduleName} to process set`);
169
100
  apiInstance.process.add(moduleName);
170
-
101
+
102
+ // Create module object
171
103
  const moduleObj = apiInstance.modules[moduleName] || {};
172
104
  apiInstance.modules[moduleName] = moduleObj;
173
-
105
+
106
+ // Create loading promise
174
107
  moduleObj.loading = new Promise((resolve, reject) => {
175
108
  moduleObj.resolve = resolve;
176
109
  moduleObj.reject = reject;
177
110
  });
178
-
111
+
179
112
  try {
180
113
  console.log(`📦 Importing ${moduleName}...`);
181
114
  const { init, version } = await loadModule(moduleName);
@@ -185,10 +118,10 @@ const loadHsModule = async (moduleName) => {
185
118
  const initResult = await init();
186
119
  const { result, destroy } = initResult || {};
187
120
  console.log(`✅ ${moduleName} initialized:`, result);
188
-
121
+
189
122
  moduleObj.version = version;
190
123
 
191
- // Finsweet-style destroy and restart methods
124
+ // Add destroy and restart methods
192
125
  moduleObj.destroy = () => {
193
126
  destroy?.();
194
127
  apiInstance.process.delete(moduleName);
@@ -198,13 +131,13 @@ const loadHsModule = async (moduleName) => {
198
131
  moduleObj.destroy?.();
199
132
  return apiInstance.load(moduleName);
200
133
  };
201
-
134
+
202
135
  moduleObj.resolve?.(result);
203
136
  delete moduleObj.resolve;
204
137
  delete moduleObj.reject;
205
-
138
+
206
139
  return result;
207
-
140
+
208
141
  } catch (error) {
209
142
  console.error(`❌ Failed to load ${moduleName}:`, error);
210
143
  moduleObj.reject?.(error);
@@ -213,146 +146,102 @@ const loadHsModule = async (moduleName) => {
213
146
  }
214
147
  };
215
148
 
216
- const initializeAPI = () => {
217
- console.log(`🚀 Initializing ${API_NAME} API...`);
218
-
219
- // Handle early API calls (like Finsweet)
220
- const existingAPI = window[API_NAME];
221
- console.log(`🔍 Existing API:`, existingAPI);
222
-
223
- if (existingAPI && !Array.isArray(existingAPI) && existingAPI.process) {
224
- console.log(`⚡ API already initialized, processing...`);
225
- processAPI();
226
- return;
227
- }
149
+ // Initialize API
150
+ window[API_NAME] = {
151
+ scripts,
152
+ modules: {},
153
+ process: new Set(),
154
+ load: loadHsModule,
155
+ loaded: false,
228
156
 
229
- const existingRequests = Array.isArray(existingAPI) ? existingAPI : [];
230
- console.log(`📝 Existing queued requests:`, existingRequests);
231
-
232
- const scripts = [...document.querySelectorAll(`script[data-hs-main][src="${import.meta.url}"]`)];
233
- const scriptTag = scripts[0] || document.querySelector('script[data-hs-main]');
234
- console.log(`📄 Found ${scripts.length} script tags with exact src match`);
235
- console.log(`🏷️ Using script tag:`, scriptTag);
236
-
237
- // Handle rich text blocks
238
- const richTextBlocks = document.querySelectorAll('.w-richtext');
239
- richTextBlocks.forEach(block => {
240
- const images = block.querySelectorAll('img');
241
- images.forEach(img => {
242
- img.loading = 'eager';
243
- });
244
- });
245
-
246
- window[API_NAME] = {
247
- scripts,
248
- modules: {},
249
- process: new Set(),
250
- load: loadHsModule,
251
-
252
- // Push method for queuing (like Finsweet)
253
- push(...requests) {
254
- for (let [moduleName, callback] of requests) {
255
- if (typeof callback === 'function') {
256
- this.modules[moduleName]?.loading?.then(callback);
257
- } else {
258
- this.load(moduleName);
259
- }
260
- }
261
- },
262
-
263
- // Destroy all modules
264
- destroy() {
265
- for (let moduleName in this.modules) {
266
- this.modules[moduleName]?.destroy?.();
267
- }
268
- },
269
-
270
- // API function for scripts to register post-initialization callbacks
271
- afterReady: (callback) => {
272
- if (typeof callback === 'function') {
273
- postWebflowCallbacks.push(callback);
274
- }
275
- },
276
-
277
- // Legacy alias for Webflow compatibility
278
- afterWebflowReady: (callback) => {
157
+ // Push method for queuing
158
+ push(...requests) {
159
+ for (let [moduleName, callback] of requests) {
279
160
  if (typeof callback === 'function') {
280
- postWebflowCallbacks.push(callback);
281
- }
282
- },
283
-
284
- status(moduleName) {
285
- if (!moduleName) {
286
- return {
287
- loaded: Object.keys(this.modules),
288
- loading: [...this.process],
289
- animations: Object.keys(animationModules),
290
- utilities: Object.keys(utilityModules),
291
- autoInit: Object.keys(autoInitModules)
292
- };
161
+ this.modules[moduleName]?.loading?.then(callback);
162
+ } else {
163
+ this.load(moduleName);
293
164
  }
165
+ }
166
+ },
167
+
168
+ // Destroy all modules
169
+ destroy() {
170
+ for (let moduleName in this.modules) {
171
+ this.modules[moduleName]?.destroy?.();
172
+ }
173
+ },
174
+
175
+ // Status method
176
+ status(moduleName) {
177
+ if (!moduleName) {
294
178
  return {
295
- loaded: !!this.modules[moduleName],
296
- loading: this.process.has(moduleName)
179
+ loaded: Object.keys(this.modules),
180
+ loading: [...this.process],
181
+ animations: Object.keys(animationModules),
182
+ utilities: Object.keys(utilityModules),
183
+ autoInit: Object.keys(autoInitModules)
297
184
  };
298
185
  }
299
- };
300
-
301
- processAPI();
302
-
303
- // Process any queued requests
304
- window[API_NAME].push(...existingRequests);
186
+ return {
187
+ loaded: !!this.modules[moduleName],
188
+ loading: this.process.has(moduleName)
189
+ };
190
+ }
305
191
  };
306
192
 
307
- const processAPI = () => {
308
- // Check for auto mode
309
- let autoMode = false;
310
- for (let script of window[API_NAME].scripts || []) {
311
- autoMode ||= script.getAttribute('data-hs-auto') === 'true';
193
+ // Process modules from script tags
194
+ const processScriptModules = () => {
195
+ console.log(`⚙️ Processing ${scripts.length} script tags`);
196
+
197
+ for (const script of scripts) {
198
+ console.log(`🏷️ Processing script:`, script.src);
199
+
200
+ // Check for auto mode
201
+ const autoMode = script.getAttribute('data-hs-auto') === 'true';
202
+ console.log(`🔍 Auto mode: ${autoMode}`);
312
203
 
313
204
  // Load modules based on script attributes
314
- for (const moduleName of Object.keys({ ...animationModules, ...utilityModules })) {
205
+ for (const moduleName of Object.keys(allModules)) {
315
206
  if (script.hasAttribute(moduleName)) {
207
+ console.log(`✅ Found attribute for: ${moduleName}`);
316
208
  loadHsModule(moduleName);
317
209
  }
318
210
  }
319
- }
320
-
321
- // Auto-discovery mode (scan DOM for attributes)
322
- if (autoMode) {
323
- document.fonts.ready.then(() => {
324
- const foundModules = new Set();
325
- const allElements = document.querySelectorAll('*');
326
-
327
- for (let element of allElements) {
328
- for (let attrName of element.getAttributeNames()) {
329
- // Look for data-hs-[something] attributes
330
- const match = attrName.match(/^data-hs-([^-=]+)/)?.[1];
331
- if (match && attributeToModule[match]) {
332
- foundModules.add(attributeToModule[match]);
211
+
212
+ // Auto-discovery mode
213
+ if (autoMode) {
214
+ waitDOMReady().then(() => {
215
+ console.log(`🔍 Starting auto-discovery...`);
216
+ const foundModules = new Set();
217
+ const allElements = document.querySelectorAll('*');
218
+
219
+ for (const element of allElements) {
220
+ for (const attrName of element.getAttributeNames()) {
221
+ // Look for data-hs-* attributes
222
+ const match = attrName.match(/^(data-hs-(?:anim|util)-[^-=]+)/)?.[1];
223
+ if (match && allModules[match]) {
224
+ foundModules.add(match);
225
+ }
333
226
  }
334
227
  }
335
- }
336
-
337
- for (let moduleName of foundModules) {
338
- loadHsModule(moduleName);
339
- }
340
- });
228
+
229
+ console.log(`🔍 Auto-discovered modules:`, [...foundModules]);
230
+ for (const moduleName of foundModules) {
231
+ loadHsModule(moduleName);
232
+ }
233
+ });
234
+ }
341
235
  }
342
236
 
343
237
  // Always load auto-init modules
238
+ console.log(`🔄 Loading auto-init modules:`, Object.keys(autoInitModules));
344
239
  for (const moduleName of Object.keys(autoInitModules)) {
345
- try {
346
- loadHsModule(moduleName);
347
- } catch (error) {
348
- console.error(`❌ Failed to load auto-init module ${moduleName}:`, error);
349
- }
240
+ loadHsModule(moduleName);
350
241
  }
351
242
 
352
243
  // Hide .transition elements if transition module is not loaded
353
- const hasTransition = window[API_NAME].scripts?.some(script =>
354
- script.hasAttribute('data-hs-anim-transition')
355
- );
244
+ const hasTransition = scripts.some(script => script.hasAttribute('data-hs-anim-transition'));
356
245
  if (!hasTransition) {
357
246
  const transitionElements = document.querySelectorAll('.transition');
358
247
  transitionElements.forEach(element => {
@@ -361,10 +250,37 @@ const processAPI = () => {
361
250
  }
362
251
  };
363
252
 
364
- if (document.readyState === 'loading') {
365
- console.log(`⏳ DOM still loading, waiting for DOMContentLoaded...`);
366
- document.addEventListener('DOMContentLoaded', initializeAPI);
367
- } else {
368
- console.log(`✅ DOM ready, initializing immediately`);
369
- initializeAPI();
370
- }
253
+ // Handle rich text blocks
254
+ const richTextBlocks = document.querySelectorAll('.w-richtext');
255
+ richTextBlocks.forEach(block => {
256
+ const images = block.querySelectorAll('img');
257
+ images.forEach(img => {
258
+ img.loading = 'eager';
259
+ });
260
+ });
261
+
262
+ // Main initialization
263
+ const initializeMain = async () => {
264
+ console.log(`🚀 Starting main initialization...`);
265
+
266
+ // Process script modules
267
+ processScriptModules();
268
+
269
+ // Wait for Webflow
270
+ console.log(`⏳ Waiting for Webflow...`);
271
+ await waitWebflowReady();
272
+ console.log(`✅ Webflow ready`);
273
+
274
+ // Mark as loaded
275
+ window[API_NAME].loaded = true;
276
+ console.log(`🎉 ${API_NAME} fully loaded and ready!`);
277
+ };
278
+
279
+ // Process any early requests
280
+ console.log(`📝 Processing ${existingRequests.length} early requests`);
281
+ window[API_NAME].push(...existingRequests);
282
+
283
+ // Start initialization
284
+ initializeMain().catch(error => {
285
+ console.error(`❌ Failed to initialize ${API_NAME}:`, error);
286
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hortonstudio/main",
3
- "version": "1.2.4",
3
+ "version": "1.2.6",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {