@hortonstudio/main 1.2.5 → 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 -275
  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.4
1
+ // ver 1.2.5
2
2
 
3
3
  const API_NAME = 'hsmain';
4
4
 
5
- console.log(`🟢 ${API_NAME} v1.2.4 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
61
  };
69
62
 
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
- };
87
-
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,164 +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
- // Try multiple approaches to find the script tag
233
- let scripts = [...document.querySelectorAll(`script[data-hs-main][src="${import.meta.url}"]`)];
234
- console.log(`📄 Found ${scripts.length} script tags with exact src match`);
235
-
236
- // Fallback: find any script with data-hs-main
237
- if (scripts.length === 0) {
238
- scripts = [...document.querySelectorAll('script[data-hs-main]')];
239
- console.log(`📄 Fallback: Found ${scripts.length} script tags with data-hs-main`);
240
- }
241
-
242
- // Fallback: find script with similar src (same package name)
243
- if (scripts.length === 0) {
244
- scripts = [...document.querySelectorAll('script[src*="@hortonstudio/main"]')];
245
- console.log(`📄 Fallback: Found ${scripts.length} script tags with @hortonstudio/main`);
246
- }
247
-
248
- const scriptTag = scripts[0];
249
- console.log(`🏷️ Using script tag:`, scriptTag);
250
- if (scriptTag) {
251
- console.log(`🏷️ Script src:`, scriptTag.src);
252
- console.log(`🏷️ Script attributes:`, [...scriptTag.attributes].map(a => `${a.name}="${a.value}"`).join(' '));
253
- }
254
-
255
- // Handle rich text blocks
256
- const richTextBlocks = document.querySelectorAll('.w-richtext');
257
- richTextBlocks.forEach(block => {
258
- const images = block.querySelectorAll('img');
259
- images.forEach(img => {
260
- img.loading = 'eager';
261
- });
262
- });
263
-
264
- window[API_NAME] = {
265
- scripts,
266
- modules: {},
267
- process: new Set(),
268
- load: loadHsModule,
269
-
270
- // Push method for queuing (like Finsweet)
271
- push(...requests) {
272
- for (let [moduleName, callback] of requests) {
273
- if (typeof callback === 'function') {
274
- this.modules[moduleName]?.loading?.then(callback);
275
- } else {
276
- this.load(moduleName);
277
- }
278
- }
279
- },
280
-
281
- // Destroy all modules
282
- destroy() {
283
- for (let moduleName in this.modules) {
284
- this.modules[moduleName]?.destroy?.();
285
- }
286
- },
287
-
288
- // API function for scripts to register post-initialization callbacks
289
- afterReady: (callback) => {
157
+ // Push method for queuing
158
+ push(...requests) {
159
+ for (let [moduleName, callback] of requests) {
290
160
  if (typeof callback === 'function') {
291
- postWebflowCallbacks.push(callback);
292
- }
293
- },
294
-
295
- // Legacy alias for Webflow compatibility
296
- afterWebflowReady: (callback) => {
297
- if (typeof callback === 'function') {
298
- postWebflowCallbacks.push(callback);
299
- }
300
- },
301
-
302
- status(moduleName) {
303
- if (!moduleName) {
304
- return {
305
- loaded: Object.keys(this.modules),
306
- loading: [...this.process],
307
- animations: Object.keys(animationModules),
308
- utilities: Object.keys(utilityModules),
309
- autoInit: Object.keys(autoInitModules)
310
- };
161
+ this.modules[moduleName]?.loading?.then(callback);
162
+ } else {
163
+ this.load(moduleName);
311
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) {
312
178
  return {
313
- loaded: !!this.modules[moduleName],
314
- 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)
315
184
  };
316
185
  }
317
- };
318
-
319
- processAPI();
320
-
321
- // Process any queued requests
322
- window[API_NAME].push(...existingRequests);
186
+ return {
187
+ loaded: !!this.modules[moduleName],
188
+ loading: this.process.has(moduleName)
189
+ };
190
+ }
323
191
  };
324
192
 
325
- const processAPI = () => {
326
- // Check for auto mode
327
- let autoMode = false;
328
- for (let script of window[API_NAME].scripts || []) {
329
- 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}`);
330
203
 
331
204
  // Load modules based on script attributes
332
- for (const moduleName of Object.keys({ ...animationModules, ...utilityModules })) {
205
+ for (const moduleName of Object.keys(allModules)) {
333
206
  if (script.hasAttribute(moduleName)) {
207
+ console.log(`✅ Found attribute for: ${moduleName}`);
334
208
  loadHsModule(moduleName);
335
209
  }
336
210
  }
337
- }
338
-
339
- // Auto-discovery mode (scan DOM for attributes)
340
- if (autoMode) {
341
- document.fonts.ready.then(() => {
342
- const foundModules = new Set();
343
- const allElements = document.querySelectorAll('*');
344
-
345
- for (let element of allElements) {
346
- for (let attrName of element.getAttributeNames()) {
347
- // Look for data-hs-[something] attributes
348
- const match = attrName.match(/^data-hs-([^-=]+)/)?.[1];
349
- if (match && attributeToModule[match]) {
350
- 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
+ }
351
226
  }
352
227
  }
353
- }
354
-
355
- for (let moduleName of foundModules) {
356
- loadHsModule(moduleName);
357
- }
358
- });
228
+
229
+ console.log(`🔍 Auto-discovered modules:`, [...foundModules]);
230
+ for (const moduleName of foundModules) {
231
+ loadHsModule(moduleName);
232
+ }
233
+ });
234
+ }
359
235
  }
360
236
 
361
237
  // Always load auto-init modules
238
+ console.log(`🔄 Loading auto-init modules:`, Object.keys(autoInitModules));
362
239
  for (const moduleName of Object.keys(autoInitModules)) {
363
- try {
364
- loadHsModule(moduleName);
365
- } catch (error) {
366
- console.error(`❌ Failed to load auto-init module ${moduleName}:`, error);
367
- }
240
+ loadHsModule(moduleName);
368
241
  }
369
242
 
370
243
  // Hide .transition elements if transition module is not loaded
371
- const hasTransition = window[API_NAME].scripts?.some(script =>
372
- script.hasAttribute('data-hs-anim-transition')
373
- );
244
+ const hasTransition = scripts.some(script => script.hasAttribute('data-hs-anim-transition'));
374
245
  if (!hasTransition) {
375
246
  const transitionElements = document.querySelectorAll('.transition');
376
247
  transitionElements.forEach(element => {
@@ -379,10 +250,37 @@ const processAPI = () => {
379
250
  }
380
251
  };
381
252
 
382
- if (document.readyState === 'loading') {
383
- console.log(`⏳ DOM still loading, waiting for DOMContentLoaded...`);
384
- document.addEventListener('DOMContentLoaded', initializeAPI);
385
- } else {
386
- console.log(`✅ DOM ready, initializing immediately`);
387
- initializeAPI();
388
- }
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.5",
3
+ "version": "1.2.6",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {