@thednp/shorty 2.0.7 → 2.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/README.md +55 -27
  2. package/dist/shorty.cjs +1 -1
  3. package/dist/shorty.cjs.map +1 -1
  4. package/dist/shorty.d.ts +235 -138
  5. package/dist/shorty.js +1 -1
  6. package/dist/shorty.js.map +1 -1
  7. package/dist/shorty.mjs +536 -600
  8. package/dist/shorty.mjs.map +1 -1
  9. package/package.json +10 -9
  10. package/.eslintrc.cjs +0 -224
  11. package/.lgtm.yml +0 -8
  12. package/.prettierrc.json +0 -15
  13. package/src/attr/getAttribute.ts +0 -11
  14. package/src/attr/getAttributeNS.ts +0 -12
  15. package/src/attr/hasAttribute.ts +0 -11
  16. package/src/attr/hasAttributeNS.ts +0 -15
  17. package/src/attr/removeAttribute.ts +0 -10
  18. package/src/attr/removeAttributeNS.ts +0 -14
  19. package/src/attr/setAttribute.ts +0 -11
  20. package/src/attr/setAttributeNS.ts +0 -16
  21. package/src/blocks/documentBody.ts +0 -5
  22. package/src/blocks/documentElement.ts +0 -5
  23. package/src/blocks/documentHead.ts +0 -5
  24. package/src/boolean/isApple.ts +0 -15
  25. package/src/boolean/isFirefox.ts +0 -9
  26. package/src/boolean/isMobile.ts +0 -14
  27. package/src/boolean/support3DTransform.ts +0 -7
  28. package/src/boolean/supportAnimation.ts +0 -7
  29. package/src/boolean/supportPassive.ts +0 -29
  30. package/src/boolean/supportTouch.ts +0 -9
  31. package/src/boolean/supportTransform.ts +0 -7
  32. package/src/boolean/supportTransition.ts +0 -7
  33. package/src/class/addClass.ts +0 -11
  34. package/src/class/hasClass.ts +0 -11
  35. package/src/class/removeClass.ts +0 -11
  36. package/src/event/off.ts +0 -18
  37. package/src/event/on.ts +0 -18
  38. package/src/event/one.ts +0 -26
  39. package/src/get/getBoundingClientRect.ts +0 -44
  40. package/src/get/getDocument.ts +0 -24
  41. package/src/get/getDocumentBody.ts +0 -13
  42. package/src/get/getDocumentElement.ts +0 -13
  43. package/src/get/getDocumentHead.ts +0 -14
  44. package/src/get/getElementAnimationDelay.ts +0 -25
  45. package/src/get/getElementAnimationDuration.ts +0 -25
  46. package/src/get/getElementStyle.ts +0 -25
  47. package/src/get/getElementTransitionDelay.ts +0 -25
  48. package/src/get/getElementTransitionDuration.ts +0 -25
  49. package/src/get/getNodeScroll.ts +0 -22
  50. package/src/get/getParentNode.ts +0 -28
  51. package/src/get/getRectRelativeToOffsetParent.ts +0 -43
  52. package/src/get/getUID.ts +0 -42
  53. package/src/get/getWindow.ts +0 -23
  54. package/src/index.ts +0 -571
  55. package/src/interface/boundingClientRect.d.ts +0 -10
  56. package/src/interface/css4Declaration.d.ts +0 -4
  57. package/src/interface/customElement.d.ts +0 -8
  58. package/src/interface/event.d.ts +0 -255
  59. package/src/interface/fn.ts +0 -1
  60. package/src/interface/navigatorUA.d.ts +0 -15
  61. package/src/interface/offsetRect.d.ts +0 -6
  62. package/src/interface/originalEvent.d.ts +0 -4
  63. package/src/is/isArray.ts +0 -10
  64. package/src/is/isCanvas.ts +0 -13
  65. package/src/is/isCustomElement.ts +0 -15
  66. package/src/is/isDocument.ts +0 -14
  67. package/src/is/isElement.ts +0 -28
  68. package/src/is/isElementInScrollRange.ts +0 -20
  69. package/src/is/isElementInViewport.ts +0 -21
  70. package/src/is/isElementsArray.ts +0 -13
  71. package/src/is/isFunction.ts +0 -12
  72. package/src/is/isHTMLCollection.ts +0 -12
  73. package/src/is/isHTMLElement.ts +0 -13
  74. package/src/is/isHTMLImageElement.ts +0 -12
  75. package/src/is/isJSON.ts +0 -20
  76. package/src/is/isMap.ts +0 -11
  77. package/src/is/isMedia.ts +0 -26
  78. package/src/is/isNode.ts +0 -19
  79. package/src/is/isNodeList.ts +0 -13
  80. package/src/is/isNumber.ts +0 -10
  81. package/src/is/isObject.ts +0 -10
  82. package/src/is/isRTL.ts +0 -11
  83. package/src/is/isSVGElement.ts +0 -13
  84. package/src/is/isScaledElement.ts +0 -20
  85. package/src/is/isShadowRoot.ts +0 -12
  86. package/src/is/isString.ts +0 -10
  87. package/src/is/isTableElement.ts +0 -17
  88. package/src/is/isWeakMap.ts +0 -11
  89. package/src/is/isWindow.ts +0 -13
  90. package/src/misc/ArrayFrom.ts +0 -11
  91. package/src/misc/Float32ArrayFrom.ts +0 -11
  92. package/src/misc/Float64ArrayFrom.ts +0 -11
  93. package/src/misc/ObjectAssign.ts +0 -54
  94. package/src/misc/ObjectEntries.ts +0 -11
  95. package/src/misc/ObjectFromEntries.ts +0 -11
  96. package/src/misc/ObjectHasOwn.ts +0 -18
  97. package/src/misc/ObjectKeys.ts +0 -11
  98. package/src/misc/ObjectValues.ts +0 -12
  99. package/src/misc/createCustomEvent.ts +0 -31
  100. package/src/misc/createElement.ts +0 -36
  101. package/src/misc/createElementNS.ts +0 -40
  102. package/src/misc/data.ts +0 -80
  103. package/src/misc/dispatchEvent.ts +0 -10
  104. package/src/misc/distinct.ts +0 -19
  105. package/src/misc/emulateAnimationEnd.ts +0 -43
  106. package/src/misc/emulateTransitionEnd.ts +0 -42
  107. package/src/misc/focus.ts +0 -10
  108. package/src/misc/focusTrap.ts +0 -67
  109. package/src/misc/getInstance.ts +0 -9
  110. package/src/misc/noop.ts +0 -6
  111. package/src/misc/normalizeOptions.ts +0 -58
  112. package/src/misc/normalizeValue.ts +0 -32
  113. package/src/misc/passiveHandler.ts +0 -6
  114. package/src/misc/reflow.ts +0 -9
  115. package/src/misc/setElementStyle.ts +0 -26
  116. package/src/misc/timer.ts +0 -91
  117. package/src/misc/toLowerCase.ts +0 -9
  118. package/src/misc/toUpperCase.ts +0 -9
  119. package/src/selectors/closest.ts +0 -23
  120. package/src/selectors/getCustomElements.ts +0 -19
  121. package/src/selectors/getElementById.ts +0 -16
  122. package/src/selectors/getElementsByClassName.ts +0 -22
  123. package/src/selectors/getElementsByTagName.ts +0 -22
  124. package/src/selectors/matches.ts +0 -11
  125. package/src/selectors/querySelector.ts +0 -25
  126. package/src/selectors/querySelectorAll.ts +0 -19
  127. package/src/strings/DOMContentLoadedEvent.ts +0 -5
  128. package/src/strings/DOMMouseScrollEvent.ts +0 -5
  129. package/src/strings/abortEvent.ts +0 -5
  130. package/src/strings/addEventListener.ts +0 -5
  131. package/src/strings/animationDelay.ts +0 -5
  132. package/src/strings/animationDuration.ts +0 -5
  133. package/src/strings/animationEndEvent.ts +0 -5
  134. package/src/strings/animationName.ts +0 -5
  135. package/src/strings/ariaChecked.ts +0 -5
  136. package/src/strings/ariaDescribedBy.ts +0 -5
  137. package/src/strings/ariaDescription.ts +0 -5
  138. package/src/strings/ariaExpanded.ts +0 -5
  139. package/src/strings/ariaHasPopup.ts +0 -5
  140. package/src/strings/ariaHidden.ts +0 -5
  141. package/src/strings/ariaLabel.ts +0 -5
  142. package/src/strings/ariaLabelledBy.ts +0 -5
  143. package/src/strings/ariaModal.ts +0 -5
  144. package/src/strings/ariaPressed.ts +0 -5
  145. package/src/strings/ariaSelected.ts +0 -5
  146. package/src/strings/ariaValueMax.ts +0 -5
  147. package/src/strings/ariaValueMin.ts +0 -5
  148. package/src/strings/ariaValueNow.ts +0 -5
  149. package/src/strings/ariaValueText.ts +0 -5
  150. package/src/strings/beforeunloadEvent.ts +0 -5
  151. package/src/strings/bezierEasings.ts +0 -32
  152. package/src/strings/blurEvent.ts +0 -5
  153. package/src/strings/changeEvent.ts +0 -5
  154. package/src/strings/contextmenuEvent.ts +0 -5
  155. package/src/strings/dragEvent.ts +0 -5
  156. package/src/strings/dragendEvent.ts +0 -5
  157. package/src/strings/dragenterEvent.ts +0 -5
  158. package/src/strings/dragleaveEvent.ts +0 -5
  159. package/src/strings/dragoverEvent.ts +0 -5
  160. package/src/strings/dragstartEvent.ts +0 -5
  161. package/src/strings/errorEvent.ts +0 -5
  162. package/src/strings/focusEvent.ts +0 -5
  163. package/src/strings/focusEvents.ts +0 -5
  164. package/src/strings/focusableSelector.ts +0 -4
  165. package/src/strings/focusinEvent.ts +0 -5
  166. package/src/strings/focusoutEvent.ts +0 -5
  167. package/src/strings/gesturechangeEvent.ts +0 -5
  168. package/src/strings/gestureendEvent.ts +0 -5
  169. package/src/strings/gesturestartEvent.ts +0 -5
  170. package/src/strings/keyAlt.ts +0 -7
  171. package/src/strings/keyArrowDown.ts +0 -7
  172. package/src/strings/keyArrowLeft.ts +0 -7
  173. package/src/strings/keyArrowRight.ts +0 -7
  174. package/src/strings/keyArrowUp.ts +0 -7
  175. package/src/strings/keyBackspace.ts +0 -7
  176. package/src/strings/keyCapsLock.ts +0 -7
  177. package/src/strings/keyControl.ts +0 -7
  178. package/src/strings/keyDelete.ts +0 -7
  179. package/src/strings/keyEnter.ts +0 -7
  180. package/src/strings/keyEscape.ts +0 -7
  181. package/src/strings/keyInsert.ts +0 -7
  182. package/src/strings/keyMeta.ts +0 -7
  183. package/src/strings/keyNumpadEnter.ts +0 -7
  184. package/src/strings/keyPause.ts +0 -7
  185. package/src/strings/keyScrollLock.ts +0 -7
  186. package/src/strings/keyShift.ts +0 -7
  187. package/src/strings/keySpace.ts +0 -7
  188. package/src/strings/keyTab.ts +0 -7
  189. package/src/strings/keyboardEventKeys.ts +0 -26
  190. package/src/strings/keydownEvent.ts +0 -5
  191. package/src/strings/keypressEvent.ts +0 -5
  192. package/src/strings/keyupEvent.ts +0 -5
  193. package/src/strings/loadEvent.ts +0 -5
  194. package/src/strings/loadstartEvent.ts +0 -5
  195. package/src/strings/mouseClickEvents.ts +0 -5
  196. package/src/strings/mouseHoverEvents.ts +0 -7
  197. package/src/strings/mouseSwipeEvents.ts +0 -10
  198. package/src/strings/mouseclickEvent.ts +0 -5
  199. package/src/strings/mousedblclickEvent.ts +0 -5
  200. package/src/strings/mousedownEvent.ts +0 -5
  201. package/src/strings/mouseenterEvent.ts +0 -5
  202. package/src/strings/mousehoverEvent.ts +0 -5
  203. package/src/strings/mouseinEvent.ts +0 -5
  204. package/src/strings/mouseleaveEvent.ts +0 -5
  205. package/src/strings/mousemoveEvent.ts +0 -5
  206. package/src/strings/mouseoutEvent.ts +0 -5
  207. package/src/strings/mouseoverEvent.ts +0 -5
  208. package/src/strings/mouseupEvent.ts +0 -5
  209. package/src/strings/mousewheelEvent.ts +0 -5
  210. package/src/strings/moveEvent.ts +0 -5
  211. package/src/strings/nativeEvents.ts +0 -108
  212. package/src/strings/offsetHeight.ts +0 -5
  213. package/src/strings/offsetWidth.ts +0 -5
  214. package/src/strings/orientationchangeEvent.ts +0 -5
  215. package/src/strings/pointercancelEvent.ts +0 -5
  216. package/src/strings/pointerdownEvent.ts +0 -5
  217. package/src/strings/pointerleaveEvent.ts +0 -5
  218. package/src/strings/pointermoveEvent.ts +0 -5
  219. package/src/strings/pointerupEvent.ts +0 -5
  220. package/src/strings/readystatechangeEvent.ts +0 -5
  221. package/src/strings/removeEventListener.ts +0 -5
  222. package/src/strings/resetEvent.ts +0 -5
  223. package/src/strings/resizeEvent.ts +0 -5
  224. package/src/strings/scrollEvent.ts +0 -5
  225. package/src/strings/scrollHeight.ts +0 -5
  226. package/src/strings/scrollWidth.ts +0 -5
  227. package/src/strings/selectEvent.ts +0 -5
  228. package/src/strings/selectendEvent.ts +0 -5
  229. package/src/strings/selectstartEvent.ts +0 -5
  230. package/src/strings/submitEvent.ts +0 -5
  231. package/src/strings/tabindex.ts +0 -5
  232. package/src/strings/touchEvents.ts +0 -10
  233. package/src/strings/touchcancelEvent.ts +0 -5
  234. package/src/strings/touchendEvent.ts +0 -5
  235. package/src/strings/touchmoveEvent.ts +0 -5
  236. package/src/strings/touchstartEvent.ts +0 -5
  237. package/src/strings/transitionDelay.ts +0 -5
  238. package/src/strings/transitionDuration.ts +0 -5
  239. package/src/strings/transitionEndEvent.ts +0 -5
  240. package/src/strings/transitionProperty.ts +0 -5
  241. package/src/strings/unloadEvent.ts +0 -5
  242. package/src/strings/userAgent.ts +0 -7
  243. package/src/strings/userAgentData.ts +0 -8
  244. package/test/att.test.ts +0 -43
  245. package/test/boolean.test.ts +0 -30
  246. package/test/class.test.ts +0 -26
  247. package/test/event.test.ts +0 -39
  248. package/test/fixtures/custom-elem.js +0 -18
  249. package/test/fixtures/getExampleDom.ts +0 -52
  250. package/test/fixtures/style.css +0 -18
  251. package/test/get.test.ts +0 -150
  252. package/test/is.test.ts +0 -240
  253. package/test/misc.test.ts +0 -400
  254. package/test/selectors.test.ts +0 -90
  255. package/tsconfig.json +0 -36
  256. package/vite.config.mts +0 -45
  257. package/vitest.config-ui.mts +0 -26
  258. package/vitest.config.mts +0 -25
package/README.md CHANGED
@@ -5,12 +5,12 @@
5
5
  [![NPM Version](https://img.shields.io/npm/v/@thednp/shorty.svg)](https://www.npmjs.com/package/@thednp/shorty)
6
6
  [![NPM Downloads](https://img.shields.io/npm/dm/@thednp/shorty.svg)](http://npm-stat.com/charts.html?package=@thednp/shorty)
7
7
  [![jsDelivr hits (npm)](https://img.shields.io/jsdelivr/npm/hw/@thednp/shorty)](https://www.jsdelivr.com/package/npm/@thednp/shorty)
8
- [![typescript version](https://img.shields.io/badge/typescript-5.6.3-brightgreen)](https://www.typescriptlang.org/)
9
- [![vitest version](https://img.shields.io/badge/vitest-2.1.4-brightgreen)](https://vitest.dev/)
10
- [![vite version](https://img.shields.io/badge/vite-5.4.10-brightgreen)](https://github.com/vitejs)
8
+ [![typescript version](https://img.shields.io/badge/typescript-5.7.2-brightgreen)](https://www.typescriptlang.org/)
9
+ [![vitest version](https://img.shields.io/badge/vitest-2.1.5-brightgreen)](https://vitest.dev/)
10
+ [![vite version](https://img.shields.io/badge/vite-5.4.11-brightgreen)](https://github.com/vitejs)
11
11
 
12
12
 
13
- A small TypeScript library with various tools, all ESLint valid and featuring everything useful for creating light libraries or web components. If there is anything that is consistently repeating itself, **shorty** can help you save up to 50% of the code required, with little to no performance cost.
13
+ A small TypeScript library with various tools for increasing your productivity while helping you to create lighter libraries or web components. If there is anything that is consistently repeating itself, **shorty** can help you save up to 50% of the code required, with little to no performance cost.
14
14
 
15
15
  **shorty** is featured in [ColorPicker](https://github.com/thednp/color-picker), [KUTE.js](https://github.com/thednp/kute.js), [BSN](https://github.com/thednp/bootstrap.native), [Navbar.js](https://github.com/thednp/navbar.js) and other libraries.
16
16
 
@@ -19,10 +19,22 @@ A small TypeScript library with various tools, all ESLint valid and featuring ev
19
19
  - While the library comes with a working build in the `dist` folder, that is mainly for build consistency testing. You can make use of "tree shaking" to import one or anything your code needs.
20
20
  - On that note, all shorties are organized in folders inside the `src` root folder, the structure is key to understanding the purpose of each type of shortie, whether we have `boolean` for various basic browser detection or browser feature support, `attr` for all things _Element_ attributes or `strings` for most common and most used _Element.prototype_ methods.
21
21
 
22
- # npm
22
+ # Install
23
23
 
24
+ ```bash
25
+ pnpm install -D @thednp/shorty
24
26
  ```
25
- npm install @thednp/shorty
27
+
28
+ ```bash
29
+ yarn add -D @thednp/shorty
30
+ ```
31
+
32
+ ```bash
33
+ npm install -D @thednp/shorty
34
+ ```
35
+
36
+ ```bash
37
+ deno install -D npm:@thednp/shorty@latest
26
38
  ```
27
39
 
28
40
  # TypeScript / ES6+ Base usage
@@ -32,7 +44,7 @@ npm install @thednp/shorty
32
44
  import { supportTransform } from "@thednp/shorty";
33
45
 
34
46
  // use the tool in your ES6/ES7 sources
35
- if (supportTransform) {
47
+ if (supportTransform()) {
36
48
  // have modern browsers do something about that
37
49
  }
38
50
  ```
@@ -69,22 +81,23 @@ const currentAttrValue = getAttribute(myTarget, "attribute-name");
69
81
 
70
82
  # boolean
71
83
 
72
- - **_isApple_** - checks and preserves a `boolean` value for the client browser is either Apple **Safari** browser or not;
73
- - **_isFirefox_** - checks and preserves a `boolean` value for the client browser is either **Firefox** or not;
74
- - **_isMobile_** - checks and preserves a `boolean` value for the client browser is either a Mobile device or not;
75
- - **_support3DTransform_** - checks and preserves a `boolean` value for the client browser capability for webKit `perspective`;
76
- - **_supportTouch_** - checks and preserves a `boolean` value for the client browser capability for `touch` events;
77
- - **_supportPassive_** - checks and preserves a `boolean` value for the client browser capability for `passive` event option;
78
- - **_supportTransform_** - checks and preserves a `boolean` value for the client browser capability for webKit `transform`;
79
- - **_supportAnimation_** - checks and preserves a `boolean` value for the client browser capability for webKit keyframe `animation`;
80
- - **_supportTransition_** - checks and preserves a `boolean` value for the client browser capability for webKit `transition`;
84
+ - **_isApple_** - checks and returns a `boolean` value for the client browser is either Apple **Safari** browser or not;
85
+ - **_isFirefox_** - checks and returns a `boolean` value for the client browser is either **Firefox** or not;
86
+ - **_isMobile_** - checks and returns a `boolean` value for the client browser is either a Mobile device or not;
87
+ - **_isWebKit_** - checks and returns a `boolean` value for the client browser is a WebKit browser or not;
88
+ - **_support3DTransform_** - checks and returns a `boolean` value for the client browser capability for webKit `perspective`;
89
+ - **_supportTouch_** - checks and returns a `boolean` value for the client browser capability for `touch` events;
90
+ - **_supportPassive_** - checks and returns a `boolean` value for the client browser capability for `passive` event option;
91
+ - **_supportTransform_** - checks and returns a `boolean` value for the client browser capability for webKit `transform`;
92
+ - **_supportAnimation_** - checks and returns a `boolean` value for the client browser capability for webKit keyframe `animation`;
93
+ - **_supportTransition_** - checks and returns a `boolean` value for the client browser capability for webKit `transition`;
81
94
 
82
95
  ```js
83
96
  // EXAMPLES
84
97
  import { support3DTransform } from "@thednp/shorty";
85
98
 
86
99
  // filter myAction to supported browsers
87
- if (support3DTransform) {
100
+ if (support3DTransform()) {
88
101
  // do something with modern browsers
89
102
  }
90
103
  ```
@@ -145,9 +158,12 @@ For a more advanced method to handle event listeners, I recommend using the [eve
145
158
  - **_getElementTransitionDelay_** - returns the `transitionDelay` property of a `transition` property;
146
159
  - **_getElementTransitionDuration_** - returns the `transitionDuration` property of a `transition` property;
147
160
  - **_getElementStyle_** - returns the _Element_ computed style for a given property;
161
+ - **_getNodeName_** - returns the name of the target element;
148
162
  - **_getNodeScroll_** - returns the _Element_ / _Window_ current `{ x, y }` scroll position;
149
163
  - **_getParentNode_** - returns parent of a given _Element_;
164
+ - **_getOffsetParent_** - returns the `offsetParent` that's the best for calculating position for a given target;
150
165
  - **_getRectRelativeToOffsetParent_** - returns the bounding client rectangle of a given _Element_ relative to a given `offsetParent`;
166
+ - **_getSVGOffset_** - returns an `{ offsetTop, offsetLeft, offsetWidth, offsetHeight }` object for a _SVGElement_ relative to the closest `HTMLElement`;
151
167
  - **_getUID_** - a nice utility that creates a unique ID for a given _Element_ and returns it;
152
168
  - **_getWindow_** - returns the containing `Window` for a given _Element_ or just any _Window_;
153
169
 
@@ -204,6 +220,8 @@ if (isElementsArray(myValue)) {
204
220
 
205
221
  - **_ArrayFrom_** - a shortie for `Array.from()` method;
206
222
  - **_Data_** - a small utility to store web components data that makes use of the native `Map`;
223
+ - **_capitalize_** - capitalize first character in a string;
224
+ - **_camelCase_** - transform a string to camel case;
207
225
  - **_dispatchEvent_** - a shortie for `Element.dispatchEvent()` method;
208
226
  - **_distinct_** - a shortie you can use to filter duplicate values in an `Array`;
209
227
  - **_emulateAnimationEnd_** - utility to execute a callback function when `animationend` event is triggered, or execute the callback right after for legacy browsers;
@@ -215,6 +233,7 @@ if (isElementsArray(myValue)) {
215
233
  - **_focus_** - a shortie for `Element.focus()` method;
216
234
  - **_toggleFocusTrap_** - a useful utility to trap focus inside popups;
217
235
  - **_hasFocusTrap_** - check if an element has focus trap;
236
+ - **_kebabCase_** - transform a string to kebab case;
218
237
  - **_noop_** - is your regular `() => {}` NOOP;
219
238
  - **_normalizeOptions_** - a cool utility to normalize and crosscheck JavaScript options and their DATA API counterparts for various web components; supports namespaced options like `data-NAMESPACE-option="value"`; priority: JavaScript options > DATA API options > default options
220
239
  - **_ObjectAssign_** - a shortie for `Object.assign()` method;
@@ -261,7 +280,7 @@ const array3 = [...array1, ...array2].filter(distinct);
261
280
  - **_querySelector_** - a simple utility to check if a given value is an _Element_ or a selector string, and if a selector string find the FIRST _Element_ and return it;
262
281
  - **_querySelectorAll_** - a simple utility to check if a certain item is an _Element_ or a selector string, and if a selector string finds ALL the _Elements_ and return them;
263
282
 
264
- ```js
283
+ ```ts
265
284
  // EXAMPLES
266
285
  import { querySelector, querySelectorAll, documentAll, matches } from "@thednp/shorty";
267
286
 
@@ -295,7 +314,7 @@ const elements = [...documentAll].filter((x) => matches(x, ".my-class-name"));
295
314
 
296
315
  There are lots more string constants available which include native event names, browser strings, keyboard key codes or ARIA specific attribute names. Be sure to check the `src/strings` folder for a complete list.
297
316
 
298
- ```js
317
+ ```ts
299
318
  // EXAMPLES
300
319
  import { on, off, one, mouseClickEvents, touchEvents, passiveHandler } from "@thednp/shorty";
301
320
 
@@ -313,30 +332,39 @@ one(targetElement, touchEvents.start, eventHandler, passiveHandler);
313
332
 
314
333
  Here's a simple example to showcase the benefit of using **_shorty_**.
315
334
 
316
- ```js
335
+ ```ts
317
336
  // This is your typical day to day scripting
318
337
  const target = document.getElementById("my-element");
338
+ const target2 = document.getElementById("my-element2");
319
339
 
320
340
  target.addEventListener("click", function (e) {
321
341
  target.classList.add("my-className");
322
342
  });
343
+
344
+ target2.addEventListener("mouseenter", function (e) {
345
+ target.classList.add("my-other-className");
346
+ });
323
347
  ```
324
348
 
325
- Now make it all shorty. You might want to import shorties directly from their location, something we like to call "tree shaking".
349
+ Now make it all shorty.
326
350
 
327
- ```js
351
+ ```ts
328
352
  // Example
329
- import on from "@thednp/shorty/src/event/on";
330
- import addClass from "@thednp/shorty/src/class/addClass";
331
- import getElementById from "@thednp/shorty/src/selectors/getElementById";
332
- import mouseclickEvent from "@thednp/shorty/src/strings/mouseclickEvent";
353
+ import { on, addClass, getElementById, mouseClickEvent, mouseenterEvent } from "@thednp/shorty";
333
354
 
334
355
  const target = getElementById("my-element");
356
+ const target2 = getElementById("my-element2");
335
357
 
336
- on(target, mouseclickEvent, function (e) {
358
+ on(target, mouseclickEvent, (e) => {
337
359
  addClass(target, "my-className");
338
360
  });
361
+
362
+ on(target2, mouseenterEvent, (e) => {
363
+ addClass(target2, "my-other-className");
364
+ });
339
365
  ```
366
+ You notice a pattern yet?
367
+
340
368
 
341
369
  # License
342
370
 
package/dist/shorty.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ariaChecked="aria-checked",ariaDescription="aria-description",ariaDescribedBy="aria-describedby",ariaExpanded="aria-expanded",ariaHasPopup="aria-haspopup",ariaHidden="aria-hidden",ariaLabel="aria-label",ariaLabelledBy="aria-labelledby",ariaModal="aria-modal",ariaPressed="aria-pressed",ariaSelected="aria-selected",ariaValueMin="aria-valuemin",ariaValueMax="aria-valuemax",ariaValueNow="aria-valuenow",ariaValueText="aria-valuetext",abortEvent="abort",beforeunloadEvent="beforeunload",blurEvent="blur",changeEvent="change",contextmenuEvent="contextmenu",DOMContentLoadedEvent="DOMContentLoaded",DOMMouseScrollEvent="DOMMouseScroll",errorEvent="error",focusEvent="focus",focusinEvent="focusin",focusoutEvent="focusout",gesturechangeEvent="gesturechange",gestureendEvent="gestureend",gesturestartEvent="gesturestart",keydownEvent="keydown",keypressEvent="keypress",keyupEvent="keyup",loadEvent="load",mouseclickEvent="click",mousedblclickEvent="dblclick",mousedownEvent="mousedown",mouseupEvent="mouseup",mousehoverEvent="hover",mouseenterEvent="mouseenter",mouseleaveEvent="mouseleave",mouseinEvent="mousein",mouseoutEvent="mouseout",mouseoverEvent="mouseover",mousemoveEvent="mousemove",mousewheelEvent="mousewheel",moveEvent="move",orientationchangeEvent="orientationchange",pointercancelEvent="pointercancel",pointerdownEvent="pointerdown",pointerleaveEvent="pointerleave",pointermoveEvent="pointermove",pointerupEvent="pointerup",readystatechangeEvent="readystatechange",resetEvent="reset",resizeEvent="resize",selectEvent="select",selectendEvent="selectend",selectstartEvent="selectstart",scrollEvent="scroll",submitEvent="submit",touchstartEvent="touchstart",touchmoveEvent="touchmove",touchcancelEvent="touchcancel",touchendEvent="touchend",unloadEvent="unload",nativeEvents={DOMContentLoaded:DOMContentLoadedEvent,DOMMouseScroll:DOMMouseScrollEvent,abort:abortEvent,beforeunload:beforeunloadEvent,blur:blurEvent,change:changeEvent,click:mouseclickEvent,contextmenu:contextmenuEvent,dblclick:mousedblclickEvent,error:errorEvent,focus:focusEvent,focusin:focusinEvent,focusout:focusoutEvent,gesturechange:gesturechangeEvent,gestureend:gestureendEvent,gesturestart:gesturestartEvent,hover:mousehoverEvent,keydown:keydownEvent,keypress:keypressEvent,keyup:keyupEvent,load:loadEvent,mousedown:mousedownEvent,mousemove:mousemoveEvent,mousein:mouseinEvent,mouseout:mouseoutEvent,mouseenter:mouseenterEvent,mouseleave:mouseleaveEvent,mouseover:mouseoverEvent,mouseup:mouseupEvent,mousewheel:mousewheelEvent,move:moveEvent,orientationchange:orientationchangeEvent,pointercancel:pointercancelEvent,pointerdown:pointerdownEvent,pointerleave:pointerleaveEvent,pointermove:pointermoveEvent,pointerup:pointerupEvent,readystatechange:readystatechangeEvent,reset:resetEvent,resize:resizeEvent,scroll:scrollEvent,select:selectEvent,selectend:selectendEvent,selectstart:selectstartEvent,submit:submitEvent,touchcancel:touchcancelEvent,touchend:touchendEvent,touchmove:touchmoveEvent,touchstart:touchstartEvent,unload:unloadEvent},dragEvent="drag",dragstartEvent="dragstart",dragenterEvent="dragenter",dragleaveEvent="dragleave",dragoverEvent="dragover",dragendEvent="dragend",loadstartEvent="loadstart",mouseSwipeEvents={start:"mousedown",end:"mouseup",move:"mousemove",cancel:"mouseleave"},mouseClickEvents={down:"mousedown",up:"mouseup"},mouseHoverEvents="onmouseleave"in document?["mouseenter","mouseleave"]:["mouseover","mouseout"],touchEvents={start:"touchstart",end:"touchend",move:"touchmove",cancel:"touchcancel"},focusEvents={in:"focusin",out:"focusout"},focusableSelector='a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]',keyboardEventKeys={Backspace:"Backspace",Tab:"Tab",Enter:"Enter",Shift:"Shift",Control:"Control",Alt:"Alt",Pause:"Pause",CapsLock:"CapsLock",Escape:"Escape",Scape:"Space",ArrowLeft:"ArrowLeft",ArrowUp:"ArrowUp",ArrowRight:"ArrowRight",ArrowDown:"ArrowDown",Insert:"Insert",Delete:"Delete",Meta:"Meta",ContextMenu:"ContextMenu",ScrollLock:"ScrollLock"},keyAlt="Alt",keyArrowDown="ArrowDown",keyArrowUp="ArrowUp",keyArrowLeft="ArrowLeft",keyArrowRight="ArrowRight",keyBackspace="Backspace",keyCapsLock="CapsLock",keyControl="Control",keyDelete="Delete",keyEnter="Enter",keyNumpadEnter="NumpadEnter",keyEscape="Escape",keyInsert="Insert",keyMeta="Meta",keyPause="Pause",keyScrollLock="ScrollLock",keyShift="Shift",keySpace="Space",keyTab="Tab",animationDuration="animationDuration",animationDelay="animationDelay",animationName="animationName",animationEndEvent="animationend",transitionDuration="transitionDuration",transitionDelay="transitionDelay",transitionEndEvent="transitionend",transitionProperty="transitionProperty",addEventListener="addEventListener",removeEventListener="removeEventListener",bezierEasings={linear:"linear",easingSinusoidalIn:"cubic-bezier(0.47,0,0.745,0.715)",easingSinusoidalOut:"cubic-bezier(0.39,0.575,0.565,1)",easingSinusoidalInOut:"cubic-bezier(0.445,0.05,0.55,0.95)",easingQuadraticIn:"cubic-bezier(0.550,0.085,0.680,0.530)",easingQuadraticOut:"cubic-bezier(0.250,0.460,0.450,0.940)",easingQuadraticInOut:"cubic-bezier(0.455,0.030,0.515,0.955)",easingCubicIn:"cubic-bezier(0.55,0.055,0.675,0.19)",easingCubicOut:"cubic-bezier(0.215,0.61,0.355,1)",easingCubicInOut:"cubic-bezier(0.645,0.045,0.355,1)",easingQuarticIn:"cubic-bezier(0.895,0.03,0.685,0.22)",easingQuarticOut:"cubic-bezier(0.165,0.84,0.44,1)",easingQuarticInOut:"cubic-bezier(0.77,0,0.175,1)",easingQuinticIn:"cubic-bezier(0.755,0.05,0.855,0.06)",easingQuinticOut:"cubic-bezier(0.23,1,0.32,1)",easingQuinticInOut:"cubic-bezier(0.86,0,0.07,1)",easingExponentialIn:"cubic-bezier(0.95,0.05,0.795,0.035)",easingExponentialOut:"cubic-bezier(0.19,1,0.22,1)",easingExponentialInOut:"cubic-bezier(1,0,0,1)",easingCircularIn:"cubic-bezier(0.6,0.04,0.98,0.335)",easingCircularOut:"cubic-bezier(0.075,0.82,0.165,1)",easingCircularInOut:"cubic-bezier(0.785,0.135,0.15,0.86)",easingBackIn:"cubic-bezier(0.6,-0.28,0.735,0.045)",easingBackOut:"cubic-bezier(0.175,0.885,0.32,1.275)",easingBackInOut:"cubic-bezier(0.68,-0.55,0.265,1.55)"},offsetHeight="offsetHeight",offsetWidth="offsetWidth",scrollHeight="scrollHeight",scrollWidth="scrollWidth",tabindex="tabindex",userAgentData=navigator.userAgentData,{userAgent:userAgentString}=navigator,userAgent=userAgentString,isMobile=()=>{const mobileBrands=/iPhone|iPad|iPod|Android/i;return navigator?.userAgentData?.brands.some(x=>mobileBrands.test(x.brand))||mobileBrands.test(navigator?.userAgent)||!1},isApple=()=>{const appleBrands=/(iPhone|iPod|iPad)/;return navigator?.userAgentData?.brands.some(x=>appleBrands.test(x.brand))||appleBrands.test(navigator?.userAgent)||!1},isFirefox=()=>navigator?.userAgent?.includes("Firefox")||!1,support3DTransform=()=>["webkitPerspective","perspective"].some(p=>p in document.head.style),noop=()=>{},on=(element,eventName,listener,options)=>{const ops=options||!1;element.addEventListener(eventName,listener,ops)},off=(element,eventName,listener,options)=>{const ops=options||!1;element.removeEventListener(eventName,listener,ops)},one=(element,eventName,listener,options)=>{const handlerWrapper=e=>{(e.target===element||e.currentTarget===element)&&(listener.apply(element,[e]),off(element,eventName,handlerWrapper,options))};on(element,eventName,handlerWrapper,options)},supportPassive=()=>{let result=!1;try{const opts=Object.defineProperty({},"passive",{get:()=>(result=!0,result)});one(document,DOMContentLoadedEvent,noop,opts)}catch{}return result},supportTransform=()=>["webkitTransform","transform"].some(p=>p in document.head.style),supportTouch=()=>"ontouchstart"in window||"msMaxTouchPoints"in navigator,supportAnimation=()=>["webkitAnimation","animation"].some(p=>p in document.head.style),supportTransition=()=>["webkitTransition","transition"].some(p=>p in document.head.style),getAttribute=(element,att)=>element.getAttribute(att),getAttributeNS=(ns,element,att)=>element.getAttributeNS(ns,att),hasAttribute=(element,att)=>element.hasAttribute(att),hasAttributeNS=(ns,element,att)=>element.hasAttributeNS(ns,att),setAttribute=(element,att,value)=>element.setAttribute(att,value),setAttributeNS=(ns,element,att,value)=>element.setAttributeNS(ns,att,value),removeAttribute=(element,att)=>element.removeAttribute(att),removeAttributeNS=(ns,element,att)=>element.removeAttributeNS(ns,att),addClass=(element,...classNAME)=>{element.classList.add(...classNAME)},removeClass=(element,...classNAME)=>{element.classList.remove(...classNAME)},hasClass=(element,classNAME)=>element.classList.contains(classNAME),{body:documentBody}=document,{documentElement}=document,{head:documentHead}=document,ArrayFrom=arr=>Array.from(arr),isObject=obj=>obj!=null&&typeof obj=="object"||!1,isNode=node=>isObject(node)&&typeof node.nodeType=="number"&&[1,2,3,4,5,6,7,8,9,10,11].some(x=>node.nodeType===x)||!1,isHTMLElement=element=>isNode(element)&&element.nodeType===1||!1,componentData=new Map,Data={data:componentData,set:(element,component,instance)=>{if(!isHTMLElement(element))return;componentData.has(component)||componentData.set(component,new Map),componentData.get(component).set(element,instance)},getAllFor:component=>componentData.get(component)||null,get:(element,component)=>{if(!isHTMLElement(element)||!component)return null;const instanceMap=Data.getAllFor(component);return element&&instanceMap&&instanceMap.get(element)||null},remove:(element,component)=>{const instanceMap=Data.getAllFor(component);!instanceMap||!isHTMLElement(element)||(instanceMap.delete(element),instanceMap.size===0&&componentData.delete(component))}},getInstance=(target,component)=>Data.get(target,component),isString=str=>typeof str=="string"||!1,isWindow=obj=>isObject(obj)&&obj.constructor.name==="Window"||!1,isDocument=obj=>isNode(obj)&&obj.nodeType===9||!1,getDocument=node=>isWindow(node)?node.document:isDocument(node)?node:isNode(node)?node.ownerDocument:globalThis.document,ObjectAssign=(obj,...source)=>Object.assign(obj,...source),createElement=param=>{if(!param)return;if(isString(param))return getDocument().createElement(param);const{tagName}=param,newElement=createElement(tagName);if(!newElement)return;const attr={...param};return delete attr.tagName,ObjectAssign(newElement,attr)},createElementNS=(ns,param)=>{if(!ns||!param)return;if(isString(param))return getDocument().createElementNS(ns,param);const{tagName}=param,newElement=createElementNS(ns,tagName);if(!newElement)return;const attr={...param};return delete attr.tagName,ObjectAssign(newElement,attr)},dispatchEvent=(element,event)=>element.dispatchEvent(event),distinct=(value,index,arr)=>arr.indexOf(value)===index,getElementStyle=(element,property)=>{const computedStyle=getComputedStyle(element),prop=property.replace("webkit","Webkit").replace(/([A-Z])/g,"-$1").toLowerCase();return computedStyle.getPropertyValue(prop)},getElementAnimationDelay=element=>{const propertyValue=getElementStyle(element,animationName),durationValue=getElementStyle(element,animationDelay),durationScale=durationValue.includes("ms")?1:1e3,duration=propertyValue&&propertyValue!=="none"?parseFloat(durationValue)*durationScale:0;return Number.isNaN(duration)?0:duration},getElementAnimationDuration=element=>{const propertyValue=getElementStyle(element,animationName),durationValue=getElementStyle(element,animationDuration),durationScale=durationValue.includes("ms")?1:1e3,duration=propertyValue&&propertyValue!=="none"?parseFloat(durationValue)*durationScale:0;return Number.isNaN(duration)?0:duration},emulateAnimationEnd=(element,handler)=>{let called=0;const endEvent=new Event(animationEndEvent),duration=getElementAnimationDuration(element),delay=getElementAnimationDelay(element);if(duration){const animationEndWrapper=e=>{e.target===element&&(handler.apply(element,[e]),element.removeEventListener(animationEndEvent,animationEndWrapper),called=1)};element.addEventListener(animationEndEvent,animationEndWrapper),setTimeout(()=>{called||dispatchEvent(element,endEvent)},duration+delay+17)}else handler.apply(element,[endEvent])},getElementTransitionDelay=element=>{const propertyValue=getElementStyle(element,transitionProperty),delayValue=getElementStyle(element,transitionDelay),delayScale=delayValue.includes("ms")?1:1e3,duration=propertyValue&&propertyValue!=="none"?parseFloat(delayValue)*delayScale:0;return Number.isNaN(duration)?0:duration},getElementTransitionDuration=element=>{const propertyValue=getElementStyle(element,transitionProperty),durationValue=getElementStyle(element,transitionDuration),durationScale=durationValue.includes("ms")?1:1e3,duration=propertyValue&&propertyValue!=="none"?parseFloat(durationValue)*durationScale:0;return Number.isNaN(duration)?0:duration},emulateTransitionEnd=(element,handler)=>{let called=0;const endEvent=new Event(transitionEndEvent),duration=getElementTransitionDuration(element),delay=getElementTransitionDelay(element);if(duration){const transitionEndWrapper=e=>{e.target===element&&(handler.apply(element,[e]),element.removeEventListener(transitionEndEvent,transitionEndWrapper),called=1)};element.addEventListener(transitionEndEvent,transitionEndWrapper),setTimeout(()=>{called||dispatchEvent(element,endEvent)},duration+delay+17)}else handler.apply(element,[endEvent])},Float32ArrayFrom=arr=>Float32Array.from(Array.from(arr)),Float64ArrayFrom=arr=>Float64Array.from(Array.from(arr)),focus=(element,options)=>element.focus(options),normalizeValue=value=>["true",!0].includes(value)?!0:["false",!1].includes(value)?!1:["null","",null,void 0].includes(value)?null:value!==""&&!Number.isNaN(+value)?+value:value,ObjectEntries=obj=>Object.entries(obj),toLowerCase=source=>source.toLowerCase(),normalizeOptions=(element,defaultOps,inputOps,ns)=>{const INPUT={...inputOps},data={...element.dataset},normalOps={...defaultOps},dataOps={},title="title";return ObjectEntries(data).forEach(([k,v])=>{const key=ns&&typeof k=="string"&&k.includes(ns)?k.replace(ns,"").replace(/[A-Z]/g,match=>toLowerCase(match)):k;dataOps[key]=normalizeValue(v)}),ObjectEntries(INPUT).forEach(([k,v])=>{INPUT[k]=normalizeValue(v)}),ObjectEntries(defaultOps).forEach(([k,v])=>{k in INPUT?normalOps[k]=INPUT[k]:k in dataOps?normalOps[k]=dataOps[k]:normalOps[k]=k===title?getAttribute(element,title):v}),normalOps},ObjectHasOwn=(obj,prop)=>isObject(obj)&&(Object.hasOwn(obj,prop)||prop in obj),ObjectKeys=obj=>Object.keys(obj),ObjectValues=obj=>Object.values(obj),ObjectFromEntries=entries=>Object.fromEntries(entries),createCustomEvent=(eventType,config)=>{const OriginalCustomEvent=new CustomEvent(eventType,{cancelable:!0,bubbles:!0});return isObject(config)&&ObjectAssign(OriginalCustomEvent,config),OriginalCustomEvent},passiveHandler={passive:!0},reflow=element=>element.offsetHeight,setElementStyle=(element,styles)=>{ObjectEntries(styles).forEach(([key,value])=>{if(value&&isString(key)&&key.includes("--"))element.style.setProperty(key,value);else{const propObject={};propObject[key]=value,ObjectAssign(element.style,propObject)}})},isMap=obj=>isObject(obj)&&obj.constructor.name==="Map"||!1,isNumber=num=>typeof num=="number"||!1,TimeCache=new Map,Timer={set:(element,callback,delay,key)=>{isHTMLElement(element)&&(key&&key.length?(TimeCache.has(element)||TimeCache.set(element,new Map),TimeCache.get(element).set(key,setTimeout(callback,delay))):TimeCache.set(element,setTimeout(callback,delay)))},get:(element,key)=>{if(!isHTMLElement(element))return null;const keyTimers=TimeCache.get(element);return key&&keyTimers&&isMap(keyTimers)?keyTimers.get(key)||null:isNumber(keyTimers)?keyTimers:null},clear:(element,key)=>{if(!isHTMLElement(element))return;const keyTimers=TimeCache.get(element);key&&key.length&&isMap(keyTimers)?(clearTimeout(keyTimers.get(key)),keyTimers.delete(key),keyTimers.size===0&&TimeCache.delete(element)):(clearTimeout(keyTimers),TimeCache.delete(element))}},toUpperCase=source=>source.toUpperCase(),querySelectorAll=(selector,parent)=>(isNode(parent)?parent:getDocument()).querySelectorAll(selector),focusTrapMap=new Map;function handleKeyboardNavigation(event){const{shiftKey,code}=event,doc=getDocument(this),focusableElements=[...querySelectorAll(focusableSelector,this)].filter(el=>!hasAttribute(el,"disabled")&&!getAttribute(el,ariaHidden));if(!focusableElements.length)return;const firstFocusable=focusableElements[0],lastFocusable=focusableElements[focusableElements.length-1];code==="Tab"&&(shiftKey&&doc.activeElement===firstFocusable?(lastFocusable.focus(),event.preventDefault()):!shiftKey&&doc.activeElement===lastFocusable&&(firstFocusable.focus(),event.preventDefault()))}const hasFocusTrap=target=>focusTrapMap.has(target)===!0,toggleFocusTrap=target=>{const isCurrentlyTrapped=hasFocusTrap(target);(isCurrentlyTrapped?off:on)(target,"keydown",handleKeyboardNavigation),isCurrentlyTrapped?focusTrapMap.delete(target):focusTrapMap.set(target,!0)},getBoundingClientRect=(element,includeScale)=>{const{width,height,top,right,bottom,left}=element.getBoundingClientRect();let scaleX=1,scaleY=1;if(includeScale&&isHTMLElement(element)){const{offsetWidth:offsetWidth2,offsetHeight:offsetHeight2}=element;scaleX=offsetWidth2>0?Math.round(width)/offsetWidth2:1,scaleY=offsetHeight2>0?Math.round(height)/offsetHeight2:1}return{width:width/scaleX,height:height/scaleY,top:top/scaleY,right:right/scaleX,bottom:bottom/scaleY,left:left/scaleX,x:left/scaleX,y:top/scaleY}},getDocumentBody=node=>getDocument(node).body,getDocumentElement=node=>getDocument(node).documentElement,getDocumentHead=node=>getDocument(node).head,getNodeScroll=element=>{const isWin=isWindow(element),x=isWin?element.scrollX:element.scrollLeft,y=isWin?element.scrollY:element.scrollTop;return{x,y}},isShadowRoot=element=>isNode(element)&&element.constructor.name==="ShadowRoot"||!1,getParentNode=node=>node.nodeName==="HTML"?node:isHTMLElement(node)&&node.assignedSlot||isNode(node)&&node.parentNode||isShadowRoot(node)&&node.host||getDocumentElement(node),isScaledElement=element=>{if(!isHTMLElement(element))return!1;const{width,height}=getBoundingClientRect(element),{offsetWidth:offsetWidth2,offsetHeight:offsetHeight2}=element;return Math.round(width)!==offsetWidth2||Math.round(height)!==offsetHeight2},getRectRelativeToOffsetParent=(element,offsetParent,scroll)=>{const isParentAnElement=isHTMLElement(offsetParent),rect=getBoundingClientRect(element,isParentAnElement&&isScaledElement(offsetParent)),offsets={x:0,y:0};if(isParentAnElement){const offsetRect=getBoundingClientRect(offsetParent,!0);offsets.x=offsetRect.x+offsetParent.clientLeft,offsets.y=offsetRect.y+offsetParent.clientTop}return{x:rect.left+scroll.x-offsets.x,y:rect.top+scroll.y-offsets.y,width:rect.width,height:rect.height}};let elementUID=0,elementMapUID=0;const elementIDMap=new Map,getUID=(element,key)=>{let result=key?elementUID:elementMapUID;if(key){const elID=getUID(element),elMap=elementIDMap.get(elID)||new Map;elementIDMap.has(elID)||elementIDMap.set(elID,elMap),isMap(elMap)&&!elMap.has(key)?(elMap.set(key,result),elementUID+=1):result=elMap.get(key)}else{const elkey=element.id||element;elementIDMap.has(elkey)?result=elementIDMap.get(elkey):(elementIDMap.set(elkey,result),elementMapUID+=1)}return result},getWindow=node=>node?isDocument(node)?node.defaultView:isNode(node)?node?.ownerDocument?.defaultView:node:window,isArray=obj=>Array.isArray(obj)||!1,isCanvas=element=>isNode(element)&&element.nodeName==="CANVAS"||!1,isCustomElement=element=>isHTMLElement(element)&&!!element.shadowRoot||!1,isElement=element=>isNode(element)&&[1,2,3,4,5,6,7,8].some(x=>element.nodeType===x)||!1,isElementInScrollRange=element=>{if(!isNode(element))return!1;const{top,bottom}=getBoundingClientRect(element),{clientHeight}=getDocumentElement(element);return top<=clientHeight&&bottom>=0},isElementInViewport=element=>{if(!isNode(element))return!1;const{clientWidth,clientHeight}=getDocumentElement(element),{top,left,bottom,right}=getBoundingClientRect(element,!0);return top>=0&&left>=0&&bottom<=clientHeight&&right<=clientWidth},isElementsArray=obj=>isArray(obj)&&obj.every(isHTMLElement)||!1,isFunction=fn=>typeof fn=="function"||!1,isHTMLCollection=obj=>isObject(obj)&&obj.constructor.name==="HTMLCollection"||!1,isHTMLImageElement=element=>isHTMLElement(element)&&element.tagName==="IMG"||!1,isJSON=str=>{if(!isString(str))return!1;try{JSON.parse(str)}catch{return!1}return!0},isWeakMap=obj=>isObject(obj)&&obj.constructor.name==="WeakMap"||!1,isMedia=element=>isNode(element)&&["SVG","Image","Video","Canvas"].some(s=>element.constructor.name.includes(s))||!1,isNodeList=obj=>isObject(obj)&&obj.constructor.name==="NodeList"||!1,isRTL=node=>getDocumentElement(node).dir==="rtl",isSVGElement=element=>isNode(element)&&element.constructor.name.includes("SVG")||!1,isTableElement=element=>isNode(element)&&["TABLE","TD","TH"].includes(element.nodeName)||!1,closest=(element,selector)=>element?element.closest(selector)||closest(element.getRootNode().host,selector):null,querySelector=(selector,parent)=>isHTMLElement(selector)?selector:(isNode(parent)?parent:getDocument()).querySelector(selector),getElementsByTagName=(selector,parent)=>(isNode(parent)?parent:getDocument()).getElementsByTagName(selector),getCustomElements=parent=>[...getElementsByTagName("*",parent)].filter(isCustomElement),getElementById=(id,context)=>getDocument(context).getElementById(id)||null,getElementsByClassName=(selector,parent)=>(parent&&isNode(parent)?parent:getDocument()).getElementsByClassName(selector),matches=(target,selector)=>target.matches(selector),version="2.0.7";exports.ArrayFrom=ArrayFrom;exports.DOMContentLoadedEvent=DOMContentLoadedEvent;exports.DOMMouseScrollEvent=DOMMouseScrollEvent;exports.Data=Data;exports.Float32ArrayFrom=Float32ArrayFrom;exports.Float64ArrayFrom=Float64ArrayFrom;exports.ObjectAssign=ObjectAssign;exports.ObjectEntries=ObjectEntries;exports.ObjectFromEntries=ObjectFromEntries;exports.ObjectHasOwn=ObjectHasOwn;exports.ObjectKeys=ObjectKeys;exports.ObjectValues=ObjectValues;exports.Timer=Timer;exports.abortEvent=abortEvent;exports.addClass=addClass;exports.addEventListener=addEventListener;exports.animationDelay=animationDelay;exports.animationDuration=animationDuration;exports.animationEndEvent=animationEndEvent;exports.animationName=animationName;exports.ariaChecked=ariaChecked;exports.ariaDescribedBy=ariaDescribedBy;exports.ariaDescription=ariaDescription;exports.ariaExpanded=ariaExpanded;exports.ariaHasPopup=ariaHasPopup;exports.ariaHidden=ariaHidden;exports.ariaLabel=ariaLabel;exports.ariaLabelledBy=ariaLabelledBy;exports.ariaModal=ariaModal;exports.ariaPressed=ariaPressed;exports.ariaSelected=ariaSelected;exports.ariaValueMax=ariaValueMax;exports.ariaValueMin=ariaValueMin;exports.ariaValueNow=ariaValueNow;exports.ariaValueText=ariaValueText;exports.beforeunloadEvent=beforeunloadEvent;exports.bezierEasings=bezierEasings;exports.blurEvent=blurEvent;exports.changeEvent=changeEvent;exports.closest=closest;exports.contextmenuEvent=contextmenuEvent;exports.createCustomEvent=createCustomEvent;exports.createElement=createElement;exports.createElementNS=createElementNS;exports.dispatchEvent=dispatchEvent;exports.distinct=distinct;exports.documentBody=documentBody;exports.documentElement=documentElement;exports.documentHead=documentHead;exports.dragEvent=dragEvent;exports.dragendEvent=dragendEvent;exports.dragenterEvent=dragenterEvent;exports.dragleaveEvent=dragleaveEvent;exports.dragoverEvent=dragoverEvent;exports.dragstartEvent=dragstartEvent;exports.emulateAnimationEnd=emulateAnimationEnd;exports.emulateTransitionEnd=emulateTransitionEnd;exports.errorEvent=errorEvent;exports.focus=focus;exports.focusEvent=focusEvent;exports.focusEvents=focusEvents;exports.focusableSelector=focusableSelector;exports.focusinEvent=focusinEvent;exports.focusoutEvent=focusoutEvent;exports.gesturechangeEvent=gesturechangeEvent;exports.gestureendEvent=gestureendEvent;exports.gesturestartEvent=gesturestartEvent;exports.getAttribute=getAttribute;exports.getAttributeNS=getAttributeNS;exports.getBoundingClientRect=getBoundingClientRect;exports.getCustomElements=getCustomElements;exports.getDocument=getDocument;exports.getDocumentBody=getDocumentBody;exports.getDocumentElement=getDocumentElement;exports.getDocumentHead=getDocumentHead;exports.getElementAnimationDelay=getElementAnimationDelay;exports.getElementAnimationDuration=getElementAnimationDuration;exports.getElementById=getElementById;exports.getElementStyle=getElementStyle;exports.getElementTransitionDelay=getElementTransitionDelay;exports.getElementTransitionDuration=getElementTransitionDuration;exports.getElementsByClassName=getElementsByClassName;exports.getElementsByTagName=getElementsByTagName;exports.getInstance=getInstance;exports.getNodeScroll=getNodeScroll;exports.getParentNode=getParentNode;exports.getRectRelativeToOffsetParent=getRectRelativeToOffsetParent;exports.getUID=getUID;exports.getWindow=getWindow;exports.hasAttribute=hasAttribute;exports.hasAttributeNS=hasAttributeNS;exports.hasClass=hasClass;exports.hasFocusTrap=hasFocusTrap;exports.isApple=isApple;exports.isArray=isArray;exports.isCanvas=isCanvas;exports.isCustomElement=isCustomElement;exports.isDocument=isDocument;exports.isElement=isElement;exports.isElementInScrollRange=isElementInScrollRange;exports.isElementInViewport=isElementInViewport;exports.isElementsArray=isElementsArray;exports.isFirefox=isFirefox;exports.isFunction=isFunction;exports.isHTMLCollection=isHTMLCollection;exports.isHTMLElement=isHTMLElement;exports.isHTMLImageElement=isHTMLImageElement;exports.isJSON=isJSON;exports.isMap=isMap;exports.isMedia=isMedia;exports.isMobile=isMobile;exports.isNode=isNode;exports.isNodeList=isNodeList;exports.isNumber=isNumber;exports.isObject=isObject;exports.isRTL=isRTL;exports.isSVGElement=isSVGElement;exports.isScaledElement=isScaledElement;exports.isShadowRoot=isShadowRoot;exports.isString=isString;exports.isTableElement=isTableElement;exports.isWeakMap=isWeakMap;exports.isWindow=isWindow;exports.keyAlt=keyAlt;exports.keyArrowDown=keyArrowDown;exports.keyArrowLeft=keyArrowLeft;exports.keyArrowRight=keyArrowRight;exports.keyArrowUp=keyArrowUp;exports.keyBackspace=keyBackspace;exports.keyCapsLock=keyCapsLock;exports.keyControl=keyControl;exports.keyDelete=keyDelete;exports.keyEnter=keyEnter;exports.keyEscape=keyEscape;exports.keyInsert=keyInsert;exports.keyMeta=keyMeta;exports.keyNumpadEnter=keyNumpadEnter;exports.keyPause=keyPause;exports.keyScrollLock=keyScrollLock;exports.keyShift=keyShift;exports.keySpace=keySpace;exports.keyTab=keyTab;exports.keyboardEventKeys=keyboardEventKeys;exports.keydownEvent=keydownEvent;exports.keypressEvent=keypressEvent;exports.keyupEvent=keyupEvent;exports.loadEvent=loadEvent;exports.loadstartEvent=loadstartEvent;exports.matches=matches;exports.mouseClickEvents=mouseClickEvents;exports.mouseHoverEvents=mouseHoverEvents;exports.mouseSwipeEvents=mouseSwipeEvents;exports.mouseclickEvent=mouseclickEvent;exports.mousedblclickEvent=mousedblclickEvent;exports.mousedownEvent=mousedownEvent;exports.mouseenterEvent=mouseenterEvent;exports.mousehoverEvent=mousehoverEvent;exports.mouseinEvent=mouseinEvent;exports.mouseleaveEvent=mouseleaveEvent;exports.mousemoveEvent=mousemoveEvent;exports.mouseoutEvent=mouseoutEvent;exports.mouseoverEvent=mouseoverEvent;exports.mouseupEvent=mouseupEvent;exports.mousewheelEvent=mousewheelEvent;exports.moveEvent=moveEvent;exports.nativeEvents=nativeEvents;exports.noop=noop;exports.normalizeOptions=normalizeOptions;exports.normalizeValue=normalizeValue;exports.off=off;exports.offsetHeight=offsetHeight;exports.offsetWidth=offsetWidth;exports.on=on;exports.one=one;exports.orientationchangeEvent=orientationchangeEvent;exports.passiveHandler=passiveHandler;exports.pointercancelEvent=pointercancelEvent;exports.pointerdownEvent=pointerdownEvent;exports.pointerleaveEvent=pointerleaveEvent;exports.pointermoveEvent=pointermoveEvent;exports.pointerupEvent=pointerupEvent;exports.querySelector=querySelector;exports.querySelectorAll=querySelectorAll;exports.readystatechangeEvent=readystatechangeEvent;exports.reflow=reflow;exports.removeAttribute=removeAttribute;exports.removeAttributeNS=removeAttributeNS;exports.removeClass=removeClass;exports.removeEventListener=removeEventListener;exports.resetEvent=resetEvent;exports.resizeEvent=resizeEvent;exports.scrollEvent=scrollEvent;exports.scrollHeight=scrollHeight;exports.scrollWidth=scrollWidth;exports.selectEvent=selectEvent;exports.selectendEvent=selectendEvent;exports.selectstartEvent=selectstartEvent;exports.setAttribute=setAttribute;exports.setAttributeNS=setAttributeNS;exports.setElementStyle=setElementStyle;exports.submitEvent=submitEvent;exports.support3DTransform=support3DTransform;exports.supportAnimation=supportAnimation;exports.supportPassive=supportPassive;exports.supportTouch=supportTouch;exports.supportTransform=supportTransform;exports.supportTransition=supportTransition;exports.tabindex=tabindex;exports.toLowerCase=toLowerCase;exports.toUpperCase=toUpperCase;exports.toggleFocusTrap=toggleFocusTrap;exports.touchEvents=touchEvents;exports.touchcancelEvent=touchcancelEvent;exports.touchendEvent=touchendEvent;exports.touchmoveEvent=touchmoveEvent;exports.touchstartEvent=touchstartEvent;exports.transitionDelay=transitionDelay;exports.transitionDuration=transitionDuration;exports.transitionEndEvent=transitionEndEvent;exports.transitionProperty=transitionProperty;exports.unloadEvent=unloadEvent;exports.userAgent=userAgent;exports.userAgentData=userAgentData;exports.version=version;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const wt="2.0.9",At="aria-checked",kt="aria-description",St="aria-describedby",Ct="aria-expanded",Nt="aria-haspopup",J="aria-hidden",Tt="aria-label",Dt="aria-labelledby",Mt="aria-modal",Lt="aria-pressed",Ot="aria-selected",It="aria-valuemin",xt="aria-valuemax",zt="aria-valuenow",Pt="aria-valuetext",Z="abort",_="beforeunload",$="blur",X="change",Y="contextmenu",F="DOMContentLoaded",ee="DOMMouseScroll",te="error",ne="focus",oe="focusin",se="focusout",re="gesturechange",ae="gestureend",ie="gesturestart",ce="keydown",ue="keypress",le="keyup",de="load",me="click",pe="dblclick",ve="mousedown",Ee="mouseup",fe="hover",ge="mouseenter",be="mouseleave",ye="mousein",he="mouseout",we="mouseover",Ae="mousemove",ke="mousewheel",Se="move",Ce="orientationchange",Ne="pointercancel",Te="pointerdown",De="pointerleave",Me="pointermove",Le="pointerup",Oe="readystatechange",Ie="reset",xe="resize",ze="select",Pe="selectend",Fe="selectstart",He="scroll",Be="submit",Ve="touchstart",We="touchmove",Ue="touchcancel",Re="touchend",je="unload",Ft={DOMContentLoaded:F,DOMMouseScroll:ee,abort:Z,beforeunload:_,blur:$,change:X,click:me,contextmenu:Y,dblclick:pe,error:te,focus:ne,focusin:oe,focusout:se,gesturechange:re,gestureend:ae,gesturestart:ie,hover:fe,keydown:ce,keypress:ue,keyup:le,load:de,mousedown:ve,mousemove:Ae,mousein:ye,mouseout:he,mouseenter:ge,mouseleave:be,mouseover:we,mouseup:Ee,mousewheel:ke,move:Se,orientationchange:Ce,pointercancel:Ne,pointerdown:Te,pointerleave:De,pointermove:Me,pointerup:Le,readystatechange:Oe,reset:Ie,resize:xe,scroll:He,select:ze,selectend:Pe,selectstart:Fe,submit:Be,touchcancel:Ue,touchend:Re,touchmove:We,touchstart:Ve,unload:je},Ht="drag",Bt="dragstart",Vt="dragenter",Wt="dragleave",Ut="dragover",Rt="dragend",jt="loadstart",Qt={start:"mousedown",end:"mouseup",move:"mousemove",cancel:"mouseleave"},Kt={down:"mousedown",up:"mouseup"},qt="onmouseleave"in document?["mouseenter","mouseleave"]:["mouseover","mouseout"],Gt={start:"touchstart",end:"touchend",move:"touchmove",cancel:"touchcancel"},Jt={in:"focusin",out:"focusout"},Qe='a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]',Zt={Backspace:"Backspace",Tab:"Tab",Enter:"Enter",Shift:"Shift",Control:"Control",Alt:"Alt",Pause:"Pause",CapsLock:"CapsLock",Escape:"Escape",Scape:"Space",ArrowLeft:"ArrowLeft",ArrowUp:"ArrowUp",ArrowRight:"ArrowRight",ArrowDown:"ArrowDown",Insert:"Insert",Delete:"Delete",Meta:"Meta",ContextMenu:"ContextMenu",ScrollLock:"ScrollLock"},_t="Alt",$t="ArrowDown",Xt="ArrowUp",Yt="ArrowLeft",en="ArrowRight",tn="Backspace",nn="CapsLock",on="Control",sn="Delete",rn="Enter",an="NumpadEnter",cn="Escape",un="Insert",ln="Meta",dn="Pause",mn="ScrollLock",pn="Shift",vn="Space",En="Tab",Ke="animationDuration",qe="animationDelay",H="animationName",T="animationend",Ge="transitionDuration",Je="transitionDelay",D="transitionend",B="transitionProperty",fn="addEventListener",gn="removeEventListener",bn={linear:"linear",easingSinusoidalIn:"cubic-bezier(0.47,0,0.745,0.715)",easingSinusoidalOut:"cubic-bezier(0.39,0.575,0.565,1)",easingSinusoidalInOut:"cubic-bezier(0.445,0.05,0.55,0.95)",easingQuadraticIn:"cubic-bezier(0.550,0.085,0.680,0.530)",easingQuadraticOut:"cubic-bezier(0.250,0.460,0.450,0.940)",easingQuadraticInOut:"cubic-bezier(0.455,0.030,0.515,0.955)",easingCubicIn:"cubic-bezier(0.55,0.055,0.675,0.19)",easingCubicOut:"cubic-bezier(0.215,0.61,0.355,1)",easingCubicInOut:"cubic-bezier(0.645,0.045,0.355,1)",easingQuarticIn:"cubic-bezier(0.895,0.03,0.685,0.22)",easingQuarticOut:"cubic-bezier(0.165,0.84,0.44,1)",easingQuarticInOut:"cubic-bezier(0.77,0,0.175,1)",easingQuinticIn:"cubic-bezier(0.755,0.05,0.855,0.06)",easingQuinticOut:"cubic-bezier(0.23,1,0.32,1)",easingQuinticInOut:"cubic-bezier(0.86,0,0.07,1)",easingExponentialIn:"cubic-bezier(0.95,0.05,0.795,0.035)",easingExponentialOut:"cubic-bezier(0.19,1,0.22,1)",easingExponentialInOut:"cubic-bezier(1,0,0,1)",easingCircularIn:"cubic-bezier(0.6,0.04,0.98,0.335)",easingCircularOut:"cubic-bezier(0.075,0.82,0.165,1)",easingCircularInOut:"cubic-bezier(0.785,0.135,0.15,0.86)",easingBackIn:"cubic-bezier(0.6,-0.28,0.735,0.045)",easingBackOut:"cubic-bezier(0.175,0.885,0.32,1.275)",easingBackInOut:"cubic-bezier(0.68,-0.55,0.265,1.55)"},yn="offsetHeight",hn="offsetWidth",wn="scrollHeight",An="scrollWidth",kn="tabindex",Sn=navigator.userAgentData,{userAgent:Cn}=navigator,Nn=Cn,Tn=()=>{const e=/iPhone|iPad|iPod|Android/i;return navigator?.userAgentData?.brands.some(t=>e.test(t.brand))||e.test(navigator?.userAgent)||!1},Dn=()=>{const e=/(iPhone|iPod|iPad)/;return navigator?.userAgentData?.brands.some(t=>e.test(t.brand))||e.test(navigator?.userAgent)||!1},Mn=()=>navigator?.userAgent?.includes("Firefox")||!1,Ze=()=>typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none"),Ln=()=>["webkitPerspective","perspective"].some(e=>e in document.head.style),_e=()=>{},V=(e,t,n,o)=>{const s=o||!1;e.addEventListener(t,n,s)},W=(e,t,n,o)=>{const s=o||!1;e.removeEventListener(t,n,s)},$e=(e,t,n,o)=>{const s=r=>{(r.target===e||r.currentTarget===e)&&(n.apply(e,[r]),W(e,t,s,o))};V(e,t,s,o)},On=()=>{let e=!1;try{const t=Object.defineProperty({},"passive",{get:()=>(e=!0,e)});$e(document,F,_e,t)}catch{}return e},In=()=>["webkitTransform","transform"].some(e=>e in document.head.style),xn=()=>"ontouchstart"in window||"msMaxTouchPoints"in navigator,zn=()=>["webkitAnimation","animation"].some(e=>e in document.head.style),Pn=()=>["webkitTransition","transition"].some(e=>e in document.head.style),U=(e,t)=>e.getAttribute(t),Fn=(e,t,n)=>t.getAttributeNS(e,n),Xe=(e,t)=>e.hasAttribute(t),Hn=(e,t,n)=>t.hasAttributeNS(e,n),Bn=(e,t,n)=>e.setAttribute(t,n),Vn=(e,t,n,o)=>t.setAttributeNS(e,n,o),Wn=(e,t)=>e.removeAttribute(t),Un=(e,t,n)=>t.removeAttributeNS(e,n),Rn=(e,...t)=>{e.classList.add(...t)},jn=(e,...t)=>{e.classList.remove(...t)},Qn=(e,t)=>e.classList.contains(t),{body:Kn}=document,{documentElement:qn}=document,{head:Gn}=document,Jn=e=>Array.from(e),p=e=>e!=null&&typeof e=="object"||!1,u=e=>p(e)&&typeof e.nodeType=="number"&&[1,2,3,4,5,6,7,8,9,10,11].some(t=>e.nodeType===t)||!1,c=e=>u(e)&&e.nodeType===1||!1,b=new Map,M={data:b,set:(e,t,n)=>{if(!c(e))return;b.has(t)||b.set(t,new Map),b.get(t).set(e,n)},getAllFor:e=>b.get(e)||null,get:(e,t)=>{if(!c(e)||!t)return null;const n=M.getAllFor(t);return e&&n&&n.get(e)||null},remove:(e,t)=>{const n=M.getAllFor(t);!n||!c(e)||(n.delete(e),n.size===0&&b.delete(t))}},Zn=(e,t)=>M.get(e,t),_n=e=>e?.charAt(0).toUpperCase()+e?.slice(1),I=e=>e?.trim().replace(/(?:^\w|[A-Z]|\b\w)/g,(t,n)=>n===0?t.toLowerCase():t.toUpperCase()).replace(/\s+/g,""),S=e=>typeof e=="string"||!1,R=e=>p(e)&&e.constructor.name==="Window"||!1,j=e=>u(e)&&e.nodeType===9||!1,d=e=>j(e)?e:u(e)?e.ownerDocument:R(e)?e.document:globalThis.document,C=(e,...t)=>Object.assign(e,...t),Ye=e=>{if(!e)return;if(S(e))return d().createElement(e);const{tagName:t}=e,n=Ye(t);if(!n)return;const o={...e};return delete o.tagName,C(n,o)},et=(e,t)=>{if(!e||!t)return;if(S(t))return d().createElementNS(e,t);const{tagName:n}=t,o=et(e,n);if(!o)return;const s={...t};return delete s.tagName,C(o,s)},Q=(e,t)=>e.dispatchEvent(t),$n=(e,t,n)=>n.indexOf(e)===t,m=(e,t,n)=>{const o=getComputedStyle(e,n),s=t.replace("webkit","Webkit").replace(/([A-Z])/g,"-$1").toLowerCase();return o.getPropertyValue(s)},tt=e=>{const t=m(e,H),n=m(e,qe),o=n.includes("ms")?1:1e3,s=t&&t!=="none"?parseFloat(n)*o:0;return Number.isNaN(s)?0:s},nt=e=>{const t=m(e,H),n=m(e,Ke),o=n.includes("ms")?1:1e3,s=t&&t!=="none"?parseFloat(n)*o:0;return Number.isNaN(s)?0:s},Xn=(e,t)=>{let n=0;const o=new Event(T),s=nt(e),r=tt(e);if(s){const i=l=>{l.target===e&&(t.apply(e,[l]),e.removeEventListener(T,i),n=1)};e.addEventListener(T,i),setTimeout(()=>{n||Q(e,o)},s+r+17)}else t.apply(e,[o])},ot=e=>{const t=m(e,B),n=m(e,Je),o=n.includes("ms")?1:1e3,s=t&&t!=="none"?parseFloat(n)*o:0;return Number.isNaN(s)?0:s},st=e=>{const t=m(e,B),n=m(e,Ge),o=n.includes("ms")?1:1e3,s=t&&t!=="none"?parseFloat(n)*o:0;return Number.isNaN(s)?0:s},Yn=(e,t)=>{let n=0;const o=new Event(D),s=st(e),r=ot(e);if(s){const i=l=>{l.target===e&&(t.apply(e,[l]),e.removeEventListener(D,i),n=1)};e.addEventListener(D,i),setTimeout(()=>{n||Q(e,o)},s+r+17)}else t.apply(e,[o])},eo=e=>Float32Array.from(Array.from(e)),to=e=>Float64Array.from(Array.from(e)),no=(e,t)=>e.focus(t),oo=e=>e?.trim().replace(/([a-z])([A-Z])/g,"$1-$2").replace(/\s+/g,"-").toLowerCase(),x=e=>["true",!0].includes(e)?!0:["false",!1].includes(e)?!1:["null","",null,void 0].includes(e)?null:e!==""&&!Number.isNaN(+e)?+e:e,A=e=>Object.entries(e),so=(e,t,n,o)=>{if(!c(e))return t;const s={...n},r={...e.dataset},i={...t},l={},v="title";return A(r).forEach(([a,E])=>{const N=o&&typeof a=="string"&&a.includes(o)?I(a.replace(o,"")):I(a);l[N]=x(E)}),A(s).forEach(([a,E])=>{s[a]=x(E)}),A(t).forEach(([a,E])=>{a in s?i[a]=s[a]:a in l?i[a]=l[a]:i[a]=a===v?U(e,v):E}),i},ro=(e,t)=>p(e)&&(Object.hasOwn(e,t)||t in e),ao=e=>Object.keys(e),io=e=>Object.values(e),co=e=>Object.fromEntries(e),uo=(e,t)=>{const n=new CustomEvent(e,{cancelable:!0,bubbles:!0});return p(t)&&C(n,t),n},lo={passive:!0},mo=e=>e.offsetHeight,po=(e,t)=>{A(t).forEach(([n,o])=>{if(o&&S(n)&&n.includes("--"))e.style.setProperty(n,o);else{const s={};s[n]=o,C(e.style,s)}})},L=e=>p(e)&&e.constructor.name==="Map"||!1,rt=e=>typeof e=="number"||!1,f=new Map,vo={set:(e,t,n,o)=>{c(e)&&(o&&o.length?(f.has(e)||f.set(e,new Map),f.get(e).set(o,setTimeout(t,n))):f.set(e,setTimeout(t,n)))},get:(e,t)=>{if(!c(e))return null;const n=f.get(e);return t&&n&&L(n)?n.get(t)||null:rt(n)?n:null},clear:(e,t)=>{if(!c(e))return;const n=f.get(e);t&&t.length&&L(n)?(clearTimeout(n.get(t)),n.delete(t),n.size===0&&f.delete(e)):(clearTimeout(n),f.delete(e))}},Eo=e=>e.toLowerCase(),fo=e=>e.toUpperCase(),at=(e,t)=>(u(t)?t:d()).querySelectorAll(e),z=new Map;function go(e){const{shiftKey:t,code:n}=e,o=d(this),s=[...at(Qe,this)].filter(l=>!Xe(l,"disabled")&&!U(l,J));if(!s.length)return;const r=s[0],i=s[s.length-1];n==="Tab"&&(t&&o.activeElement===r?(i.focus(),e.preventDefault()):!t&&o.activeElement===i&&(r.focus(),e.preventDefault()))}const it=e=>z.has(e)===!0,bo=e=>{const t=it(e);(t?W:V)(e,"keydown",go),t?z.delete(e):z.set(e,!0)},g=e=>c(e)&&"offsetWidth"in e||!1,h=(e,t)=>{const{width:n,height:o,top:s,right:r,bottom:i,left:l}=e.getBoundingClientRect();let v=1,a=1;if(t&&g(e)){const{offsetWidth:E,offsetHeight:N}=e;v=E>0?Math.round(n)/E:1,a=N>0?Math.round(o)/N:1}return{width:n/v,height:o/a,top:s/a,right:r/v,bottom:i/a,left:l/v,x:l/v,y:s/a}},yo=e=>d(e).body,w=e=>d(e).documentElement,ho=e=>d(e).head,ct=e=>u(e)?(e.nodeName||"").toLowerCase():"#document",wo=e=>{const t=R(e),n=t?e.scrollX:e.scrollLeft,o=t?e.scrollY:e.scrollTop;return{x:n,y:o}},ut=e=>u(e)&&e.constructor.name==="ShadowRoot"||!1,k=e=>e.nodeName==="HTML"?e:c(e)&&e.assignedSlot||u(e)&&e.parentNode||ut(e)&&e.host||w(e),lt=e=>e?j(e)?e.defaultView:u(e)?e?.ownerDocument?.defaultView:e:window,dt=e=>u(e)&&["TABLE","TD","TH"].includes(e.nodeName)||!1,mt=(e,t)=>e.matches(t),O=e=>m(e,"position")==="static",Ao=e=>m(e,"position")==="fixed",pt=e=>[":popover-open",":modal"].some(t=>{try{return mt(e,t)}catch{return!1}}),vt=e=>{const t=Ze(),n=c(e)?getComputedStyle(e):e;return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(o=>(n.willChange||"").includes(o))||["paint","layout","strict","content"].some(o=>(n.contain||"").includes(o))},ko=e=>{let t=k(e);for(;c(t)&&!P(t);){if(vt(t))return t;if(pt(t))return null;t=k(t)}return null},P=e=>["html","body","#document"].includes(ct(e)),K=e=>{if(!g(e)||Ao(e))return null;let t=e.offsetParent;return w(e)===t&&(t=t.ownerDocument.body),t},So=e=>{const t=lt(e);if(!u(e)||pt(e))return t;if(!g(e)){let o=k(e);for(;o&&!P(o);){if(c(o)&&!O(o))return o;o=k(o)}return t}let n=K(e);for(;n&&dt(n)&&O(n);)n=K(n);return n&&P(n)&&O(n)&&!vt(n)?t:n||ko(e)||t},Et=e=>{if(!g(e))return!1;const{width:t,height:n}=h(e),{offsetWidth:o,offsetHeight:s}=e;return Math.round(t)!==o||Math.round(n)!==s},Co=(e,t,n)=>{const o=g(t),s=h(e,o&&Et(t)),r={x:0,y:0};if(o){const i=h(t,!0);r.x=i.x+t.clientLeft,r.y=i.y+t.clientTop}return{x:s.left+n.x-r.x,y:s.top+n.y-r.y,width:s.width,height:s.height}};let q=0,G=0;const y=new Map,ft=(e,t)=>{let n=t?q:G;if(t){const o=ft(e),s=y.get(o)||new Map;y.has(o)||y.set(o,s),L(s)&&!s.has(t)?(s.set(t,n),q+=1):n=s.get(t)}else{const o=e.id||e;y.has(o)?n=y.get(o):(y.set(o,n),G+=1)}return n},gt=e=>Array.isArray(e)||!1,No=e=>u(e)&&e.nodeName==="CANVAS"||!1,bt=e=>g(e)&&!!e.shadowRoot||!1,To=e=>{if(!u(e))return!1;const{top:t,bottom:n}=h(e),{clientHeight:o}=w(e);return t<=o&&n>=0},Do=e=>{if(!c(e))return!1;const{clientWidth:t,clientHeight:n}=w(e),{top:o,left:s,bottom:r,right:i}=h(e,!0);return o>=0&&s>=0&&r<=n&&i<=t},Mo=e=>gt(e)&&e.every(c)||!1,Lo=e=>typeof e=="function"||!1,Oo=e=>p(e)&&e.constructor.name==="HTMLCollection"||!1,Io=e=>g(e)&&e.tagName==="IMG"||!1,xo=e=>{if(!S(e))return!1;try{JSON.parse(e)}catch{return!1}return!0},zo=e=>p(e)&&e.constructor.name==="WeakMap"||!1,Po=e=>u(e)&&["SVG","Image","Video","Canvas"].some(t=>e.constructor.name.includes(t))||!1,Fo=e=>p(e)&&e.constructor.name==="NodeList"||!1,Ho=e=>w(e).dir==="rtl",Bo=e=>u(e)&&e.constructor.name.includes("SVG")||!1,yt=(e,t)=>!e||!t?null:e.closest(t)||yt(e.getRootNode().host,t)||null,Vo=(e,t)=>c(e)?e:(c(t)?t:d()).querySelector(e),ht=(e,t)=>(u(t)?t:d()).getElementsByTagName(e),Wo=e=>[...ht("*",e)].filter(bt),Uo=(e,t)=>d(t).getElementById(e),Ro=(e,t)=>(t&&u(t)?t:d()).getElementsByClassName(e);exports.ArrayFrom=Jn;exports.DOMContentLoadedEvent=F;exports.DOMMouseScrollEvent=ee;exports.Data=M;exports.Float32ArrayFrom=eo;exports.Float64ArrayFrom=to;exports.ObjectAssign=C;exports.ObjectEntries=A;exports.ObjectFromEntries=co;exports.ObjectHasOwn=ro;exports.ObjectKeys=ao;exports.ObjectValues=io;exports.Timer=vo;exports.abortEvent=Z;exports.addClass=Rn;exports.addEventListener=fn;exports.animationDelay=qe;exports.animationDuration=Ke;exports.animationEndEvent=T;exports.animationName=H;exports.ariaChecked=At;exports.ariaDescribedBy=St;exports.ariaDescription=kt;exports.ariaExpanded=Ct;exports.ariaHasPopup=Nt;exports.ariaHidden=J;exports.ariaLabel=Tt;exports.ariaLabelledBy=Dt;exports.ariaModal=Mt;exports.ariaPressed=Lt;exports.ariaSelected=Ot;exports.ariaValueMax=xt;exports.ariaValueMin=It;exports.ariaValueNow=zt;exports.ariaValueText=Pt;exports.beforeunloadEvent=_;exports.bezierEasings=bn;exports.blurEvent=$;exports.camelCase=I;exports.capitalize=_n;exports.changeEvent=X;exports.closest=yt;exports.contextmenuEvent=Y;exports.createCustomEvent=uo;exports.createElement=Ye;exports.createElementNS=et;exports.dispatchEvent=Q;exports.distinct=$n;exports.documentBody=Kn;exports.documentElement=qn;exports.documentHead=Gn;exports.dragEvent=Ht;exports.dragendEvent=Rt;exports.dragenterEvent=Vt;exports.dragleaveEvent=Wt;exports.dragoverEvent=Ut;exports.dragstartEvent=Bt;exports.emulateAnimationEnd=Xn;exports.emulateTransitionEnd=Yn;exports.errorEvent=te;exports.focus=no;exports.focusEvent=ne;exports.focusEvents=Jt;exports.focusableSelector=Qe;exports.focusinEvent=oe;exports.focusoutEvent=se;exports.gesturechangeEvent=re;exports.gestureendEvent=ae;exports.gesturestartEvent=ie;exports.getAttribute=U;exports.getAttributeNS=Fn;exports.getBoundingClientRect=h;exports.getCustomElements=Wo;exports.getDocument=d;exports.getDocumentBody=yo;exports.getDocumentElement=w;exports.getDocumentHead=ho;exports.getElementAnimationDelay=tt;exports.getElementAnimationDuration=nt;exports.getElementById=Uo;exports.getElementStyle=m;exports.getElementTransitionDelay=ot;exports.getElementTransitionDuration=st;exports.getElementsByClassName=Ro;exports.getElementsByTagName=ht;exports.getInstance=Zn;exports.getNodeName=ct;exports.getNodeScroll=wo;exports.getOffsetParent=So;exports.getParentNode=k;exports.getRectRelativeToOffsetParent=Co;exports.getUID=ft;exports.getWindow=lt;exports.hasAttribute=Xe;exports.hasAttributeNS=Hn;exports.hasClass=Qn;exports.hasFocusTrap=it;exports.isApple=Dn;exports.isArray=gt;exports.isCanvas=No;exports.isCustomElement=bt;exports.isDocument=j;exports.isElement=c;exports.isElementInScrollRange=To;exports.isElementInViewport=Do;exports.isElementsArray=Mo;exports.isFirefox=Mn;exports.isFunction=Lo;exports.isHTMLCollection=Oo;exports.isHTMLElement=g;exports.isHTMLImageElement=Io;exports.isJSON=xo;exports.isMap=L;exports.isMedia=Po;exports.isMobile=Tn;exports.isNode=u;exports.isNodeList=Fo;exports.isNumber=rt;exports.isObject=p;exports.isRTL=Ho;exports.isSVGElement=Bo;exports.isScaledElement=Et;exports.isShadowRoot=ut;exports.isString=S;exports.isTableElement=dt;exports.isWeakMap=zo;exports.isWebKit=Ze;exports.isWindow=R;exports.kebabCase=oo;exports.keyAlt=_t;exports.keyArrowDown=$t;exports.keyArrowLeft=Yt;exports.keyArrowRight=en;exports.keyArrowUp=Xt;exports.keyBackspace=tn;exports.keyCapsLock=nn;exports.keyControl=on;exports.keyDelete=sn;exports.keyEnter=rn;exports.keyEscape=cn;exports.keyInsert=un;exports.keyMeta=ln;exports.keyNumpadEnter=an;exports.keyPause=dn;exports.keyScrollLock=mn;exports.keyShift=pn;exports.keySpace=vn;exports.keyTab=En;exports.keyboardEventKeys=Zt;exports.keydownEvent=ce;exports.keypressEvent=ue;exports.keyupEvent=le;exports.loadEvent=de;exports.loadstartEvent=jt;exports.matches=mt;exports.mouseClickEvents=Kt;exports.mouseHoverEvents=qt;exports.mouseSwipeEvents=Qt;exports.mouseclickEvent=me;exports.mousedblclickEvent=pe;exports.mousedownEvent=ve;exports.mouseenterEvent=ge;exports.mousehoverEvent=fe;exports.mouseinEvent=ye;exports.mouseleaveEvent=be;exports.mousemoveEvent=Ae;exports.mouseoutEvent=he;exports.mouseoverEvent=we;exports.mouseupEvent=Ee;exports.mousewheelEvent=ke;exports.moveEvent=Se;exports.nativeEvents=Ft;exports.noop=_e;exports.normalizeOptions=so;exports.normalizeValue=x;exports.off=W;exports.offsetHeight=yn;exports.offsetWidth=hn;exports.on=V;exports.one=$e;exports.orientationchangeEvent=Ce;exports.passiveHandler=lo;exports.pointercancelEvent=Ne;exports.pointerdownEvent=Te;exports.pointerleaveEvent=De;exports.pointermoveEvent=Me;exports.pointerupEvent=Le;exports.querySelector=Vo;exports.querySelectorAll=at;exports.readystatechangeEvent=Oe;exports.reflow=mo;exports.removeAttribute=Wn;exports.removeAttributeNS=Un;exports.removeClass=jn;exports.removeEventListener=gn;exports.resetEvent=Ie;exports.resizeEvent=xe;exports.scrollEvent=He;exports.scrollHeight=wn;exports.scrollWidth=An;exports.selectEvent=ze;exports.selectendEvent=Pe;exports.selectstartEvent=Fe;exports.setAttribute=Bn;exports.setAttributeNS=Vn;exports.setElementStyle=po;exports.submitEvent=Be;exports.support3DTransform=Ln;exports.supportAnimation=zn;exports.supportPassive=On;exports.supportTouch=xn;exports.supportTransform=In;exports.supportTransition=Pn;exports.tabindex=kn;exports.toLowerCase=Eo;exports.toUpperCase=fo;exports.toggleFocusTrap=bo;exports.touchEvents=Gt;exports.touchcancelEvent=Ue;exports.touchendEvent=Re;exports.touchmoveEvent=We;exports.touchstartEvent=Ve;exports.transitionDelay=Je;exports.transitionDuration=Ge;exports.transitionEndEvent=D;exports.transitionProperty=B;exports.unloadEvent=je;exports.userAgent=Nn;exports.userAgentData=Sn;exports.version=wt;
2
2
  //# sourceMappingURL=shorty.cjs.map