From 4c2a301f6b951c773ccb1104f88a8a4705e25ed7 Mon Sep 17 00:00:00 2001 From: Gert van den Buijs Date: Sat, 29 Jun 2024 15:09:36 +0200 Subject: [PATCH] build --- build/index.cjs | 8 +++ build/index.d.cts | 19 +++++ build/index.d.ts | 19 +++++ build/index.js | 5 ++ src/accessibility/preferences.ts | 117 ++++++++++++++++--------------- src/index.ts | 8 ++- 6 files changed, 117 insertions(+), 59 deletions(-) create mode 100644 build/index.cjs create mode 100644 build/index.d.cts create mode 100644 build/index.d.ts create mode 100644 build/index.js diff --git a/build/index.cjs b/build/index.cjs new file mode 100644 index 0000000..294368b --- /dev/null +++ b/build/index.cjs @@ -0,0 +1,8 @@ +'use strict'; + +var e=class{constructor(r,s,o,t,c){this.prefersReducedMotion=r,this.prefersContrast=s,this.prefersReducedTransparency=o,this.prefersColorSchema=t,this.invertedColors=c;}prefersDarkMode(){return this.prefersColorSchema==="dark"}prefersHighContrast(){return this.prefersContrast==="more"}prefersLowContrast(){return this.prefersContrast==="less"}},a=()=>{let n=matchMedia("(prefers-reduced-motion: reduce)").matches?"reduce":"no-preference",r=matchMedia("(prefers-contrast: more)").matches?"more":matchMedia("(prefers-contrast: less)").matches?"less":matchMedia("(prefers-contrast: custom)").matches?"custom":"no-preference",s=matchMedia("(prefers-reduced-transparency: reduce)").matches?"reduce":"no-preference",o=matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",t=matchMedia("(inverted-colors: inverted)").matches?"inverted":"none";return new e(n,r,s,o,t)}; + +exports.BrowserAccessibilityPreferences = e; +exports.useBrowserAccessibilityPreferences = a; +//# sourceMappingURL=out.js.map +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hY2Nlc3NpYmlsaXR5L3ByZWZlcmVuY2VzLnRzIl0sIm5hbWVzIjpbIkJyb3dzZXJBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMiLCJwcmVmZXJzUmVkdWNlZE1vdGlvbiIsInByZWZlcnNDb250cmFzdCIsInByZWZlcnNSZWR1Y2VkVHJhbnNwYXJlbmN5IiwicHJlZmVyc0NvbG9yU2NoZW1hIiwiaW52ZXJ0ZWRDb2xvcnMiLCJ1c2VCcm93c2VyQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIiwicmVkdWNlZE1vdGlvbiJdLCJtYXBwaW5ncyI6IkFBTU8sSUFBTUEsRUFBTixLQUFzQyxDQU8zQyxZQUNFQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBLENBQ0EsS0FBSyxxQkFBdUJKLEVBQzVCLEtBQUssZ0JBQWtCQyxFQUN2QixLQUFLLDJCQUE2QkMsRUFDbEMsS0FBSyxtQkFBcUJDLEVBQzFCLEtBQUssZUFBaUJDLENBQ3hCLENBRUEsaUJBQTJCLENBQ3pCLE9BQU8sS0FBSyxxQkFBdUIsTUFDckMsQ0FFQSxxQkFBK0IsQ0FDN0IsT0FBTyxLQUFLLGtCQUFvQixNQUNsQyxDQUVBLG9CQUE4QixDQUM1QixPQUFPLEtBQUssa0JBQW9CLE1BQ2xDLENBQ0YsRUFFTUMsRUFDSixJQUF1QyxDQUNyQyxJQUFNQyxFQUFnQixXQUFXLGtDQUFrQyxFQUFFLFFBQ2pFLFNBQ0EsZ0JBRUVMLEVBQWtCLFdBQVcsMEJBQTBCLEVBQUUsUUFDM0QsT0FDQSxXQUFXLDBCQUEwQixFQUFFLFFBQ3JDLE9BQ0EsV0FBVyw0QkFBNEIsRUFBRSxRQUN2QyxTQUNBLGdCQUVGQyxFQUE2QixXQUNqQyx3Q0FDRixFQUFFLFFBQ0UsU0FDQSxnQkFFRUMsRUFBcUIsV0FBVyw4QkFBOEIsRUFDakUsUUFDQyxPQUNBLFFBRUVDLEVBQWlCLFdBQVcsNkJBQTZCLEVBQUUsUUFDN0QsV0FDQSxPQUVKLE9BQU8sSUFBSUwsRUFDVE8sRUFDQUwsRUFDQUMsRUFDQUMsRUFDQUMsQ0FDRixDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgcHJlZmVyc1JlZHVjZWRNb3Rpb24gPSBcIm5vLXByZWZlcmVuY2VcIiB8IFwicmVkdWNlXCI7XG5leHBvcnQgdHlwZSBwcmVmZXJzQ29udHJhc3QgPSBcIm5vLXByZWZlcmVuY2VcIiB8IFwibW9yZVwiIHwgXCJsZXNzXCIgfCBcImN1c3RvbVwiO1xuZXhwb3J0IHR5cGUgcHJlZmVyc1JlZHVjZWRUcmFuc3BhcmVuY3kgPSBcIm5vLXByZWZlcmVuY2VcIiB8IFwicmVkdWNlXCI7XG5leHBvcnQgdHlwZSBwcmVmZXJzQ29sb3JTY2hlbWEgPSBcImxpZ2h0XCIgfCBcImRhcmtcIjtcbmV4cG9ydCB0eXBlIGludmVydGVkQ29sb3JzID0gXCJub25lXCIgfCBcImludmVydGVkXCI7XG5cbmV4cG9ydCBjbGFzcyBCcm93c2VyQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIHtcbiAgcmVhZG9ubHkgcHJlZmVyc1JlZHVjZWRNb3Rpb246IHByZWZlcnNSZWR1Y2VkTW90aW9uO1xuICByZWFkb25seSBwcmVmZXJzQ29udHJhc3Q6IHByZWZlcnNDb250cmFzdDtcbiAgcmVhZG9ubHkgcHJlZmVyc1JlZHVjZWRUcmFuc3BhcmVuY3k6IHByZWZlcnNSZWR1Y2VkVHJhbnNwYXJlbmN5O1xuICByZWFkb25seSBwcmVmZXJzQ29sb3JTY2hlbWE6IHByZWZlcnNDb2xvclNjaGVtYTtcbiAgcmVhZG9ubHkgaW52ZXJ0ZWRDb2xvcnM6IGludmVydGVkQ29sb3JzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByZWZlcnNSZWR1Y2VkTW90aW9uOiBwcmVmZXJzUmVkdWNlZE1vdGlvbixcbiAgICBwcmVmZXJzQ29udHJhc3Q6IHByZWZlcnNDb250cmFzdCxcbiAgICBwcmVmZXJzUmVkdWNlZFRyYW5zcGFyZW5jeTogcHJlZmVyc1JlZHVjZWRUcmFuc3BhcmVuY3ksXG4gICAgcHJlZmVyc0NvbG9yU2NoZW1hOiBwcmVmZXJzQ29sb3JTY2hlbWEsXG4gICAgaW52ZXJ0ZWRDb2xvcnM6IGludmVydGVkQ29sb3JzLFxuICApIHtcbiAgICB0aGlzLnByZWZlcnNSZWR1Y2VkTW90aW9uID0gcHJlZmVyc1JlZHVjZWRNb3Rpb247XG4gICAgdGhpcy5wcmVmZXJzQ29udHJhc3QgPSBwcmVmZXJzQ29udHJhc3Q7XG4gICAgdGhpcy5wcmVmZXJzUmVkdWNlZFRyYW5zcGFyZW5jeSA9IHByZWZlcnNSZWR1Y2VkVHJhbnNwYXJlbmN5O1xuICAgIHRoaXMucHJlZmVyc0NvbG9yU2NoZW1hID0gcHJlZmVyc0NvbG9yU2NoZW1hO1xuICAgIHRoaXMuaW52ZXJ0ZWRDb2xvcnMgPSBpbnZlcnRlZENvbG9ycztcbiAgfVxuXG4gIHByZWZlcnNEYXJrTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmZXJzQ29sb3JTY2hlbWEgPT09IFwiZGFya1wiO1xuICB9XG5cbiAgcHJlZmVyc0hpZ2hDb250cmFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmZXJzQ29udHJhc3QgPT09IFwibW9yZVwiO1xuICB9XG5cbiAgcHJlZmVyc0xvd0NvbnRyYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByZWZlcnNDb250cmFzdCA9PT0gXCJsZXNzXCI7XG4gIH1cbn1cblxuY29uc3QgdXNlQnJvd3NlckFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyA9XG4gICgpOiBCcm93c2VyQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzID0+IHtcbiAgICBjb25zdCByZWR1Y2VkTW90aW9uID0gbWF0Y2hNZWRpYShcIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCIpLm1hdGNoZXNcbiAgICAgID8gXCJyZWR1Y2VcIlxuICAgICAgOiBcIm5vLXByZWZlcmVuY2VcIjtcblxuICAgIGNvbnN0IHByZWZlcnNDb250cmFzdCA9IG1hdGNoTWVkaWEoXCIocHJlZmVycy1jb250cmFzdDogbW9yZSlcIikubWF0Y2hlc1xuICAgICAgPyBcIm1vcmVcIlxuICAgICAgOiBtYXRjaE1lZGlhKFwiKHByZWZlcnMtY29udHJhc3Q6IGxlc3MpXCIpLm1hdGNoZXNcbiAgICAgICAgPyBcImxlc3NcIlxuICAgICAgICA6IG1hdGNoTWVkaWEoXCIocHJlZmVycy1jb250cmFzdDogY3VzdG9tKVwiKS5tYXRjaGVzXG4gICAgICAgICAgPyBcImN1c3RvbVwiXG4gICAgICAgICAgOiBcIm5vLXByZWZlcmVuY2VcIjtcblxuICAgIGNvbnN0IHByZWZlcnNSZWR1Y2VkVHJhbnNwYXJlbmN5ID0gbWF0Y2hNZWRpYShcbiAgICAgIFwiKHByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3k6IHJlZHVjZSlcIixcbiAgICApLm1hdGNoZXNcbiAgICAgID8gXCJyZWR1Y2VcIlxuICAgICAgOiBcIm5vLXByZWZlcmVuY2VcIjtcblxuICAgIGNvbnN0IHByZWZlcnNDb2xvclNjaGVtYSA9IG1hdGNoTWVkaWEoXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspXCIpXG4gICAgICAubWF0Y2hlc1xuICAgICAgPyBcImRhcmtcIlxuICAgICAgOiBcImxpZ2h0XCI7XG5cbiAgICBjb25zdCBpbnZlcnRlZENvbG9ycyA9IG1hdGNoTWVkaWEoXCIoaW52ZXJ0ZWQtY29sb3JzOiBpbnZlcnRlZClcIikubWF0Y2hlc1xuICAgICAgPyBcImludmVydGVkXCJcbiAgICAgIDogXCJub25lXCI7XG5cbiAgICByZXR1cm4gbmV3IEJyb3dzZXJBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoXG4gICAgICByZWR1Y2VkTW90aW9uLFxuICAgICAgcHJlZmVyc0NvbnRyYXN0LFxuICAgICAgcHJlZmVyc1JlZHVjZWRUcmFuc3BhcmVuY3ksXG4gICAgICBwcmVmZXJzQ29sb3JTY2hlbWEsXG4gICAgICBpbnZlcnRlZENvbG9ycyxcbiAgICApO1xuICB9O1xuXG5leHBvcnQgeyB1c2VCcm93c2VyQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIH07XG4iXX0= \ No newline at end of file diff --git a/build/index.d.cts b/build/index.d.cts new file mode 100644 index 0000000..dbea0a4 --- /dev/null +++ b/build/index.d.cts @@ -0,0 +1,19 @@ +type prefersReducedMotion = "no-preference" | "reduce"; +type prefersContrast = "no-preference" | "more" | "less" | "custom"; +type prefersReducedTransparency = "no-preference" | "reduce"; +type prefersColorSchema = "light" | "dark"; +type invertedColors = "none" | "inverted"; +declare class BrowserAccessibilityPreferences { + readonly prefersReducedMotion: prefersReducedMotion; + readonly prefersContrast: prefersContrast; + readonly prefersReducedTransparency: prefersReducedTransparency; + readonly prefersColorSchema: prefersColorSchema; + readonly invertedColors: invertedColors; + constructor(prefersReducedMotion: prefersReducedMotion, prefersContrast: prefersContrast, prefersReducedTransparency: prefersReducedTransparency, prefersColorSchema: prefersColorSchema, invertedColors: invertedColors); + prefersDarkMode(): boolean; + prefersHighContrast(): boolean; + prefersLowContrast(): boolean; +} +declare const useBrowserAccessibilityPreferences: () => BrowserAccessibilityPreferences; + +export { BrowserAccessibilityPreferences, type invertedColors, type prefersColorSchema, type prefersContrast, type prefersReducedMotion, type prefersReducedTransparency, useBrowserAccessibilityPreferences }; diff --git a/build/index.d.ts b/build/index.d.ts new file mode 100644 index 0000000..dbea0a4 --- /dev/null +++ b/build/index.d.ts @@ -0,0 +1,19 @@ +type prefersReducedMotion = "no-preference" | "reduce"; +type prefersContrast = "no-preference" | "more" | "less" | "custom"; +type prefersReducedTransparency = "no-preference" | "reduce"; +type prefersColorSchema = "light" | "dark"; +type invertedColors = "none" | "inverted"; +declare class BrowserAccessibilityPreferences { + readonly prefersReducedMotion: prefersReducedMotion; + readonly prefersContrast: prefersContrast; + readonly prefersReducedTransparency: prefersReducedTransparency; + readonly prefersColorSchema: prefersColorSchema; + readonly invertedColors: invertedColors; + constructor(prefersReducedMotion: prefersReducedMotion, prefersContrast: prefersContrast, prefersReducedTransparency: prefersReducedTransparency, prefersColorSchema: prefersColorSchema, invertedColors: invertedColors); + prefersDarkMode(): boolean; + prefersHighContrast(): boolean; + prefersLowContrast(): boolean; +} +declare const useBrowserAccessibilityPreferences: () => BrowserAccessibilityPreferences; + +export { BrowserAccessibilityPreferences, type invertedColors, type prefersColorSchema, type prefersContrast, type prefersReducedMotion, type prefersReducedTransparency, useBrowserAccessibilityPreferences }; diff --git a/build/index.js b/build/index.js new file mode 100644 index 0000000..e70422f --- /dev/null +++ b/build/index.js @@ -0,0 +1,5 @@ +var e=class{constructor(r,s,o,t,c){this.prefersReducedMotion=r,this.prefersContrast=s,this.prefersReducedTransparency=o,this.prefersColorSchema=t,this.invertedColors=c;}prefersDarkMode(){return this.prefersColorSchema==="dark"}prefersHighContrast(){return this.prefersContrast==="more"}prefersLowContrast(){return this.prefersContrast==="less"}},a=()=>{let n=matchMedia("(prefers-reduced-motion: reduce)").matches?"reduce":"no-preference",r=matchMedia("(prefers-contrast: more)").matches?"more":matchMedia("(prefers-contrast: less)").matches?"less":matchMedia("(prefers-contrast: custom)").matches?"custom":"no-preference",s=matchMedia("(prefers-reduced-transparency: reduce)").matches?"reduce":"no-preference",o=matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",t=matchMedia("(inverted-colors: inverted)").matches?"inverted":"none";return new e(n,r,s,o,t)}; + +export { e as BrowserAccessibilityPreferences, a as useBrowserAccessibilityPreferences }; +//# sourceMappingURL=out.js.map +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hY2Nlc3NpYmlsaXR5L3ByZWZlcmVuY2VzLnRzIl0sIm5hbWVzIjpbIkJyb3dzZXJBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMiLCJwcmVmZXJzUmVkdWNlZE1vdGlvbiIsInByZWZlcnNDb250cmFzdCIsInByZWZlcnNSZWR1Y2VkVHJhbnNwYXJlbmN5IiwicHJlZmVyc0NvbG9yU2NoZW1hIiwiaW52ZXJ0ZWRDb2xvcnMiLCJ1c2VCcm93c2VyQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIiwicmVkdWNlZE1vdGlvbiJdLCJtYXBwaW5ncyI6IkFBTU8sSUFBTUEsRUFBTixLQUFzQyxDQU8zQyxZQUNFQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBLENBQ0EsS0FBSyxxQkFBdUJKLEVBQzVCLEtBQUssZ0JBQWtCQyxFQUN2QixLQUFLLDJCQUE2QkMsRUFDbEMsS0FBSyxtQkFBcUJDLEVBQzFCLEtBQUssZUFBaUJDLENBQ3hCLENBRUEsaUJBQTJCLENBQ3pCLE9BQU8sS0FBSyxxQkFBdUIsTUFDckMsQ0FFQSxxQkFBK0IsQ0FDN0IsT0FBTyxLQUFLLGtCQUFvQixNQUNsQyxDQUVBLG9CQUE4QixDQUM1QixPQUFPLEtBQUssa0JBQW9CLE1BQ2xDLENBQ0YsRUFFTUMsRUFDSixJQUF1QyxDQUNyQyxJQUFNQyxFQUFnQixXQUFXLGtDQUFrQyxFQUFFLFFBQ2pFLFNBQ0EsZ0JBRUVMLEVBQWtCLFdBQVcsMEJBQTBCLEVBQUUsUUFDM0QsT0FDQSxXQUFXLDBCQUEwQixFQUFFLFFBQ3JDLE9BQ0EsV0FBVyw0QkFBNEIsRUFBRSxRQUN2QyxTQUNBLGdCQUVGQyxFQUE2QixXQUNqQyx3Q0FDRixFQUFFLFFBQ0UsU0FDQSxnQkFFRUMsRUFBcUIsV0FBVyw4QkFBOEIsRUFDakUsUUFDQyxPQUNBLFFBRUVDLEVBQWlCLFdBQVcsNkJBQTZCLEVBQUUsUUFDN0QsV0FDQSxPQUVKLE9BQU8sSUFBSUwsRUFDVE8sRUFDQUwsRUFDQUMsRUFDQUMsRUFDQUMsQ0FDRixDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgcHJlZmVyc1JlZHVjZWRNb3Rpb24gPSBcIm5vLXByZWZlcmVuY2VcIiB8IFwicmVkdWNlXCI7XG5leHBvcnQgdHlwZSBwcmVmZXJzQ29udHJhc3QgPSBcIm5vLXByZWZlcmVuY2VcIiB8IFwibW9yZVwiIHwgXCJsZXNzXCIgfCBcImN1c3RvbVwiO1xuZXhwb3J0IHR5cGUgcHJlZmVyc1JlZHVjZWRUcmFuc3BhcmVuY3kgPSBcIm5vLXByZWZlcmVuY2VcIiB8IFwicmVkdWNlXCI7XG5leHBvcnQgdHlwZSBwcmVmZXJzQ29sb3JTY2hlbWEgPSBcImxpZ2h0XCIgfCBcImRhcmtcIjtcbmV4cG9ydCB0eXBlIGludmVydGVkQ29sb3JzID0gXCJub25lXCIgfCBcImludmVydGVkXCI7XG5cbmV4cG9ydCBjbGFzcyBCcm93c2VyQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIHtcbiAgcmVhZG9ubHkgcHJlZmVyc1JlZHVjZWRNb3Rpb246IHByZWZlcnNSZWR1Y2VkTW90aW9uO1xuICByZWFkb25seSBwcmVmZXJzQ29udHJhc3Q6IHByZWZlcnNDb250cmFzdDtcbiAgcmVhZG9ubHkgcHJlZmVyc1JlZHVjZWRUcmFuc3BhcmVuY3k6IHByZWZlcnNSZWR1Y2VkVHJhbnNwYXJlbmN5O1xuICByZWFkb25seSBwcmVmZXJzQ29sb3JTY2hlbWE6IHByZWZlcnNDb2xvclNjaGVtYTtcbiAgcmVhZG9ubHkgaW52ZXJ0ZWRDb2xvcnM6IGludmVydGVkQ29sb3JzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByZWZlcnNSZWR1Y2VkTW90aW9uOiBwcmVmZXJzUmVkdWNlZE1vdGlvbixcbiAgICBwcmVmZXJzQ29udHJhc3Q6IHByZWZlcnNDb250cmFzdCxcbiAgICBwcmVmZXJzUmVkdWNlZFRyYW5zcGFyZW5jeTogcHJlZmVyc1JlZHVjZWRUcmFuc3BhcmVuY3ksXG4gICAgcHJlZmVyc0NvbG9yU2NoZW1hOiBwcmVmZXJzQ29sb3JTY2hlbWEsXG4gICAgaW52ZXJ0ZWRDb2xvcnM6IGludmVydGVkQ29sb3JzLFxuICApIHtcbiAgICB0aGlzLnByZWZlcnNSZWR1Y2VkTW90aW9uID0gcHJlZmVyc1JlZHVjZWRNb3Rpb247XG4gICAgdGhpcy5wcmVmZXJzQ29udHJhc3QgPSBwcmVmZXJzQ29udHJhc3Q7XG4gICAgdGhpcy5wcmVmZXJzUmVkdWNlZFRyYW5zcGFyZW5jeSA9IHByZWZlcnNSZWR1Y2VkVHJhbnNwYXJlbmN5O1xuICAgIHRoaXMucHJlZmVyc0NvbG9yU2NoZW1hID0gcHJlZmVyc0NvbG9yU2NoZW1hO1xuICAgIHRoaXMuaW52ZXJ0ZWRDb2xvcnMgPSBpbnZlcnRlZENvbG9ycztcbiAgfVxuXG4gIHByZWZlcnNEYXJrTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmZXJzQ29sb3JTY2hlbWEgPT09IFwiZGFya1wiO1xuICB9XG5cbiAgcHJlZmVyc0hpZ2hDb250cmFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmZXJzQ29udHJhc3QgPT09IFwibW9yZVwiO1xuICB9XG5cbiAgcHJlZmVyc0xvd0NvbnRyYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByZWZlcnNDb250cmFzdCA9PT0gXCJsZXNzXCI7XG4gIH1cbn1cblxuY29uc3QgdXNlQnJvd3NlckFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyA9XG4gICgpOiBCcm93c2VyQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzID0+IHtcbiAgICBjb25zdCByZWR1Y2VkTW90aW9uID0gbWF0Y2hNZWRpYShcIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpXCIpLm1hdGNoZXNcbiAgICAgID8gXCJyZWR1Y2VcIlxuICAgICAgOiBcIm5vLXByZWZlcmVuY2VcIjtcblxuICAgIGNvbnN0IHByZWZlcnNDb250cmFzdCA9IG1hdGNoTWVkaWEoXCIocHJlZmVycy1jb250cmFzdDogbW9yZSlcIikubWF0Y2hlc1xuICAgICAgPyBcIm1vcmVcIlxuICAgICAgOiBtYXRjaE1lZGlhKFwiKHByZWZlcnMtY29udHJhc3Q6IGxlc3MpXCIpLm1hdGNoZXNcbiAgICAgICAgPyBcImxlc3NcIlxuICAgICAgICA6IG1hdGNoTWVkaWEoXCIocHJlZmVycy1jb250cmFzdDogY3VzdG9tKVwiKS5tYXRjaGVzXG4gICAgICAgICAgPyBcImN1c3RvbVwiXG4gICAgICAgICAgOiBcIm5vLXByZWZlcmVuY2VcIjtcblxuICAgIGNvbnN0IHByZWZlcnNSZWR1Y2VkVHJhbnNwYXJlbmN5ID0gbWF0Y2hNZWRpYShcbiAgICAgIFwiKHByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3k6IHJlZHVjZSlcIixcbiAgICApLm1hdGNoZXNcbiAgICAgID8gXCJyZWR1Y2VcIlxuICAgICAgOiBcIm5vLXByZWZlcmVuY2VcIjtcblxuICAgIGNvbnN0IHByZWZlcnNDb2xvclNjaGVtYSA9IG1hdGNoTWVkaWEoXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspXCIpXG4gICAgICAubWF0Y2hlc1xuICAgICAgPyBcImRhcmtcIlxuICAgICAgOiBcImxpZ2h0XCI7XG5cbiAgICBjb25zdCBpbnZlcnRlZENvbG9ycyA9IG1hdGNoTWVkaWEoXCIoaW52ZXJ0ZWQtY29sb3JzOiBpbnZlcnRlZClcIikubWF0Y2hlc1xuICAgICAgPyBcImludmVydGVkXCJcbiAgICAgIDogXCJub25lXCI7XG5cbiAgICByZXR1cm4gbmV3IEJyb3dzZXJBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoXG4gICAgICByZWR1Y2VkTW90aW9uLFxuICAgICAgcHJlZmVyc0NvbnRyYXN0LFxuICAgICAgcHJlZmVyc1JlZHVjZWRUcmFuc3BhcmVuY3ksXG4gICAgICBwcmVmZXJzQ29sb3JTY2hlbWEsXG4gICAgICBpbnZlcnRlZENvbG9ycyxcbiAgICApO1xuICB9O1xuXG5leHBvcnQgeyB1c2VCcm93c2VyQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIH07XG4iXX0= \ No newline at end of file diff --git a/src/accessibility/preferences.ts b/src/accessibility/preferences.ts index 10c4f6d..57c9d2c 100644 --- a/src/accessibility/preferences.ts +++ b/src/accessibility/preferences.ts @@ -5,74 +5,75 @@ export type prefersColorSchema = "light" | "dark"; export type invertedColors = "none" | "inverted"; export class BrowserAccessibilityPreferences { - readonly prefersReducedMotion: prefersReducedMotion; - readonly prefersContrast: prefersContrast; - readonly prefersReducedTransparency: prefersReducedTransparency; - readonly prefersColorSchema: prefersColorSchema; - readonly invertedColors: invertedColors; + readonly prefersReducedMotion: prefersReducedMotion; + readonly prefersContrast: prefersContrast; + readonly prefersReducedTransparency: prefersReducedTransparency; + readonly prefersColorSchema: prefersColorSchema; + readonly invertedColors: invertedColors; - constructor( - prefersReducedMotion: prefersReducedMotion, - prefersContrast: prefersContrast, - prefersReducedTransparency: prefersReducedTransparency, - prefersColorSchema: prefersColorSchema, - invertedColors: invertedColors, - ) { - this.prefersReducedMotion = prefersReducedMotion; - this.prefersContrast = prefersContrast; - this.prefersReducedTransparency = prefersReducedTransparency; - this.prefersColorSchema = prefersColorSchema; - this.invertedColors = invertedColors; - } + constructor( + prefersReducedMotion: prefersReducedMotion, + prefersContrast: prefersContrast, + prefersReducedTransparency: prefersReducedTransparency, + prefersColorSchema: prefersColorSchema, + invertedColors: invertedColors, + ) { + this.prefersReducedMotion = prefersReducedMotion; + this.prefersContrast = prefersContrast; + this.prefersReducedTransparency = prefersReducedTransparency; + this.prefersColorSchema = prefersColorSchema; + this.invertedColors = invertedColors; + } - prefersDarkMode(): boolean { - return this.prefersColorSchema === "dark"; - } + prefersDarkMode(): boolean { + return this.prefersColorSchema === "dark"; + } - prefersHighContrast(): boolean { - return this.prefersContrast === "more"; - } + prefersHighContrast(): boolean { + return this.prefersContrast === "more"; + } - prefersLowContrast(): boolean { - return this.prefersContrast === "less"; - } + prefersLowContrast(): boolean { + return this.prefersContrast === "less"; + } } -const useBrowserAccessibilityPreferences = (): BrowserAccessibilityPreferences => { - const reducedMotion = matchMedia("(prefers-reduced-motion: reduce)").matches - ? "reduce" - : "no-preference"; +const useBrowserAccessibilityPreferences = + (): BrowserAccessibilityPreferences => { + const reducedMotion = matchMedia("(prefers-reduced-motion: reduce)").matches + ? "reduce" + : "no-preference"; - const prefersContrast = matchMedia("(prefers-contrast: more)").matches - ? "more" - : matchMedia("(prefers-contrast: less)").matches - ? "less" - : matchMedia("(prefers-contrast: custom)").matches - ? "custom" - : "no-preference"; + const prefersContrast = matchMedia("(prefers-contrast: more)").matches + ? "more" + : matchMedia("(prefers-contrast: less)").matches + ? "less" + : matchMedia("(prefers-contrast: custom)").matches + ? "custom" + : "no-preference"; - const prefersReducedTransparency = matchMedia( - "(prefers-reduced-transparency: reduce)", - ).matches - ? "reduce" - : "no-preference"; + const prefersReducedTransparency = matchMedia( + "(prefers-reduced-transparency: reduce)", + ).matches + ? "reduce" + : "no-preference"; - const prefersColorSchema = matchMedia("(prefers-color-scheme: dark)") - .matches - ? "dark" - : "light"; + const prefersColorSchema = matchMedia("(prefers-color-scheme: dark)") + .matches + ? "dark" + : "light"; - const invertedColors = matchMedia("(inverted-colors: inverted)").matches - ? "inverted" - : "none"; + const invertedColors = matchMedia("(inverted-colors: inverted)").matches + ? "inverted" + : "none"; - return new BrowserAccessibilityPreferences( - reducedMotion, - prefersContrast, - prefersReducedTransparency, - prefersColorSchema, - invertedColors, - ); - }; + return new BrowserAccessibilityPreferences( + reducedMotion, + prefersContrast, + prefersReducedTransparency, + prefersColorSchema, + invertedColors, + ); + }; export { useBrowserAccessibilityPreferences }; diff --git a/src/index.ts b/src/index.ts index 926dced..75bf4ae 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,9 @@ -export type { prefersReducedMotion, prefersContrast, prefersReducedTransparency, prefersColorSchema, invertedColors } from "@/accessibility/preferences"; +export type { + prefersReducedMotion, + prefersContrast, + prefersReducedTransparency, + prefersColorSchema, + invertedColors, +} from "@/accessibility/preferences"; export { BrowserAccessibilityPreferences } from "@/accessibility/preferences"; export { useBrowserAccessibilityPreferences } from "@/accessibility/preferences";