{"id":21467466,"url":"https://github.com/elusivecodes/fquery","last_synced_at":"2025-07-15T05:31:35.620Z","repository":{"id":42209637,"uuid":"174650253","full_name":"elusivecodes/fQuery","owner":"elusivecodes","description":"fQuery is a free, open-source DOM manipulation library for JavaScript.","archived":false,"fork":false,"pushed_at":"2024-04-12T10:41:51.000Z","size":3125,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-12T17:21:54.297Z","etag":null,"topics":["ajax","cookie","document","dom","es6","functional","javascript","query-selector"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elusivecodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-09T04:58:13.000Z","updated_at":"2024-04-30T08:27:24.249Z","dependencies_parsed_at":"2023-11-29T03:25:48.799Z","dependency_job_id":"38b35f48-f87b-47f5-af05-46b5db0ada4e","html_url":"https://github.com/elusivecodes/fQuery","commit_stats":null,"previous_names":["elusivecodes/frostdom"],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elusivecodes%2FfQuery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elusivecodes%2FfQuery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elusivecodes%2FfQuery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elusivecodes%2FfQuery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elusivecodes","download_url":"https://codeload.github.com/elusivecodes/fQuery/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226017668,"owners_count":17560552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ajax","cookie","document","dom","es6","functional","javascript","query-selector"],"created_at":"2024-11-23T08:18:12.807Z","updated_at":"2024-11-23T08:18:13.461Z","avatar_url":"https://github.com/elusivecodes.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fQuery\r\n\r\n**fQuery** is a free, open-source DOM manipulation library for *JavaScript*.\r\n\r\nIt is a lightweight (~16kb gzipped) and modern library, utilizing ES6 syntax and features including Promises.\r\n\r\n\r\n## Table Of Contents\r\n- [Installation](#installation)\r\n- [Basic Usage](#basic-usage)\r\n     - [Core Methods](#core-methods)\r\n- [Ajax](#ajax)\r\n- [Animation](#animation)\r\n    - [Animations](#animations)\r\n- [Attributes](#attributes)\r\n    - [Custom Data](#custom-data)\r\n    - [Position](#position)\r\n    - [Scroll](#scroll)\r\n    - [Size](#size)\r\n    - [Styles](#styles)\r\n- [Cookie](#cookie)\r\n- [Events](#events)\r\n    - [Event Handlers](#event-handlers)\r\n    - [Event Factory](#event-factory)\r\n- [Manipulation](#manipulation)\r\n    - [Create](#create)\r\n    - [Move](#move)\r\n    - [Wrap](#wrap)\r\n- [Parsing](#parsing)\r\n- [Queue](#queue)\r\n- [Scripts](#scripts)\r\n- [Stylesheets](#stylesheets)\r\n- [Traversal](#traversal)\r\n    - [Filter](#filter)\r\n    - [Find](#find)\r\n- [Utility](#utility)\r\n    - [Sanitize](#sanitize)\r\n    - [Selection](#selection)\r\n    - [Tests](#tests)\r\n\r\n\r\n\r\n## Installation\r\n\r\n**In Browser**\r\n\r\n```html\r\n\u003cscript type=\"text/javascript\" src=\"/path/to/fquery.min.js\"\u003e\u003c/script\u003e\r\n```\r\n\r\n**Using NPM**\r\n\r\n```\r\nnpm i @fr0st/query\r\n```\r\n\r\nIn Node.js:\r\n\r\n```javascript\r\nimport { JSDOM } from 'jsdom';\r\nimport registerGlobals from '@fr0st/query';\r\n\r\nconst window = new JSDOM('');\r\nconst $ = registerGlobals(window);\r\n```\r\n\r\n\r\n## Basic Usage\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, *QuerySet*, an array of nodes or a function to execute when the DOM is ready.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *HTMLCollection*, *QuerySet* or an array of nodes, and will default to the *Document* context of the `dom`.\r\n\r\n```javascript\r\nconst query = $(selector, context);\r\n```\r\n\r\nThis method returns a [*QuerySet*](docs/QuerySet.md).\r\n\r\n**Query One**\r\n\r\nYou can also query for a single node using the `queryOne` method.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, *QuerySet*, or an array of nodes.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *HTMLCollection*, *QuerySet* or an array of nodes, and will default to the *Document* context of the `dom`.\r\n\r\n```javascript\r\nconst query = $.queryOne(selector, context);\r\n```\r\n\r\nThis method returns a [*QuerySet*](docs/QuerySet.md).\r\n\r\n**No Conflict**\r\n\r\nReset the global `$` variable.\r\n\r\n```javascript\r\n$.noConflict();\r\n```\r\n\r\nYou can continue to use this library by using the global `fQuery` variable.\r\n\r\n### Core Methods\r\n\r\nThis library also includes all functions from the [*FrostCore*](https://github.com/elusivecodes/FrostCore) library, accessible from the `$` global variable (with an underscore prefix).\r\n\r\n```javascript\r\nconst random = $._random();\r\n```\r\n\r\n\r\n## Ajax\r\n\r\n**Ajax**\r\n\r\nPerform an XHR request.\r\n\r\n- `options` is an object containing options for the request.\r\n    - `url` is a string containing the URL for the request, and will default to the current window location.\r\n    - `method` is a string containing the method to use for the request, and will default to \"*GET*\".\r\n    - `data` can be an object, array, string or *FormData* containing data to send with the request, and will default to *null*.\r\n    - `contentType` is a string containing the Content-Type header to send with the request, and will default to \"*application/x-www-form-urlencoded*\".\r\n    - `responseType` is a string containing the expected Content-Type header of the response.\r\n    - `mimeType` is a string containing the MIME type to use for the server response.\r\n    - `username` is a string containing the username to authenticate with.\r\n    - `password` is a string containing the password to authenticate with.\r\n    - `timeout` is a number indicating the number of milliseconds before the request will be terminated, and will default to *0*.\r\n    - `isLocal` is a boolean indicating whether the request will be treated as local.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n    - `processData` is a boolean indicating whether to process the data depending on the `contentType`, and will default to *true*.\r\n    - `rejectOnCancel` is a boolean indicating whether to reject the promise if the request is cancelled, and will default to *true*.\r\n    - `headers` is an object containing additional headers to send with the request.\r\n    - `afterSend` is a function that accepts an `xhr` argument, and will be called after the request is sent.\r\n    - `beforeSend` is a function that accepts an `xhr` argument, and will be called before the request is sent.\r\n    - `onProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR download progress.\r\n    - `onUploadProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR upload progress.\r\n\r\nThis method returns an [*AjaxRequest*](docs/AjaxRequest.md) that resolves when the request is completed, or rejects on failure.\r\n\r\n```javascript\r\nconst request = $.ajax(options);\r\n```\r\n\r\n**Delete**\r\n\r\nPerform an XHR DELETE request.\r\n\r\n- `url` is a string containing the URL for the request.\r\n- `options` is an object containing options for the request.\r\n    - `method` is a string containing the method to use for the request, and will default to \"*DELETE*\".\r\n    - `contentType` is a string containing the Content-Type header to send with the request, and will default to \"*application/x-www-form-urlencoded*\".\r\n    - `responseType` is a string containing the expected Content-Type header of the response.\r\n    - `mimeType` is a string containing the MIME type to use for the server response.\r\n    - `username` is a string containing the username to authenticate with.\r\n    - `password` is a string containing the password to authenticate with.\r\n    - `timeout` is a number indicating the number of milliseconds before the request will be terminated, and will default to *0*.\r\n    - `isLocal` is a boolean indicating whether the request will be treated as local.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n    - `processData` is a boolean indicating whether to process the data depending on the `contentType`, and will default to *true*.\r\n    - `rejectOnCancel` is a boolean indicating whether to reject the promise if the request is cancelled, and will default to *true*.\r\n    - `headers` is an object containing additional headers to send with the request.\r\n    - `afterSend` is a function that accepts an `xhr` argument, and will be called after the request is sent.\r\n    - `beforeSend` is a function that accepts an `xhr` argument, and will be called before the request is sent.\r\n    - `onProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR download progress.\r\n    - `onUploadProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR upload progress.\r\n\r\nThis method returns an [*AjaxRequest*](docs/AjaxRequest.md) that resolves when the request is completed, or rejects on failure.\r\n\r\n```javascript\r\nconst request = $.delete(url, options);\r\n```\r\n\r\n**Get**\r\n\r\nPerform an XHR GET request.\r\n\r\n- `url` is a string containing the URL for the request.\r\n- `data` can be an object, array, string containing data to send with the request, and will default to *null*.\r\n- `options` is an object containing options for the request.\r\n    - `method` is a string containing the method to use for the request, and will default to \"*GET*\".\r\n    - `contentType` is a string containing the Content-Type header to send with the request, and will default to \"*application/x-www-form-urlencoded*\".\r\n    - `responseType` is a string containing the expected Content-Type header of the response.\r\n    - `mimeType` is a string containing the MIME type to use for the server response.\r\n    - `username` is a string containing the username to authenticate with.\r\n    - `password` is a string containing the password to authenticate with.\r\n    - `timeout` is a number indicating the number of milliseconds before the request will be terminated, and will default to *0*.\r\n    - `isLocal` is a boolean indicating whether the request will be treated as local.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n    - `processData` is a boolean indicating whether to process the data depending on the `contentType`, and will default to *true*.\r\n    - `rejectOnCancel` is a boolean indicating whether to reject the promise if the request is cancelled, and will default to *true*.\r\n    - `headers` is an object containing additional headers to send with the request.\r\n    - `afterSend` is a function that accepts an `xhr` argument, and will be called after the request is sent.\r\n    - `beforeSend` is a function that accepts an `xhr` argument, and will be called before the request is sent.\r\n    - `onProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR download progress.\r\n    - `onUploadProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR upload progress.\r\n\r\nThis method returns an [*AjaxRequest*](docs/AjaxRequest.md) that resolves when the request is completed, or rejects on failure.\r\n\r\n```javascript\r\nconst request = $.get(url, data, options);\r\n```\r\n\r\n**Patch**\r\n\r\nPerform an XHR PATCH request.\r\n\r\n- `url` is a string containing the URL for the request.\r\n- `data` can be an object, array, string or *FormData* containing data to send with the request, and will default to *null*.\r\n- `options` is an object containing options for the request.\r\n    - `method` is a string containing the method to use for the request, and will default to \"*PATCH*\".\r\n    - `contentType` is a string containing the Content-Type header to send with the request, and will default to \"*application/x-www-form-urlencoded*\".\r\n    - `responseType` is a string containing the expected Content-Type header of the response.\r\n    - `mimeType` is a string containing the MIME type to use for the server response.\r\n    - `username` is a string containing the username to authenticate with.\r\n    - `password` is a string containing the password to authenticate with.\r\n    - `timeout` is a number indicating the number of milliseconds before the request will be terminated, and will default to *0*.\r\n    - `isLocal` is a boolean indicating whether the request will be treated as local.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n    - `processData` is a boolean indicating whether to process the data depending on the `contentType`, and will default to *true*.\r\n    - `rejectOnCancel` is a boolean indicating whether to reject the promise if the request is cancelled, and will default to *true*.\r\n    - `headers` is an object containing additional headers to send with the request.\r\n    - `afterSend` is a function that accepts an `xhr` argument, and will be called after the request is sent.\r\n    - `beforeSend` is a function that accepts an `xhr` argument, and will be called before the request is sent.\r\n    - `onProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR download progress.\r\n    - `onUploadProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR upload progress.\r\n\r\nThis method returns an [*AjaxRequest*](docs/AjaxRequest.md) that resolves when the request is completed, or rejects on failure.\r\n\r\n```javascript\r\nconst request = $.patch(url, data, options);\r\n```\r\n\r\n**Post**\r\n\r\nPerform an XHR POST request.\r\n\r\n- `url` is a string containing the URL for the request.\r\n- `data` can be an object, array, string or *FormData* containing data to send with the request, and will default to *null*.\r\n- `options` is an object containing options for the request.\r\n    - `method` is a string containing the method to use for the request, and will default to \"*POST*\".\r\n    - `contentType` is a string containing the Content-Type header to send with the request, and will default to \"*application/x-www-form-urlencoded*\".\r\n    - `responseType` is a string containing the expected Content-Type header of the response.\r\n    - `mimeType` is a string containing the MIME type to use for the server response.\r\n    - `username` is a string containing the username to authenticate with.\r\n    - `password` is a string containing the password to authenticate with.\r\n    - `timeout` is a number indicating the number of milliseconds before the request will be terminated, and will default to *0*.\r\n    - `isLocal` is a boolean indicating whether the request will be treated as local.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n    - `processData` is a boolean indicating whether to process the data depending on the `contentType`, and will default to *true*.\r\n    - `rejectOnCancel` is a boolean indicating whether to reject the promise if the request is cancelled, and will default to *true*.\r\n    - `headers` is an object containing additional headers to send with the request.\r\n    - `afterSend` is a function that accepts an `xhr` argument, and will be called after the request is sent.\r\n    - `beforeSend` is a function that accepts an `xhr` argument, and will be called before the request is sent.\r\n    - `onProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR download progress.\r\n    - `onUploadProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR upload progress.\r\n\r\nThis method returns an [*AjaxRequest*](docs/AjaxRequest.md) that resolves when the request is completed, or rejects on failure.\r\n\r\n```javascript\r\nconst request = $.post(url, data, options);\r\n```\r\n\r\n**Put**\r\n\r\nPerform an XHR PUT request.\r\n\r\n- `url` is a string containing the URL for the request.\r\n- `data` can be an object, array, string or *FormData* containing data to send with the request, and will default to *null*.\r\n- `options` is an object containing options for the request.\r\n    - `method` is a string containing the method to use for the request, and will default to \"*PUT*\".\r\n    - `contentType` is a string containing the Content-Type header to send with the request, and will default to \"*application/x-www-form-urlencoded*\".\r\n    - `responseType` is a string containing the expected Content-Type header of the response.\r\n    - `mimeType` is a string containing the MIME type to use for the server response.\r\n    - `username` is a string containing the username to authenticate with.\r\n    - `password` is a string containing the password to authenticate with.\r\n    - `timeout` is a number indicating the number of milliseconds before the request will be terminated, and will default to *0*.\r\n    - `isLocal` is a boolean indicating whether the request will be treated as local.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n    - `processData` is a boolean indicating whether to process the data depending on the `contentType`, and will default to *true*.\r\n    - `rejectOnCancel` is a boolean indicating whether to reject the promise if the request is cancelled, and will default to *true*.\r\n    - `headers` is an object containing additional headers to send with the request.\r\n    - `afterSend` is a function that accepts an `xhr` argument, and will be called after the request is sent.\r\n    - `beforeSend` is a function that accepts an `xhr` argument, and will be called before the request is sent.\r\n    - `onProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR download progress.\r\n    - `onUploadProgress` is a function that accepts `progress`, `xhr` and `event` as arguments and will be called on XHR upload progress.\r\n\r\nThis method returns an [*AjaxRequest*](docs/AjaxRequest.md) that resolves when the request is completed, or rejects on failure.\r\n\r\n```javascript\r\nconst request = $.put(url, data, options);\r\n```\r\n\r\n\r\n## Animation\r\n\r\n**Animate**\r\n\r\nAdd an animation to each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `callback` is a function that accepts `node`, `progress` and `options` as arguments, where `node` is a *HTMLElement*, `progress` is a value between *0* and *1* and `options` is the `options` object passed to this method.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either *ease-in*, *ease-out*, *ease-in-out* or *linear* indicating the type of animation to run, and will default to *ease-in-out*.\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.animate(selector, callback, options);\r\n```\r\n\r\n**Stop Animations**\r\n\r\nStop all animations for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animations should be stopped.\r\n    - `finish` is a boolean indicating whether to immediately finish the animation, and will default to *true*.\r\n\r\n```javascript\r\n$.stop(selector, options);\r\n```\r\n\r\n### Animations\r\n\r\n**Drop In**\r\n\r\nDrop each node into place.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of node.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `direction` is a string or function that returns either \"*top*\", \"*right*\", \"*bottom*\" or \"*left*\" indicating the direction to drop from, and will default to \"*top*\".\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n    - `useGpu` is a boolean indicating whether the animation should use GPU acceleration (CSS transform) and will default to *true*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.dropIn(selector, options);\r\n```\r\n\r\n**Drop Out**\r\n\r\nDrop each node out of place.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `direction` is a string or function that returns either \"*top*\", \"*right*\", \"*bottom*\" or \"*left*\" indicating the direction to drop from, and will default to \"*top*\".\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n    - `useGpu` is a boolean indicating whether the animation should use GPU acceleration (CSS transform) and will default to *true*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.dropOut(selector, options);\r\n```\r\n\r\n**Fade In**\r\n\r\nFade the opacity of each node in.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.fadeIn(selector, options);\r\n```\r\n\r\n**Fade Out**\r\n\r\nFade the opacity of each node out.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.fadeOut(selector, options);\r\n```\r\n\r\n**Rotate In**\r\n\r\nRotate each node in on an X, Y or Z.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `x` is the amount of rotation to apply to the X axis, and will default to *0*.\r\n    - `y` is the amount of rotation to apply to the Y axis, and will default to *1*.\r\n    - `z` is the amount of rotation to apply to the Z axis, and will default to *0*.\r\n    - `inverse` is a boolean indicating whether to rotate in the opposite direction, and will default to *false*.\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.rotateIn(selector, options);\r\n```\r\n\r\n**Rotate Out**\r\n\r\nRotate each node out on an X, Y or Z.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `x` is the amount of rotation to apply to the X axis, and will default to *0*.\r\n    - `y` is the amount of rotation to apply to the Y axis, and will default to *1*.\r\n    - `z` is the amount of rotation to apply to the Z axis, and will default to *0*.\r\n    - `inverse` is a boolean indicating whether to rotate in the opposite direction, and will default to *false*.\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.rotateOut(selector, options);\r\n```\r\n\r\n**Slide In**\r\n\r\nSlide each node into place to a direction.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `direction` is a string or function that returns either \"*top*\", \"*right*\", \"*bottom*\" or \"*left*\" indicating the direction to slide from, and will default to \"*top*\".\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n    - `useGpu` is a boolean indicating whether the animation should use GPU acceleration (CSS transform) and will default to *true*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.slideIn(selector, options);\r\n```\r\n\r\n**Slide Out**\r\n\r\nSlide each node out of place from a direction.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `direction` is a string or function that returns either \"*top*\", \"*right*\", \"*bottom*\" or \"*left*\" indicating the direction to slide from, and will default to \"*top*\".\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n    - `useGpu` is a boolean indicating whether the animation should use GPU acceleration (CSS transform) and will default to *true*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.slideOut(selector, options);\r\n```\r\n\r\n**Squeeze In**\r\n\r\nSqueeze each node into place to a direction.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `direction` is a string or function that returns either \"*top*\", \"*right*\", \"*bottom*\" or \"*left*\" indicating the direction to squeeze from, and will default to \"*top*\".\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n    - `useGpu` is a boolean indicating whether the animation should use GPU acceleration (CSS transform) and will default to *true*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.squeezeIn(selector, options);\r\n```\r\n\r\n**Squeeze Out**\r\n\r\nSqueeze each node out of place from a direction.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the animation should be handled.\r\n    - `direction` is a string or function that returns either \"*top*\", \"*right*\", \"*bottom*\" or \"*left*\" indicating the direction to squeeze from, and will default to \"*top*\".\r\n    - `duration` is the number of milliseconds that the animation should last, and will default to *1000*.\r\n    - `type` is a string of either \"*ease-in*\", \"*ease-out*\", \"*ease-in-out*\" or \"*linear*\" indicating the type of animation to run, and will default to \"*ease-in-out*\".\r\n    - `infinite` is a boolean indicating whether the animation should continue forever, and will default to *false*.\r\n    - `useGpu` is a boolean indicating whether the animation should use GPU acceleration (CSS transform) and will default to *true*.\r\n\r\nThis method returns an [*AnimationSet*](docs/Animation.md) that will resolve after the animation has completed.\r\n\r\n```javascript\r\nconst animation = $.squeezeOut(selector, options);\r\n```\r\n\r\n\r\n## Attributes\r\n\r\n**Get Attribute**\r\n\r\nGet an attribute value for the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `attribute` is a string indicating the attribute value to return.\r\n\r\n```javascript\r\nconst value = $.getAttribute(selector, attribute);\r\n```\r\n\r\nIf the `attribute` argument is omitted, an object containing all attribute values will be returned instead.\r\n\r\n```javascript\r\nconst attributes = $.getAttribute(selector);\r\n```\r\n\r\n**Get Dataset**\r\n\r\nGet a dataset value for the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `key` is a string indicating the dataset value to return.\r\n\r\n```javascript\r\nconst value = $.getDataset(selector, key);\r\n```\r\n\r\nIf the `key` argument is omitted, an object containing all dataset values will be returned instead.\r\n\r\n```javascript\r\nconst dataset = $.getDataset(selector);\r\n```\r\n\r\nThis method will attempt to convert string values to JS primitives (including booleans, numbers, objects, arrays and null).\r\n\r\n**Get HTML**\r\n\r\nGet the HTML contents of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst html = $.getHTML(selector);\r\n```\r\n\r\n**Get Property**\r\n\r\nGet a property value for the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `property` is a string indicating the property value to return.\r\n\r\n```javascript\r\nconst value = $.getProperty(selector, property);\r\n```\r\n\r\n**Get Text**\r\n\r\nGet the text contents of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst text = $.getText(selector);\r\n```\r\n\r\n**Get Value**\r\n\r\nGet the value property of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst value = $.getValue(selector);\r\n```\r\n\r\n**Remove Attribute**\r\n\r\nRemove an attribute from each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `attribute` is a string indicating the attribute value to remove.\r\n\r\n```javascript\r\n$.removeAttribute(selector, attribute);\r\n```\r\n\r\n**Remove Dataset**\r\n\r\nRemove a dataset value from each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `key` is a string indicating the dataset value to remove.\r\n\r\n```javascript\r\n$.removeDataset(selector, key);\r\n```\r\n\r\n**Remove Property**\r\n\r\nRemove a property from each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `property` is a string indicating the property value to remove.\r\n\r\n```javascript\r\n$.removeProperty(selector, property);\r\n```\r\n\r\n**Set Attribute**\r\n\r\nSet attributes for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `attribute` is a string indicating the attribute value to set.\r\n- `value` is the value you want to set the attribute to.\r\n\r\n```javascript\r\n$.setAttribute(selector, attribute, value);\r\n```\r\n\r\nAlternatively, you can set multiple attributes by passing a single `attributes` object as the argument with key/value pairs of the attributes to set.\r\n\r\n```javascript\r\n$.setAttribute(selector, attributes);\r\n```\r\n\r\n**Set Dataset**\r\n\r\nSet dataset values for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `key` is a string indicating the dataset value to set.\r\n- `value` is the value you want to set the dataset to.\r\n\r\n```javascript\r\n$.setDataset(selector, key, value);\r\n```\r\n\r\nAlternatively, you can set multiple dataset properties by passing a single `dataset` object as the argument with key/value pairs of the properties to set.\r\n\r\n```javascript\r\n$.setDataset(selector, dataset);\r\n```\r\n\r\nThis method will convert object and array values to JSON strings.\r\n\r\n**Set HTML**\r\n\r\nSet the HTML contents for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of node.\r\n- `html` is a string that will become the HTML contents of the node.\r\n\r\n```javascript\r\n$.setHTML(selector, html);\r\n```\r\n\r\n**Set Property**\r\n\r\nSet property values for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `property` is a string indicating the property value to set.\r\n- `value` is the value you want to set the property to.\r\n\r\n```javascript\r\n$.setProperty(selector, property, value);\r\n```\r\n\r\nAlternatively, you can set multiple properties by passing a single `properties` object as the argument with key/value pairs of the properties to set.\r\n\r\n```javascript\r\n$.setProperty(selector, properties);\r\n```\r\n\r\n**Set Text**\r\n\r\nSet the text contents for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `text` is a string that will become the text contents of the node.\r\n\r\n```javascript\r\n$.setText(selector, text);\r\n```\r\n\r\n**Set Value**\r\n\r\nSet the value property for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `value` is a string that will become the value of the node.\r\n\r\n```javascript\r\n$.setValue(selector, value);\r\n```\r\n\r\n### Custom Data\r\n\r\n**Clone Data**\r\n\r\nClone custom data from each node to each other node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.cloneData(selector, otherSelector);\r\n```\r\n\r\n**Get Data**\r\n\r\nGet custom data for the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `key` is a string indicating the custom data value to return.\r\n\r\n```javascript\r\nconst value = $.getData(selector, key);\r\n```\r\n\r\nIf the `key` argument is omitted, an object containing all custom data values will be returned instead.\r\n\r\n```javascript\r\nconst data = $.getData(selector);\r\n```\r\n\r\n**Remove Data**\r\n\r\nRemove custom data for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `key` is a string indicating the custom data value to remove.\r\n\r\n```javascript\r\n$.removeData(selector, key);\r\n```\r\n\r\n**Set Data**\r\n\r\nSet custom data for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `key` is a string indicating the custom data value to set.\r\n- `value` is the value you want to set the attribute to.\r\n\r\n```javascript\r\n$.setData(selector, key, value);\r\n```\r\n\r\nAlternatively, you can set multiple data values by passing a single `data` object as the argument with key/value pairs of the data to set.\r\n\r\n```javascript\r\n$.setData(selector, data);\r\n```\r\n\r\n### Position\r\n\r\n**Center**\r\n\r\nGet the X,Y co-ordinates for the center of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the position should be calculated.\r\n    - `offset` is a boolean indicating whether the co-ordinates should be offset from the top left of the document, and will default to *false*.\r\n\r\n```javascript\r\nconst center = $.center(selector, options);\r\n```\r\n\r\n**Constrain**\r\n\r\nConstrain each node to a container node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `containerSelector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.constrain(selector, containerSelector);\r\n```\r\n\r\n**Distance To**\r\n\r\nGet the distance of the first node to an X,Y position.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `x` is a distance (in pixels) along the X axis.\r\n- `y` is a distance (in pixels) along the Y axis.\r\n- `options` is an object containing options for how the distance should be calculated.\r\n    - `offset` is a boolean indicating whether the co-ordinates should be offset from the top left of the document, and will default to *false*.\r\n\r\n```javascript\r\nconst dist = $.distTo(selector, x, y, options);\r\n```\r\n\r\n**Distance To Node**\r\n\r\nGet the distance between two nodes.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst dist = $.distToNode(selector, otherSelector);\r\n```\r\n\r\n**Nearest To**\r\n\r\nGet the nearest node to an X,Y position.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `x` is a distance (in pixels) along the X axis.\r\n- `y` is a distance (in pixels) along the Y axis.\r\n- `options` is an object containing options for how the distance should be calculated.\r\n    - `offset` is a boolean indicating whether the co-ordinates should be offset from the top left of the document, and will default to *false*.\r\n\r\n```javascript\r\nconst nearest = $.nearestTo(selector, x, y, options);\r\n```\r\n\r\n**Nearest To Node**\r\n\r\nGet the nearest node to another node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst nearest = $.nearestToNode(selector, otherSelector);\r\n```\r\n\r\n**Percent X**\r\n\r\nGet the percentage of an X co-ordinate relative to the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `x` is a distance (in pixels) along the X axis.\r\n- `options` is an object containing options for how the percent should be calculated.\r\n    - `offset` is a boolean indicating whether the co-ordinates should be offset from the top left of the document, and will default to *false*.\r\n    - `clamp` is a boolean indicating whether to clamp the percent betwen *0* and *100*, and will default to *true*.\r\n\r\n```javascript\r\nconst percentX = $.percentX(selector, x, options);\r\n```\r\n\r\n**Percent Y**\r\n\r\nGet the percentage of a Y co-ordinate relative to the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `y` is a distance (in pixels) along the Y axis.\r\n- `options` is an object containing options for how the percent should be calculated.\r\n    - `offset` is a boolean indicating whether the co-ordinates should be offset from the top left of the document, and will default to *false*.\r\n    - `clamp` is a boolean indicating whether to clamp the percent betwen *0* and *100*, and will default to *true*.\r\n\r\n```javascript\r\nconst percentY = $.percentY(selector, y, options);\r\n```\r\n\r\n**Position**\r\n\r\nGet the X,Y position for the top/left of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the position should be calculated.\r\n    - `offset` is a boolean indicating whether the co-ordinates should be offset from the top left of the document, and will default to *false*.\r\n\r\n```javascript\r\nconst position = $.position(selector, options);\r\n```\r\n\r\n**Rectangle**\r\n\r\nGet the computed bounding rectangle of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the bounding rectangle should be calculated.\r\n    - `offset` is a boolean indicating whether the rectangle should be offset from the top left of the document, and will default to *false*.\r\n\r\n```javascript\r\nconst rect = $.rect(selector, options);\r\n```\r\n\r\n### Scroll\r\n\r\n**Get Scroll X**\r\n\r\nGet the scroll X position of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst scrollX = $.getScrollX(selector);\r\n```\r\n\r\n**Get Scroll Y**\r\n\r\nGet the scroll Y position of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst scrollY = $.getScrollY(selector);\r\n```\r\n\r\n**Set Scroll**\r\n\r\nScroll each node to an X,Y position.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `x` is a distance (in pixels) along the X axis to scroll to.\r\n- `y` is a distance (in pixels) along the Y axis to scroll to.\r\n\r\n```javascript\r\n$.setScroll(selector, x, y);\r\n```\r\n\r\n**Set Scroll X**\r\n\r\nScroll each node to an X position.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `x` is a distance (in pixels) along the X axis to scroll to.\r\n\r\n```javascript\r\n$.setScrollX(selector, x);\r\n```\r\n\r\n**Set Scroll Y**\r\n\r\nScroll each node to a Y position.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `y` is a distance (in pixels) along the Y axis to scroll to.\r\n\r\n```javascript\r\n$.setScrollY(selector, y);\r\n```\r\n\r\n### Size\r\n\r\n**Height**\r\n\r\nGet the computed height of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the height should be calculated.\r\n    - `boxSize` is a number indicating the box sizing to calculate. Allowed values are *0* (no padding), *1* (padding), *2* (padding and border), *3* (padding, border and margin) and *4* (scroll area), and will default to *1*.\r\n    - `outer` is a boolean indicating whether to use the window outer height, and will default to *false*.\r\n\r\n```javascript\r\nconst height = $.height(selector, options);\r\n```\r\n\r\nThe following constants can also be used as the `boxSize` for brevity.\r\n- `$.CONTENT_BOX`\r\n- `$.PADDING_BOX`\r\n- `$.BORDER_BOX`\r\n- `$.MARGIN_BOX`\r\n- `$.SCROLL_BOX`\r\n\r\n**Width**\r\n\r\nGet the computed width of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the width should be calculated.\r\n    - `boxSize` is a number indicating the box sizing to calculate. Allowed values are *0* (no padding), *1* (padding), *2* (padding and border), *3* (padding, border and margin) and *4* (scroll area), and will default to *1*.\r\n    - `outer` is a boolean indicating whether to use the window outer width, and will default to *false*.\r\n\r\n```javascript\r\nconst width = $.width(selector, options);\r\n```\r\n\r\nThe following constants can also be used as the `boxSize` for brevity.\r\n- `$.CONTENT_BOX`\r\n- `$.PADDING_BOX`\r\n- `$.BORDER_BOX`\r\n- `$.MARGIN_BOX`\r\n- `$.SCROLL_BOX`\r\n\r\n### Styles\r\n\r\n**Add Class**\r\n\r\nAdd a class or classes to each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `classes` is an array of classes, or a space seperated string of class names.\r\n\r\n```javascript\r\n$.addClass(selector, ...classes);\r\n```\r\n\r\n**Computed Style**\r\n\r\nGet a computed CSS style value for the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `style` is a string indicating the computed style property value to return.\r\n\r\n```javascript\r\nconst value = $.css(selector, style);\r\n```\r\n\r\nIf the `style` argument is omitted, an object containing all computed style values will be returned instead.\r\n\r\n```javascript\r\nconst css = $.css(selector);\r\n```\r\n\r\n**Get Style**\r\n\r\nGet a style property for the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `style` is a string indicating the style property value to return.\r\n\r\n```javascript\r\nconst value = $.getStyle(selector, style);\r\n```\r\n\r\nIf the `style` argument is omitted, an object containing all style values will be returned instead.\r\n\r\n```javascript\r\nconst styles = $.getStyle(selector);\r\n```\r\n\r\n**Hide**\r\n\r\nHide each node from display.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.hide(selector);\r\n```\r\n\r\n**Remove Class**\r\n\r\nRemove a class or classes from each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `classes` is an array of classes, or a space seperated string of class names.\r\n\r\n```javascript\r\n$.removeClass(selector, ...classes);\r\n```\r\n\r\n**Remove Style**\r\n\r\nRemove a style property from each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `style` is a string indicating the style property to remove.\r\n\r\n```javascript\r\n$.removeStyle(selector, style);\r\n```\r\n\r\n**Set Style**\r\n\r\nSet style properties for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `style` is a string indicating the style property value to set.\r\n- `value` is the value you wish to set the style property to.\r\n- `options` is an object containing options for how the style should be applied.\r\n    - `important` is a boolean indicating the style should be set as important, and will default to *false*.\r\n\r\n```javascript\r\n$.setStyle(selector, style, value, options);\r\n```\r\n\r\nAlternatively, you can set multiple style properties by passing a single `styles` object as the argument with key/value pairs of the styles to set.\r\n\r\n```javascript\r\n$.setStyle(selector, styles);\r\n```\r\n\r\n**Show**\r\n\r\nDisplay each hidden node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.show(selector);\r\n```\r\n\r\n**Toggle**\r\n\r\nToggle the visibility of each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.toggle(selector);\r\n```\r\n\r\n**Toggle Class**\r\n\r\nToggle a class or classes for each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `classes` is an array of classes, or a space seperated string of class names.\r\n\r\n```javascript\r\n$.toggleClass(selector, ...classes);\r\n```\r\n\r\n\r\n## Cookie\r\n\r\n**Get Cookie**\r\n\r\nGet a cookie value.\r\n\r\n- `name` is a string containing the name of the cookie value to retrieve.\r\n\r\n```javascript\r\nconst value = $.getCookie(name);\r\n```\r\n\r\n**Remove Cookie**\r\n\r\nRemove a cookie.\r\n\r\n- `name` is a string containing the name of the cookie value to remove.\r\n- `options` is an object containing configuration options for the cookie.\r\n    - `expires` is a number indicating the number of seconds until the cookie will expire, and will default to *-1*.\r\n    - `path` is a string indicating the path to use for the cookie.\r\n    - `secure` is a boolean indicating whether only set the cookie for secure requests, and will default to *false*.\r\n\r\n```javascript\r\n$.removeCookie(name, options);\r\n```\r\n\r\n**Set Cookie**\r\n\r\nSet a cookie value.\r\n\r\n- `name` is a string containing the name of the cookie value to set.\r\n- `value` is the value you wish to set the cookie to.\r\n- `options` is an object containing configuration options for the cookie.\r\n    - `expires` is a number indicating the number of seconds until the cookie will expire.\r\n    - `path` is a string indicating the path to use for the cookie.\r\n    - `secure` is a boolean indicating whether only set the cookie for secure requests, and will default to *false*.\r\n\r\n```javascript\r\n$.setCookie(name, value, options);\r\n```\r\n\r\n\r\n## Events\r\n\r\n**Blur**\r\n\r\nTrigger a blur event on the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.blur(selector);\r\n```\r\n\r\n**Click**\r\n\r\nTrigger a click event on the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.click(selector);\r\n```\r\n\r\n**Focus**\r\n\r\nTrigger a focus event on the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.focus(selector);\r\n```\r\n\r\n**Ready**\r\n\r\nAdd a function to the ready queue.\r\n\r\n- `callback` is a function that will execute once the DOM has finished loading.\r\n\r\nIf the DOM is already loaded, `callback` will execute immediately.\r\n\r\n```javascript\r\n$.ready(callback);\r\n```\r\n\r\n### Event Handlers\r\n\r\n**Add Event**\r\n\r\nAdd events to each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `events` is a space-separated string of events to attach to the nodes.\r\n- `callback` is a function that accepts an `event` argument, which will be called when the event is triggered.\r\n- `options` is an object containing options for how the event should be added.\r\n    - `capture` is a boolean indicating whether to use a capture event, and will default to *false*.\r\n    - `passive` is a boolean indicating whether to use a passive event, and will default to *false*.\r\n\r\n```javascript\r\n$.addEvent(selector, events, callback, options);\r\n```\r\n\r\n**Add Event Delegate**\r\n\r\nAdd delegated events to each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `events` is a space-separated string of events to attach to the nodes.\r\n- `delegate` is a query selector string which will only trigger the event if it is propagated by a target matching the selector.\r\n- `callback` is a function that accepts an `event` argument, which will be called when the event is triggered.\r\n- `options` is an object containing options for how the event should be added.\r\n    - `capture` is a boolean indicating whether to use a capture event, and will default to *false*.\r\n    - `passive` is a boolean indicating whether to use a passive event, and will default to *false*.\r\n\r\n```javascript\r\n$.addEventDelegate(selector, events, delegate, callback, options);\r\n```\r\n\r\n**Add Event Delegate Once**\r\n\r\nAdd self-destructing delegated events to each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `events` is a space-separated string of events to attach to the nodes.\r\n- `delegate` is a query selector string which will only trigger the event if it is propagated by a target matching the selector.\r\n- `callback` is a function that accepts an `event` argument, which will be called when the event is triggered.\r\n- `options` is an object containing options for how the event should be added.\r\n    - `capture` is a boolean indicating whether to use a capture event, and will default to *false*.\r\n    - `passive` is a boolean indicating whether to use a passive event, and will default to *false*.\r\n\r\n```javascript\r\n$.addEventDelegateOnce(selector, events, delegate, callback, options);\r\n```\r\n\r\n**Add Event Once**\r\n\r\nAdd self-destructing events to each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `events` is a space-separated string of events to attach to the nodes.\r\n- `callback` is a function that accepts an `event` argument, which will be called when the event is triggered.\r\n- `options` is an object containing options for how the event should be added.\r\n    - `capture` is a boolean indicating whether to use a capture event, and will default to *false*.\r\n    - `passive` is a boolean indicating whether to use a passive event, and will default to *false*.\r\n\r\n```javascript\r\n$.addEventOnce(selector, events, callback, options);\r\n```\r\n\r\n**Clone Events**\r\n\r\nClone all events from each node to other nodes.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.cloneEvents(selector, otherSelector);\r\n```\r\n\r\n**Remove Event**\r\n\r\nRemove events from each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `events` is a space-separated string of events to remove from the nodes.\r\n- `callback` is a function that accepts an `event` argument, which will be called when the event is triggered.\r\n- `options` is an object containing options for how the event should be removed.\r\n    - `capture` is a boolean indicating whether to use a capture event, and will default to *null*.\r\n\r\n```javascript\r\n$.removeEvent(selector, events, callback, options);\r\n```\r\n\r\nIf the `events`, `callback` or `capture` arguments are omitted, this method will remove all matching events from each node.\r\n\r\n**Remove Event Delegate**\r\n\r\nRemove delegated events from each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `events` is a space-separated string of events to remove from the nodes.\r\n- `delegate` is a query selector string which will only trigger the event if it is propagated by a target matching the selector.\r\n- `callback` is a function that accepts an `event` argument, which will be called when the event is triggered.\r\n- `options` is an object containing options for how the event should be removed.\r\n    - `capture` is a boolean indicating whether to use a capture event, and will default to *null*.\r\n\r\n```javascript\r\n$.removeEventDelegate(selector, events, delegate, callback, options);\r\n```\r\n\r\n**Trigger Event**\r\n\r\nTrigger events on each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `events` is a space-separated string of events to trigger on the nodes.\r\n- `options` is an object containing options for creating the new event.\r\n    - `data` can be used to attach additional data to the event.\r\n    - `detail` can be used to attach additional details to the event.\r\n    - `bubbles` is a boolean indicating whether the event should bubble, and will default to *true*.\r\n    - `cancelable` is a boolean indicating whether the event is cancelable, and will default to *true*.\r\n\r\n```javascript\r\n$.triggerEvent(selector, events, options);\r\n```\r\n\r\n**Trigger One**\r\n\r\nTrigger an event on the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `event` is an event to trigger on the nodes.\r\n- `options` is an object containing options for creating the new event.\r\n    - `data` can be used to attach additional data to the event.\r\n    - `detail` can be used to attach additional details to the event.\r\n    - `bubbles` is a boolean indicating whether the event should bubble, and will default to *true*.\r\n    - `cancelable` is a boolean indicating whether the event is cancelable, and will default to *true*.\r\n\r\n```javascript\r\nconst cancelled = !$.triggerOne(selector, event, options);\r\n```\r\n\r\nThis method returns *false* if the event was cancelled, otherwise returns *true*.\r\n\r\n### Event Factory\r\n\r\n**Mouse Drag Event Factory**\r\n\r\nCreate a mouse drag event (optionally limited by animation frame).\r\n\r\n- `down` is a function that accepts an *event* argument, which will be called when the event is started.\r\n- `move` is a function that accepts an *event* argument, which will be called when the mouse is moved during the event.\r\n- `up` is a function that accepts an *event* argument, which will be called when the event has ended (mouse button has been released).\r\n- `options` is an object containing configuration options for the drag event.\r\n    - `debounce` is a boolean indicating whether to debounce the move event, and will default to *true*.\r\n    - `passive` is a boolean indicating whether to use passive event listeners, and will default to *true*.\r\n    - `preventDefault` is a boolean indicating whether to prevent the default events, and will default to *true*.\r\n    - `touches` is a number indicating the number of touches to trigger the event for, and will default to *1*.\r\n\r\n```javascript\r\nconst drag = $.mouseDragFactory(down, move, up, options);\r\n```\r\n\r\nThis method also works with touch events.\r\n\r\n\r\n## Manipulation\r\n\r\n**Clone**\r\n\r\nClone each node (optionally deep, and with events and data).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how to clone the nodes.\r\n    - `deep` is a boolean indicating whether to also clone child nodes, and will default to *true*.\r\n    - `events` is a boolean indicating whether to also clone events, and will default to *false*.\r\n    - `data` is a boolean indicating whether to also clone data, and will default to *false*.\r\n    - `animations` is a boolean indicating whether to also clone animations, and will default to *false*.\r\n\r\n```javascript\r\nconst clones = $.clone(selector, options);\r\n```\r\n\r\n**Detach**\r\n\r\nDetach each node from the DOM.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst detached = $.detach(selector);\r\n```\r\n\r\n**Empty**\r\n\r\nRemove all children of each node from the DOM.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.empty(selector);\r\n```\r\n\r\n**Remove**\r\n\r\nRemove each node from the DOM.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.remove(selector);\r\n```\r\n\r\n**Replace All**\r\n\r\nReplace each other node with nodes.\r\n\r\n- `selector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *Node*, *HTMLElement* *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.replaceAll(selector, otherSelector);\r\n```\r\n\r\nIf a node you are replacing with is a *DocumentFragment*, the fragment contents will be used as a replacement.\r\n\r\nIf multiple nodes are being replaced, cloned nodes will be created for each except for the last one.\r\n\r\nAll events, data and animations will be removed from each node that is replaced.\r\n\r\n**Replace With**\r\n\r\nReplace each node with other nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.replaceWith(selector, otherSelector);\r\n```\r\n\r\nIf a node you are replacing with is a *DocumentFragment*, the fragment contents will be used as a replacement.\r\n\r\nIf multiple nodes are being replaced, cloned nodes will be created for each except for the last one.\r\n\r\nAll events, data and animations will be removed from each node that is replaced.\r\n\r\n### Create\r\n\r\n**Attach Shadow**\r\n\r\nAttach a shadow DOM tree to the first node.\r\n\r\n- `selector` is a query selector string, a*HTMLElement*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the shadow should be attached.\r\n    - `open` is a boolean indicating whether the nodes are accessible from JavaScript outside the root, and will default to *true*.\r\n\r\n```javascript\r\nconst shadow = $.attachShadow(selector, options);\r\n```\r\n\r\n**Create**\r\n\r\nCreate a new DOM element.\r\n\r\n- `tagName` is a string indicating the type of element you wish to create, and will default to \"*div*\".\r\n- `options` is an object containing options for creating the new node.\r\n    - `html` is a string that will become the HTML contents of the node.\r\n    - `text` is a string that will become the text contents of the node.\r\n    - `class` is an array of classes, or a space seperated string of class names.\r\n    - `style` is an object containing style values to set.\r\n    - `value` is a string that will become the value of the node.\r\n    - `attributes` is an object containing attribute values to set.\r\n    - `properties` is an object containing property values to set.\r\n    - `dataset` is an object containing dataset values to set.\r\n\r\n```javascript\r\nconst element = $.create(tagName, options);\r\n```\r\n\r\n**Create Comment**\r\n\r\nCreate a new comment node.\r\n\r\n- `comment` is a string indicating the comment.\r\n\r\n```javascript\r\nconst commentNode = $.createComment(comment);\r\n```\r\n\r\n**Create Fragment**\r\n\r\nCreate a new document fragment.\r\n\r\n```javascript\r\nconst fragment = $.createFragment();\r\n```\r\n\r\n**Create Range**\r\n\r\nCreate a new range object.\r\n\r\n```javascript\r\nconst range = $.createRange();\r\n```\r\n\r\n**Create Text**\r\n\r\nCreate a new text node.\r\n\r\n- `text` is a string indicating the text.\r\n\r\n```javascript\r\nconst textNode = $.createText(text);\r\n```\r\n\r\n### Move\r\n\r\n**After**\r\n\r\nInsert each other node after each node.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.after(selector, otherSelector);\r\n```\r\n\r\nIf a node you are moving is a *DocumentFragment*, the contents will be moved instead.\r\n\r\nIf multiple copies of the nodes are being moved, cloned nodes will be created for each except for the last one.\r\n\r\n**Append**\r\n\r\nAppend each other node to each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.append(selector, otherSelector);\r\n```\r\n\r\nIf a node you are moving is a *DocumentFragment*, the contents will be moved instead.\r\n\r\nIf multiple copies of the nodes are being moved, cloned nodes will be created for each except for the last one.\r\n\r\n**Append To**\r\n\r\nAppend each node to each other node.\r\n\r\n- `selector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.appendTo(selector, otherSelector);\r\n```\r\n\r\nIf a node you are moving is a *DocumentFragment*, the contents will be moved instead.\r\n\r\nIf multiple copies of the nodes are being moved, cloned nodes will be created for each except for the last one.\r\n\r\n**Before**\r\n\r\nInsert each other node before each node.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.before(selector, otherSelector);\r\n```\r\n\r\nIf a node you are moving is a *DocumentFragment*, the contents will be moved instead.\r\n\r\nIf multiple copies of the nodes are being moved, cloned nodes will be created for each except for the last one.\r\n\r\n**Insert After**\r\n\r\nInsert each node after each other node.\r\n\r\n- `selector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.insertAfter(selector, otherSelector);\r\n```\r\n\r\nIf a node you are moving is a *DocumentFragment*, the contents will be moved instead.\r\n\r\nIf multiple copies of the nodes are being moved, cloned nodes will be created for each except for the last one.\r\n\r\n**Insert Before**\r\n\r\nInsert each node before each other node.\r\n\r\n- `selector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.insertBefore(selector, otherSelector);\r\n```\r\n\r\nIf a node you are moving is a *DocumentFragment*, the contents will be moved instead.\r\n\r\nIf multiple copies of the nodes are being moved, cloned nodes will be created for each except for the last one.\r\n\r\n**Prepend**\r\n\r\nPrepend each other node to each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.prepend(selector, otherSelector);\r\n```\r\n\r\nIf a node you are moving is a *DocumentFragment*, the contents will be moved instead.\r\n\r\nIf multiple copies of the nodes are being moved, cloned nodes will be created for each except for the last one.\r\n\r\n**Prepend To**\r\n\r\nPrepend each node to each other node.\r\n\r\n- `selector` is a query selector string, a HTML string, a *Node*, *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.prependTo(selector, otherSelector);\r\n```\r\n\r\nIf a node you are moving is a *DocumentFragment*, the contents will be moved instead.\r\n\r\nIf multiple copies of the nodes are being moved, cloned nodes will be created for each except for the last one.\r\n\r\n### Wrap\r\n\r\n**Unwrap**\r\n\r\nUnwrap each node.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that must match the parent of each node for it to be unwrapped.\r\n\r\n```javascript\r\n$.unwrap(selector, nodeFilter);\r\n```\r\n\r\n**Wrap**\r\n\r\nWrap each node with other nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a HTML string, a *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.wrap(selector, otherSelector);\r\n```\r\n\r\nIf a node you are wrapping with is a *DocumentFragment*, the contents will be used to wrap instead.\r\n\r\n**Wrap All**\r\n\r\nWrap all nodes with other nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a HTML string, a *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.wrapAll(selector, otherSelector);\r\n```\r\n\r\n**Wrap Inner**\r\n\r\nWrap the contents of each node with other nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a HTML string, a *HTMLElement*, *DocumentFragment*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\n$.wrapInner(selector, otherSelector);\r\n```\r\n\r\nIf a node you are wrapping with is a *DocumentFragment*, the contents will be used to wrap instead.\r\n\r\n\r\n## Parsing\r\n\r\n**Parse Document**\r\n\r\nCreate a *Document* object from a string.\r\n\r\n- `input` is the input string.\r\n- `options` is an object containing options for how to parse the string.\r\n    - `contentType` is a string representing the content type, and will default to \"*text/html*\".\r\n\r\n```javascript\r\nconst doc = $.parseDocument(input, options);\r\n```\r\n\r\n**Parse HTML**\r\n\r\nReturn an array containing nodes parsed from a HTML string.\r\n\r\n- `html` is a string containing the HTML data to parse.\r\n\r\n```javascript\r\nconst nodes = $.parseHTML(html);\r\n```\r\n\r\n\r\n## Queue\r\n\r\n**Clear Queue**\r\n\r\nClear a queue of each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `options` is an object containing options for how the queue should be cleared.\r\n    - `queueName` is a string indicating the name of the queue to clear, and will default to \"*null*\".\r\n\r\n```javascript\r\n$.clearQueue(selector, options);\r\n```\r\n\r\nIf the `queueName` is set to *null*, then all queues will be cleared.\r\n\r\n**Queue**\r\n\r\nQueue a callback on each node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `callback` is a function that accepts `node` as an argument, where node is a *HTMLElement*. The callback can return a *Promise* which will pause the queue until the promise is resolved.\r\n- `options` is an object containing options for how the queue should be added.\r\n    - `queueName` is a string indicating the name of the queue to use, and will default to \"*default*\".\r\n\r\n```javascript\r\n$.queue(selector, callback, options);\r\n```\r\n\r\nIf an item in the queue returns a *Promise* that rejects, the queue will be cleared.\r\n\r\n\r\n## Scripts\r\n\r\n**Load Script**\r\n\r\nLoad and execute a JavaScript file.\r\n\r\n- `script` is a string containing the URL for the script to load.\r\n- `attributes` is an object containing additional attributes on the `script` tag.\r\n- `options` is an object containing options for how the script should be loaded.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n\r\nThis method returns a *Promise* that resolves when the script is loaded, or rejects on failure.\r\n\r\n```javascript\r\nconst promise = $.loadScript(script, attributes, options);\r\n```\r\n\r\n**Load Scripts**\r\n\r\nLoad and execute multiple JavaScript files (in order).\r\n\r\n- `scripts` is a array of strings containing the URLs for the scripts to load, or an array of script attribute objects.\r\n- `options` is an object containing options for how the scripts should be loaded.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n\r\nThis method returns a *Promise* that resolves when the scripts are loaded, or rejects on failure.\r\n\r\n```javascript\r\nconst promise = $.loadScripts(scripts, options);\r\n```\r\n\r\n\r\n## Stylesheets\r\n\r\n**Load Stylesheet**\r\n\r\nImport A CSS Stylesheet file.\r\n\r\n- `stylesheet` is a string containing the URL for the stylesheet to load.\r\n- `attributes` is an object containing additional attributes on the `link` tag.\r\n- `options` is an object containing options for how the stylesheet should be loaded.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n\r\nThis method returns a *Promise* that resolves when the stylesheet is loaded, or rejects on failure.\r\n\r\n```javascript\r\nconst promise = $.loadStyle(stylesheet, attributes, options);\r\n```\r\n\r\n**Load Stylesheets**\r\n\r\nImport multiple CSS Stylesheet files.\r\n\r\n- `stylesheets` is a array of strings containing the URLs for the stylesheets to load, or an array of link attribute objects.\r\n- `options` is an object containing options for how the stylesheets should be loaded.\r\n    - `cache` is a boolean indicating whether to cache the request, and will default to *true*.\r\n\r\nThis method returns a *Promise* that resolves when the stylesheets are loaded, or rejects on failure.\r\n\r\n```javascript\r\nconst promise = $.loadStyles(stylesheets, options);\r\n```\r\n\r\n\r\n## Traversal\r\n\r\n**Child**\r\n\r\nFind the first child of each node (optionally matching a filter).\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n\r\n```javascript\r\nconst child = $.child(selector, nodeFilter);\r\n```\r\n\r\n**Children**\r\n\r\nFind all children of each node (optionally matching a filter).\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n\r\n```javascript\r\nconst children = $.children(selector, nodeFilter);\r\n```\r\n\r\n**Closest**\r\n\r\nFind the closest ancestor to each node (optionally matching a filter, and before a limit).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n- `limitFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that when matched will stop the search, and will default to *false*.\r\n\r\n```javascript\r\nconst closest = $.closest(selector, nodeFilter, limitFilter);\r\n```\r\n\r\n**Common Ancestor**\r\n\r\nFind the common ancestor of all nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst commonAncestor = $.commonAncestor(selector);\r\n```\r\n\r\n**Contents**\r\n\r\nFind all children of each node (including text and comment nodes).\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst contents = $.contents(selector);\r\n```\r\n\r\n**Fragment**\r\n\r\nReturn the *DocumentFragment* of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst fragment = $.fragment(selector);\r\n```\r\n\r\n**Next**\r\n\r\nFind the next sibling for each node (optionally matching a filter).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n\r\n```javascript\r\nconst next = $.next(selector, nodeFilter);\r\n```\r\n\r\n**Next All**\r\n\r\nFind all next siblings for each node (optionally matching a filter, and before a limit).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n- `limitFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that when matched will stop the search, and will default to *false*.\r\n- `options` is an object containing options for how the siblings should be traversed.\r\n    - `first` is a boolean indicating whether to only return the first matching node for each node, and will default to *false*.\r\n\r\n```javascript\r\nconst nextAll = $.nextAll(selector, nodeFilter, limitFilter, options);\r\n```\r\n\r\n**Offset Parent**\r\n\r\nFind the offset parent (relatively positioned) of the first node.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst offsetParent = $.offsetParent(selector);\r\n```\r\n\r\n**Parent**\r\n\r\nFind the parent of each node (optionally matching a filter).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n\r\n```javascript\r\nconst parent = $.parent(selector, nodeFilter);\r\n```\r\n\r\n**Parents**\r\n\r\nFind all parents of each node (optionally matching a filter, and before a limit).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n- `limitFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that when matched will stop the search, and will default to *false*.\r\n- `options` is an object containing options for how the parents should be traversed.\r\n    - `first` is a boolean indicating whether to only return the first matching node for each node, and will default to *false*.\r\n\r\n```javascript\r\nconst parents = $.parents(selector, nodeFilter, limitFilter, options);\r\n```\r\n\r\n**Previous**\r\n\r\nFind the previous sibling for each node (optionally matching a filter).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n\r\n```javascript\r\nconst prev = $.prev(selector, nodeFilter);\r\n```\r\n\r\n**Previous All**\r\n\r\nFind all previous siblings for each node (optionally matching a filter, and before a limit).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n- `limitFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that when matched will stop the search, and will default to *false*.\r\n- `options` is an object containing options for how the siblings should be traversed.\r\n    - `first` is a boolean indicating whether to only return the first matching node for each node, and will default to *false*.\r\n\r\n```javascript\r\nconst prevAll = $.prevAll(selector, nodeFilter, limitFilter, options);\r\n```\r\n\r\n**Shadow**\r\n\r\nReturn the *ShadowRoot* of the first node.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst shadow = $.shadow(selector);\r\n```\r\n\r\n**Siblings**\r\n\r\nFind all siblings for each node (optionally matching a filter).\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by, and will default to *false*.\r\n- `options` is an object containing options for how the siblings should be traversed.\r\n-    `elementsOnly` is a boolean indicating whether to only return elements, and will default to *true*.\r\n\r\n```javascript\r\nconst siblings = $.siblings(selector, nodeFilter, options);\r\n```\r\n\r\n### Filter\r\n\r\n**Connected**\r\n\r\nReturn all nodes connected to the DOM.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst connected = $.connected(selector);\r\n```\r\n\r\n**Equal**\r\n\r\nReturn all nodes considered equal to any of the other nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst equal = $.equal(selector, otherSelector);\r\n```\r\n\r\n**Filter**\r\n\r\nReturn all nodes matching a filter.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by.\r\n\r\n```javascript\r\nconst filtered = $.filter(selector, nodeFilter);\r\n```\r\n\r\n**Filter One**\r\n\r\nReturn the first node matching a filter.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by.\r\n\r\n```javascript\r\nconst filteredOne = $.filterOne(selector, nodeFilter);\r\n```\r\n\r\n**Fixed**\r\n\r\nReturn all \"fixed\" nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst fixed = $.fixed(selector);\r\n```\r\n\r\n**Hidden**\r\n\r\nReturn all hidden nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst hidden = $.hidden(selector);\r\n```\r\n\r\n**Not**\r\n\r\nReturn all nodes not matching a filter.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by.\r\n\r\n```javascript\r\nconst not = $.not(selector, nodeFilter);\r\n```\r\n\r\n**Not One**\r\n\r\nReturn the first node not matching a filter.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by.\r\n\r\n```javascript\r\nconst notOne = $.notOne(selector, nodeFilter);\r\n```\r\n\r\n**Same**\r\n\r\nReturn all nodes considered identical to any of the other nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `otherSelector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst same = $.same(selector, otherSelector);\r\n```\r\n\r\n**Visible**\r\n\r\nReturn all visible nodes.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst visible = $.visible(selector);\r\n```\r\n\r\n**With Animation**\r\n\r\nReturn all nodes with an animation.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst withAnimation = $.withAnimation(selector);\r\n```\r\n\r\n**With Attribute**\r\n\r\nReturn all nodes with a specified attribute.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `attribute` is a string indicating the attribute value to test for.\r\n\r\n```javascript\r\nconst withAttribute = $.withAttribute(selector, attribute);\r\n```\r\n\r\n**With Children**\r\n\r\nReturn all nodes with child elements.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst withChildren = $.withChildren(selector);\r\n```\r\n\r\n**With Class**\r\n\r\nReturn all nodes with any of the specified classes.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `classes` is an array of classes, or a space seperated string of class names to test for.\r\n\r\n```javascript\r\nconst withClass = $.withClass(selector, classes);\r\n```\r\n\r\n**With CSS Animation**\r\n\r\nReturn all nodes with a CSS animation.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst withCSSAnimation = $.withCSSAnimation(selector);\r\n```\r\n\r\n**With CSS Transition**\r\n\r\nReturn all nodes with a CSS transition.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst withCSSTransition = $.withCSSTransition(selector);\r\n```\r\n\r\n**With Data**\r\n\r\nReturn all nodes with custom data.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *Window*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `key` is a string indicating the custom data value to test for.\r\n\r\n```javascript\r\nconst withData = $.withData(selector, key);\r\n```\r\n\r\nIf the `key` argument is omitted, this method will return all nodes with any custom data.\r\n\r\n```javascript\r\nconst withData = $.withData(selector);\r\n```\r\n\r\n**With Descendent**\r\n\r\nReturn all nodes with a descendent matching a filter.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be filtered by.\r\n\r\n```javascript\r\nconst withDescendent = $.withDescendent(selector, nodeFilter);\r\n```\r\n\r\n**With Property**\r\n\r\nReturn all nodes with a specified property.\r\n\r\n- `selector` is a query selector string, a *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `property` is a string indicating the property value to test for.\r\n\r\n```javascript\r\nconst withProperty = $.withProperty(selector, property);\r\n```\r\n\r\n### Find\r\n\r\n**Find**\r\n\r\nFind all nodes matching a selector.\r\n\r\n- `selector` is a query selector string to search for.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes, and will default to the *Document* context.\r\n\r\n```javascript\r\nconst elements = $.find(selector, context);\r\n```\r\n\r\n**Find By Class**\r\n\r\nFind all nodes with a specific class.\r\n\r\n- `className` is a string indicating the class name to search for.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes, and will default to the *Document* context.\r\n\r\n```javascript\r\nconst elements = $.findByClass(className, context);\r\n```\r\n\r\n**Find By ID**\r\n\r\nFind all nodes with a specific ID.\r\n\r\n- `id` is a string indicating the id to search for.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes, and will default to the *Document* context.\r\n\r\n```javascript\r\nconst elements = $.findById(id, context);\r\n```\r\n\r\n**Find By Tag**\r\n\r\nFind all nodes with a specific tag.\r\n\r\n- `tagName` is a string indicating the tag name to search for.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes, and will default to the *Document* context.\r\n\r\n```javascript\r\nconst elements = $.findByTag(tagName, context);\r\n```\r\n\r\n**Find One**\r\n\r\nFind the first node matching a selector.\r\n\r\n- `selector` is a query selector string to search for.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes, and will default to the *Document* context.\r\n\r\n```javascript\r\nconst element = $.findOne(selector, context);\r\n```\r\n\r\n**Find One By Class**\r\n\r\nFind the first node with a specific class.\r\n\r\n- `className` is a string indicating the class name to search for.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes, and will default to the *Document* context.\r\n\r\n```javascript\r\nconst element = $.findOneByClass(className, context);\r\n```\r\n\r\n**Find One By ID**\r\n\r\nFind the first node with a specific ID.\r\n\r\n- `id` is a string indicating the id to search for.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes, and will default to the *Document* context.\r\n\r\n```javascript\r\nconst element = $.findOneById(id, context);\r\n```\r\n\r\n**Find One By Tag**\r\n\r\nFind the first node with a specific tag.\r\n\r\n- `tagName` is a string indicating the tag name to search for.\r\n- `context` is a query selector string, a *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *Document*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes, and will default to the *Document* context.\r\n\r\n```javascript\r\nconst element = $.findOneByTag(tagName, context);\r\n```\r\n\r\n\r\n## Utility\r\n\r\n**Index**\r\n\r\nGet the index of the first node relative to it's parent node.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n\r\n```javascript\r\nconst index = $.index(selector);\r\n```\r\n\r\n**Index Of**\r\n\r\nGet the index of the first node matching a filter.\r\n\r\n- `selector` is a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes.\r\n- `nodeFilter` is either a function that accepts a `node` argument, a query selector string, a *Node*, *HTMLElement*, *DocumentFragment*, *ShadowRoot*, *NodeList*, *HTMLCollection*, [*QuerySet*](docs/QuerySet.md) or an array of nodes that the nodes will be tested for.\r\n\r\n```javasc","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felusivecodes%2Ffquery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felusivecodes%2Ffquery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felusivecodes%2Ffquery/lists"}