@hortonstudio/main 1.2.5 → 1.2.7

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 +216 -312
  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,273 +1,162 @@
1
- // ver 1.2.4
1
+ // ver 1.2.6
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.6 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
11
-
12
- // Dynamic module loader function (like Finsweet's approach)
13
- const loadModule = async (moduleName) => {
14
- console.log(`📦 Loading module: ${moduleName}`);
15
- const baseURL = new URL('./', import.meta.url).href;
16
- console.log(`📂 Base URL: ${baseURL}`);
17
-
18
- switch (moduleName) {
19
- case "data-hs-anim-text":
20
- return import(new URL('./animations/text.js', import.meta.url).href);
21
- case "data-hs-anim-hero":
22
- return import(new URL('./animations/hero.js', import.meta.url).href);
23
- case "data-hs-anim-transition":
24
- return import(new URL('./animations/transition.js', import.meta.url).href);
25
- case "data-hs-util-toc":
26
- return import(new URL('./utils/toc.js', import.meta.url).href);
27
- case "data-hs-util-progress":
28
- return import(new URL('./utils/scroll-progress.js', import.meta.url).href);
29
- case "data-hs-util-navbar":
30
- return import(new URL('./utils/navbar.js', import.meta.url).href);
31
- case "smooth-scroll":
32
- return import(new URL('./autoInit/smooth-scroll.js', import.meta.url).href);
33
- default:
34
- console.error(`❌ Unsupported module: ${moduleName}`);
35
- throw new Error(`HortonStudio module "${moduleName}" is not supported.`);
9
+ // Main initialization function
10
+ const initializeHsMain = () => {
11
+ // Handle existing API
12
+ if (window[API_NAME] && !Array.isArray(window[API_NAME]) && window[API_NAME].loaded) {
13
+ console.log('⚠️ API already loaded, skipping initialization');
14
+ return;
36
15
  }
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
16
 
64
- const utilityModules = {
65
- "data-hs-util-toc": true,
66
- "data-hs-util-progress": true,
67
- "data-hs-util-navbar": true
68
- };
17
+ // Store any early API calls
18
+ const existingRequests = Array.isArray(window[API_NAME]) ? window[API_NAME] : [];
69
19
 
70
- // Modules that auto-initialize
71
- const autoInitModules = {
72
- "smooth-scroll": true
73
- };
20
+ // Module definitions
21
+ const animationModules = {
22
+ "data-hs-anim-text": true,
23
+ "data-hs-anim-hero": true,
24
+ "data-hs-anim-transition": true
25
+ };
74
26
 
75
- // Store callbacks to run after Webflow.ready()
76
- const postWebflowCallbacks = [];
27
+ const utilityModules = {
28
+ "data-hs-util-toc": true,
29
+ "data-hs-util-progress": true,
30
+ "data-hs-util-navbar": true
31
+ };
77
32
 
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
- };
33
+ const autoInitModules = {
34
+ "smooth-scroll": true
35
+ };
87
36
 
88
- const processModules = async (scriptTag) => {
89
- console.log(`⚙️ Processing modules with script tag:`, scriptTag);
90
- const modulePromises = [];
37
+ // All available modules
38
+ const allModules = { ...animationModules, ...utilityModules };
91
39
 
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));
40
+ // Dynamic module loader (like Finsweet)
41
+ const loadModule = async (moduleName) => {
42
+ console.log(`📦 Loading module: ${moduleName}`);
43
+
44
+ switch (moduleName) {
45
+ case "data-hs-anim-text":
46
+ return import(new URL('./animations/text.js', import.meta.url).href);
47
+ case "data-hs-anim-hero":
48
+ return import(new URL('./animations/hero.js', import.meta.url).href);
49
+ case "data-hs-anim-transition":
50
+ return import(new URL('./animations/transition.js', import.meta.url).href);
51
+ case "data-hs-util-toc":
52
+ return import(new URL('./utils/toc.js', import.meta.url).href);
53
+ case "data-hs-util-progress":
54
+ return import(new URL('./utils/scroll-progress.js', import.meta.url).href);
55
+ case "data-hs-util-navbar":
56
+ return import(new URL('./utils/navbar.js', import.meta.url).href);
57
+ case "smooth-scroll":
58
+ return import(new URL('./autoInit/smooth-scroll.js', import.meta.url).href);
59
+ default:
60
+ console.error(`❌ Unsupported module: ${moduleName}`);
61
+ throw new Error(`${API_NAME} module "${moduleName}" is not supported.`);
100
62
  }
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
- }
63
+ };
109
64
 
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';
65
+ // Webflow ready helper (like Finsweet)
66
+ const waitWebflowReady = async () => {
67
+ return new Promise((resolve) => {
68
+ window.Webflow ||= [];
69
+ window.Webflow.push(resolve);
115
70
  });
116
- }
71
+ };
117
72
 
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`);
73
+ // DOM ready helper (like Finsweet)
74
+ const waitDOMReady = async () => {
75
+ return new Promise((resolve) => {
76
+ if (document.readyState === 'loading') {
77
+ document.addEventListener('DOMContentLoaded', resolve);
78
+ } else {
79
+ resolve();
80
+ }
81
+ });
82
+ };
122
83
 
123
- // Always refresh Webflow after all modules are loaded
124
- refreshWebflow();
125
- };
84
+ // Find script tags (Finsweet approach)
85
+ const scripts = [...document.querySelectorAll(`script[type="module"][src="${import.meta.url}"]`)];
86
+ console.log(`📄 Found ${scripts.length} matching script tags`);
126
87
 
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();
133
- } else {
134
- console.log(`⚠️ Webflow not detected`);
88
+ // Module loading function
89
+ const loadHsModule = async (moduleName) => {
90
+ console.log(`🔄 loadHsModule called for: ${moduleName}`);
91
+
92
+ const apiInstance = window[API_NAME];
93
+
94
+ // Check if already processing
95
+ if (apiInstance.process.has(moduleName)) {
96
+ console.log(`⚠️ Module ${moduleName} already processing`);
97
+ return apiInstance.modules[moduleName]?.loading;
135
98
  }
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);
152
- };
153
-
154
- const loadHsModule = async (moduleName) => {
155
- console.log(`🔄 loadHsModule called for: ${moduleName}`);
156
- 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
-
163
- if (apiInstance.process.has(moduleName)) {
164
- console.log(`⚠️ Module ${moduleName} already processing, returning existing promise`);
165
- return apiInstance.modules[moduleName]?.loading;
166
- }
167
-
168
- console.log(`➕ Adding ${moduleName} to process set`);
169
- apiInstance.process.add(moduleName);
170
-
171
- const moduleObj = apiInstance.modules[moduleName] || {};
172
- apiInstance.modules[moduleName] = moduleObj;
173
-
174
- moduleObj.loading = new Promise((resolve, reject) => {
175
- moduleObj.resolve = resolve;
176
- moduleObj.reject = reject;
177
- });
178
-
179
- try {
180
- console.log(`📦 Importing ${moduleName}...`);
181
- const { init, version } = await loadModule(moduleName);
182
- console.log(`✅ ${moduleName} imported, version: ${version}`);
183
99
 
184
- console.log(`🔧 Initializing ${moduleName}...`);
185
- const initResult = await init();
186
- const { result, destroy } = initResult || {};
187
- console.log(`✅ ${moduleName} initialized:`, result);
188
-
189
- moduleObj.version = version;
100
+ // Add to processing set
101
+ console.log(`➕ Adding ${moduleName} to process set`);
102
+ apiInstance.process.add(moduleName);
190
103
 
191
- // Finsweet-style destroy and restart methods
192
- moduleObj.destroy = () => {
193
- destroy?.();
194
- apiInstance.process.delete(moduleName);
195
- };
104
+ // Create module object
105
+ const moduleObj = apiInstance.modules[moduleName] || {};
106
+ apiInstance.modules[moduleName] = moduleObj;
196
107
 
197
- moduleObj.restart = () => {
198
- moduleObj.destroy?.();
199
- return apiInstance.load(moduleName);
200
- };
201
-
202
- moduleObj.resolve?.(result);
203
- delete moduleObj.resolve;
204
- delete moduleObj.reject;
205
-
206
- return result;
207
-
208
- } catch (error) {
209
- console.error(`❌ Failed to load ${moduleName}:`, error);
210
- moduleObj.reject?.(error);
211
- apiInstance.process.delete(moduleName);
212
- throw error;
213
- }
214
- };
215
-
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
- }
228
-
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';
108
+ // Create loading promise
109
+ moduleObj.loading = new Promise((resolve, reject) => {
110
+ moduleObj.resolve = resolve;
111
+ moduleObj.reject = reject;
261
112
  });
262
- });
113
+
114
+ try {
115
+ console.log(`📦 Importing ${moduleName}...`);
116
+ const { init, version } = await loadModule(moduleName);
117
+ console.log(`✅ ${moduleName} imported, version: ${version}`);
118
+
119
+ console.log(`🔧 Initializing ${moduleName}...`);
120
+ const initResult = await init();
121
+ const { result, destroy } = initResult || {};
122
+ console.log(`✅ ${moduleName} initialized:`, result);
123
+
124
+ moduleObj.version = version;
125
+
126
+ // Add destroy and restart methods
127
+ moduleObj.destroy = () => {
128
+ destroy?.();
129
+ apiInstance.process.delete(moduleName);
130
+ };
131
+
132
+ moduleObj.restart = () => {
133
+ moduleObj.destroy?.();
134
+ return apiInstance.load(moduleName);
135
+ };
136
+
137
+ moduleObj.resolve?.(result);
138
+ delete moduleObj.resolve;
139
+ delete moduleObj.reject;
140
+
141
+ return result;
142
+
143
+ } catch (error) {
144
+ console.error(`❌ Failed to load ${moduleName}:`, error);
145
+ moduleObj.reject?.(error);
146
+ apiInstance.process.delete(moduleName);
147
+ throw error;
148
+ }
149
+ };
263
150
 
151
+ // Initialize API
264
152
  window[API_NAME] = {
265
153
  scripts,
266
154
  modules: {},
267
155
  process: new Set(),
268
156
  load: loadHsModule,
157
+ loaded: false,
269
158
 
270
- // Push method for queuing (like Finsweet)
159
+ // Push method for queuing
271
160
  push(...requests) {
272
161
  for (let [moduleName, callback] of requests) {
273
162
  if (typeof callback === 'function') {
@@ -284,21 +173,8 @@ const initializeAPI = () => {
284
173
  this.modules[moduleName]?.destroy?.();
285
174
  }
286
175
  },
287
-
288
- // API function for scripts to register post-initialization callbacks
289
- afterReady: (callback) => {
290
- if (typeof callback === 'function') {
291
- postWebflowCallbacks.push(callback);
292
- }
293
- },
294
176
 
295
- // Legacy alias for Webflow compatibility
296
- afterWebflowReady: (callback) => {
297
- if (typeof callback === 'function') {
298
- postWebflowCallbacks.push(callback);
299
- }
300
- },
301
-
177
+ // Status method
302
178
  status(moduleName) {
303
179
  if (!moduleName) {
304
180
  return {
@@ -316,73 +192,101 @@ const initializeAPI = () => {
316
192
  }
317
193
  };
318
194
 
319
- processAPI();
320
-
321
- // Process any queued requests
322
- window[API_NAME].push(...existingRequests);
323
- };
324
-
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';
195
+ // Process modules from script tags
196
+ const processScriptModules = () => {
197
+ console.log(`⚙️ Processing ${scripts.length} script tags`);
330
198
 
331
- // Load modules based on script attributes
332
- for (const moduleName of Object.keys({ ...animationModules, ...utilityModules })) {
333
- if (script.hasAttribute(moduleName)) {
334
- loadHsModule(moduleName);
335
- }
336
- }
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('*');
199
+ for (const script of scripts) {
200
+ console.log(`🏷️ Processing script:`, script.src);
344
201
 
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]);
351
- }
202
+ // Check for auto mode
203
+ const autoMode = script.getAttribute('data-hs-auto') === 'true';
204
+ console.log(`🔍 Auto mode: ${autoMode}`);
205
+
206
+ // Load modules based on script attributes
207
+ for (const moduleName of Object.keys(allModules)) {
208
+ if (script.hasAttribute(moduleName)) {
209
+ console.log(`✅ Found attribute for: ${moduleName}`);
210
+ loadHsModule(moduleName);
352
211
  }
353
212
  }
354
213
 
355
- for (let moduleName of foundModules) {
356
- loadHsModule(moduleName);
214
+ // Auto-discovery mode
215
+ if (autoMode) {
216
+ waitDOMReady().then(() => {
217
+ console.log(`🔍 Starting auto-discovery...`);
218
+ const foundModules = new Set();
219
+ const allElements = document.querySelectorAll('*');
220
+
221
+ for (const element of allElements) {
222
+ for (const attrName of element.getAttributeNames()) {
223
+ // Look for data-hs-* attributes
224
+ const match = attrName.match(/^(data-hs-(?:anim|util)-[^-=]+)/)?.[1];
225
+ if (match && allModules[match]) {
226
+ foundModules.add(match);
227
+ }
228
+ }
229
+ }
230
+
231
+ console.log(`🔍 Auto-discovered modules:`, [...foundModules]);
232
+ for (const moduleName of foundModules) {
233
+ loadHsModule(moduleName);
234
+ }
235
+ });
357
236
  }
358
- });
359
- }
360
-
361
- // Always load auto-init modules
362
- for (const moduleName of Object.keys(autoInitModules)) {
363
- try {
237
+ }
238
+
239
+ // Always load auto-init modules
240
+ console.log(`🔄 Loading auto-init modules:`, Object.keys(autoInitModules));
241
+ for (const moduleName of Object.keys(autoInitModules)) {
364
242
  loadHsModule(moduleName);
365
- } catch (error) {
366
- console.error(`❌ Failed to load auto-init module ${moduleName}:`, error);
367
243
  }
368
- }
369
-
370
- // 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
- );
374
- if (!hasTransition) {
375
- const transitionElements = document.querySelectorAll('.transition');
376
- transitionElements.forEach(element => {
377
- element.style.display = 'none';
244
+
245
+ // Hide .transition elements if transition module is not loaded
246
+ const hasTransition = scripts.some(script => script.hasAttribute('data-hs-anim-transition'));
247
+ if (!hasTransition) {
248
+ const transitionElements = document.querySelectorAll('.transition');
249
+ transitionElements.forEach(element => {
250
+ element.style.display = 'none';
251
+ });
252
+ }
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';
378
261
  });
379
- }
262
+ });
263
+
264
+ // Main initialization
265
+ const initializeMain = async () => {
266
+ console.log(`🚀 Starting main initialization...`);
267
+
268
+ // Process script modules
269
+ processScriptModules();
270
+
271
+ // Wait for Webflow
272
+ console.log(`⏳ Waiting for Webflow...`);
273
+ await waitWebflowReady();
274
+ console.log(`✅ Webflow ready`);
275
+
276
+ // Mark as loaded
277
+ window[API_NAME].loaded = true;
278
+ console.log(`🎉 ${API_NAME} fully loaded and ready!`);
279
+ };
280
+
281
+ // Process any early requests
282
+ console.log(`📝 Processing ${existingRequests.length} early requests`);
283
+ window[API_NAME].push(...existingRequests);
284
+
285
+ // Start initialization
286
+ initializeMain().catch(error => {
287
+ console.error(`❌ Failed to initialize ${API_NAME}:`, error);
288
+ });
380
289
  };
381
290
 
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
- }
291
+ // Run initialization
292
+ initializeHsMain();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hortonstudio/main",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {