@splendidlabz/utils 1.11.3 → 1.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dom/accessibility.cjs +53 -0
- package/dist/cjs/dom/actions/index.cjs +410 -0
- package/dist/cjs/dom/actions/masonry.cjs +152 -0
- package/dist/cjs/dom/actions/prefer-horizontal-scroll.cjs +157 -0
- package/dist/cjs/dom/actions/sticky.cjs +213 -0
- package/dist/cjs/dom/bounding-box.cjs +70 -0
- package/dist/cjs/dom/clipboard.cjs +37 -0
- package/dist/cjs/dom/cookie.cjs +57 -0
- package/dist/cjs/dom/css-vars.cjs +57 -0
- package/dist/cjs/dom/events.cjs +59 -0
- package/{src/dom/focusable.js → dist/cjs/dom/focusable.cjs} +51 -73
- package/dist/cjs/dom/font-size.cjs +80 -0
- package/dist/cjs/dom/get-element.cjs +98 -0
- package/dist/cjs/dom/hash.cjs +35 -0
- package/dist/cjs/dom/index.cjs +1267 -0
- package/dist/cjs/dom/keyboard.cjs +51 -0
- package/dist/cjs/dom/local-store.cjs +79 -0
- package/dist/cjs/dom/media.cjs +59 -0
- package/dist/cjs/dom/observers/index.cjs +253 -0
- package/dist/cjs/dom/observers/intersection-observer.cjs +91 -0
- package/dist/cjs/dom/observers/mutation-observer.cjs +95 -0
- package/dist/cjs/dom/observers/observer.cjs +48 -0
- package/dist/cjs/dom/observers/resize-observer.cjs +84 -0
- package/dist/cjs/dom/observers/scroll-observer.cjs +177 -0
- package/dist/cjs/dom/pkce.cjs +53 -0
- package/dist/cjs/dom/query-params.cjs +38 -0
- package/dist/cjs/dom/random-string.cjs +38 -0
- package/dist/cjs/dom/sanitize.cjs +65 -0
- package/dist/cjs/dom/session-store.cjs +49 -0
- package/dist/cjs/dom/spam-prevention.cjs +50 -0
- package/dist/cjs/dom/trap-focus.cjs +197 -0
- package/dist/cjs/dom/ui/aria-current.cjs +43 -0
- package/dist/cjs/dom/ui/inconsistent-button-fix.cjs +35 -0
- package/dist/cjs/dom/ui/index.cjs +105 -0
- package/dist/cjs/dom/ui/scroll-container.cjs +47 -0
- package/dist/cjs/dom/ui/traverse-and-scramble.cjs +50 -0
- package/dist/cjs/lib/arrays/index.cjs +139 -0
- package/dist/cjs/lib/arrays/item-position.cjs +42 -0
- package/dist/cjs/lib/arrays/join.cjs +43 -0
- package/dist/cjs/lib/arrays/shuffle.cjs +42 -0
- package/dist/cjs/lib/arrays/sort.cjs +67 -0
- package/dist/cjs/lib/arrays/split-array.cjs +41 -0
- package/dist/cjs/lib/arrays/unique.cjs +31 -0
- package/dist/cjs/lib/auth/index.cjs +53 -0
- package/dist/cjs/lib/auth/route-manager.cjs +51 -0
- package/dist/cjs/lib/checks.cjs +63 -0
- package/dist/cjs/lib/date/days.cjs +37 -0
- package/dist/cjs/lib/date/index.cjs +208 -0
- package/dist/cjs/lib/date/months.cjs +102 -0
- package/dist/cjs/lib/date/time.cjs +117 -0
- package/dist/cjs/lib/form/form-data.cjs +83 -0
- package/dist/cjs/lib/form/index.cjs +122 -0
- package/dist/cjs/lib/form/sanitize.cjs +61 -0
- package/dist/cjs/lib/functions/callback.cjs +31 -0
- package/dist/cjs/lib/functions/debounce.cjs +43 -0
- package/dist/cjs/lib/functions/env.cjs +32 -0
- package/dist/cjs/lib/functions/functional.cjs +82 -0
- package/dist/cjs/lib/functions/index.cjs +142 -0
- package/dist/cjs/lib/functions/throttle.cjs +38 -0
- package/dist/cjs/lib/functions/timeout.cjs +41 -0
- package/dist/cjs/lib/hash.cjs +43 -0
- package/dist/cjs/lib/index.cjs +1178 -0
- package/dist/cjs/lib/numbers/index.cjs +49 -0
- package/dist/cjs/lib/numbers/math.cjs +36 -0
- package/dist/cjs/lib/objects/camelcase-keys.cjs +80 -0
- package/dist/cjs/lib/objects/empty.cjs +39 -0
- package/dist/cjs/lib/objects/equal.cjs +47 -0
- package/dist/cjs/lib/objects/extend.cjs +147 -0
- package/dist/cjs/lib/objects/flatten.cjs +48 -0
- package/dist/cjs/lib/objects/index.cjs +378 -0
- package/dist/cjs/lib/objects/json.cjs +35 -0
- package/dist/cjs/lib/objects/loop.cjs +40 -0
- package/dist/cjs/lib/objects/mix/mix.cjs +115 -0
- package/dist/cjs/lib/objects/nested-property.cjs +45 -0
- package/dist/cjs/lib/objects/normalize-object.cjs +106 -0
- package/dist/cjs/lib/objects/omit-empty.cjs +40 -0
- package/dist/cjs/lib/objects/size.cjs +63 -0
- package/dist/cjs/lib/objects/split.cjs +39 -0
- package/dist/cjs/lib/promises/index.cjs +69 -0
- package/dist/cjs/lib/promises/reject.cjs +67 -0
- package/dist/cjs/lib/sse.cjs +99 -0
- package/dist/cjs/lib/strings/convert-case/convert-case.cjs +96 -0
- package/dist/cjs/lib/strings/index.cjs +197 -0
- package/dist/cjs/lib/strings/markdown.cjs +76 -0
- package/dist/cjs/lib/strings/name.cjs +46 -0
- package/dist/cjs/lib/strings/pluralize.cjs +40 -0
- package/dist/cjs/lib/strings/query-string.cjs +43 -0
- package/dist/cjs/lib/style/index.cjs +64 -0
- package/dist/cjs/lib/symbols/index.cjs +40 -0
- package/dist/cjs/lib/symbols/symbols.cjs +38 -0
- package/dist/cjs/node/dirname.cjs +49 -0
- package/dist/cjs/node/file-cache.cjs +200 -0
- package/dist/cjs/node/file.cjs +50 -0
- package/dist/cjs/node/hash.cjs +42 -0
- package/dist/cjs/node/index.cjs +296 -0
- package/dist/cjs/node/pkce.cjs +64 -0
- package/dist/cjs/node/random-string.cjs +43 -0
- package/dist/cjs/node/sanitize.cjs +65 -0
- package/dist/cjs/node/uuid.cjs +42 -0
- package/dist/esm/dom/accessibility.js +26 -0
- package/dist/esm/dom/actions/index.js +3 -0
- package/dist/esm/dom/actions/masonry.js +38 -0
- package/dist/esm/dom/actions/prefer-horizontal-scroll.js +90 -0
- package/dist/esm/dom/actions/sticky.js +70 -0
- package/dist/esm/dom/bounding-box.js +44 -0
- package/dist/esm/dom/clipboard.js +12 -0
- package/dist/esm/dom/cookie.js +31 -0
- package/dist/esm/dom/css-vars.js +21 -0
- package/dist/esm/dom/events.js +31 -0
- package/dist/esm/dom/focusable.js +117 -0
- package/dist/esm/dom/font-size.js +40 -0
- package/dist/esm/dom/get-element.js +66 -0
- package/dist/esm/dom/hash.js +10 -0
- package/dist/esm/dom/index.js +23 -0
- package/dist/esm/dom/keyboard.js +22 -0
- package/{src → dist/esm}/dom/local-store.js +16 -28
- package/dist/esm/dom/media.js +32 -0
- package/dist/esm/dom/observers/index.js +4 -0
- package/dist/esm/dom/observers/intersection-observer.js +36 -0
- package/dist/esm/dom/observers/mutation-observer.js +40 -0
- package/dist/esm/dom/observers/observer.js +15 -0
- package/dist/esm/dom/observers/resize-observer.js +29 -0
- package/dist/esm/dom/observers/scroll-observer.js +95 -0
- package/dist/esm/dom/pkce.js +20 -0
- package/dist/esm/dom/query-params.js +13 -0
- package/dist/esm/dom/random-string.js +12 -0
- package/dist/esm/dom/sanitize.js +8 -0
- package/dist/esm/dom/session-store.js +24 -0
- package/dist/esm/dom/spam-prevention.js +25 -0
- package/dist/esm/dom/trap-focus.js +51 -0
- package/dist/esm/dom/ui/aria-current.js +17 -0
- package/dist/esm/dom/ui/inconsistent-button-fix.js +10 -0
- package/dist/esm/dom/ui/index.js +4 -0
- package/dist/esm/dom/ui/scroll-container.js +22 -0
- package/dist/esm/dom/ui/traverse-and-scramble.js +25 -0
- package/dist/esm/lib/arrays/index.js +6 -0
- package/dist/esm/lib/arrays/item-position.js +15 -0
- package/dist/esm/lib/arrays/join.js +12 -0
- package/dist/esm/lib/arrays/shuffle.js +17 -0
- package/dist/esm/lib/arrays/sort.js +36 -0
- package/dist/esm/lib/arrays/split-array.js +16 -0
- package/dist/esm/lib/arrays/unique.js +6 -0
- package/dist/esm/lib/auth/index.js +1 -0
- package/dist/esm/lib/auth/route-manager.js +25 -0
- package/dist/esm/lib/checks.js +34 -0
- package/dist/esm/lib/date/days.js +12 -0
- package/dist/esm/lib/date/index.js +3 -0
- package/dist/esm/lib/date/months.js +77 -0
- package/dist/esm/lib/date/time.js +75 -0
- package/dist/esm/lib/form/form-data.js +57 -0
- package/dist/esm/lib/form/index.js +2 -0
- package/dist/esm/lib/form/sanitize.js +34 -0
- package/dist/esm/lib/functions/callback.js +6 -0
- package/dist/esm/lib/functions/debounce.js +18 -0
- package/dist/esm/lib/functions/env.js +7 -0
- package/dist/esm/lib/functions/functional.js +52 -0
- package/dist/esm/lib/functions/index.js +5 -0
- package/dist/esm/lib/functions/throttle.js +13 -0
- package/dist/esm/lib/functions/timeout.js +14 -0
- package/dist/esm/lib/hash.js +18 -0
- package/dist/esm/lib/index.js +14 -0
- package/dist/esm/lib/numbers/index.js +11 -0
- package/dist/esm/lib/numbers/math.js +10 -0
- package/dist/esm/lib/objects/camelcase-keys.js +16 -0
- package/dist/esm/lib/objects/empty.js +13 -0
- package/dist/esm/lib/objects/equal.js +11 -0
- package/dist/esm/lib/objects/extend.js +13 -0
- package/dist/esm/lib/objects/flatten.js +17 -0
- package/dist/esm/lib/objects/index.js +13 -0
- package/dist/esm/lib/objects/json.js +10 -0
- package/dist/esm/lib/objects/loop.js +14 -0
- package/dist/esm/lib/objects/mix/mix.js +88 -0
- package/dist/esm/lib/objects/nested-property.js +18 -0
- package/dist/esm/lib/objects/normalize-object.js +9 -0
- package/dist/esm/lib/objects/omit-empty.js +15 -0
- package/dist/esm/lib/objects/size.js +38 -0
- package/dist/esm/lib/objects/split.js +14 -0
- package/dist/esm/lib/promises/index.js +1 -0
- package/dist/esm/lib/promises/reject.js +17 -0
- package/dist/esm/lib/sse.js +50 -0
- package/dist/esm/lib/strings/convert-case/convert-case.js +64 -0
- package/dist/esm/lib/strings/index.js +5 -0
- package/dist/esm/lib/strings/markdown.js +40 -0
- package/dist/esm/lib/strings/name.js +21 -0
- package/dist/esm/lib/strings/pluralize.js +5 -0
- package/dist/esm/lib/strings/query-string.js +16 -0
- package/dist/esm/lib/style/index.js +12 -0
- package/dist/esm/lib/symbols/index.js +1 -0
- package/dist/esm/lib/symbols/symbols.js +12 -0
- package/dist/esm/node/context.js +0 -0
- package/dist/esm/node/dirname.js +13 -0
- package/dist/esm/node/file-cache.js +121 -0
- package/dist/esm/node/file.js +14 -0
- package/dist/esm/node/hash.js +7 -0
- package/dist/esm/node/index.js +7 -0
- package/dist/esm/node/pkce.js +20 -0
- package/dist/esm/node/random-string.js +8 -0
- package/dist/esm/node/sanitize.js +8 -0
- package/dist/esm/node/uuid.js +7 -0
- package/dist/types/dom/accessibility.d.cts +30 -0
- package/dist/types/dom/actions/index.d.cts +3 -0
- package/dist/types/dom/actions/masonry.d.cts +5 -0
- package/dist/types/dom/actions/prefer-horizontal-scroll.d.cts +5 -0
- package/dist/types/dom/actions/sticky.d.cts +5 -0
- package/{src/dom/bounding-box.js → dist/types/dom/bounding-box.d.cts} +8 -49
- package/dist/types/dom/clipboard.d.cts +7 -0
- package/dist/types/dom/cookie.d.cts +7 -0
- package/dist/types/dom/css-vars.d.cts +6 -0
- package/{src/dom/events.js → dist/types/dom/events.d.cts} +52 -31
- package/dist/types/dom/focusable.d.cts +78 -0
- package/dist/types/dom/font-size.d.cts +8 -0
- package/{src/dom/get-element.js → dist/types/dom/get-element.d.cts} +25 -99
- package/dist/types/dom/hash.d.cts +3 -0
- package/dist/types/dom/index.d.cts +31 -0
- package/{src/dom/keyboard.js → dist/types/dom/keyboard.d.cts} +7 -19
- package/dist/types/dom/local-store.d.cts +31 -0
- package/dist/types/dom/media.d.cts +5 -0
- package/dist/types/dom/observers/index.d.cts +4 -0
- package/dist/types/dom/observers/intersection-observer.d.cts +10 -0
- package/dist/types/dom/observers/mutation-observer.d.cts +9 -0
- package/dist/types/dom/observers/observer.d.cts +3 -0
- package/{src/dom/observers/resize-observer.js → dist/types/dom/observers/resize-observer.d.cts} +6 -32
- package/dist/types/dom/observers/scroll-observer.d.cts +40 -0
- package/dist/types/dom/pkce.d.cts +8 -0
- package/dist/types/dom/query-params.d.cts +6 -0
- package/dist/types/dom/random-string.d.cts +9 -0
- package/dist/types/dom/sanitize.d.cts +10 -0
- package/dist/types/dom/session-store.d.cts +7 -0
- package/dist/types/dom/spam-prevention.d.cts +14 -0
- package/dist/types/dom/trap-focus.d.cts +32 -0
- package/dist/types/dom/ui/aria-current.d.cts +7 -0
- package/{src/dom/ui/inconsistent-button-fix.js → dist/types/dom/ui/inconsistent-button-fix.d.cts} +5 -11
- package/dist/types/dom/ui/index.d.cts +4 -0
- package/dist/types/dom/ui/scroll-container.d.cts +3 -0
- package/dist/types/dom/ui/traverse-and-scramble.d.cts +21 -0
- package/dist/types/lib/arrays/index.d.cts +6 -0
- package/{src/lib/arrays/item-position.js → dist/types/lib/arrays/item-position.d.cts} +5 -12
- package/{src/lib/arrays/join.js → dist/types/lib/arrays/join.d.cts} +4 -9
- package/dist/types/lib/arrays/shuffle.d.cts +3 -0
- package/dist/types/lib/arrays/sort.d.cts +32 -0
- package/dist/types/lib/arrays/split-array.d.cts +6 -0
- package/dist/types/lib/arrays/unique.d.cts +3 -0
- package/dist/types/lib/auth/index.d.cts +1 -0
- package/dist/types/lib/auth/route-manager.d.cts +28 -0
- package/dist/types/lib/checks.d.cts +33 -0
- package/dist/types/lib/date/days.d.cts +7 -0
- package/dist/types/lib/date/index.d.cts +3 -0
- package/dist/types/lib/date/months.d.cts +11 -0
- package/dist/types/lib/date/time.d.cts +21 -0
- package/dist/types/lib/form/form-data.d.cts +9 -0
- package/dist/types/lib/form/index.d.cts +2 -0
- package/{src/lib/form/sanitize.js → dist/types/lib/form/sanitize.d.cts} +19 -39
- package/{src/lib/functions/callback.js → dist/types/lib/functions/callback.d.cts} +3 -3
- package/dist/types/lib/functions/debounce.d.cts +3 -0
- package/dist/types/lib/functions/env.d.cts +3 -0
- package/{src/lib/functions/functional.js → dist/types/lib/functions/functional.d.cts} +8 -49
- package/dist/types/lib/functions/index.d.cts +5 -0
- package/dist/types/lib/functions/throttle.d.cts +3 -0
- package/dist/types/lib/functions/timeout.d.cts +5 -0
- package/dist/types/lib/hash.d.cts +3 -0
- package/dist/types/lib/index.d.cts +43 -0
- package/dist/types/lib/numbers/index.d.cts +5 -0
- package/dist/types/lib/numbers/math.d.cts +4 -0
- package/dist/types/lib/objects/camelcase-keys.d.cts +3 -0
- package/dist/types/lib/objects/empty.d.cts +4 -0
- package/dist/types/lib/objects/equal.d.cts +4 -0
- package/dist/types/lib/objects/extend.d.cts +6 -0
- package/dist/types/lib/objects/flatten.d.cts +6 -0
- package/dist/types/lib/objects/index.d.cts +13 -0
- package/dist/types/lib/objects/json.d.cts +3 -0
- package/dist/types/lib/objects/loop.d.cts +4 -0
- package/dist/types/lib/objects/mix/mix.d.cts +44 -0
- package/{src/lib/objects/nested-property.js → dist/types/lib/objects/nested-property.d.cts} +4 -21
- package/dist/types/lib/objects/normalize-object.d.cts +3 -0
- package/dist/types/lib/objects/omit-empty.d.cts +3 -0
- package/dist/types/lib/objects/size.d.cts +3 -0
- package/dist/types/lib/objects/split.d.cts +14 -0
- package/dist/types/lib/promises/index.d.cts +1 -0
- package/dist/types/lib/promises/reject.d.cts +5 -0
- package/dist/types/lib/sse.d.cts +18 -0
- package/dist/types/lib/strings/convert-case/convert-case.d.cts +10 -0
- package/dist/types/lib/strings/index.d.cts +5 -0
- package/dist/types/lib/strings/markdown.d.cts +25 -0
- package/dist/types/lib/strings/name.d.cts +7 -0
- package/dist/types/lib/strings/pluralize.d.cts +3 -0
- package/dist/types/lib/strings/query-string.d.cts +10 -0
- package/dist/types/lib/style/index.d.cts +3 -0
- package/dist/types/lib/symbols/index.d.cts +1 -0
- package/dist/types/lib/symbols/symbols.d.cts +4 -0
- package/dist/types/node/context.d.cts +2 -0
- package/dist/types/node/dirname.d.cts +9 -0
- package/dist/types/node/file-cache.d.cts +56 -0
- package/dist/types/node/file.d.cts +4 -0
- package/dist/types/node/hash.d.cts +3 -0
- package/dist/types/node/index.d.cts +7 -0
- package/dist/types/node/pkce.d.cts +14 -0
- package/dist/types/node/random-string.d.cts +3 -0
- package/{src/node/sanitize.js → dist/types/node/sanitize.d.cts} +3 -6
- package/dist/types/node/uuid.d.cts +3 -0
- package/package.json +4 -1
- package/CHANGELOG.md +0 -237
- package/eslint.config.js +0 -2
- package/src/dom/accessibility.js +0 -58
- package/src/dom/actions/index.js +0 -3
- package/src/dom/actions/masonry.js +0 -43
- package/src/dom/actions/prefer-horizontal-scroll.js +0 -121
- package/src/dom/actions/sticky.js +0 -85
- package/src/dom/clipboard.js +0 -14
- package/src/dom/cookie.js +0 -32
- package/src/dom/css-vars.js +0 -19
- package/src/dom/font-size.js +0 -40
- package/src/dom/hash.js +0 -9
- package/src/dom/index.js +0 -23
- package/src/dom/media.js +0 -30
- package/src/dom/observers/index.js +0 -4
- package/src/dom/observers/intersection-observer.js +0 -43
- package/src/dom/observers/mutation-observer.js +0 -51
- package/src/dom/observers/observer.js +0 -18
- package/src/dom/observers/scroll-observer.js +0 -146
- package/src/dom/pkce.js +0 -34
- package/src/dom/query-params.js +0 -14
- package/src/dom/random-string.js +0 -18
- package/src/dom/random-string.test.js +0 -13
- package/src/dom/sanitize.js +0 -16
- package/src/dom/session-store.js +0 -29
- package/src/dom/spam-prevention.js +0 -40
- package/src/dom/trap-focus.js +0 -70
- package/src/dom/ui/aria-current.js +0 -20
- package/src/dom/ui/index.js +0 -4
- package/src/dom/ui/scroll-container.js +0 -25
- package/src/dom/ui/traverse-and-scramble.js +0 -61
- package/src/lib/arrays/index.js +0 -6
- package/src/lib/arrays/shuffle.js +0 -21
- package/src/lib/arrays/sort.js +0 -88
- package/src/lib/arrays/sort.spec.js +0 -123
- package/src/lib/arrays/split-array.js +0 -15
- package/src/lib/arrays/unique.js +0 -3
- package/src/lib/auth/index.js +0 -1
- package/src/lib/auth/route-manager.js +0 -45
- package/src/lib/checks.js +0 -57
- package/src/lib/date/days.js +0 -9
- package/src/lib/date/index.js +0 -3
- package/src/lib/date/months.js +0 -74
- package/src/lib/date/time.js +0 -83
- package/src/lib/form/form-data.js +0 -73
- package/src/lib/form/index.js +0 -2
- package/src/lib/form/sanitize.spec.js +0 -126
- package/src/lib/functions/debounce.js +0 -18
- package/src/lib/functions/env.js +0 -5
- package/src/lib/functions/functional.test.js +0 -196
- package/src/lib/functions/index.js +0 -5
- package/src/lib/functions/throttle.js +0 -11
- package/src/lib/functions/timeout.js +0 -15
- package/src/lib/hash.js +0 -18
- package/src/lib/hash.spec.js +0 -163
- package/src/lib/index.js +0 -14
- package/src/lib/numbers/index.js +0 -12
- package/src/lib/numbers/math.js +0 -9
- package/src/lib/numbers/split-unit.test.js +0 -45
- package/src/lib/objects/camelcase-keys.js +0 -17
- package/src/lib/objects/camelcase-keys.test.js +0 -72
- package/src/lib/objects/empty.js +0 -10
- package/src/lib/objects/equal.js +0 -9
- package/src/lib/objects/extend.js +0 -16
- package/src/lib/objects/extend.test.js +0 -35
- package/src/lib/objects/flatten.js +0 -19
- package/src/lib/objects/index.js +0 -13
- package/src/lib/objects/json.js +0 -7
- package/src/lib/objects/loop.js +0 -11
- package/src/lib/objects/loop.test.js +0 -31
- package/src/lib/objects/mix/mix.js +0 -191
- package/src/lib/objects/mix/mix.md +0 -78
- package/src/lib/objects/mix/mix.test.js +0 -445
- package/src/lib/objects/normalize-object.js +0 -10
- package/src/lib/objects/omit-empty.js +0 -23
- package/src/lib/objects/omit-empty.test.js +0 -85
- package/src/lib/objects/size.js +0 -41
- package/src/lib/objects/split.js +0 -19
- package/src/lib/promises/index.js +0 -1
- package/src/lib/promises/reject.js +0 -17
- package/src/lib/sse.js +0 -61
- package/src/lib/strings/convert-case/convert-case.js +0 -86
- package/src/lib/strings/convert-case/convert-case.md +0 -44
- package/src/lib/strings/convert-case/convert-case.test.js +0 -50
- package/src/lib/strings/index.js +0 -5
- package/src/lib/strings/markdown.js +0 -71
- package/src/lib/strings/markdown.spec.js +0 -73
- package/src/lib/strings/name.js +0 -24
- package/src/lib/strings/name.test.js +0 -67
- package/src/lib/strings/pluralize.js +0 -2
- package/src/lib/strings/query-string.js +0 -18
- package/src/lib/style/index.js +0 -13
- package/src/lib/symbols/index.js +0 -1
- package/src/lib/symbols/symbols.js +0 -9
- package/src/node/dirname.js +0 -17
- package/src/node/file-cache.js +0 -184
- package/src/node/file.js +0 -13
- package/src/node/hash.js +0 -5
- package/src/node/index.js +0 -7
- package/src/node/pkce.js +0 -33
- package/src/node/random-string.js +0 -10
- package/src/node/random-string.test.js +0 -15
- package/src/node/sanitize.spec.js +0 -142
- package/src/node/uuid.js +0 -5
- package/tsconfig.json +0 -23
- package/tsup.config.js +0 -38
- package/tsup.config.mjs +0 -63
- /package/{src/node/context.js → dist/cjs/node/context.cjs} +0 -0
|
@@ -1,45 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
12
18
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
* const modal = document.querySelector('.modal')
|
|
22
|
-
* const focusable = getFocusableElements(modal)
|
|
23
|
-
*
|
|
24
|
-
* // Get all focusable elements in document
|
|
25
|
-
* const allFocusable = getFocusableElements()
|
|
26
|
-
*
|
|
27
|
-
* // Focus the first element when modal opens
|
|
28
|
-
* focusable.first?.focus()
|
|
29
|
-
*
|
|
30
|
-
* // Handle tab key to trap focus
|
|
31
|
-
* modal.addEventListener('keydown', e => {
|
|
32
|
-
* if (e.key === 'Tab') {
|
|
33
|
-
* e.preventDefault()
|
|
34
|
-
* const currentIndex = focusable.keyboard.indexOf(document.activeElement)
|
|
35
|
-
* const nextElement = e.shiftKey
|
|
36
|
-
* ? focusable.prev(currentIndex)
|
|
37
|
-
* : focusable.next(currentIndex)
|
|
38
|
-
* nextElement?.focus()
|
|
39
|
-
* }
|
|
40
|
-
* })
|
|
41
|
-
*/
|
|
42
|
-
export function getFocusableElements(container = document.body) {
|
|
19
|
+
// src/dom/focusable.js
|
|
20
|
+
var focusable_exports = {};
|
|
21
|
+
__export(focusable_exports, {
|
|
22
|
+
Focusable: () => Focusable,
|
|
23
|
+
getFocusableElements: () => getFocusableElements
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(focusable_exports);
|
|
26
|
+
function getFocusableElements(container = document.body) {
|
|
43
27
|
return {
|
|
44
28
|
/**
|
|
45
29
|
* Gets the number of keyboard focusable elements.
|
|
@@ -49,9 +33,8 @@ export function getFocusableElements(container = document.body) {
|
|
|
49
33
|
* @returns {number} The number of keyboard focusable elements
|
|
50
34
|
*/
|
|
51
35
|
get length() {
|
|
52
|
-
return this.keyboard.length
|
|
36
|
+
return this.keyboard.length;
|
|
53
37
|
},
|
|
54
|
-
|
|
55
38
|
/**
|
|
56
39
|
* Gets all focusable elements within the container that are visible and enabled.
|
|
57
40
|
* This includes elements that can be focused via mouse or programmatically,
|
|
@@ -82,19 +65,16 @@ export function getFocusableElements(container = document.body) {
|
|
|
82
65
|
video[controls],
|
|
83
66
|
[contenteditable],
|
|
84
67
|
[tabindex]
|
|
85
|
-
|
|
86
|
-
)
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return true
|
|
95
|
-
})
|
|
68
|
+
`
|
|
69
|
+
)
|
|
70
|
+
);
|
|
71
|
+
return elements.filter((el) => {
|
|
72
|
+
if (el.hasAttribute("disabled")) return false;
|
|
73
|
+
if (el.hasAttribute("hidden")) return false;
|
|
74
|
+
if (window.getComputedStyle(el).display === "none") return false;
|
|
75
|
+
return true;
|
|
76
|
+
});
|
|
96
77
|
},
|
|
97
|
-
|
|
98
78
|
/**
|
|
99
79
|
* Gets elements that can be focused via keyboard (tabIndex > -1).
|
|
100
80
|
* These are the elements that will be focused when using the Tab key.
|
|
@@ -102,9 +82,8 @@ export function getFocusableElements(container = document.body) {
|
|
|
102
82
|
* @returns {HTMLElement[]} Array of keyboard focusable elements
|
|
103
83
|
*/
|
|
104
84
|
get keyboard() {
|
|
105
|
-
return this.all.filter(el => el instanceof HTMLElement && el.tabIndex > -1)
|
|
85
|
+
return this.all.filter((el) => el instanceof HTMLElement && el.tabIndex > -1);
|
|
106
86
|
},
|
|
107
|
-
|
|
108
87
|
/**
|
|
109
88
|
* Alias for keyboard focusable elements.
|
|
110
89
|
* This is provided for semantic clarity in certain contexts.
|
|
@@ -112,9 +91,8 @@ export function getFocusableElements(container = document.body) {
|
|
|
112
91
|
* @returns {HTMLElement[]} Array of keyboard focusable elements
|
|
113
92
|
*/
|
|
114
93
|
get keyboardOnly() {
|
|
115
|
-
return this.keyboard
|
|
94
|
+
return this.keyboard;
|
|
116
95
|
},
|
|
117
|
-
|
|
118
96
|
/**
|
|
119
97
|
* Gets the first keyboard focusable element.
|
|
120
98
|
* This is useful for setting initial focus when opening a modal or dialog.
|
|
@@ -122,9 +100,8 @@ export function getFocusableElements(container = document.body) {
|
|
|
122
100
|
* @returns {HTMLElement|null} The first focusable element or null if none exist
|
|
123
101
|
*/
|
|
124
102
|
get first() {
|
|
125
|
-
return this.keyboard[0] || null
|
|
103
|
+
return this.keyboard[0] || null;
|
|
126
104
|
},
|
|
127
|
-
|
|
128
105
|
/**
|
|
129
106
|
* Gets the last keyboard focusable element.
|
|
130
107
|
* This is useful for focus trapping when using Shift+Tab.
|
|
@@ -132,9 +109,8 @@ export function getFocusableElements(container = document.body) {
|
|
|
132
109
|
* @returns {HTMLElement|null} The last focusable element or null if none exist
|
|
133
110
|
*/
|
|
134
111
|
get last() {
|
|
135
|
-
return this.keyboard[this.length - 1] || null
|
|
112
|
+
return this.keyboard[this.length - 1] || null;
|
|
136
113
|
},
|
|
137
|
-
|
|
138
114
|
/**
|
|
139
115
|
* Gets the next focusable element after the given index.
|
|
140
116
|
* This is useful for implementing custom tab order or focus management.
|
|
@@ -143,9 +119,8 @@ export function getFocusableElements(container = document.body) {
|
|
|
143
119
|
* @returns {HTMLElement|null} The next focusable element or null if none exists
|
|
144
120
|
*/
|
|
145
121
|
next(index) {
|
|
146
|
-
return this.keyboard[index + 1] || null
|
|
122
|
+
return this.keyboard[index + 1] || null;
|
|
147
123
|
},
|
|
148
|
-
|
|
149
124
|
/**
|
|
150
125
|
* Gets the previous focusable element before the given index.
|
|
151
126
|
* This is useful for implementing custom tab order or focus management.
|
|
@@ -154,12 +129,15 @@ export function getFocusableElements(container = document.body) {
|
|
|
154
129
|
* @returns {HTMLElement|null} The previous focusable element or null if none exists
|
|
155
130
|
*/
|
|
156
131
|
prev(index) {
|
|
157
|
-
return this.keyboard[index - 1] || null
|
|
158
|
-
}
|
|
159
|
-
}
|
|
132
|
+
return this.keyboard[index - 1] || null;
|
|
133
|
+
}
|
|
134
|
+
};
|
|
160
135
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
136
|
+
function Focusable(container = document.body) {
|
|
137
|
+
return getFocusableElements(container);
|
|
138
|
+
}
|
|
139
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
140
|
+
0 && (module.exports = {
|
|
141
|
+
Focusable,
|
|
142
|
+
getFocusableElements
|
|
143
|
+
});
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/dom/font-size.js
|
|
20
|
+
var font_size_exports = {};
|
|
21
|
+
__export(font_size_exports, {
|
|
22
|
+
em: () => em,
|
|
23
|
+
getUnit: () => getUnit,
|
|
24
|
+
lh: () => lh,
|
|
25
|
+
rem: () => rem,
|
|
26
|
+
rlh: () => rlh,
|
|
27
|
+
toPx: () => toPx
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(font_size_exports);
|
|
30
|
+
|
|
31
|
+
// src/lib/numbers/index.js
|
|
32
|
+
function splitUnit(string) {
|
|
33
|
+
if (typeof string === "number") return [string, null];
|
|
34
|
+
const regex = /(-?\d*\.?\d+)\s*([a-z]+)/i;
|
|
35
|
+
const match = string.match(regex);
|
|
36
|
+
if (match) return [parseFloat(match[1]), match[2]];
|
|
37
|
+
return [parseFloat(string), null];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// src/dom/font-size.js
|
|
41
|
+
function getUnit(value) {
|
|
42
|
+
const [, unit] = splitUnit(value);
|
|
43
|
+
return unit;
|
|
44
|
+
}
|
|
45
|
+
function rem(multiple = 1) {
|
|
46
|
+
const value = parseFloat(getComputedStyle(document.body)["font-size"]);
|
|
47
|
+
return Math.round(value * multiple);
|
|
48
|
+
}
|
|
49
|
+
function em(element = document.body, multiple = 1) {
|
|
50
|
+
const value = parseFloat(getComputedStyle(element)["font-size"]);
|
|
51
|
+
return Math.round(value * multiple);
|
|
52
|
+
}
|
|
53
|
+
function rlh(multiple = 1) {
|
|
54
|
+
const lineHeight = parseFloat(getComputedStyle(document.body)["line-height"]);
|
|
55
|
+
return Math.round(lineHeight * multiple);
|
|
56
|
+
}
|
|
57
|
+
function lh(element = document.body, multiple = 1) {
|
|
58
|
+
const lineHeight = getComputedStyle(element)["line-height"];
|
|
59
|
+
const value = parseFloat(lineHeight);
|
|
60
|
+
return Math.round(value * multiple);
|
|
61
|
+
}
|
|
62
|
+
function toPx(value, element = null) {
|
|
63
|
+
const [numeric, unit] = splitUnit(value);
|
|
64
|
+
let finalValue = 0;
|
|
65
|
+
if (unit === "rem") finalValue = rem(numeric);
|
|
66
|
+
if (unit === "em") finalValue = em(element, numeric);
|
|
67
|
+
if (unit === "lh") finalValue = lh(element, numeric);
|
|
68
|
+
if (unit === "px") finalValue = numeric;
|
|
69
|
+
if (!unit) finalValue = numeric;
|
|
70
|
+
return finalValue;
|
|
71
|
+
}
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
em,
|
|
75
|
+
getUnit,
|
|
76
|
+
lh,
|
|
77
|
+
rem,
|
|
78
|
+
rlh,
|
|
79
|
+
toPx
|
|
80
|
+
});
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/dom/get-element.js
|
|
20
|
+
var get_element_exports = {};
|
|
21
|
+
__export(get_element_exports, {
|
|
22
|
+
getAncestorWithSiblings: () => getAncestorWithSiblings,
|
|
23
|
+
getChildrenElements: () => getChildrenElements,
|
|
24
|
+
getElement: () => getElement,
|
|
25
|
+
getNodeType: () => getNodeType,
|
|
26
|
+
getParentElement: () => getParentElement,
|
|
27
|
+
getSelfIndex: () => getSelfIndex,
|
|
28
|
+
getSiblingElements: () => getSiblingElements,
|
|
29
|
+
isAncestor: () => isAncestor
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(get_element_exports);
|
|
32
|
+
var astroNodes = ["ASTRO-SLOT", "ASTRO-ISLAND"];
|
|
33
|
+
function getNodeType(node) {
|
|
34
|
+
if (node instanceof Element) return "element";
|
|
35
|
+
if (node instanceof NodeList) return "nodelist";
|
|
36
|
+
if (Array.isArray(node)) return "array";
|
|
37
|
+
}
|
|
38
|
+
function getElement(selector) {
|
|
39
|
+
if (!selector) return;
|
|
40
|
+
if (selector instanceof Element) return selector;
|
|
41
|
+
return document.querySelector(selector);
|
|
42
|
+
}
|
|
43
|
+
function getChildrenElements(node) {
|
|
44
|
+
let children = node.children;
|
|
45
|
+
if (children[0]?.nodeName === "ASTRO-SLOT") children = children[0].children;
|
|
46
|
+
return Array.from(children);
|
|
47
|
+
}
|
|
48
|
+
function getParentElement(element) {
|
|
49
|
+
const parent = element.parentElement;
|
|
50
|
+
if (astroNodes.includes(parent.nodeName)) return getParentElement(parent);
|
|
51
|
+
return parent;
|
|
52
|
+
}
|
|
53
|
+
function getSiblingElements(element) {
|
|
54
|
+
return Array.from(element.parentElement.children).filter(
|
|
55
|
+
(child) => child !== element
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
function getSelfIndex(element) {
|
|
59
|
+
return Array.from(element.parentElement.children).indexOf(element);
|
|
60
|
+
}
|
|
61
|
+
function isAncestor(ancestor, element, { searchLevels = 0 } = {}) {
|
|
62
|
+
if (ancestor === element) return true;
|
|
63
|
+
let parent = element.parentElement;
|
|
64
|
+
if (searchLevels === 0) {
|
|
65
|
+
while (parent) {
|
|
66
|
+
if (ancestor === parent) return true;
|
|
67
|
+
parent = parent.parentElement;
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
for (let i = 0; i < searchLevels; i++) {
|
|
71
|
+
if (ancestor === parent) return true;
|
|
72
|
+
parent = parent.parentElement;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
function getAncestorWithSiblings(element, { limit = false } = {}) {
|
|
78
|
+
const ancestor = element.parentElement;
|
|
79
|
+
const siblings = getSiblingElements(ancestor);
|
|
80
|
+
if (siblings.length) return siblings;
|
|
81
|
+
if (!ancestor) return null;
|
|
82
|
+
if (limit === false) return getAncestorWithSiblings(ancestor);
|
|
83
|
+
if (typeof limit === "number" && limit > 0) {
|
|
84
|
+
return getAncestorWithSiblings(ancestor, { limit: limit - 1 });
|
|
85
|
+
}
|
|
86
|
+
if (limit === 0) return null;
|
|
87
|
+
}
|
|
88
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
89
|
+
0 && (module.exports = {
|
|
90
|
+
getAncestorWithSiblings,
|
|
91
|
+
getChildrenElements,
|
|
92
|
+
getElement,
|
|
93
|
+
getNodeType,
|
|
94
|
+
getParentElement,
|
|
95
|
+
getSelfIndex,
|
|
96
|
+
getSiblingElements,
|
|
97
|
+
isAncestor
|
|
98
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/dom/hash.js
|
|
20
|
+
var hash_exports = {};
|
|
21
|
+
__export(hash_exports, {
|
|
22
|
+
sha256Hash: () => sha256Hash
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(hash_exports);
|
|
25
|
+
async function sha256Hash(string) {
|
|
26
|
+
const utf8 = new TextEncoder().encode(string);
|
|
27
|
+
const hashBuffer = await crypto.subtle.digest("SHA-256", utf8);
|
|
28
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
29
|
+
const hashHex = hashArray.map((bytes) => bytes.toString(16).padStart(2, "0")).join("");
|
|
30
|
+
return hashHex;
|
|
31
|
+
}
|
|
32
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
33
|
+
0 && (module.exports = {
|
|
34
|
+
sha256Hash
|
|
35
|
+
});
|