@hortonstudio/main 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes-master/.changeset/README.md +8 -0
- package/attributes-master/.changeset/config.json +11 -0
- package/attributes-master/.gitattributes +2 -0
- package/attributes-master/.github/ISSUE_TEMPLATE/bug_report.md +42 -0
- package/attributes-master/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- package/attributes-master/.github/workflows/ci.yml +66 -0
- package/attributes-master/.github/workflows/release.yml +40 -0
- package/attributes-master/.prettierignore +3 -0
- package/attributes-master/.prettierrc +8 -0
- package/attributes-master/.vscode/extensions.json +3 -0
- package/attributes-master/.vscode/settings.json +7 -0
- package/attributes-master/CONTRIBUTING.md +72 -0
- package/attributes-master/LICENSE.md +201 -0
- package/attributes-master/README.md +31 -0
- package/attributes-master/eslint.config.js +3 -0
- package/attributes-master/package.json +34 -0
- package/attributes-master/packages/accordion/CHANGELOG.md +89 -0
- package/attributes-master/packages/accordion/README.md +31 -0
- package/attributes-master/packages/accordion/package.json +25 -0
- package/attributes-master/packages/accordion/src/actions/a11y.ts +39 -0
- package/attributes-master/packages/accordion/src/actions/classes.ts +27 -0
- package/attributes-master/packages/accordion/src/actions/content.ts +42 -0
- package/attributes-master/packages/accordion/src/actions/list.ts +36 -0
- package/attributes-master/packages/accordion/src/actions/query.ts +27 -0
- package/attributes-master/packages/accordion/src/actions/settings.ts +61 -0
- package/attributes-master/packages/accordion/src/factory.ts +145 -0
- package/attributes-master/packages/accordion/src/index.ts +3 -0
- package/attributes-master/packages/accordion/src/init.ts +37 -0
- package/attributes-master/packages/accordion/src/utils/constants.ts +62 -0
- package/attributes-master/packages/accordion/src/utils/helpers.ts +5 -0
- package/attributes-master/packages/accordion/src/utils/selectors.ts +12 -0
- package/attributes-master/packages/accordion/src/utils/types.ts +23 -0
- package/attributes-master/packages/accordion/tsconfig.json +3 -0
- package/attributes-master/packages/attributes/CHANGELOG.md +564 -0
- package/attributes-master/packages/attributes/README.md +66 -0
- package/attributes-master/packages/attributes/bin/build.ts +107 -0
- package/attributes-master/packages/attributes/bin/live-reload.js +1 -0
- package/attributes-master/packages/attributes/package.json +77 -0
- package/attributes-master/packages/attributes/playwright.config.ts +89 -0
- package/attributes-master/packages/attributes/src/attributes.ts +153 -0
- package/attributes-master/packages/attributes/src/load.ts +125 -0
- package/attributes-master/packages/attributes/tests/accordion.spec.ts +137 -0
- package/attributes-master/packages/attributes/tests/codehighlight.spec.ts +23 -0
- package/attributes-master/packages/attributes/tests/combobox.spec.ts +321 -0
- package/attributes-master/packages/attributes/tests/copyclip.spec.ts +19 -0
- package/attributes-master/packages/attributes/tests/displayvalues.spec.ts +48 -0
- package/attributes-master/packages/attributes/tests/favcustom.spec.ts +23 -0
- package/attributes-master/packages/attributes/tests/inject.spec.ts +40 -0
- package/attributes-master/packages/attributes/tests/inputactive.spec.ts +77 -0
- package/attributes-master/packages/attributes/tests/inputcounter.spec.ts +83 -0
- package/attributes-master/packages/attributes/tests/list.spec.ts +800 -0
- package/attributes-master/packages/attributes/tests/mirrorclick.spec.ts +22 -0
- package/attributes-master/packages/attributes/tests/mirrorinput.spec.ts +37 -0
- package/attributes-master/packages/attributes/tests/modal.spec.ts +34 -0
- package/attributes-master/packages/attributes/tests/numbercount.spec.ts +40 -0
- package/attributes-master/packages/attributes/tests/readtime.spec.ts +19 -0
- package/attributes-master/packages/attributes/tests/selectcustom.spec.ts +51 -0
- package/attributes-master/packages/attributes/tests/socialshare.spec.ts +54 -0
- package/attributes-master/packages/attributes/tests/starrating.spec.ts +79 -0
- package/attributes-master/packages/attributes/tests/toc.spec.ts +38 -0
- package/attributes-master/packages/attributes/tests/utils/index.ts +16 -0
- package/attributes-master/packages/attributes/tsconfig.json +6 -0
- package/attributes-master/packages/autovideo/CHANGELOG.md +182 -0
- package/attributes-master/packages/autovideo/README.md +31 -0
- package/attributes-master/packages/autovideo/package.json +22 -0
- package/attributes-master/packages/autovideo/src/index.ts +3 -0
- package/attributes-master/packages/autovideo/src/init.ts +52 -0
- package/attributes-master/packages/autovideo/src/types.ts +5 -0
- package/attributes-master/packages/autovideo/src/utils/constants.ts +4 -0
- package/attributes-master/packages/autovideo/tsconfig.json +3 -0
- package/attributes-master/packages/codehighlight/CHANGELOG.md +185 -0
- package/attributes-master/packages/codehighlight/README.md +27 -0
- package/attributes-master/packages/codehighlight/package.json +23 -0
- package/attributes-master/packages/codehighlight/src/actions/import.ts +50 -0
- package/attributes-master/packages/codehighlight/src/index.ts +3 -0
- package/attributes-master/packages/codehighlight/src/init.ts +53 -0
- package/attributes-master/packages/codehighlight/src/utils/constants.ts +24 -0
- package/attributes-master/packages/codehighlight/src/utils/selectors.ts +5 -0
- package/attributes-master/packages/codehighlight/src/utils/themes.ts +202 -0
- package/attributes-master/packages/codehighlight/tsconfig.json +3 -0
- package/attributes-master/packages/combobox/CHANGELOG.md +99 -0
- package/attributes-master/packages/combobox/README.md +27 -0
- package/attributes-master/packages/combobox/package.json +23 -0
- package/attributes-master/packages/combobox/src/actions/a11y.ts +29 -0
- package/attributes-master/packages/combobox/src/actions/body/index.ts +12 -0
- package/attributes-master/packages/combobox/src/actions/clearDropdown/index.ts +37 -0
- package/attributes-master/packages/combobox/src/actions/dropdownList/index.ts +220 -0
- package/attributes-master/packages/combobox/src/actions/dropdownToggle/index.ts +34 -0
- package/attributes-master/packages/combobox/src/actions/events.ts +75 -0
- package/attributes-master/packages/combobox/src/actions/input/index.ts +235 -0
- package/attributes-master/packages/combobox/src/actions/observe.ts +158 -0
- package/attributes-master/packages/combobox/src/actions/populate.ts +97 -0
- package/attributes-master/packages/combobox/src/actions/selectElement/index.ts +23 -0
- package/attributes-master/packages/combobox/src/actions/settings.ts +134 -0
- package/attributes-master/packages/combobox/src/actions/state.ts +34 -0
- package/attributes-master/packages/combobox/src/index.ts +3 -0
- package/attributes-master/packages/combobox/src/init.ts +52 -0
- package/attributes-master/packages/combobox/src/utils/constants.ts +48 -0
- package/attributes-master/packages/combobox/src/utils/dropdowns.ts +120 -0
- package/attributes-master/packages/combobox/src/utils/index.ts +1 -0
- package/attributes-master/packages/combobox/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/combobox/src/utils/types.ts +14 -0
- package/attributes-master/packages/combobox/tsconfig.json +3 -0
- package/attributes-master/packages/copyclip/CHANGELOG.md +213 -0
- package/attributes-master/packages/copyclip/README.md +27 -0
- package/attributes-master/packages/copyclip/package.json +23 -0
- package/attributes-master/packages/copyclip/src/factory.ts +67 -0
- package/attributes-master/packages/copyclip/src/index.ts +3 -0
- package/attributes-master/packages/copyclip/src/init.ts +68 -0
- package/attributes-master/packages/copyclip/src/utils/constants.ts +40 -0
- package/attributes-master/packages/copyclip/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/copyclip/tsconfig.json +3 -0
- package/attributes-master/packages/displayvalues/CHANGELOG.md +164 -0
- package/attributes-master/packages/displayvalues/README.md +27 -0
- package/attributes-master/packages/displayvalues/package.json +22 -0
- package/attributes-master/packages/displayvalues/src/actions/collect.ts +17 -0
- package/attributes-master/packages/displayvalues/src/actions/events.ts +22 -0
- package/attributes-master/packages/displayvalues/src/actions/sync.ts +23 -0
- package/attributes-master/packages/displayvalues/src/index.ts +3 -0
- package/attributes-master/packages/displayvalues/src/init.ts +31 -0
- package/attributes-master/packages/displayvalues/src/utils/constants.ts +20 -0
- package/attributes-master/packages/displayvalues/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/displayvalues/src/utils/stores.ts +3 -0
- package/attributes-master/packages/displayvalues/tsconfig.json +3 -0
- package/attributes-master/packages/docs/CHANGELOG.md +108 -0
- package/attributes-master/packages/docs/README.md +3 -0
- package/attributes-master/packages/docs/bin/build.js +92 -0
- package/attributes-master/packages/docs/bin/live-reload.js +1 -0
- package/attributes-master/packages/docs/package.json +40 -0
- package/attributes-master/packages/docs/src/copy.ts +260 -0
- package/attributes-master/packages/docs/src/x-ray.ts +377 -0
- package/attributes-master/packages/docs/tsconfig.json +3 -0
- package/attributes-master/packages/favcustom/CHANGELOG.md +194 -0
- package/attributes-master/packages/favcustom/README.md +27 -0
- package/attributes-master/packages/favcustom/package.json +22 -0
- package/attributes-master/packages/favcustom/src/index.ts +3 -0
- package/attributes-master/packages/favcustom/src/init.ts +30 -0
- package/attributes-master/packages/favcustom/src/utils/constants.ts +10 -0
- package/attributes-master/packages/favcustom/src/utils/selectors.ts +5 -0
- package/attributes-master/packages/favcustom/tsconfig.json +3 -0
- package/attributes-master/packages/formsubmit/CHANGELOG.md +161 -0
- package/attributes-master/packages/formsubmit/README.md +51 -0
- package/attributes-master/packages/formsubmit/package.json +22 -0
- package/attributes-master/packages/formsubmit/src/actions/redirect.ts +9 -0
- package/attributes-master/packages/formsubmit/src/actions/reset.ts +49 -0
- package/attributes-master/packages/formsubmit/src/actions/submit.ts +34 -0
- package/attributes-master/packages/formsubmit/src/components/Form.ts +231 -0
- package/attributes-master/packages/formsubmit/src/factory.ts +62 -0
- package/attributes-master/packages/formsubmit/src/index.ts +3 -0
- package/attributes-master/packages/formsubmit/src/init.ts +24 -0
- package/attributes-master/packages/formsubmit/src/utils/attributes.ts +19 -0
- package/attributes-master/packages/formsubmit/src/utils/constants.ts +89 -0
- package/attributes-master/packages/formsubmit/src/utils/dom.ts +76 -0
- package/attributes-master/packages/formsubmit/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/formsubmit/src/utils/types.ts +7 -0
- package/attributes-master/packages/formsubmit/tsconfig.json +3 -0
- package/attributes-master/packages/inject/CHANGELOG.md +117 -0
- package/attributes-master/packages/inject/README.md +60 -0
- package/attributes-master/packages/inject/package.json +22 -0
- package/attributes-master/packages/inject/src/actions/collect.ts +125 -0
- package/attributes-master/packages/inject/src/actions/css.ts +27 -0
- package/attributes-master/packages/inject/src/actions/prefetch.ts +44 -0
- package/attributes-master/packages/inject/src/factory.ts +123 -0
- package/attributes-master/packages/inject/src/index.ts +3 -0
- package/attributes-master/packages/inject/src/init.ts +22 -0
- package/attributes-master/packages/inject/src/utils/constants.ts +89 -0
- package/attributes-master/packages/inject/src/utils/helpers.ts +36 -0
- package/attributes-master/packages/inject/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/inject/src/utils/types.ts +16 -0
- package/attributes-master/packages/inject/tsconfig.json +3 -0
- package/attributes-master/packages/inputactive/CHANGELOG.md +58 -0
- package/attributes-master/packages/inputactive/README.md +25 -0
- package/attributes-master/packages/inputactive/package.json +22 -0
- package/attributes-master/packages/inputactive/src/actions/classes.ts +43 -0
- package/attributes-master/packages/inputactive/src/factory.ts +24 -0
- package/attributes-master/packages/inputactive/src/index.ts +3 -0
- package/attributes-master/packages/inputactive/src/init.ts +18 -0
- package/attributes-master/packages/inputactive/src/utils/constants.ts +13 -0
- package/attributes-master/packages/inputactive/src/utils/selectors.ts +5 -0
- package/attributes-master/packages/inputactive/tsconfig.json +3 -0
- package/attributes-master/packages/inputcounter/CHANGELOG.md +110 -0
- package/attributes-master/packages/inputcounter/README.md +25 -0
- package/attributes-master/packages/inputcounter/package.json +22 -0
- package/attributes-master/packages/inputcounter/src/actions/a11y.ts +23 -0
- package/attributes-master/packages/inputcounter/src/actions/buttons.ts +61 -0
- package/attributes-master/packages/inputcounter/src/actions/input.ts +31 -0
- package/attributes-master/packages/inputcounter/src/actions/style.ts +12 -0
- package/attributes-master/packages/inputcounter/src/factory.ts +51 -0
- package/attributes-master/packages/inputcounter/src/index.ts +3 -0
- package/attributes-master/packages/inputcounter/src/init.ts +22 -0
- package/attributes-master/packages/inputcounter/src/utils/constants.ts +59 -0
- package/attributes-master/packages/inputcounter/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/inputcounter/tsconfig.json +3 -0
- package/attributes-master/packages/list/CHANGELOG.md +185 -0
- package/attributes-master/packages/list/README.md +331 -0
- package/attributes-master/packages/list/package.json +37 -0
- package/attributes-master/packages/list/src/combine/index.ts +38 -0
- package/attributes-master/packages/list/src/components/List.ts +861 -0
- package/attributes-master/packages/list/src/components/ListItem.ts +229 -0
- package/attributes-master/packages/list/src/components/index.ts +2 -0
- package/attributes-master/packages/list/src/factory.ts +130 -0
- package/attributes-master/packages/list/src/filter/dynamic/conditions.ts +639 -0
- package/attributes-master/packages/list/src/filter/dynamic/groups.ts +221 -0
- package/attributes-master/packages/list/src/filter/dynamic/index.ts +119 -0
- package/attributes-master/packages/list/src/filter/dynamic/utils.ts +44 -0
- package/attributes-master/packages/list/src/filter/elements.ts +93 -0
- package/attributes-master/packages/list/src/filter/filter.ts +118 -0
- package/attributes-master/packages/list/src/filter/filter.worker.ts +152 -0
- package/attributes-master/packages/list/src/filter/index.ts +94 -0
- package/attributes-master/packages/list/src/filter/standard/conditions.ts +123 -0
- package/attributes-master/packages/list/src/filter/standard/facets.ts +253 -0
- package/attributes-master/packages/list/src/filter/standard/index.ts +176 -0
- package/attributes-master/packages/list/src/filter/standard/query.ts +111 -0
- package/attributes-master/packages/list/src/filter/tags.ts +314 -0
- package/attributes-master/packages/list/src/filter/types.ts +62 -0
- package/attributes-master/packages/list/src/filter/utils.ts +126 -0
- package/attributes-master/packages/list/src/index.ts +4 -0
- package/attributes-master/packages/list/src/init.ts +38 -0
- package/attributes-master/packages/list/src/load/all.ts +27 -0
- package/attributes-master/packages/list/src/load/elements.ts +39 -0
- package/attributes-master/packages/list/src/load/index.ts +63 -0
- package/attributes-master/packages/list/src/load/infinite.ts +79 -0
- package/attributes-master/packages/list/src/load/load.ts +191 -0
- package/attributes-master/packages/list/src/load/more.ts +97 -0
- package/attributes-master/packages/list/src/load/pagination.ts +402 -0
- package/attributes-master/packages/list/src/nest/index.ts +198 -0
- package/attributes-master/packages/list/src/prevnext/index.ts +98 -0
- package/attributes-master/packages/list/src/select/index.ts +56 -0
- package/attributes-master/packages/list/src/slider/index.ts +62 -0
- package/attributes-master/packages/list/src/sort/buttons.ts +96 -0
- package/attributes-master/packages/list/src/sort/dropdown.ts +179 -0
- package/attributes-master/packages/list/src/sort/index.ts +81 -0
- package/attributes-master/packages/list/src/sort/query.ts +63 -0
- package/attributes-master/packages/list/src/sort/select.ts +67 -0
- package/attributes-master/packages/list/src/sort/sort.ts +79 -0
- package/attributes-master/packages/list/src/sort/types.ts +28 -0
- package/attributes-master/packages/list/src/static/index.ts +73 -0
- package/attributes-master/packages/list/src/tabs/index.ts +97 -0
- package/attributes-master/packages/list/src/utils/constants.ts +728 -0
- package/attributes-master/packages/list/src/utils/dom.ts +108 -0
- package/attributes-master/packages/list/src/utils/pagination.ts +14 -0
- package/attributes-master/packages/list/src/utils/selectors.ts +18 -0
- package/attributes-master/packages/list/src/utils/store.ts +5 -0
- package/attributes-master/packages/list/tsconfig.json +3 -0
- package/attributes-master/packages/mirrorclick/CHANGELOG.md +171 -0
- package/attributes-master/packages/mirrorclick/README.md +25 -0
- package/attributes-master/packages/mirrorclick/package.json +22 -0
- package/attributes-master/packages/mirrorclick/src/index.ts +3 -0
- package/attributes-master/packages/mirrorclick/src/init.ts +35 -0
- package/attributes-master/packages/mirrorclick/src/utils/constants.ts +20 -0
- package/attributes-master/packages/mirrorclick/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/mirrorclick/tsconfig.json +3 -0
- package/attributes-master/packages/mirrorinput/CHANGELOG.md +172 -0
- package/attributes-master/packages/mirrorinput/README.md +25 -0
- package/attributes-master/packages/mirrorinput/package.json +22 -0
- package/attributes-master/packages/mirrorinput/src/index.ts +3 -0
- package/attributes-master/packages/mirrorinput/src/init.ts +48 -0
- package/attributes-master/packages/mirrorinput/src/utils/constants.ts +15 -0
- package/attributes-master/packages/mirrorinput/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/mirrorinput/tsconfig.json +3 -0
- package/attributes-master/packages/modal/CHANGELOG.md +94 -0
- package/attributes-master/packages/modal/README.md +29 -0
- package/attributes-master/packages/modal/package.json +23 -0
- package/attributes-master/packages/modal/src/actions/a11y.ts +46 -0
- package/attributes-master/packages/modal/src/actions/modal.ts +164 -0
- package/attributes-master/packages/modal/src/actions/settings.ts +21 -0
- package/attributes-master/packages/modal/src/factory.ts +26 -0
- package/attributes-master/packages/modal/src/index.ts +3 -0
- package/attributes-master/packages/modal/src/init.ts +22 -0
- package/attributes-master/packages/modal/src/utils/constants.ts +54 -0
- package/attributes-master/packages/modal/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/modal/src/utils/types.ts +12 -0
- package/attributes-master/packages/modal/tsconfig.json +3 -0
- package/attributes-master/packages/numbercount/CHANGELOG.md +90 -0
- package/attributes-master/packages/numbercount/README.md +27 -0
- package/attributes-master/packages/numbercount/package.json +23 -0
- package/attributes-master/packages/numbercount/src/actions/a11y.ts +26 -0
- package/attributes-master/packages/numbercount/src/actions/animate.ts +43 -0
- package/attributes-master/packages/numbercount/src/actions/observe.ts +44 -0
- package/attributes-master/packages/numbercount/src/factory.ts +31 -0
- package/attributes-master/packages/numbercount/src/index.ts +3 -0
- package/attributes-master/packages/numbercount/src/init.ts +22 -0
- package/attributes-master/packages/numbercount/src/utils/constants.ts +40 -0
- package/attributes-master/packages/numbercount/src/utils/helpers.ts +31 -0
- package/attributes-master/packages/numbercount/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/numbercount/tsconfig.json +3 -0
- package/attributes-master/packages/queryparam/CHANGELOG.md +118 -0
- package/attributes-master/packages/queryparam/README.md +25 -0
- package/attributes-master/packages/queryparam/package.json +22 -0
- package/attributes-master/packages/queryparam/src/factory.ts +51 -0
- package/attributes-master/packages/queryparam/src/index.ts +3 -0
- package/attributes-master/packages/queryparam/src/init.ts +40 -0
- package/attributes-master/packages/queryparam/src/utils/constants.ts +18 -0
- package/attributes-master/packages/queryparam/src/utils/selectors.ts +5 -0
- package/attributes-master/packages/queryparam/tsconfig.json +3 -0
- package/attributes-master/packages/rangeslider/CHANGELOG.md +236 -0
- package/attributes-master/packages/rangeslider/README.md +95 -0
- package/attributes-master/packages/rangeslider/package.json +23 -0
- package/attributes-master/packages/rangeslider/src/actions/a11y.ts +21 -0
- package/attributes-master/packages/rangeslider/src/actions/events.ts +9 -0
- package/attributes-master/packages/rangeslider/src/actions/settings.ts +97 -0
- package/attributes-master/packages/rangeslider/src/actions/styles.ts +10 -0
- package/attributes-master/packages/rangeslider/src/actions/values.ts +47 -0
- package/attributes-master/packages/rangeslider/src/components/Fill.ts +70 -0
- package/attributes-master/packages/rangeslider/src/components/Handle.ts +281 -0
- package/attributes-master/packages/rangeslider/src/factory.ts +100 -0
- package/attributes-master/packages/rangeslider/src/index.ts +3 -0
- package/attributes-master/packages/rangeslider/src/init.ts +194 -0
- package/attributes-master/packages/rangeslider/src/utils/constants.ts +87 -0
- package/attributes-master/packages/rangeslider/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/rangeslider/src/utils/types.ts +6 -0
- package/attributes-master/packages/rangeslider/tsconfig.json +3 -0
- package/attributes-master/packages/readtime/CHANGELOG.md +108 -0
- package/attributes-master/packages/readtime/README.md +25 -0
- package/attributes-master/packages/readtime/package.json +22 -0
- package/attributes-master/packages/readtime/src/factory.ts +21 -0
- package/attributes-master/packages/readtime/src/index.ts +3 -0
- package/attributes-master/packages/readtime/src/init.ts +19 -0
- package/attributes-master/packages/readtime/src/utils/constants.ts +33 -0
- package/attributes-master/packages/readtime/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/readtime/tsconfig.json +3 -0
- package/attributes-master/packages/removequery/CHANGELOG.md +8 -0
- package/attributes-master/packages/removequery/README.md +25 -0
- package/attributes-master/packages/removequery/package.json +22 -0
- package/attributes-master/packages/removequery/src/index.ts +3 -0
- package/attributes-master/packages/removequery/src/init.ts +18 -0
- package/attributes-master/packages/removequery/src/utils/constants.ts +5 -0
- package/attributes-master/packages/removequery/tsconfig.json +3 -0
- package/attributes-master/packages/scrolldisable/CHANGELOG.md +164 -0
- package/attributes-master/packages/scrolldisable/README.md +29 -0
- package/attributes-master/packages/scrolldisable/package.json +27 -0
- package/attributes-master/packages/scrolldisable/src/click.ts +40 -0
- package/attributes-master/packages/scrolldisable/src/display.ts +117 -0
- package/attributes-master/packages/scrolldisable/src/index.ts +3 -0
- package/attributes-master/packages/scrolldisable/src/init.ts +36 -0
- package/attributes-master/packages/scrolldisable/src/scroll.ts +63 -0
- package/attributes-master/packages/scrolldisable/src/utils/constants.ts +56 -0
- package/attributes-master/packages/scrolldisable/src/utils/selectors.ts +6 -0
- package/attributes-master/packages/scrolldisable/tsconfig.json +3 -0
- package/attributes-master/packages/selectcustom/CHANGELOG.md +242 -0
- package/attributes-master/packages/selectcustom/README.md +25 -0
- package/attributes-master/packages/selectcustom/package.json +23 -0
- package/attributes-master/packages/selectcustom/src/actions/a11y.ts +29 -0
- package/attributes-master/packages/selectcustom/src/actions/events.ts +159 -0
- package/attributes-master/packages/selectcustom/src/actions/observe.ts +83 -0
- package/attributes-master/packages/selectcustom/src/actions/populate.ts +67 -0
- package/attributes-master/packages/selectcustom/src/actions/settings.ts +68 -0
- package/attributes-master/packages/selectcustom/src/actions/state.ts +41 -0
- package/attributes-master/packages/selectcustom/src/index.ts +3 -0
- package/attributes-master/packages/selectcustom/src/init.ts +51 -0
- package/attributes-master/packages/selectcustom/src/utils/constants.ts +34 -0
- package/attributes-master/packages/selectcustom/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/selectcustom/src/utils/types.ts +14 -0
- package/attributes-master/packages/selectcustom/tsconfig.json +3 -0
- package/attributes-master/packages/sliderdots/CHANGELOG.md +220 -0
- package/attributes-master/packages/sliderdots/README.md +27 -0
- package/attributes-master/packages/sliderdots/package.json +22 -0
- package/attributes-master/packages/sliderdots/src/actions/events.ts +26 -0
- package/attributes-master/packages/sliderdots/src/actions/observe.ts +40 -0
- package/attributes-master/packages/sliderdots/src/actions/populate.ts +46 -0
- package/attributes-master/packages/sliderdots/src/actions/sync.ts +28 -0
- package/attributes-master/packages/sliderdots/src/actions/wait.ts +28 -0
- package/attributes-master/packages/sliderdots/src/factory.ts +57 -0
- package/attributes-master/packages/sliderdots/src/index.ts +3 -0
- package/attributes-master/packages/sliderdots/src/init.ts +30 -0
- package/attributes-master/packages/sliderdots/src/utils/constants.ts +33 -0
- package/attributes-master/packages/sliderdots/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/sliderdots/src/utils/types.ts +7 -0
- package/attributes-master/packages/sliderdots/tsconfig.json +3 -0
- package/attributes-master/packages/smartlightbox/CHANGELOG.md +203 -0
- package/attributes-master/packages/smartlightbox/README.md +25 -0
- package/attributes-master/packages/smartlightbox/package.json +22 -0
- package/attributes-master/packages/smartlightbox/src/actions/collect.ts +15 -0
- package/attributes-master/packages/smartlightbox/src/actions/move.ts +25 -0
- package/attributes-master/packages/smartlightbox/src/index.ts +3 -0
- package/attributes-master/packages/smartlightbox/src/init.ts +61 -0
- package/attributes-master/packages/smartlightbox/src/utils/constants.ts +31 -0
- package/attributes-master/packages/smartlightbox/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/smartlightbox/tsconfig.json +3 -0
- package/attributes-master/packages/socialshare/CHANGELOG.md +170 -0
- package/attributes-master/packages/socialshare/README.md +25 -0
- package/attributes-master/packages/socialshare/package.json +25 -0
- package/attributes-master/packages/socialshare/src/actions/collect.ts +93 -0
- package/attributes-master/packages/socialshare/src/actions/share.ts +91 -0
- package/attributes-master/packages/socialshare/src/actions/trigger.ts +46 -0
- package/attributes-master/packages/socialshare/src/factory.ts +149 -0
- package/attributes-master/packages/socialshare/src/index.ts +3 -0
- package/attributes-master/packages/socialshare/src/init.ts +35 -0
- package/attributes-master/packages/socialshare/src/utils/constants.ts +94 -0
- package/attributes-master/packages/socialshare/src/utils/dom.ts +8 -0
- package/attributes-master/packages/socialshare/src/utils/selectors.ts +6 -0
- package/attributes-master/packages/socialshare/src/utils/stores.ts +10 -0
- package/attributes-master/packages/socialshare/src/utils/types.ts +34 -0
- package/attributes-master/packages/socialshare/tsconfig.json +3 -0
- package/attributes-master/packages/starrating/CHANGELOG.md +70 -0
- package/attributes-master/packages/starrating/README.md +25 -0
- package/attributes-master/packages/starrating/package.json +22 -0
- package/attributes-master/packages/starrating/src/actions/classes.ts +41 -0
- package/attributes-master/packages/starrating/src/actions/events.ts +80 -0
- package/attributes-master/packages/starrating/src/factory.ts +24 -0
- package/attributes-master/packages/starrating/src/index.ts +3 -0
- package/attributes-master/packages/starrating/src/init.ts +24 -0
- package/attributes-master/packages/starrating/src/utils/constants.ts +20 -0
- package/attributes-master/packages/starrating/src/utils/helpers.ts +63 -0
- package/attributes-master/packages/starrating/src/utils/selectors.ts +9 -0
- package/attributes-master/packages/starrating/tsconfig.json +3 -0
- package/attributes-master/packages/template/README.md +25 -0
- package/attributes-master/packages/template/package.json +22 -0
- package/attributes-master/packages/template/src/actions/console.ts +4 -0
- package/attributes-master/packages/template/src/index.ts +3 -0
- package/attributes-master/packages/template/src/init.ts +14 -0
- package/attributes-master/packages/template/src/utils/constants.ts +18 -0
- package/attributes-master/packages/template/src/utils/selectors.ts +5 -0
- package/attributes-master/packages/template/tsconfig.json +3 -0
- package/attributes-master/packages/toc/CHANGELOG.md +192 -0
- package/attributes-master/packages/toc/README.md +25 -0
- package/attributes-master/packages/toc/package.json +23 -0
- package/attributes-master/packages/toc/src/actions/collect.ts +136 -0
- package/attributes-master/packages/toc/src/actions/create.ts +44 -0
- package/attributes-master/packages/toc/src/actions/events.ts +29 -0
- package/attributes-master/packages/toc/src/actions/observe.ts +31 -0
- package/attributes-master/packages/toc/src/actions/populate.ts +68 -0
- package/attributes-master/packages/toc/src/actions/prepare.ts +25 -0
- package/attributes-master/packages/toc/src/actions/scroll.ts +33 -0
- package/attributes-master/packages/toc/src/components/TOCItem.ts +88 -0
- package/attributes-master/packages/toc/src/factory.ts +47 -0
- package/attributes-master/packages/toc/src/index.ts +3 -0
- package/attributes-master/packages/toc/src/init.ts +37 -0
- package/attributes-master/packages/toc/src/utils/constants.ts +55 -0
- package/attributes-master/packages/toc/src/utils/helpers.ts +23 -0
- package/attributes-master/packages/toc/src/utils/selectors.ts +6 -0
- package/attributes-master/packages/toc/src/utils/types.ts +21 -0
- package/attributes-master/packages/toc/tsconfig.json +3 -0
- package/attributes-master/packages/utils/CHANGELOG.md +43 -0
- package/attributes-master/packages/utils/package.json +27 -0
- package/attributes-master/packages/utils/src/animations/factory.ts +100 -0
- package/attributes-master/packages/utils/src/animations/index.ts +73 -0
- package/attributes-master/packages/utils/src/animations/types.ts +37 -0
- package/attributes-master/packages/utils/src/components/Interaction.ts +79 -0
- package/attributes-master/packages/utils/src/components/Renderer.ts +59 -0
- package/attributes-master/packages/utils/src/components/index.ts +2 -0
- package/attributes-master/packages/utils/src/constants/a11y.ts +50 -0
- package/attributes-master/packages/utils/src/constants/attributes.ts +57 -0
- package/attributes-master/packages/utils/src/constants/index.ts +5 -0
- package/attributes-master/packages/utils/src/constants/keyboard.ts +10 -0
- package/attributes-master/packages/utils/src/constants/webflow.ts +74 -0
- package/attributes-master/packages/utils/src/helpers/dates.ts +17 -0
- package/attributes-master/packages/utils/src/helpers/dom.ts +82 -0
- package/attributes-master/packages/utils/src/helpers/events.ts +59 -0
- package/attributes-master/packages/utils/src/helpers/fetch.ts +217 -0
- package/attributes-master/packages/utils/src/helpers/forms.ts +238 -0
- package/attributes-master/packages/utils/src/helpers/guards.ts +138 -0
- package/attributes-master/packages/utils/src/helpers/index.ts +11 -0
- package/attributes-master/packages/utils/src/helpers/numbers.ts +86 -0
- package/attributes-master/packages/utils/src/helpers/selectors.ts +249 -0
- package/attributes-master/packages/utils/src/helpers/strings.ts +19 -0
- package/attributes-master/packages/utils/src/helpers/wait.ts +36 -0
- package/attributes-master/packages/utils/src/helpers/webflow.ts +117 -0
- package/attributes-master/packages/utils/src/index.ts +5 -0
- package/attributes-master/packages/utils/src/types/core.ts +100 -0
- package/attributes-master/packages/utils/src/types/dom.ts +31 -0
- package/attributes-master/packages/utils/src/types/index.ts +4 -0
- package/attributes-master/packages/utils/src/types/utils.ts +20 -0
- package/attributes-master/packages/utils/src/types/webflow.ts +147 -0
- package/attributes-master/packages/utils/tsconfig.json +3 -0
- package/attributes-master/packages/videohls/CHANGELOG.md +76 -0
- package/attributes-master/packages/videohls/README.md +27 -0
- package/attributes-master/packages/videohls/package.json +26 -0
- package/attributes-master/packages/videohls/src/actions/list.ts +23 -0
- package/attributes-master/packages/videohls/src/actions/video.ts +44 -0
- package/attributes-master/packages/videohls/src/index.ts +3 -0
- package/attributes-master/packages/videohls/src/init.ts +28 -0
- package/attributes-master/packages/videohls/src/utils/constants.ts +12 -0
- package/attributes-master/packages/videohls/src/utils/selectors.ts +5 -0
- package/attributes-master/packages/videohls/src/utils/stores.ts +3 -0
- package/attributes-master/packages/videohls/tsconfig.json +3 -0
- package/attributes-master/pnpm-lock.yaml +3317 -0
- package/attributes-master/pnpm-workspace.yaml +3 -0
- package/attributes-master/tsconfig.json +6 -0
- package/index.js +173 -257
- package/package.json +1 -1
@@ -0,0 +1,236 @@
|
|
1
|
+
# @finsweet/attributes-rangeslider
|
2
|
+
|
3
|
+
## 1.9.0
|
4
|
+
|
5
|
+
### Minor Changes
|
6
|
+
|
7
|
+
- 3fe2798: feat: `fs-rangeslider-lazy`
|
8
|
+
|
9
|
+
## 1.8.7
|
10
|
+
|
11
|
+
### Patch Changes
|
12
|
+
|
13
|
+
- Updated dependencies [2af0bad]
|
14
|
+
- @finsweet/attributes-utils@0.1.0
|
15
|
+
|
16
|
+
## 1.8.6
|
17
|
+
|
18
|
+
### Patch Changes
|
19
|
+
|
20
|
+
- Updated dependencies [378d74d]
|
21
|
+
- @finsweet/attributes-utils@0.0.6
|
22
|
+
|
23
|
+
## 1.8.5
|
24
|
+
|
25
|
+
### Patch Changes
|
26
|
+
|
27
|
+
- Updated dependencies [01973d8]
|
28
|
+
- @finsweet/attributes-utils@0.0.5
|
29
|
+
|
30
|
+
## 1.8.4
|
31
|
+
|
32
|
+
### Patch Changes
|
33
|
+
|
34
|
+
- Updated dependencies [deef758]
|
35
|
+
- @finsweet/attributes-utils@0.0.4
|
36
|
+
|
37
|
+
## 1.8.3
|
38
|
+
|
39
|
+
### Patch Changes
|
40
|
+
|
41
|
+
- Updated dependencies [d21cbca]
|
42
|
+
- @finsweet/attributes-utils@0.0.3
|
43
|
+
|
44
|
+
## 1.8.2
|
45
|
+
|
46
|
+
### Patch Changes
|
47
|
+
|
48
|
+
- c7b544d: chore: updated dependencies
|
49
|
+
- Updated dependencies [c7b544d]
|
50
|
+
- @finsweet/attributes-utils@0.0.2
|
51
|
+
|
52
|
+
## 1.8.1
|
53
|
+
|
54
|
+
### Patch Changes
|
55
|
+
|
56
|
+
- b56e5e5: rename fsAttribute in places of usage to finsweetAttribute
|
57
|
+
- Updated dependencies [b56e5e5]
|
58
|
+
- @finsweet/attributes-utils@0.0.1
|
59
|
+
|
60
|
+
## 1.8.0
|
61
|
+
|
62
|
+
### Minor Changes
|
63
|
+
|
64
|
+
- e4b3b680: Created new `window.fsAttributes.destroy()` method to support SPA environments.
|
65
|
+
This new method allows users to destroy all Attributes instances, cleaning up event listeners, observers, states, global variables, etc.
|
66
|
+
|
67
|
+
Websites that use a client-side router that simulates an SPA environment like [barba.js](https://barba.js.org/) or [Swup](https://swup.js.org/) can now properly init and destroy Attributes.
|
68
|
+
After destroying, Attributes can be manually re-initted by calling `window.fsAttribute[ATTRIBUTE_KEY].init()`.
|
69
|
+
|
70
|
+
Updated changesets system, now all updates will be correctly reflected in [the official updates page](https://www.finsweet.com/attributes/updates).
|
71
|
+
|
72
|
+
## 1.7.4
|
73
|
+
|
74
|
+
### Patch Changes
|
75
|
+
|
76
|
+
- 40b65ad7: Added fallback to use browser language when html lang attribute is not available for `toLocaleString`
|
77
|
+
|
78
|
+
## 1.7.3
|
79
|
+
|
80
|
+
### Patch Changes
|
81
|
+
|
82
|
+
- 183daf27: Changed `formatDisplay` to get language from html attribute.
|
83
|
+
|
84
|
+
## 1.7.2
|
85
|
+
|
86
|
+
### Patch Changes
|
87
|
+
|
88
|
+
- dea2fbf0: Added navigator language as explicit param on `toLocaleString` when using `formatValueDisplay` option
|
89
|
+
|
90
|
+
## 1.7.1
|
91
|
+
|
92
|
+
### Patch Changes
|
93
|
+
|
94
|
+
- Updated dependencies [4792998a]
|
95
|
+
- @global/constants@1.2.0
|
96
|
+
- @global/factory@1.1.5
|
97
|
+
|
98
|
+
## 1.7.0
|
99
|
+
|
100
|
+
### Minor Changes
|
101
|
+
|
102
|
+
- 07f32375: Created `fs-cmsattribute` Attribute
|
103
|
+
|
104
|
+
### Patch Changes
|
105
|
+
|
106
|
+
- Updated dependencies [07f32375]
|
107
|
+
- @global/constants@1.1.0
|
108
|
+
- @global/factory@1.1.4
|
109
|
+
|
110
|
+
## 1.6.5
|
111
|
+
|
112
|
+
### Patch Changes
|
113
|
+
|
114
|
+
- 1c93f949: Added minRange to calculate offset in `adjustValueToStep`
|
115
|
+
|
116
|
+
## 1.6.4
|
117
|
+
|
118
|
+
### Patch Changes
|
119
|
+
|
120
|
+
- Updated dependencies [7542dcdb]
|
121
|
+
- @global/constants@1.0.2
|
122
|
+
- @global/factory@1.1.3
|
123
|
+
|
124
|
+
## 1.6.3
|
125
|
+
|
126
|
+
### Patch Changes
|
127
|
+
|
128
|
+
- Updated dependencies [bdd1a78]
|
129
|
+
- @global/constants@1.0.1
|
130
|
+
- @global/factory@1.1.2
|
131
|
+
|
132
|
+
## 1.6.2
|
133
|
+
|
134
|
+
### Patch Changes
|
135
|
+
|
136
|
+
- Updated dependencies [13c3e23]
|
137
|
+
- @global/factory@1.1.1
|
138
|
+
|
139
|
+
## 1.6.1
|
140
|
+
|
141
|
+
### Patch Changes
|
142
|
+
|
143
|
+
- Updated dependencies [627bf25]
|
144
|
+
- @global/factory@1.1.0
|
145
|
+
|
146
|
+
## 1.6.0
|
147
|
+
|
148
|
+
### Minor Changes
|
149
|
+
|
150
|
+
- Added support wizard and publishing new schema version
|
151
|
+
|
152
|
+
## 1.5.0
|
153
|
+
|
154
|
+
### Minor Changes
|
155
|
+
|
156
|
+
Included a new `window.fsAttributes.push()` method in the developer API that provides a standarized way to safely access any Attribute internals once it has fully loaded.
|
157
|
+
It can be used like:
|
158
|
+
|
159
|
+
```html
|
160
|
+
<script>
|
161
|
+
window.fsAttributes = window.fsAttributes || [];
|
162
|
+
window.fsAttributes.push([
|
163
|
+
'rangeslider',
|
164
|
+
(handleInstances) => {
|
165
|
+
console.log('Attribute has successfully loaded!');
|
166
|
+
console.log(handleInstances);
|
167
|
+
},
|
168
|
+
]);
|
169
|
+
</script>
|
170
|
+
```
|
171
|
+
|
172
|
+
## 1.4.0
|
173
|
+
|
174
|
+
### Minor Changes
|
175
|
+
|
176
|
+
- Turned `touch` event listeners to `passive` to pass the [Use passive listeners to improve scrolling performance](https://web.dev/uses-passive-event-listeners/) performance Lighthouse test.
|
177
|
+
- Improved Accessibility by assuring that each `Handle` has an `aria-label` attribute.
|
178
|
+
The value of `aria-label` will be the `name` of the `<input>` element.
|
179
|
+
If the user has already set this attribute in the Designer, `rangeslider` won't override that value.
|
180
|
+
|
181
|
+
## 1.3.1
|
182
|
+
|
183
|
+
### Patch Changes
|
184
|
+
|
185
|
+
- Added support for handling [Floating-Point precision issues](https://floating-point-gui.de/).
|
186
|
+
- Fixed an infinite loop being sometimes triggered during the `handle` - `input` update cycles.
|
187
|
+
|
188
|
+
## 1.3.0
|
189
|
+
|
190
|
+
### Minor Changes
|
191
|
+
|
192
|
+
- Created `changesets.json` API.
|
193
|
+
|
194
|
+
## 1.2.0
|
195
|
+
|
196
|
+
### Minor Changes
|
197
|
+
|
198
|
+
- Released `v1.2.0-beta`.
|
199
|
+
|
200
|
+
## 1.1.2
|
201
|
+
|
202
|
+
### Patch Changes
|
203
|
+
|
204
|
+
- Reduced `resize` debouncing from 100ms to 50ms.
|
205
|
+
|
206
|
+
## 1.1.1
|
207
|
+
|
208
|
+
### Patch Changes
|
209
|
+
|
210
|
+
- Added `examples.json` to the package.
|
211
|
+
|
212
|
+
## 1.1.0
|
213
|
+
|
214
|
+
### Minor Changes
|
215
|
+
|
216
|
+
- Added new `fs-rangefilter-formatdisplay="true"` attribute.
|
217
|
+
Now, by default all `fs-rangefilter-element="display-value"` elements will display the numeric value without formatting.
|
218
|
+
If the `formatdisplay` attribute is added to the `wrapper` element, the `display-value` elements will display a formatted value (formatting defaults to the user's country conventions, some countries use commas and other countries use dots).
|
219
|
+
- Added an extra check to make sure the Handles' start values are adjusted to the `step` increment coefficient.
|
220
|
+
- Added an extra rule to set the Handles' start value to the `minRange` or `maxRange` if the provided value doesn't match the range. When this happens, a custom `Debug` message will be displayed to warn the user when using `debugMode`.
|
221
|
+
- Added an extra `Debug` alert that warns the user when the provided `step` value doesn't fit the provided `[min,max]` range.
|
222
|
+
|
223
|
+
## 1.0.1
|
224
|
+
|
225
|
+
### Patch Changes
|
226
|
+
|
227
|
+
- Made sure the track is set to `position: relative` and the Handles & Fill have the correct `position: absolute` values.
|
228
|
+
|
229
|
+
## 1.0.0
|
230
|
+
|
231
|
+
### Major Changes
|
232
|
+
|
233
|
+
- Released `v1.0.0-beta` features.
|
234
|
+
- Added support to recalculate the range slider position on window `resize` events.
|
235
|
+
- Removed dependency on `Emittery`, reduced the package size from 14KB to 9KB.
|
236
|
+
- Internal refactoring and performance improvements.
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# `rangeslider` Attribute
|
2
|
+
|
3
|
+
Build a custom Range Slider Form component natively in Webflow.
|
4
|
+
|
5
|
+
## Getting Started
|
6
|
+
|
7
|
+
Please follow the documentation at [finsweet.com/attributes](https://www.finsweet.com/attributes) to learn how to use Attributes in your Webflow projects.
|
8
|
+
|
9
|
+
## Accessing the API
|
10
|
+
|
11
|
+
To learn how to access the API, please check the general [API Reference](../attributes/README.md#api-reference) documentation:
|
12
|
+
|
13
|
+
```javascript
|
14
|
+
window.FinsweetAttributes ||= [];
|
15
|
+
window.FinsweetAttributes.push([
|
16
|
+
'rangeslider',
|
17
|
+
(handleInstances) => {
|
18
|
+
// Your code goes here.
|
19
|
+
},
|
20
|
+
]);
|
21
|
+
```
|
22
|
+
|
23
|
+
The `result` object contains the instances of the `Handle` classes for each active range slider on the page. Each value is a tuple with `[Handle, Handle | undefined]` objects representing the minimum and maximum (optional) handles of the range slider.
|
24
|
+
|
25
|
+
## The `Handle` object
|
26
|
+
|
27
|
+
The `Handle` class represents a draggable handle element in a range slider component. It manages the handle's position, value, constraints, and interactions with other elements like input fields and value displays.
|
28
|
+
|
29
|
+
### Properties
|
30
|
+
|
31
|
+
| Property | Type | Description |
|
32
|
+
| --------- | ------------- | ---------------------------------------- |
|
33
|
+
| `element` | `HTMLElement` | The DOM element representing the handle. |
|
34
|
+
|
35
|
+
### Methods
|
36
|
+
|
37
|
+
#### `Handle.getValue()`
|
38
|
+
|
39
|
+
Returns the current value of the handle.
|
40
|
+
|
41
|
+
- Returns: `number` - The current value of the handle.
|
42
|
+
|
43
|
+
```javascript
|
44
|
+
// Get the current value of a handle
|
45
|
+
const value = handleInstance.getValue();
|
46
|
+
console.log(`Current value: ${value}`);
|
47
|
+
```
|
48
|
+
|
49
|
+
#### `Handle.setValue(newValue, updateInputElement)`
|
50
|
+
|
51
|
+
Sets a new value to the handle. The handle's position is automatically updated based on the new value.
|
52
|
+
|
53
|
+
- `newValue` (number): The new value to set.
|
54
|
+
- `updateInputElement` (boolean, optional): Defines if the linked input element should be updated. Defaults to `true`.
|
55
|
+
- Returns: `boolean` - `true` if the value was updated, `false` if the value was unchanged or out of bounds.
|
56
|
+
|
57
|
+
```javascript
|
58
|
+
// Set the handle to a specific value
|
59
|
+
handleInstance.setValue(50);
|
60
|
+
|
61
|
+
// Set the value without updating the input element
|
62
|
+
handleInstance.setValue(75, false);
|
63
|
+
```
|
64
|
+
|
65
|
+
#### `Handle.getConstraints()`
|
66
|
+
|
67
|
+
Returns the current minimum and maximum value constraints for the handle.
|
68
|
+
|
69
|
+
- Returns: `[number, number]` - An array with the minimum and maximum values.
|
70
|
+
|
71
|
+
```javascript
|
72
|
+
// Get the current constraints
|
73
|
+
const [min, max] = handleInstance.getConstraints();
|
74
|
+
console.log(`Min: ${min}, Max: ${max}`);
|
75
|
+
```
|
76
|
+
|
77
|
+
#### `Handle.setConstraints(minValue, maxValue)`
|
78
|
+
|
79
|
+
Sets new minimum and maximum value constraints for the handle.
|
80
|
+
|
81
|
+
- `minValue` (number): The new minimum value.
|
82
|
+
- `maxValue` (number): The new maximum value.
|
83
|
+
|
84
|
+
```javascript
|
85
|
+
// Set new constraints for the handle
|
86
|
+
handleInstance.setConstraints(20, 80);
|
87
|
+
```
|
88
|
+
|
89
|
+
#### `Handle.destroy()`
|
90
|
+
|
91
|
+
Destroys the handle instance, removing all event listeners and cleaning up resources.
|
92
|
+
|
93
|
+
## License
|
94
|
+
|
95
|
+
[Apache 2.0](../../LICENSE.md)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"name": "@finsweet/attributes-rangeslider",
|
3
|
+
"version": "1.9.0",
|
4
|
+
"description": "Build a custom Range Slider Form component natively in Webflow.",
|
5
|
+
"private": true,
|
6
|
+
"type": "module",
|
7
|
+
"types": "src/index.ts",
|
8
|
+
"scripts": {
|
9
|
+
"lint": "eslint ./src && prettier --check ./src",
|
10
|
+
"lint:fix": "eslint ./src --fix && prettier --write ./src",
|
11
|
+
"check": "tsc --noEmit"
|
12
|
+
},
|
13
|
+
"exports": {
|
14
|
+
".": {
|
15
|
+
"types": "./src/index.ts",
|
16
|
+
"import": "./src/index.ts"
|
17
|
+
}
|
18
|
+
},
|
19
|
+
"dependencies": {
|
20
|
+
"just-debounce": "^1.1.0",
|
21
|
+
"@finsweet/attributes-utils": "workspace:*"
|
22
|
+
}
|
23
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import {
|
2
|
+
ARIA_LABEL_KEY,
|
3
|
+
ARIA_LABELLEDBY_KEY,
|
4
|
+
ARIA_ROLE_KEY,
|
5
|
+
ARIA_ROLE_VALUES,
|
6
|
+
TABINDEX_KEY,
|
7
|
+
} from '@finsweet/attributes-utils';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Sets the required `a11ty` attributes to a `Handle` element.
|
11
|
+
* @param element The `Handle` element.
|
12
|
+
* @param inputElement The correspondent `<input>` for the `Handle`, if existing.
|
13
|
+
*/
|
14
|
+
export const setHandleA11Y = (element: HTMLElement, inputElement?: HTMLInputElement) => {
|
15
|
+
element.setAttribute(ARIA_ROLE_KEY, ARIA_ROLE_VALUES.slider);
|
16
|
+
element.setAttribute(TABINDEX_KEY, '0');
|
17
|
+
|
18
|
+
if (![ARIA_LABEL_KEY, ARIA_LABELLEDBY_KEY].some((key) => element.getAttribute(key)) && inputElement) {
|
19
|
+
element.setAttribute(ARIA_LABEL_KEY, inputElement.name);
|
20
|
+
}
|
21
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
/**
|
2
|
+
* @returns The `clientX` property of an event.
|
3
|
+
* @param e A {@link MouseEvent} or a {@link TouchEvent}
|
4
|
+
*/
|
5
|
+
export const getClientX = (e: MouseEvent | TouchEvent) => {
|
6
|
+
if (e instanceof MouseEvent) return e.clientX;
|
7
|
+
|
8
|
+
return e.touches[0].clientX;
|
9
|
+
};
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import { getDecimalPrecision, isFormField } from '@finsweet/attributes-utils';
|
2
|
+
|
3
|
+
import { getAttribute, hasAttributeValue, queryAllElements, queryElement } from '../utils/selectors';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Collects the required settings.
|
7
|
+
* @param wrapperElement The wrapper element.
|
8
|
+
* @returns The settings, if no errors were found.
|
9
|
+
*/
|
10
|
+
export const getSettings = (
|
11
|
+
wrapperElement: HTMLElement
|
12
|
+
):
|
13
|
+
| {
|
14
|
+
trackElement: HTMLElement;
|
15
|
+
fillElement: HTMLElement | null;
|
16
|
+
handleElements: HTMLElement[];
|
17
|
+
inputElements: HTMLInputElement[];
|
18
|
+
displayValueElements: HTMLElement[];
|
19
|
+
formatValueDisplay?: string;
|
20
|
+
trackLeft: number;
|
21
|
+
trackRight: number;
|
22
|
+
trackWidth: number;
|
23
|
+
minRange: number;
|
24
|
+
maxRange: number;
|
25
|
+
totalRange: number;
|
26
|
+
step: number;
|
27
|
+
precision: number;
|
28
|
+
updateOnRelease: boolean;
|
29
|
+
isLazy: boolean;
|
30
|
+
}
|
31
|
+
| undefined => {
|
32
|
+
const trackElement = queryElement('track', { scope: wrapperElement });
|
33
|
+
|
34
|
+
const fillElement = queryElement('fill', { scope: wrapperElement });
|
35
|
+
|
36
|
+
const inputElements = [...wrapperElement.querySelectorAll('input')].filter(isFormField);
|
37
|
+
|
38
|
+
const handleElements = queryAllElements('handle', { scope: wrapperElement });
|
39
|
+
|
40
|
+
const displayValueElements = queryAllElements('display-value', { scope: wrapperElement });
|
41
|
+
|
42
|
+
const formatValueDisplay = getAttribute(wrapperElement, 'formatdisplay');
|
43
|
+
|
44
|
+
const updateOnRelease = hasAttributeValue(wrapperElement, 'update', 'release');
|
45
|
+
|
46
|
+
const isLazy = hasAttributeValue(wrapperElement, 'lazy', 'true');
|
47
|
+
|
48
|
+
if (!handleElements.length || !trackElement) {
|
49
|
+
console.error('The rangeslider is missing a Track element or a Handle element.');
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
|
53
|
+
const { left: trackLeft, right: trackRight } = trackElement.getBoundingClientRect();
|
54
|
+
const trackWidth = trackElement.clientWidth;
|
55
|
+
trackElement.style.position = 'relative';
|
56
|
+
|
57
|
+
const minRange = parseFloat(getAttribute(wrapperElement, 'min') || '0');
|
58
|
+
const maxRange = parseFloat(getAttribute(wrapperElement, 'max') || `${minRange + 1}`);
|
59
|
+
const totalRange = maxRange - minRange;
|
60
|
+
|
61
|
+
if (Number.isNaN(totalRange)) {
|
62
|
+
console.error('Please make sure min and max are numbers.');
|
63
|
+
return;
|
64
|
+
}
|
65
|
+
|
66
|
+
if (Math.sign(totalRange) === -1) {
|
67
|
+
console.error("The min can't be greater than the max.");
|
68
|
+
return;
|
69
|
+
}
|
70
|
+
|
71
|
+
const step = parseFloat(getAttribute(wrapperElement, 'step') || `${totalRange / 100}`);
|
72
|
+
const precision = getDecimalPrecision(step);
|
73
|
+
|
74
|
+
if (totalRange % step > 0)
|
75
|
+
console.error(
|
76
|
+
`The provided step [${step}] doesn't fit the range [${minRange},${maxRange}], are you sure you want to use this value?`
|
77
|
+
);
|
78
|
+
|
79
|
+
return {
|
80
|
+
trackElement,
|
81
|
+
fillElement,
|
82
|
+
handleElements,
|
83
|
+
inputElements,
|
84
|
+
displayValueElements,
|
85
|
+
formatValueDisplay,
|
86
|
+
trackLeft,
|
87
|
+
trackRight,
|
88
|
+
trackWidth,
|
89
|
+
minRange,
|
90
|
+
maxRange,
|
91
|
+
totalRange,
|
92
|
+
step,
|
93
|
+
precision,
|
94
|
+
updateOnRelease,
|
95
|
+
isLazy,
|
96
|
+
};
|
97
|
+
};
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/**
|
2
|
+
* Sets the required CSS styles to a `Handle` element.
|
3
|
+
* @param element The `Handle` element.
|
4
|
+
*/
|
5
|
+
export const setHandleStyles = (element: HTMLElement) => {
|
6
|
+
element.style.position = 'absolute';
|
7
|
+
element.style.right = 'unset';
|
8
|
+
element.style.top = `50%`;
|
9
|
+
element.style.transform = 'translate(-50%, -50%)';
|
10
|
+
};
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { isNotEmpty, isNumber } from '@finsweet/attributes-utils';
|
2
|
+
|
3
|
+
import type { HandleInstances } from '../utils/types';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Returns the closest handle to an adjusted value.
|
7
|
+
* @param adjustedValue The adjusted value through {@link adjustValueToStep}.
|
8
|
+
* @param handles The {@link HandleInstances}.
|
9
|
+
* @returns The closest valid `Handle`, if existing.
|
10
|
+
*/
|
11
|
+
export const getClosestValidHandle = (adjustedValue: number, [handle1, handle2]: HandleInstances) => {
|
12
|
+
const handle1Value = handle1.getValue();
|
13
|
+
const handle2Value = handle2?.getValue();
|
14
|
+
|
15
|
+
const closestValue = getClosestValue(adjustedValue, [handle1Value, handle2Value]);
|
16
|
+
|
17
|
+
if (!isNumber(closestValue)) return;
|
18
|
+
|
19
|
+
const [handle1MinValue, handle1MaxValue] = handle1.getConstraints();
|
20
|
+
|
21
|
+
if (closestValue === handle1Value && adjustedValue >= handle1MinValue && adjustedValue <= handle1MaxValue) {
|
22
|
+
return handle1;
|
23
|
+
}
|
24
|
+
|
25
|
+
if (!handle2 || closestValue !== handle2Value) return;
|
26
|
+
|
27
|
+
const [handle2MinValue, handle2MaxValue] = handle2.getConstraints();
|
28
|
+
|
29
|
+
if (adjustedValue >= handle2MinValue && adjustedValue <= handle2MaxValue) return handle2;
|
30
|
+
};
|
31
|
+
|
32
|
+
/**
|
33
|
+
* @returns The closest value from an array based on a reference value.
|
34
|
+
* @param reference The reference value.
|
35
|
+
* @param values The array of values to compare.
|
36
|
+
*/
|
37
|
+
const getClosestValue = (reference: number, values: (number | undefined)[]) => {
|
38
|
+
const filteredValues = values.filter(isNotEmpty);
|
39
|
+
|
40
|
+
if (!filteredValues.length) return;
|
41
|
+
|
42
|
+
const closestValue = filteredValues.reduce((previous, current) =>
|
43
|
+
Math.abs(current - reference) < Math.abs(previous - reference) ? current : previous
|
44
|
+
);
|
45
|
+
|
46
|
+
return closestValue;
|
47
|
+
};
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import type { Handle } from './Handle';
|
2
|
+
|
3
|
+
export class Fill {
|
4
|
+
private readonly minRange;
|
5
|
+
private readonly totalRange;
|
6
|
+
|
7
|
+
private readonly handles: readonly [Handle, Handle | undefined];
|
8
|
+
|
9
|
+
private trackWidth: number;
|
10
|
+
|
11
|
+
constructor(
|
12
|
+
public readonly element: HTMLElement,
|
13
|
+
{
|
14
|
+
minRange,
|
15
|
+
maxRange,
|
16
|
+
handles,
|
17
|
+
trackWidth,
|
18
|
+
}: { minRange: number; maxRange: number; handles: readonly [Handle, Handle | undefined]; trackWidth: number }
|
19
|
+
) {
|
20
|
+
element.style.position = 'absolute';
|
21
|
+
element.style.right = 'unset';
|
22
|
+
|
23
|
+
this.minRange = minRange;
|
24
|
+
this.totalRange = maxRange - minRange;
|
25
|
+
|
26
|
+
this.handles = handles;
|
27
|
+
|
28
|
+
this.trackWidth = trackWidth;
|
29
|
+
|
30
|
+
this.update();
|
31
|
+
}
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Updates the stored track width.
|
35
|
+
* The `update` method is fired from the Handles.
|
36
|
+
* @param newTrackWidth The new track width.
|
37
|
+
*/
|
38
|
+
public updateTrackWidth(newTrackWidth: number) {
|
39
|
+
this.trackWidth = newTrackWidth;
|
40
|
+
}
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Updates the Fill width and position based on the handle's values.
|
44
|
+
*/
|
45
|
+
public update(): void {
|
46
|
+
const {
|
47
|
+
element,
|
48
|
+
trackWidth,
|
49
|
+
minRange,
|
50
|
+
totalRange,
|
51
|
+
handles: [handle1, handle2],
|
52
|
+
} = this;
|
53
|
+
|
54
|
+
let left: number;
|
55
|
+
let width: number;
|
56
|
+
|
57
|
+
const leftOffset = ((handle1.getValue() - minRange) * trackWidth) / totalRange;
|
58
|
+
|
59
|
+
if (handle2) {
|
60
|
+
left = leftOffset;
|
61
|
+
width = ((handle2.getValue() - handle1.getValue()) * trackWidth) / totalRange;
|
62
|
+
} else {
|
63
|
+
left = 0;
|
64
|
+
width = leftOffset;
|
65
|
+
}
|
66
|
+
|
67
|
+
element.style.left = `${left}px`;
|
68
|
+
element.style.width = `${width}px`;
|
69
|
+
}
|
70
|
+
}
|