@hortonstudio/main 1.2.11 → 1.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +23 -10
- package/package.json +17 -6
- package/.claude/settings.local.json +0 -21
- package/animations/hero.js +0 -599
- package/animations/text.js +0 -369
- package/animations/transition.js +0 -57
- package/attributes-master/.changeset/README.md +0 -8
- package/attributes-master/.changeset/config.json +0 -11
- package/attributes-master/.gitattributes +0 -2
- package/attributes-master/.github/ISSUE_TEMPLATE/bug_report.md +0 -42
- package/attributes-master/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
- package/attributes-master/.github/workflows/ci.yml +0 -66
- package/attributes-master/.github/workflows/release.yml +0 -40
- package/attributes-master/.prettierignore +0 -3
- package/attributes-master/.prettierrc +0 -8
- package/attributes-master/.vscode/extensions.json +0 -3
- package/attributes-master/.vscode/settings.json +0 -7
- package/attributes-master/CONTRIBUTING.md +0 -72
- package/attributes-master/LICENSE.md +0 -201
- package/attributes-master/README.md +0 -31
- package/attributes-master/eslint.config.js +0 -3
- package/attributes-master/package.json +0 -34
- package/attributes-master/packages/accordion/CHANGELOG.md +0 -89
- package/attributes-master/packages/accordion/README.md +0 -31
- package/attributes-master/packages/accordion/package.json +0 -25
- package/attributes-master/packages/accordion/src/actions/a11y.ts +0 -39
- package/attributes-master/packages/accordion/src/actions/classes.ts +0 -27
- package/attributes-master/packages/accordion/src/actions/content.ts +0 -42
- package/attributes-master/packages/accordion/src/actions/list.ts +0 -36
- package/attributes-master/packages/accordion/src/actions/query.ts +0 -27
- package/attributes-master/packages/accordion/src/actions/settings.ts +0 -61
- package/attributes-master/packages/accordion/src/factory.ts +0 -145
- package/attributes-master/packages/accordion/src/index.ts +0 -3
- package/attributes-master/packages/accordion/src/init.ts +0 -37
- package/attributes-master/packages/accordion/src/utils/constants.ts +0 -62
- package/attributes-master/packages/accordion/src/utils/helpers.ts +0 -5
- package/attributes-master/packages/accordion/src/utils/selectors.ts +0 -12
- package/attributes-master/packages/accordion/src/utils/types.ts +0 -23
- package/attributes-master/packages/accordion/tsconfig.json +0 -3
- package/attributes-master/packages/attributes/CHANGELOG.md +0 -564
- package/attributes-master/packages/attributes/README.md +0 -66
- package/attributes-master/packages/attributes/bin/build.ts +0 -107
- package/attributes-master/packages/attributes/bin/live-reload.js +0 -1
- package/attributes-master/packages/attributes/package.json +0 -77
- package/attributes-master/packages/attributes/playwright.config.ts +0 -89
- package/attributes-master/packages/attributes/src/attributes.ts +0 -153
- package/attributes-master/packages/attributes/src/load.ts +0 -125
- package/attributes-master/packages/attributes/tests/accordion.spec.ts +0 -137
- package/attributes-master/packages/attributes/tests/codehighlight.spec.ts +0 -23
- package/attributes-master/packages/attributes/tests/combobox.spec.ts +0 -321
- package/attributes-master/packages/attributes/tests/copyclip.spec.ts +0 -19
- package/attributes-master/packages/attributes/tests/displayvalues.spec.ts +0 -48
- package/attributes-master/packages/attributes/tests/favcustom.spec.ts +0 -23
- package/attributes-master/packages/attributes/tests/inject.spec.ts +0 -40
- package/attributes-master/packages/attributes/tests/inputactive.spec.ts +0 -77
- package/attributes-master/packages/attributes/tests/inputcounter.spec.ts +0 -83
- package/attributes-master/packages/attributes/tests/list.spec.ts +0 -800
- package/attributes-master/packages/attributes/tests/mirrorclick.spec.ts +0 -22
- package/attributes-master/packages/attributes/tests/mirrorinput.spec.ts +0 -37
- package/attributes-master/packages/attributes/tests/modal.spec.ts +0 -34
- package/attributes-master/packages/attributes/tests/numbercount.spec.ts +0 -40
- package/attributes-master/packages/attributes/tests/readtime.spec.ts +0 -19
- package/attributes-master/packages/attributes/tests/selectcustom.spec.ts +0 -51
- package/attributes-master/packages/attributes/tests/socialshare.spec.ts +0 -54
- package/attributes-master/packages/attributes/tests/starrating.spec.ts +0 -79
- package/attributes-master/packages/attributes/tests/toc.spec.ts +0 -38
- package/attributes-master/packages/attributes/tests/utils/index.ts +0 -16
- package/attributes-master/packages/attributes/tsconfig.json +0 -6
- package/attributes-master/packages/autovideo/CHANGELOG.md +0 -182
- package/attributes-master/packages/autovideo/README.md +0 -31
- package/attributes-master/packages/autovideo/package.json +0 -22
- package/attributes-master/packages/autovideo/src/index.ts +0 -3
- package/attributes-master/packages/autovideo/src/init.ts +0 -52
- package/attributes-master/packages/autovideo/src/types.ts +0 -5
- package/attributes-master/packages/autovideo/src/utils/constants.ts +0 -4
- package/attributes-master/packages/autovideo/tsconfig.json +0 -3
- package/attributes-master/packages/codehighlight/CHANGELOG.md +0 -185
- package/attributes-master/packages/codehighlight/README.md +0 -27
- package/attributes-master/packages/codehighlight/package.json +0 -23
- package/attributes-master/packages/codehighlight/src/actions/import.ts +0 -50
- package/attributes-master/packages/codehighlight/src/index.ts +0 -3
- package/attributes-master/packages/codehighlight/src/init.ts +0 -53
- package/attributes-master/packages/codehighlight/src/utils/constants.ts +0 -24
- package/attributes-master/packages/codehighlight/src/utils/selectors.ts +0 -5
- package/attributes-master/packages/codehighlight/src/utils/themes.ts +0 -202
- package/attributes-master/packages/codehighlight/tsconfig.json +0 -3
- package/attributes-master/packages/combobox/CHANGELOG.md +0 -99
- package/attributes-master/packages/combobox/README.md +0 -27
- package/attributes-master/packages/combobox/package.json +0 -23
- package/attributes-master/packages/combobox/src/actions/a11y.ts +0 -29
- package/attributes-master/packages/combobox/src/actions/body/index.ts +0 -12
- package/attributes-master/packages/combobox/src/actions/clearDropdown/index.ts +0 -37
- package/attributes-master/packages/combobox/src/actions/dropdownList/index.ts +0 -220
- package/attributes-master/packages/combobox/src/actions/dropdownToggle/index.ts +0 -34
- package/attributes-master/packages/combobox/src/actions/events.ts +0 -75
- package/attributes-master/packages/combobox/src/actions/input/index.ts +0 -235
- package/attributes-master/packages/combobox/src/actions/observe.ts +0 -158
- package/attributes-master/packages/combobox/src/actions/populate.ts +0 -97
- package/attributes-master/packages/combobox/src/actions/selectElement/index.ts +0 -23
- package/attributes-master/packages/combobox/src/actions/settings.ts +0 -134
- package/attributes-master/packages/combobox/src/actions/state.ts +0 -34
- package/attributes-master/packages/combobox/src/index.ts +0 -3
- package/attributes-master/packages/combobox/src/init.ts +0 -52
- package/attributes-master/packages/combobox/src/utils/constants.ts +0 -48
- package/attributes-master/packages/combobox/src/utils/dropdowns.ts +0 -120
- package/attributes-master/packages/combobox/src/utils/index.ts +0 -1
- package/attributes-master/packages/combobox/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/combobox/src/utils/types.ts +0 -14
- package/attributes-master/packages/combobox/tsconfig.json +0 -3
- package/attributes-master/packages/copyclip/CHANGELOG.md +0 -213
- package/attributes-master/packages/copyclip/README.md +0 -27
- package/attributes-master/packages/copyclip/package.json +0 -23
- package/attributes-master/packages/copyclip/src/factory.ts +0 -67
- package/attributes-master/packages/copyclip/src/index.ts +0 -3
- package/attributes-master/packages/copyclip/src/init.ts +0 -68
- package/attributes-master/packages/copyclip/src/utils/constants.ts +0 -40
- package/attributes-master/packages/copyclip/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/copyclip/tsconfig.json +0 -3
- package/attributes-master/packages/displayvalues/CHANGELOG.md +0 -164
- package/attributes-master/packages/displayvalues/README.md +0 -27
- package/attributes-master/packages/displayvalues/package.json +0 -22
- package/attributes-master/packages/displayvalues/src/actions/collect.ts +0 -17
- package/attributes-master/packages/displayvalues/src/actions/events.ts +0 -22
- package/attributes-master/packages/displayvalues/src/actions/sync.ts +0 -23
- package/attributes-master/packages/displayvalues/src/index.ts +0 -3
- package/attributes-master/packages/displayvalues/src/init.ts +0 -31
- package/attributes-master/packages/displayvalues/src/utils/constants.ts +0 -20
- package/attributes-master/packages/displayvalues/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/displayvalues/src/utils/stores.ts +0 -3
- package/attributes-master/packages/displayvalues/tsconfig.json +0 -3
- package/attributes-master/packages/docs/CHANGELOG.md +0 -108
- package/attributes-master/packages/docs/README.md +0 -3
- package/attributes-master/packages/docs/bin/build.js +0 -92
- package/attributes-master/packages/docs/bin/live-reload.js +0 -1
- package/attributes-master/packages/docs/package.json +0 -40
- package/attributes-master/packages/docs/src/copy.ts +0 -260
- package/attributes-master/packages/docs/src/x-ray.ts +0 -377
- package/attributes-master/packages/docs/tsconfig.json +0 -3
- package/attributes-master/packages/favcustom/CHANGELOG.md +0 -194
- package/attributes-master/packages/favcustom/README.md +0 -27
- package/attributes-master/packages/favcustom/package.json +0 -22
- package/attributes-master/packages/favcustom/src/index.ts +0 -3
- package/attributes-master/packages/favcustom/src/init.ts +0 -30
- package/attributes-master/packages/favcustom/src/utils/constants.ts +0 -10
- package/attributes-master/packages/favcustom/src/utils/selectors.ts +0 -5
- package/attributes-master/packages/favcustom/tsconfig.json +0 -3
- package/attributes-master/packages/formsubmit/CHANGELOG.md +0 -161
- package/attributes-master/packages/formsubmit/README.md +0 -51
- package/attributes-master/packages/formsubmit/package.json +0 -22
- package/attributes-master/packages/formsubmit/src/actions/redirect.ts +0 -9
- package/attributes-master/packages/formsubmit/src/actions/reset.ts +0 -49
- package/attributes-master/packages/formsubmit/src/actions/submit.ts +0 -34
- package/attributes-master/packages/formsubmit/src/components/Form.ts +0 -231
- package/attributes-master/packages/formsubmit/src/factory.ts +0 -62
- package/attributes-master/packages/formsubmit/src/index.ts +0 -3
- package/attributes-master/packages/formsubmit/src/init.ts +0 -24
- package/attributes-master/packages/formsubmit/src/utils/attributes.ts +0 -19
- package/attributes-master/packages/formsubmit/src/utils/constants.ts +0 -89
- package/attributes-master/packages/formsubmit/src/utils/dom.ts +0 -76
- package/attributes-master/packages/formsubmit/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/formsubmit/src/utils/types.ts +0 -7
- package/attributes-master/packages/formsubmit/tsconfig.json +0 -3
- package/attributes-master/packages/inject/CHANGELOG.md +0 -117
- package/attributes-master/packages/inject/README.md +0 -60
- package/attributes-master/packages/inject/package.json +0 -22
- package/attributes-master/packages/inject/src/actions/collect.ts +0 -125
- package/attributes-master/packages/inject/src/actions/css.ts +0 -27
- package/attributes-master/packages/inject/src/actions/prefetch.ts +0 -44
- package/attributes-master/packages/inject/src/factory.ts +0 -123
- package/attributes-master/packages/inject/src/index.ts +0 -3
- package/attributes-master/packages/inject/src/init.ts +0 -22
- package/attributes-master/packages/inject/src/utils/constants.ts +0 -89
- package/attributes-master/packages/inject/src/utils/helpers.ts +0 -36
- package/attributes-master/packages/inject/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/inject/src/utils/types.ts +0 -16
- package/attributes-master/packages/inject/tsconfig.json +0 -3
- package/attributes-master/packages/inputactive/CHANGELOG.md +0 -58
- package/attributes-master/packages/inputactive/README.md +0 -25
- package/attributes-master/packages/inputactive/package.json +0 -22
- package/attributes-master/packages/inputactive/src/actions/classes.ts +0 -43
- package/attributes-master/packages/inputactive/src/factory.ts +0 -24
- package/attributes-master/packages/inputactive/src/index.ts +0 -3
- package/attributes-master/packages/inputactive/src/init.ts +0 -18
- package/attributes-master/packages/inputactive/src/utils/constants.ts +0 -13
- package/attributes-master/packages/inputactive/src/utils/selectors.ts +0 -5
- package/attributes-master/packages/inputactive/tsconfig.json +0 -3
- package/attributes-master/packages/inputcounter/CHANGELOG.md +0 -110
- package/attributes-master/packages/inputcounter/README.md +0 -25
- package/attributes-master/packages/inputcounter/package.json +0 -22
- package/attributes-master/packages/inputcounter/src/actions/a11y.ts +0 -23
- package/attributes-master/packages/inputcounter/src/actions/buttons.ts +0 -61
- package/attributes-master/packages/inputcounter/src/actions/input.ts +0 -31
- package/attributes-master/packages/inputcounter/src/actions/style.ts +0 -12
- package/attributes-master/packages/inputcounter/src/factory.ts +0 -51
- package/attributes-master/packages/inputcounter/src/index.ts +0 -3
- package/attributes-master/packages/inputcounter/src/init.ts +0 -22
- package/attributes-master/packages/inputcounter/src/utils/constants.ts +0 -59
- package/attributes-master/packages/inputcounter/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/inputcounter/tsconfig.json +0 -3
- package/attributes-master/packages/list/CHANGELOG.md +0 -185
- package/attributes-master/packages/list/README.md +0 -331
- package/attributes-master/packages/list/package.json +0 -37
- package/attributes-master/packages/list/src/combine/index.ts +0 -38
- package/attributes-master/packages/list/src/components/List.ts +0 -861
- package/attributes-master/packages/list/src/components/ListItem.ts +0 -229
- package/attributes-master/packages/list/src/components/index.ts +0 -2
- package/attributes-master/packages/list/src/factory.ts +0 -130
- package/attributes-master/packages/list/src/filter/dynamic/conditions.ts +0 -639
- package/attributes-master/packages/list/src/filter/dynamic/groups.ts +0 -221
- package/attributes-master/packages/list/src/filter/dynamic/index.ts +0 -119
- package/attributes-master/packages/list/src/filter/dynamic/utils.ts +0 -44
- package/attributes-master/packages/list/src/filter/elements.ts +0 -93
- package/attributes-master/packages/list/src/filter/filter.ts +0 -118
- package/attributes-master/packages/list/src/filter/filter.worker.ts +0 -152
- package/attributes-master/packages/list/src/filter/index.ts +0 -94
- package/attributes-master/packages/list/src/filter/standard/conditions.ts +0 -123
- package/attributes-master/packages/list/src/filter/standard/facets.ts +0 -253
- package/attributes-master/packages/list/src/filter/standard/index.ts +0 -176
- package/attributes-master/packages/list/src/filter/standard/query.ts +0 -111
- package/attributes-master/packages/list/src/filter/tags.ts +0 -314
- package/attributes-master/packages/list/src/filter/types.ts +0 -62
- package/attributes-master/packages/list/src/filter/utils.ts +0 -126
- package/attributes-master/packages/list/src/index.ts +0 -4
- package/attributes-master/packages/list/src/init.ts +0 -38
- package/attributes-master/packages/list/src/load/all.ts +0 -27
- package/attributes-master/packages/list/src/load/elements.ts +0 -39
- package/attributes-master/packages/list/src/load/index.ts +0 -63
- package/attributes-master/packages/list/src/load/infinite.ts +0 -79
- package/attributes-master/packages/list/src/load/load.ts +0 -191
- package/attributes-master/packages/list/src/load/more.ts +0 -97
- package/attributes-master/packages/list/src/load/pagination.ts +0 -402
- package/attributes-master/packages/list/src/nest/index.ts +0 -198
- package/attributes-master/packages/list/src/prevnext/index.ts +0 -98
- package/attributes-master/packages/list/src/select/index.ts +0 -56
- package/attributes-master/packages/list/src/slider/index.ts +0 -62
- package/attributes-master/packages/list/src/sort/buttons.ts +0 -96
- package/attributes-master/packages/list/src/sort/dropdown.ts +0 -179
- package/attributes-master/packages/list/src/sort/index.ts +0 -81
- package/attributes-master/packages/list/src/sort/query.ts +0 -63
- package/attributes-master/packages/list/src/sort/select.ts +0 -67
- package/attributes-master/packages/list/src/sort/sort.ts +0 -79
- package/attributes-master/packages/list/src/sort/types.ts +0 -28
- package/attributes-master/packages/list/src/static/index.ts +0 -73
- package/attributes-master/packages/list/src/tabs/index.ts +0 -97
- package/attributes-master/packages/list/src/utils/constants.ts +0 -728
- package/attributes-master/packages/list/src/utils/dom.ts +0 -108
- package/attributes-master/packages/list/src/utils/pagination.ts +0 -14
- package/attributes-master/packages/list/src/utils/selectors.ts +0 -18
- package/attributes-master/packages/list/src/utils/store.ts +0 -5
- package/attributes-master/packages/list/tsconfig.json +0 -3
- package/attributes-master/packages/mirrorclick/CHANGELOG.md +0 -171
- package/attributes-master/packages/mirrorclick/README.md +0 -25
- package/attributes-master/packages/mirrorclick/package.json +0 -22
- package/attributes-master/packages/mirrorclick/src/index.ts +0 -3
- package/attributes-master/packages/mirrorclick/src/init.ts +0 -35
- package/attributes-master/packages/mirrorclick/src/utils/constants.ts +0 -20
- package/attributes-master/packages/mirrorclick/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/mirrorclick/tsconfig.json +0 -3
- package/attributes-master/packages/mirrorinput/CHANGELOG.md +0 -172
- package/attributes-master/packages/mirrorinput/README.md +0 -25
- package/attributes-master/packages/mirrorinput/package.json +0 -22
- package/attributes-master/packages/mirrorinput/src/index.ts +0 -3
- package/attributes-master/packages/mirrorinput/src/init.ts +0 -48
- package/attributes-master/packages/mirrorinput/src/utils/constants.ts +0 -15
- package/attributes-master/packages/mirrorinput/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/mirrorinput/tsconfig.json +0 -3
- package/attributes-master/packages/modal/CHANGELOG.md +0 -94
- package/attributes-master/packages/modal/README.md +0 -29
- package/attributes-master/packages/modal/package.json +0 -23
- package/attributes-master/packages/modal/src/actions/a11y.ts +0 -46
- package/attributes-master/packages/modal/src/actions/modal.ts +0 -164
- package/attributes-master/packages/modal/src/actions/settings.ts +0 -21
- package/attributes-master/packages/modal/src/factory.ts +0 -26
- package/attributes-master/packages/modal/src/index.ts +0 -3
- package/attributes-master/packages/modal/src/init.ts +0 -22
- package/attributes-master/packages/modal/src/utils/constants.ts +0 -54
- package/attributes-master/packages/modal/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/modal/src/utils/types.ts +0 -12
- package/attributes-master/packages/modal/tsconfig.json +0 -3
- package/attributes-master/packages/numbercount/CHANGELOG.md +0 -90
- package/attributes-master/packages/numbercount/README.md +0 -27
- package/attributes-master/packages/numbercount/package.json +0 -23
- package/attributes-master/packages/numbercount/src/actions/a11y.ts +0 -26
- package/attributes-master/packages/numbercount/src/actions/animate.ts +0 -43
- package/attributes-master/packages/numbercount/src/actions/observe.ts +0 -44
- package/attributes-master/packages/numbercount/src/factory.ts +0 -31
- package/attributes-master/packages/numbercount/src/index.ts +0 -3
- package/attributes-master/packages/numbercount/src/init.ts +0 -22
- package/attributes-master/packages/numbercount/src/utils/constants.ts +0 -40
- package/attributes-master/packages/numbercount/src/utils/helpers.ts +0 -31
- package/attributes-master/packages/numbercount/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/numbercount/tsconfig.json +0 -3
- package/attributes-master/packages/queryparam/CHANGELOG.md +0 -118
- package/attributes-master/packages/queryparam/README.md +0 -25
- package/attributes-master/packages/queryparam/package.json +0 -22
- package/attributes-master/packages/queryparam/src/factory.ts +0 -51
- package/attributes-master/packages/queryparam/src/index.ts +0 -3
- package/attributes-master/packages/queryparam/src/init.ts +0 -40
- package/attributes-master/packages/queryparam/src/utils/constants.ts +0 -18
- package/attributes-master/packages/queryparam/src/utils/selectors.ts +0 -5
- package/attributes-master/packages/queryparam/tsconfig.json +0 -3
- package/attributes-master/packages/rangeslider/CHANGELOG.md +0 -236
- package/attributes-master/packages/rangeslider/README.md +0 -95
- package/attributes-master/packages/rangeslider/package.json +0 -23
- package/attributes-master/packages/rangeslider/src/actions/a11y.ts +0 -21
- package/attributes-master/packages/rangeslider/src/actions/events.ts +0 -9
- package/attributes-master/packages/rangeslider/src/actions/settings.ts +0 -97
- package/attributes-master/packages/rangeslider/src/actions/styles.ts +0 -10
- package/attributes-master/packages/rangeslider/src/actions/values.ts +0 -47
- package/attributes-master/packages/rangeslider/src/components/Fill.ts +0 -70
- package/attributes-master/packages/rangeslider/src/components/Handle.ts +0 -281
- package/attributes-master/packages/rangeslider/src/factory.ts +0 -100
- package/attributes-master/packages/rangeslider/src/index.ts +0 -3
- package/attributes-master/packages/rangeslider/src/init.ts +0 -194
- package/attributes-master/packages/rangeslider/src/utils/constants.ts +0 -87
- package/attributes-master/packages/rangeslider/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/rangeslider/src/utils/types.ts +0 -6
- package/attributes-master/packages/rangeslider/tsconfig.json +0 -3
- package/attributes-master/packages/readtime/CHANGELOG.md +0 -108
- package/attributes-master/packages/readtime/README.md +0 -25
- package/attributes-master/packages/readtime/package.json +0 -22
- package/attributes-master/packages/readtime/src/factory.ts +0 -21
- package/attributes-master/packages/readtime/src/index.ts +0 -3
- package/attributes-master/packages/readtime/src/init.ts +0 -19
- package/attributes-master/packages/readtime/src/utils/constants.ts +0 -33
- package/attributes-master/packages/readtime/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/readtime/tsconfig.json +0 -3
- package/attributes-master/packages/removequery/CHANGELOG.md +0 -8
- package/attributes-master/packages/removequery/README.md +0 -25
- package/attributes-master/packages/removequery/package.json +0 -22
- package/attributes-master/packages/removequery/src/index.ts +0 -3
- package/attributes-master/packages/removequery/src/init.ts +0 -18
- package/attributes-master/packages/removequery/src/utils/constants.ts +0 -5
- package/attributes-master/packages/removequery/tsconfig.json +0 -3
- package/attributes-master/packages/scrolldisable/CHANGELOG.md +0 -164
- package/attributes-master/packages/scrolldisable/README.md +0 -29
- package/attributes-master/packages/scrolldisable/package.json +0 -27
- package/attributes-master/packages/scrolldisable/src/click.ts +0 -40
- package/attributes-master/packages/scrolldisable/src/display.ts +0 -117
- package/attributes-master/packages/scrolldisable/src/index.ts +0 -3
- package/attributes-master/packages/scrolldisable/src/init.ts +0 -36
- package/attributes-master/packages/scrolldisable/src/scroll.ts +0 -63
- package/attributes-master/packages/scrolldisable/src/utils/constants.ts +0 -56
- package/attributes-master/packages/scrolldisable/src/utils/selectors.ts +0 -6
- package/attributes-master/packages/scrolldisable/tsconfig.json +0 -3
- package/attributes-master/packages/selectcustom/CHANGELOG.md +0 -242
- package/attributes-master/packages/selectcustom/README.md +0 -25
- package/attributes-master/packages/selectcustom/package.json +0 -23
- package/attributes-master/packages/selectcustom/src/actions/a11y.ts +0 -29
- package/attributes-master/packages/selectcustom/src/actions/events.ts +0 -159
- package/attributes-master/packages/selectcustom/src/actions/observe.ts +0 -83
- package/attributes-master/packages/selectcustom/src/actions/populate.ts +0 -67
- package/attributes-master/packages/selectcustom/src/actions/settings.ts +0 -68
- package/attributes-master/packages/selectcustom/src/actions/state.ts +0 -41
- package/attributes-master/packages/selectcustom/src/index.ts +0 -3
- package/attributes-master/packages/selectcustom/src/init.ts +0 -51
- package/attributes-master/packages/selectcustom/src/utils/constants.ts +0 -34
- package/attributes-master/packages/selectcustom/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/selectcustom/src/utils/types.ts +0 -14
- package/attributes-master/packages/selectcustom/tsconfig.json +0 -3
- package/attributes-master/packages/sliderdots/CHANGELOG.md +0 -220
- package/attributes-master/packages/sliderdots/README.md +0 -27
- package/attributes-master/packages/sliderdots/package.json +0 -22
- package/attributes-master/packages/sliderdots/src/actions/events.ts +0 -26
- package/attributes-master/packages/sliderdots/src/actions/observe.ts +0 -40
- package/attributes-master/packages/sliderdots/src/actions/populate.ts +0 -46
- package/attributes-master/packages/sliderdots/src/actions/sync.ts +0 -28
- package/attributes-master/packages/sliderdots/src/actions/wait.ts +0 -28
- package/attributes-master/packages/sliderdots/src/factory.ts +0 -57
- package/attributes-master/packages/sliderdots/src/index.ts +0 -3
- package/attributes-master/packages/sliderdots/src/init.ts +0 -30
- package/attributes-master/packages/sliderdots/src/utils/constants.ts +0 -33
- package/attributes-master/packages/sliderdots/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/sliderdots/src/utils/types.ts +0 -7
- package/attributes-master/packages/sliderdots/tsconfig.json +0 -3
- package/attributes-master/packages/smartlightbox/CHANGELOG.md +0 -203
- package/attributes-master/packages/smartlightbox/README.md +0 -25
- package/attributes-master/packages/smartlightbox/package.json +0 -22
- package/attributes-master/packages/smartlightbox/src/actions/collect.ts +0 -15
- package/attributes-master/packages/smartlightbox/src/actions/move.ts +0 -25
- package/attributes-master/packages/smartlightbox/src/index.ts +0 -3
- package/attributes-master/packages/smartlightbox/src/init.ts +0 -61
- package/attributes-master/packages/smartlightbox/src/utils/constants.ts +0 -31
- package/attributes-master/packages/smartlightbox/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/smartlightbox/tsconfig.json +0 -3
- package/attributes-master/packages/socialshare/CHANGELOG.md +0 -170
- package/attributes-master/packages/socialshare/README.md +0 -25
- package/attributes-master/packages/socialshare/package.json +0 -25
- package/attributes-master/packages/socialshare/src/actions/collect.ts +0 -93
- package/attributes-master/packages/socialshare/src/actions/share.ts +0 -91
- package/attributes-master/packages/socialshare/src/actions/trigger.ts +0 -46
- package/attributes-master/packages/socialshare/src/factory.ts +0 -149
- package/attributes-master/packages/socialshare/src/index.ts +0 -3
- package/attributes-master/packages/socialshare/src/init.ts +0 -35
- package/attributes-master/packages/socialshare/src/utils/constants.ts +0 -94
- package/attributes-master/packages/socialshare/src/utils/dom.ts +0 -8
- package/attributes-master/packages/socialshare/src/utils/selectors.ts +0 -6
- package/attributes-master/packages/socialshare/src/utils/stores.ts +0 -10
- package/attributes-master/packages/socialshare/src/utils/types.ts +0 -34
- package/attributes-master/packages/socialshare/tsconfig.json +0 -3
- package/attributes-master/packages/starrating/CHANGELOG.md +0 -70
- package/attributes-master/packages/starrating/README.md +0 -25
- package/attributes-master/packages/starrating/package.json +0 -22
- package/attributes-master/packages/starrating/src/actions/classes.ts +0 -41
- package/attributes-master/packages/starrating/src/actions/events.ts +0 -80
- package/attributes-master/packages/starrating/src/factory.ts +0 -24
- package/attributes-master/packages/starrating/src/index.ts +0 -3
- package/attributes-master/packages/starrating/src/init.ts +0 -24
- package/attributes-master/packages/starrating/src/utils/constants.ts +0 -20
- package/attributes-master/packages/starrating/src/utils/helpers.ts +0 -63
- package/attributes-master/packages/starrating/src/utils/selectors.ts +0 -9
- package/attributes-master/packages/starrating/tsconfig.json +0 -3
- package/attributes-master/packages/template/README.md +0 -25
- package/attributes-master/packages/template/package.json +0 -22
- package/attributes-master/packages/template/src/actions/console.ts +0 -4
- package/attributes-master/packages/template/src/index.ts +0 -3
- package/attributes-master/packages/template/src/init.ts +0 -14
- package/attributes-master/packages/template/src/utils/constants.ts +0 -18
- package/attributes-master/packages/template/src/utils/selectors.ts +0 -5
- package/attributes-master/packages/template/tsconfig.json +0 -3
- package/attributes-master/packages/toc/CHANGELOG.md +0 -192
- package/attributes-master/packages/toc/README.md +0 -25
- package/attributes-master/packages/toc/package.json +0 -23
- package/attributes-master/packages/toc/src/actions/collect.ts +0 -136
- package/attributes-master/packages/toc/src/actions/create.ts +0 -44
- package/attributes-master/packages/toc/src/actions/events.ts +0 -29
- package/attributes-master/packages/toc/src/actions/observe.ts +0 -31
- package/attributes-master/packages/toc/src/actions/populate.ts +0 -68
- package/attributes-master/packages/toc/src/actions/prepare.ts +0 -25
- package/attributes-master/packages/toc/src/actions/scroll.ts +0 -33
- package/attributes-master/packages/toc/src/components/TOCItem.ts +0 -88
- package/attributes-master/packages/toc/src/factory.ts +0 -47
- package/attributes-master/packages/toc/src/index.ts +0 -3
- package/attributes-master/packages/toc/src/init.ts +0 -37
- package/attributes-master/packages/toc/src/utils/constants.ts +0 -55
- package/attributes-master/packages/toc/src/utils/helpers.ts +0 -23
- package/attributes-master/packages/toc/src/utils/selectors.ts +0 -6
- package/attributes-master/packages/toc/src/utils/types.ts +0 -21
- package/attributes-master/packages/toc/tsconfig.json +0 -3
- package/attributes-master/packages/utils/CHANGELOG.md +0 -43
- package/attributes-master/packages/utils/package.json +0 -27
- package/attributes-master/packages/utils/src/animations/factory.ts +0 -100
- package/attributes-master/packages/utils/src/animations/index.ts +0 -73
- package/attributes-master/packages/utils/src/animations/types.ts +0 -37
- package/attributes-master/packages/utils/src/components/Interaction.ts +0 -79
- package/attributes-master/packages/utils/src/components/Renderer.ts +0 -59
- package/attributes-master/packages/utils/src/components/index.ts +0 -2
- package/attributes-master/packages/utils/src/constants/a11y.ts +0 -50
- package/attributes-master/packages/utils/src/constants/attributes.ts +0 -57
- package/attributes-master/packages/utils/src/constants/index.ts +0 -5
- package/attributes-master/packages/utils/src/constants/keyboard.ts +0 -10
- package/attributes-master/packages/utils/src/constants/webflow.ts +0 -74
- package/attributes-master/packages/utils/src/helpers/dates.ts +0 -17
- package/attributes-master/packages/utils/src/helpers/dom.ts +0 -82
- package/attributes-master/packages/utils/src/helpers/events.ts +0 -59
- package/attributes-master/packages/utils/src/helpers/fetch.ts +0 -217
- package/attributes-master/packages/utils/src/helpers/forms.ts +0 -238
- package/attributes-master/packages/utils/src/helpers/guards.ts +0 -138
- package/attributes-master/packages/utils/src/helpers/index.ts +0 -11
- package/attributes-master/packages/utils/src/helpers/numbers.ts +0 -86
- package/attributes-master/packages/utils/src/helpers/selectors.ts +0 -249
- package/attributes-master/packages/utils/src/helpers/strings.ts +0 -19
- package/attributes-master/packages/utils/src/helpers/wait.ts +0 -36
- package/attributes-master/packages/utils/src/helpers/webflow.ts +0 -117
- package/attributes-master/packages/utils/src/index.ts +0 -5
- package/attributes-master/packages/utils/src/types/core.ts +0 -100
- package/attributes-master/packages/utils/src/types/dom.ts +0 -31
- package/attributes-master/packages/utils/src/types/index.ts +0 -4
- package/attributes-master/packages/utils/src/types/utils.ts +0 -20
- package/attributes-master/packages/utils/src/types/webflow.ts +0 -147
- package/attributes-master/packages/utils/tsconfig.json +0 -3
- package/attributes-master/packages/videohls/CHANGELOG.md +0 -76
- package/attributes-master/packages/videohls/README.md +0 -27
- package/attributes-master/packages/videohls/package.json +0 -26
- package/attributes-master/packages/videohls/src/actions/list.ts +0 -23
- package/attributes-master/packages/videohls/src/actions/video.ts +0 -44
- package/attributes-master/packages/videohls/src/index.ts +0 -3
- package/attributes-master/packages/videohls/src/init.ts +0 -28
- package/attributes-master/packages/videohls/src/utils/constants.ts +0 -12
- package/attributes-master/packages/videohls/src/utils/selectors.ts +0 -5
- package/attributes-master/packages/videohls/src/utils/stores.ts +0 -3
- package/attributes-master/packages/videohls/tsconfig.json +0 -3
- package/attributes-master/pnpm-lock.yaml +0 -3317
- package/attributes-master/pnpm-workspace.yaml +0 -3
- package/attributes-master/tsconfig.json +0 -6
- package/autoInit/smooth-scroll.js +0 -89
- package/utils/navbar.js +0 -214
- package/utils/scroll-progress.js +0 -29
- package/utils/toc.js +0 -77
@@ -1,138 +0,0 @@
|
|
1
|
-
import type { Entry, FormField } from '../types';
|
2
|
-
|
3
|
-
export const isString = (value: unknown): value is string => typeof value === 'string';
|
4
|
-
export const isNumber = (value: unknown): value is number => typeof value === 'number';
|
5
|
-
export const isBoolean = (value: unknown): value is boolean => typeof value === 'boolean';
|
6
|
-
export const isUndefined = (value: unknown): value is undefined => value === undefined;
|
7
|
-
export const isDate = (value: unknown): value is Date => value instanceof Date;
|
8
|
-
|
9
|
-
/**
|
10
|
-
* It literally does nothing.
|
11
|
-
*/
|
12
|
-
export const noop = () => {
|
13
|
-
// No operation.
|
14
|
-
};
|
15
|
-
|
16
|
-
/**
|
17
|
-
* Makes sure a value is not `null` or `undefined`.
|
18
|
-
* Useful for type safety when filtering empty elements from an array. Check out the example for more in-depth explanation.
|
19
|
-
* @param value The value to type-check.
|
20
|
-
* @example ```typescript
|
21
|
-
* const items = [1, null, 4, undefined, 8];
|
22
|
-
*
|
23
|
-
* const filteredItemsError: number[] = items.filter((item) => value !== undefined && value !== null); // Type '(number | null | undefined)[]' is not assignable to type 'number[]'.
|
24
|
-
*
|
25
|
-
* const filteredItemsSuccess: number[] = items.filter(isNotEmpty); // Success!
|
26
|
-
* ```
|
27
|
-
*/
|
28
|
-
export const isNotEmpty = <T>(value: T | null | undefined): value is T => value !== undefined && value !== null;
|
29
|
-
|
30
|
-
/**
|
31
|
-
* Check if a key is included in a readonly array
|
32
|
-
* @param key
|
33
|
-
* @param source readonly array of strings
|
34
|
-
* @returns True/false
|
35
|
-
*/
|
36
|
-
export const isKeyOf = <T extends string>(
|
37
|
-
key: string | null | undefined,
|
38
|
-
source: readonly T[]
|
39
|
-
): key is (typeof source)[number] => !!key && source.includes(<T>key);
|
40
|
-
|
41
|
-
/**
|
42
|
-
* Gets the keys of an object with inferred typing.
|
43
|
-
* @param object
|
44
|
-
* @returns
|
45
|
-
*/
|
46
|
-
export const getObjectKeys = <T extends Record<string, unknown>>(object: T): (keyof T)[] =>
|
47
|
-
Object.keys(object) as (keyof T)[];
|
48
|
-
|
49
|
-
/**
|
50
|
-
* Gets type safe `Object.entries()`.
|
51
|
-
* @param object
|
52
|
-
*/
|
53
|
-
export const getObjectEntries = <T extends Readonly<Record<string, unknown>>>(object: T): Entry<T>[] =>
|
54
|
-
Object.entries(object) as Entry<T>[];
|
55
|
-
|
56
|
-
/**
|
57
|
-
* @returns `true` if the target is an instance of Element type.
|
58
|
-
* @param target
|
59
|
-
*/
|
60
|
-
export const isElement = (target: unknown): target is Element => target instanceof Element;
|
61
|
-
|
62
|
-
/**
|
63
|
-
* @returns `true` if the target is an instance of HTMLElement type.
|
64
|
-
* @param target
|
65
|
-
*/
|
66
|
-
export const isHTMLElement = (target: unknown): target is HTMLElement => target instanceof HTMLElement;
|
67
|
-
|
68
|
-
/**
|
69
|
-
* @returns `true` if the target is an instance of HTMLVideoElement type.
|
70
|
-
* @param target
|
71
|
-
*/
|
72
|
-
export const isHTMLVideoElement = (target: unknown): target is HTMLVideoElement => target instanceof HTMLVideoElement;
|
73
|
-
|
74
|
-
/**
|
75
|
-
* @returns `true` if the target is an instance of HTMLInputElement type.
|
76
|
-
* @param target
|
77
|
-
*/
|
78
|
-
export const isHTMLInputElement = (target: unknown): target is HTMLInputElement => target instanceof HTMLInputElement;
|
79
|
-
|
80
|
-
/**
|
81
|
-
* @returns `true` if the target is an instance of HTMLSelectElement type.
|
82
|
-
* @param target
|
83
|
-
*/
|
84
|
-
export const isHTMLSelectElement = (target: unknown): target is HTMLSelectElement =>
|
85
|
-
target instanceof HTMLSelectElement;
|
86
|
-
|
87
|
-
/**
|
88
|
-
* @returns `true` if the target is an instance of HTMLTextAreaElement type.
|
89
|
-
* @param target
|
90
|
-
*/
|
91
|
-
export const isHTMLTextAreaElement = (target: unknown): target is HTMLTextAreaElement =>
|
92
|
-
target instanceof HTMLTextAreaElement;
|
93
|
-
|
94
|
-
/**
|
95
|
-
* Checks if an element is a form field element
|
96
|
-
* @param element
|
97
|
-
*/
|
98
|
-
export const isFormField = (element: Element | EventTarget | null): element is FormField =>
|
99
|
-
isHTMLInputElement(element) || isHTMLSelectElement(element) || isHTMLTextAreaElement(element);
|
100
|
-
|
101
|
-
/**
|
102
|
-
* Checks if an element is a form element
|
103
|
-
* @param target
|
104
|
-
*/
|
105
|
-
export const isHTMLFormElement = (target: unknown): target is HTMLFormElement => target instanceof HTMLFormElement;
|
106
|
-
|
107
|
-
/**
|
108
|
-
* @returns `true` if the target is an instance of HTMLAnchorElement type.
|
109
|
-
* @param target
|
110
|
-
*/
|
111
|
-
export const isHTMLAnchorElement = (target: unknown): target is HTMLAnchorElement =>
|
112
|
-
target instanceof HTMLAnchorElement;
|
113
|
-
|
114
|
-
/**
|
115
|
-
* @returns `true` if the target is an instance of HTMLOptionElement type.
|
116
|
-
* @param target
|
117
|
-
*/
|
118
|
-
export const isHTMLOptionElement = (target: unknown): target is HTMLOptionElement =>
|
119
|
-
target instanceof HTMLOptionElement;
|
120
|
-
|
121
|
-
/**
|
122
|
-
* @returns `true` if the target is an instance of HTMLImageElement type.
|
123
|
-
* @param target
|
124
|
-
*/
|
125
|
-
export const isHTMLImageElement = (target: unknown): target is HTMLImageElement => target instanceof HTMLImageElement;
|
126
|
-
|
127
|
-
/**
|
128
|
-
* @returns `true` if the target is an instance of HTMLButtonElement type.
|
129
|
-
* @param target
|
130
|
-
*/
|
131
|
-
export const isHTMLButtonElement = (target: unknown): target is HTMLButtonElement =>
|
132
|
-
target instanceof HTMLButtonElement;
|
133
|
-
|
134
|
-
/**
|
135
|
-
* @returns `true` if the target is an instance of File type.
|
136
|
-
* @param target
|
137
|
-
*/
|
138
|
-
export const isFile = (target: unknown): target is File => target instanceof File;
|
@@ -1,11 +0,0 @@
|
|
1
|
-
export * from './dates';
|
2
|
-
export * from './dom';
|
3
|
-
export * from './events';
|
4
|
-
export * from './fetch';
|
5
|
-
export * from './forms';
|
6
|
-
export * from './guards';
|
7
|
-
export * from './numbers';
|
8
|
-
export * from './selectors';
|
9
|
-
export * from './strings';
|
10
|
-
export * from './wait';
|
11
|
-
export * from './webflow';
|
@@ -1,86 +0,0 @@
|
|
1
|
-
import { isDate, isNumber } from './guards';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Converts a value to a number, removing any invalid symbols like `$` or `,`.
|
5
|
-
* @param value
|
6
|
-
* @returns The valid number value.
|
7
|
-
*/
|
8
|
-
export const normalizeNumber = (value: string | number | Date) => {
|
9
|
-
if (isNumber(value)) return value;
|
10
|
-
if (isDate(value)) return value.getTime();
|
11
|
-
if (!value) return;
|
12
|
-
|
13
|
-
return parseFloat(value.replace(/[^0-9.-]+/g, ''));
|
14
|
-
};
|
15
|
-
|
16
|
-
/**
|
17
|
-
* Parses a numeric Attribute string.
|
18
|
-
* @param rawValue The raw string. Example: "20", "-25.3"...
|
19
|
-
* @param fallback A value to fall back to when the parsed value is not valid.
|
20
|
-
*/
|
21
|
-
export function parseNumericAttribute(rawValue: string | number | null | undefined, fallback: number): number;
|
22
|
-
export function parseNumericAttribute(
|
23
|
-
rawValue: string | number | null | undefined,
|
24
|
-
fallback?: number | null
|
25
|
-
): number | null;
|
26
|
-
export function parseNumericAttribute(
|
27
|
-
rawValue: string | number | null | undefined,
|
28
|
-
fallback?: number | null
|
29
|
-
): number | null {
|
30
|
-
if (!rawValue) return fallback ?? null;
|
31
|
-
|
32
|
-
const value = Number(rawValue);
|
33
|
-
|
34
|
-
if (!isNaN(value)) return value;
|
35
|
-
if (fallback) return fallback;
|
36
|
-
return null;
|
37
|
-
}
|
38
|
-
|
39
|
-
/**
|
40
|
-
* Calculates the amount of decimals that a float number has.
|
41
|
-
* @param value A number.
|
42
|
-
*/
|
43
|
-
export const getDecimalPrecision = (value: number) => {
|
44
|
-
if (!isFinite(value)) return 0;
|
45
|
-
|
46
|
-
let exponential = 1;
|
47
|
-
let precision = 0;
|
48
|
-
|
49
|
-
while (Math.round(value * exponential) / exponential !== value) {
|
50
|
-
exponential *= 10;
|
51
|
-
precision += 1;
|
52
|
-
}
|
53
|
-
return precision;
|
54
|
-
};
|
55
|
-
|
56
|
-
/**
|
57
|
-
* Ensures a decimal precision on a number.
|
58
|
-
* @param value The number to handle.
|
59
|
-
* @param precision The amount of decimals.
|
60
|
-
*/
|
61
|
-
const setDecimalPrecision = (value: number, precision: number) => {
|
62
|
-
const pow = Math.pow(10, precision);
|
63
|
-
|
64
|
-
return Math.round(value * pow) / pow;
|
65
|
-
};
|
66
|
-
|
67
|
-
/**
|
68
|
-
* Adjusts a numeric value to a step factor.
|
69
|
-
* @param value The numeric value to adjust.
|
70
|
-
* @param step The increment step.
|
71
|
-
* @param precision The step's decimal precision. If not provided, it will be calculated.
|
72
|
-
* @param minRange A minimum range value, used for offsetting.
|
73
|
-
* @returns The adjusted value.
|
74
|
-
*/
|
75
|
-
export const adjustValueToStep = (value: number, step: number, precision?: number, minRange = 0) => {
|
76
|
-
precision ??= getDecimalPrecision(step);
|
77
|
-
|
78
|
-
const offset = minRange > 1 ? minRange % step : 0;
|
79
|
-
|
80
|
-
const remainder = value % step;
|
81
|
-
const floor = offset + value - remainder;
|
82
|
-
|
83
|
-
if (remainder > step / 2) return setDecimalPrecision(floor + step, precision);
|
84
|
-
|
85
|
-
return setDecimalPrecision(floor, precision);
|
86
|
-
};
|
@@ -1,249 +0,0 @@
|
|
1
|
-
import type { AttributeElements, AttributeSettings, FinsweetAttributeKey, LooseString } from '../types';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* @returns Selector helpers for the defined Attribute Elements and Settings.
|
5
|
-
* @param attributeKey
|
6
|
-
* @param elements
|
7
|
-
* @param settings
|
8
|
-
*/
|
9
|
-
export const generateSelectors = <
|
10
|
-
ElementsDefinition extends AttributeElements,
|
11
|
-
SettingsDefinition extends AttributeSettings,
|
12
|
-
>(
|
13
|
-
attributeKey: FinsweetAttributeKey,
|
14
|
-
elements: ElementsDefinition,
|
15
|
-
settings: SettingsDefinition
|
16
|
-
) => {
|
17
|
-
const ELEMENT_ATTRIBUTE_NAME = `fs-${attributeKey}-element`;
|
18
|
-
const INSTANCE_ATTRIBUTE_NAME = `fs-${attributeKey}-instance`;
|
19
|
-
|
20
|
-
/**
|
21
|
-
* Constructs the attribute name for a setting.
|
22
|
-
* @param settingKey
|
23
|
-
*/
|
24
|
-
const getSettingAttributeName = (settingKey: keyof SettingsDefinition) => {
|
25
|
-
const { key } = settings[settingKey];
|
26
|
-
|
27
|
-
return `fs-${attributeKey}-${key}`;
|
28
|
-
};
|
29
|
-
|
30
|
-
/**
|
31
|
-
* @returns A valid CSS selector for a setting.
|
32
|
-
* @param settingKey The key of the setting.
|
33
|
-
* @param valueKey [Optional] The key of the setting value.
|
34
|
-
* @param explicitValue [Optional] An explicit value to use instead of a predefined setting value.
|
35
|
-
*/
|
36
|
-
const getSettingSelector = <SettingKey extends keyof SettingsDefinition>(
|
37
|
-
settingKey: SettingKey,
|
38
|
-
value?: LooseString<NonNullable<SettingsDefinition[SettingKey]['values']>[number]>
|
39
|
-
) => {
|
40
|
-
const attributeName = getSettingAttributeName(settingKey);
|
41
|
-
|
42
|
-
// With setting value
|
43
|
-
if (value) {
|
44
|
-
return `[${attributeName}="${value}" i]`;
|
45
|
-
}
|
46
|
-
|
47
|
-
// No setting value
|
48
|
-
return `[${attributeName}]`;
|
49
|
-
};
|
50
|
-
|
51
|
-
/**
|
52
|
-
* @returns A valid CSS selector for an element.
|
53
|
-
* @param elementKey The key of the element.
|
54
|
-
* @param params.instance The index of the element instance.
|
55
|
-
* If `null`, it will select all elements without an instance.
|
56
|
-
* If `undefined`, it will select all elements.
|
57
|
-
*/
|
58
|
-
const getElementSelector = (
|
59
|
-
elementKey?: ElementsDefinition[number],
|
60
|
-
{ instance }: { instance?: string | null } = {}
|
61
|
-
) => {
|
62
|
-
if (!elementKey) {
|
63
|
-
return `[${ELEMENT_ATTRIBUTE_NAME}]`;
|
64
|
-
}
|
65
|
-
|
66
|
-
const elementSelector = `[${ELEMENT_ATTRIBUTE_NAME}="${elementKey}" i]`;
|
67
|
-
|
68
|
-
// If no instance is provided, select all elements
|
69
|
-
if (instance === undefined) {
|
70
|
-
return elementSelector;
|
71
|
-
}
|
72
|
-
|
73
|
-
// If instance is null, select all elements without an instance
|
74
|
-
if (instance === null) {
|
75
|
-
return `${elementSelector}:not([${INSTANCE_ATTRIBUTE_NAME}], [${INSTANCE_ATTRIBUTE_NAME}] ${elementSelector})`;
|
76
|
-
}
|
77
|
-
|
78
|
-
// If instance exists, select the specific element instance
|
79
|
-
const instanceSelector = `[${INSTANCE_ATTRIBUTE_NAME}="${instance}"]`;
|
80
|
-
|
81
|
-
return `${elementSelector}${instanceSelector}, ${instanceSelector} ${elementSelector}`;
|
82
|
-
};
|
83
|
-
|
84
|
-
/**
|
85
|
-
* @returns A valid CSS selector for an element instance.
|
86
|
-
* @param instance The instance identifier.
|
87
|
-
*/
|
88
|
-
const getInstanceSelector = (instance: string) => {
|
89
|
-
return `[${INSTANCE_ATTRIBUTE_NAME}="${instance}"]`;
|
90
|
-
};
|
91
|
-
|
92
|
-
/**
|
93
|
-
* @returns The first element that matches the selector.
|
94
|
-
* @param elementKey The key of the element.
|
95
|
-
* @param params.instance The index of the element instance.
|
96
|
-
* @param params.scope The scope to query the element from. Defaults to `document`.
|
97
|
-
*/
|
98
|
-
const queryElement = <E extends Element = HTMLElement>(
|
99
|
-
elementKey?: ElementsDefinition[number],
|
100
|
-
{ instance, scope }: { instance?: string | null; scope?: ParentNode | null } = {}
|
101
|
-
) => {
|
102
|
-
const selector = getElementSelector(elementKey, { instance });
|
103
|
-
const target = scope || document;
|
104
|
-
|
105
|
-
return target.querySelector<E>(selector);
|
106
|
-
};
|
107
|
-
|
108
|
-
/**
|
109
|
-
* @returns All elements that match the selector.
|
110
|
-
* @param elementKey The key of the element.
|
111
|
-
* @param params.instance The index of the element instance.
|
112
|
-
* @param params.scope The scope to query the element from. Defaults to `document`.
|
113
|
-
*/
|
114
|
-
const queryAllElements = <E extends Element = HTMLElement>(
|
115
|
-
elementKey?: ElementsDefinition[number],
|
116
|
-
{ instance, scope }: { instance?: string | null; scope?: ParentNode | null } = {}
|
117
|
-
) => {
|
118
|
-
const selector = getElementSelector(elementKey, { instance });
|
119
|
-
const target = scope || document;
|
120
|
-
|
121
|
-
return [...target.querySelectorAll<E>(selector)];
|
122
|
-
};
|
123
|
-
|
124
|
-
/**
|
125
|
-
* @returns The instance index of an element.
|
126
|
-
* @param element The element to get the instance index from.
|
127
|
-
*/
|
128
|
-
const getInstance = (element: Element) => {
|
129
|
-
const instanceHolder = element.closest(`[${INSTANCE_ATTRIBUTE_NAME}]`);
|
130
|
-
if (!instanceHolder) return null;
|
131
|
-
|
132
|
-
return instanceHolder.getAttribute(INSTANCE_ATTRIBUTE_NAME);
|
133
|
-
};
|
134
|
-
|
135
|
-
/**
|
136
|
-
* @returns The first ancestor that matches the selector.
|
137
|
-
* @param elementKey The key of the element.
|
138
|
-
* @param params.instance The index of the element instance.
|
139
|
-
*/
|
140
|
-
const getClosestElement = <E extends Element = HTMLElement>(
|
141
|
-
element: Element,
|
142
|
-
elementKey?: ElementsDefinition[number],
|
143
|
-
{ instance }: { instance?: string | null } = {}
|
144
|
-
) => {
|
145
|
-
const selector = getElementSelector(elementKey, { instance });
|
146
|
-
|
147
|
-
return element.closest<E>(selector);
|
148
|
-
};
|
149
|
-
|
150
|
-
/**
|
151
|
-
* @returns The value of an attribute. It will check, in order:
|
152
|
-
* - The element itself.
|
153
|
-
* - The closest ancestor that has the attribute.
|
154
|
-
* - The script tags.
|
155
|
-
*
|
156
|
-
* @param element The element to get the attribute value from, or its closest ancestor that has the attribute. If `null`, it will check the script tags.
|
157
|
-
* @param settingKey The attribute key.
|
158
|
-
* @param filterInvalid Whether to filter out invalid values. Defaults to `false`.
|
159
|
-
*/
|
160
|
-
const getAttribute = <
|
161
|
-
SettingKey extends keyof SettingsDefinition,
|
162
|
-
FilterInvalid extends boolean = false,
|
163
|
-
SettingValues = SettingsDefinition[SettingKey]['values'],
|
164
|
-
SettingDefaultValue = SettingsDefinition[SettingKey]['defaultValue'],
|
165
|
-
SettingValueIsNumeric = SettingsDefinition[SettingKey]['isNumeric'],
|
166
|
-
SettingValue = SettingValueIsNumeric extends true
|
167
|
-
? number
|
168
|
-
: SettingValues extends Array<string>
|
169
|
-
? FilterInvalid extends true
|
170
|
-
? SettingValues[number]
|
171
|
-
: string
|
172
|
-
: string,
|
173
|
-
>(
|
174
|
-
element: Element | null,
|
175
|
-
settingKey: SettingKey,
|
176
|
-
{ filterInvalid }: { filterInvalid?: FilterInvalid } = {}
|
177
|
-
): SettingDefaultValue extends string ? SettingValue : SettingValue | undefined => {
|
178
|
-
const attributeName = getSettingAttributeName(settingKey);
|
179
|
-
const selector = getSettingSelector(settingKey);
|
180
|
-
|
181
|
-
const settingElement = element?.closest(selector);
|
182
|
-
|
183
|
-
// Check the element
|
184
|
-
let rawValue = settingElement?.getAttribute(attributeName);
|
185
|
-
|
186
|
-
// Check the script tags
|
187
|
-
if (!rawValue) {
|
188
|
-
for (const script of window.FinsweetAttributes.scripts) {
|
189
|
-
rawValue = script.getAttribute(attributeName);
|
190
|
-
|
191
|
-
if (rawValue) break;
|
192
|
-
}
|
193
|
-
}
|
194
|
-
|
195
|
-
// Fall back to the default value, if available
|
196
|
-
const { values = [], defaultValue, isNumeric } = settings[settingKey];
|
197
|
-
|
198
|
-
rawValue ??= defaultValue;
|
199
|
-
|
200
|
-
// @ts-expect-error Returning undefined is valid
|
201
|
-
if (!rawValue) return;
|
202
|
-
|
203
|
-
// Parse numeric values
|
204
|
-
if (isNumeric) {
|
205
|
-
let parsedValue = Number(rawValue);
|
206
|
-
|
207
|
-
if (isNaN(parsedValue) && defaultValue) {
|
208
|
-
parsedValue = Number(defaultValue);
|
209
|
-
}
|
210
|
-
|
211
|
-
if (!isNaN(parsedValue)) {
|
212
|
-
return parsedValue as SettingValue;
|
213
|
-
}
|
214
|
-
}
|
215
|
-
|
216
|
-
// @ts-expect-error Returning undefined is valid
|
217
|
-
if (filterInvalid && values.length && !values.includes(rawValue)) return;
|
218
|
-
|
219
|
-
const value = rawValue as SettingValue;
|
220
|
-
return value;
|
221
|
-
};
|
222
|
-
|
223
|
-
/**
|
224
|
-
* @returns Whether an element has a specific attribute value.
|
225
|
-
* @param element
|
226
|
-
* @param settingKey
|
227
|
-
* @param valueKey
|
228
|
-
*/
|
229
|
-
const hasAttributeValue = <SettingKey extends keyof SettingsDefinition>(
|
230
|
-
element: Element,
|
231
|
-
settingKey: SettingKey,
|
232
|
-
value: NonNullable<SettingsDefinition[SettingKey]['values']>[number]
|
233
|
-
) => {
|
234
|
-
return getAttribute(element, settingKey) === value;
|
235
|
-
};
|
236
|
-
|
237
|
-
return {
|
238
|
-
getClosestElement,
|
239
|
-
getElementSelector,
|
240
|
-
getSettingSelector,
|
241
|
-
getInstanceSelector,
|
242
|
-
getSettingAttributeName,
|
243
|
-
queryElement,
|
244
|
-
queryAllElements,
|
245
|
-
getInstance,
|
246
|
-
getAttribute,
|
247
|
-
hasAttributeValue,
|
248
|
-
};
|
249
|
-
};
|
@@ -1,19 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Convert a string of comma separated values to an array of values.
|
3
|
-
*
|
4
|
-
* @param string Comma separated string.
|
5
|
-
* @param filterEmpty Defines if empty values should be filtered out of the returned array. Defaults to `true`.
|
6
|
-
*/
|
7
|
-
export const extractCommaSeparatedValues = (string: string | null | undefined, filterEmpty = true): string[] => {
|
8
|
-
if (!string) return [];
|
9
|
-
|
10
|
-
const items = string.split(',').reduce<string[]>((accumulatedValue, currentValue) => {
|
11
|
-
const value = currentValue.trim();
|
12
|
-
|
13
|
-
if (!filterEmpty || value) accumulatedValue.push(value);
|
14
|
-
|
15
|
-
return accumulatedValue;
|
16
|
-
}, []);
|
17
|
-
|
18
|
-
return items;
|
19
|
-
};
|
@@ -1,36 +0,0 @@
|
|
1
|
-
import type { FinsweetAttributeKey } from '../types';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* @returns Awaitable promise for waiting X time.
|
5
|
-
* @param time
|
6
|
-
*/
|
7
|
-
export const wait = (time: number): Promise<unknown> => new Promise((resolve) => setTimeout(resolve, time));
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Waits for the defined Attribute to be fully loaded.
|
11
|
-
* @param key The Attribute key.
|
12
|
-
*/
|
13
|
-
export const waitAttributeLoaded = (key: FinsweetAttributeKey) => window.FinsweetAttributes.modules[key]?.loading;
|
14
|
-
|
15
|
-
/**
|
16
|
-
* @returns A promise that resolves once Webflow has fully loaded.
|
17
|
-
*/
|
18
|
-
export const waitWebflowReady = async () => {
|
19
|
-
return new Promise((resolve) => {
|
20
|
-
window.Webflow ||= [];
|
21
|
-
window.Webflow.push(resolve);
|
22
|
-
});
|
23
|
-
};
|
24
|
-
|
25
|
-
/**
|
26
|
-
* @returns A promise that resolves once the DOM is ready.
|
27
|
-
*/
|
28
|
-
export const waitDOMReady = async () => {
|
29
|
-
return new Promise((resolve) => {
|
30
|
-
if (document.readyState === 'loading') {
|
31
|
-
document.addEventListener('DOMContentLoaded', resolve);
|
32
|
-
} else {
|
33
|
-
resolve(undefined);
|
34
|
-
}
|
35
|
-
});
|
36
|
-
};
|
@@ -1,117 +0,0 @@
|
|
1
|
-
import { WEBFLOW_BREAKPOINTS } from '../constants';
|
2
|
-
import type { DropdownToggle, WebflowBreakpoint, WebflowModule } from '../types';
|
3
|
-
import { simulateEvent } from './events';
|
4
|
-
|
5
|
-
/**
|
6
|
-
* @returns The Webflow Site ID of the website.
|
7
|
-
* @param page The page to get the site ID from. Defaults to the current page.
|
8
|
-
*/
|
9
|
-
export const getSiteId = (page = document): string | null => page.documentElement.getAttribute('data-wf-site');
|
10
|
-
|
11
|
-
/**
|
12
|
-
* Extracts the publish date of a Webflow site
|
13
|
-
* @returns A Date object, if found.
|
14
|
-
* @param page The page to get the publish date from. Defaults to the current page.
|
15
|
-
*/
|
16
|
-
export const getPublishDate = (page = document): Date | undefined => {
|
17
|
-
const publishDatePrefix = 'Last Published:';
|
18
|
-
|
19
|
-
for (const node of page.childNodes) {
|
20
|
-
if (node.nodeType === Node.COMMENT_NODE && node.textContent?.includes(publishDatePrefix)) {
|
21
|
-
const publishDateValue = node.textContent.trim().split(publishDatePrefix)[1];
|
22
|
-
if (publishDateValue) return new Date(publishDateValue);
|
23
|
-
}
|
24
|
-
}
|
25
|
-
};
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Restarts the Webflow JS library.
|
29
|
-
*
|
30
|
-
* @param modules An array of {@link WebflowModule} to restart. If passed, only those modules will be restarted instead of the whole `Webflow` instance.
|
31
|
-
*
|
32
|
-
* @returns An awaitable promise that is fulfilled when the library has been correctly reinitialized.
|
33
|
-
*/
|
34
|
-
export const restartWebflow = async (modules?: WebflowModule[]): Promise<unknown> => {
|
35
|
-
const { Webflow } = window;
|
36
|
-
if (!Webflow || !('destroy' in Webflow) || !('ready' in Webflow) || !('require' in Webflow)) return;
|
37
|
-
|
38
|
-
if (modules && !modules.length) return;
|
39
|
-
|
40
|
-
// Global
|
41
|
-
if (!modules) {
|
42
|
-
Webflow.destroy();
|
43
|
-
Webflow.ready();
|
44
|
-
}
|
45
|
-
|
46
|
-
// IX2
|
47
|
-
if (!modules || modules.includes('ix2')) {
|
48
|
-
const ix2 = Webflow.require('ix2');
|
49
|
-
|
50
|
-
if (ix2) {
|
51
|
-
const { store, actions } = ix2;
|
52
|
-
const { eventState } = store.getState().ixSession;
|
53
|
-
const stateEntries = Object.entries(eventState);
|
54
|
-
|
55
|
-
if (!modules) ix2.destroy();
|
56
|
-
|
57
|
-
ix2.init();
|
58
|
-
|
59
|
-
await Promise.all(stateEntries.map((state) => store.dispatch(actions.eventStateChanged(...state))));
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
|
-
// Commerce
|
64
|
-
if (!modules || modules.includes('commerce')) {
|
65
|
-
const commerce = Webflow.require('commerce');
|
66
|
-
const siteId = getSiteId();
|
67
|
-
|
68
|
-
if (commerce && siteId) {
|
69
|
-
commerce.destroy();
|
70
|
-
commerce.init({ siteId, apiUrl: 'https://render.webflow.com' });
|
71
|
-
}
|
72
|
-
}
|
73
|
-
|
74
|
-
// Lightbox
|
75
|
-
if (modules?.includes('lightbox')) Webflow.require('lightbox')?.ready();
|
76
|
-
|
77
|
-
// Slider
|
78
|
-
if (modules?.includes('slider')) {
|
79
|
-
const slider = Webflow.require('slider');
|
80
|
-
|
81
|
-
if (slider) {
|
82
|
-
slider.redraw();
|
83
|
-
slider.ready();
|
84
|
-
}
|
85
|
-
}
|
86
|
-
|
87
|
-
// Tabs
|
88
|
-
if (modules?.includes('tabs')) Webflow.require('tabs')?.redraw();
|
89
|
-
|
90
|
-
return new Promise((resolve) => Webflow.push(() => resolve(undefined)));
|
91
|
-
};
|
92
|
-
|
93
|
-
/**
|
94
|
-
* Checks the current breakpoint based on the window media.
|
95
|
-
*
|
96
|
-
* @returns A {@link WebflowBreakpoint} string.
|
97
|
-
*/
|
98
|
-
export const getCurrentBreakpoint = (): WebflowBreakpoint => {
|
99
|
-
for (const [breakpoint, mediaQuery] of WEBFLOW_BREAKPOINTS) {
|
100
|
-
if (window.matchMedia(mediaQuery).matches) {
|
101
|
-
return breakpoint;
|
102
|
-
}
|
103
|
-
}
|
104
|
-
|
105
|
-
return 'main';
|
106
|
-
};
|
107
|
-
|
108
|
-
/**
|
109
|
-
* Closes a Webflow dropdown.
|
110
|
-
* @param dropdownToggle A {@link DropdownToggle} element.
|
111
|
-
* @param focusToggle Defaults to `true`.
|
112
|
-
*/
|
113
|
-
export const closeDropdown = (dropdownToggle: DropdownToggle, focusToggle = true) => {
|
114
|
-
if (focusToggle) dropdownToggle.focus();
|
115
|
-
|
116
|
-
simulateEvent(dropdownToggle, 'w-close');
|
117
|
-
};
|