@lucasols/dnd-kit-accessibility 0.1.1 → 0.2.0

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/index.d.ts CHANGED
@@ -1,2 +1,23 @@
1
- export { HiddenText, LiveRegion } from './components';
2
- export { useAnnouncement } from './hooks';
1
+ import React from "react";
2
+ //#region src/components/HiddenText/HiddenText.d.ts
3
+ interface Props$1 {
4
+ id: string;
5
+ value: string;
6
+ }
7
+ export declare function HiddenText({ id, value }: Props$1): React.JSX.Element;
8
+ //#endregion
9
+ //#region src/components/LiveRegion/LiveRegion.d.ts
10
+ interface Props {
11
+ id: string;
12
+ announcement: string;
13
+ }
14
+ export declare function LiveRegion({ id, announcement }: Props): React.JSX.Element;
15
+ //#endregion
16
+ //#region src/hooks/useAnnouncement.d.ts
17
+ export declare function useAnnouncement(): {
18
+ readonly announce: (value: string | undefined) => void;
19
+ readonly announcement: string;
20
+ };
21
+ //#endregion
22
+ export {};
23
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,8 +1,47 @@
1
-
2
- 'use strict'
3
-
4
- if (process.env.NODE_ENV === 'production') {
5
- module.exports = require('./dnd-kit-accessibility.cjs.production.min.js')
6
- } else {
7
- module.exports = require('./dnd-kit-accessibility.cjs.development.js')
1
+ import React, { useCallback, useState } from "react";
2
+ //#region src/components/HiddenText/HiddenText.tsx
3
+ const hiddenStyles = { display: "none" };
4
+ function HiddenText({ id, value }) {
5
+ return /* @__PURE__ */ React.createElement("div", {
6
+ id,
7
+ style: hiddenStyles
8
+ }, value);
9
+ }
10
+ //#endregion
11
+ //#region src/components/LiveRegion/LiveRegion.tsx
12
+ const visuallyHidden = {
13
+ position: "fixed",
14
+ width: 1,
15
+ height: 1,
16
+ margin: -1,
17
+ border: 0,
18
+ padding: 0,
19
+ overflow: "hidden",
20
+ clip: "rect(0 0 0 0)",
21
+ clipPath: "inset(100%)",
22
+ whiteSpace: "nowrap"
23
+ };
24
+ function LiveRegion({ id, announcement }) {
25
+ return /* @__PURE__ */ React.createElement("div", {
26
+ id,
27
+ style: visuallyHidden,
28
+ role: "status",
29
+ "aria-live": "assertive",
30
+ "aria-atomic": true
31
+ }, announcement);
8
32
  }
33
+ //#endregion
34
+ //#region src/hooks/useAnnouncement.ts
35
+ function useAnnouncement() {
36
+ const [announcement, setAnnouncement] = useState("");
37
+ return {
38
+ announce: useCallback((value) => {
39
+ if (value != null) setAnnouncement(value);
40
+ }, []),
41
+ announcement
42
+ };
43
+ }
44
+ //#endregion
45
+ export { HiddenText, LiveRegion, useAnnouncement };
46
+
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/components/HiddenText/HiddenText.tsx","../src/components/LiveRegion/LiveRegion.tsx","../src/hooks/useAnnouncement.ts"],"sourcesContent":["import React from 'react';\n\ninterface Props {\n id: string;\n value: string;\n}\n\nconst hiddenStyles: React.CSSProperties = {\n display: 'none',\n};\n\nexport function HiddenText({id, value}: Props): React.JSX.Element {\n return (\n <div id={id} style={hiddenStyles}>\n {value}\n </div>\n );\n}\n","import React from 'react';\n\nexport interface Props {\n id: string;\n announcement: string;\n}\n\n// Hide element visually but keep it readable by screen readers\nconst visuallyHidden: React.CSSProperties = {\n position: 'fixed',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap',\n};\n\nexport function LiveRegion({id, announcement}: Props): React.JSX.Element {\n return (\n <div\n id={id}\n style={visuallyHidden}\n role=\"status\"\n aria-live=\"assertive\"\n aria-atomic\n >\n {announcement}\n </div>\n );\n}\n","import {useCallback, useState} from 'react';\n\nexport function useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback((value: string | undefined) => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n\n return {announce, announcement} as const;\n}\n"],"mappings":";;AAOA,MAAM,eAAoC,EACxC,SAAS,OACX;AAEA,SAAgB,WAAW,EAAC,IAAI,SAAkC;CAChE,OACE,sBAAA,cAAC,OAAD;EAAS;EAAI,OAAO;CAEf,GADF,KACE;AAET;;;ACTA,MAAM,iBAAsC;CAC1C,UAAU;CACV,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,UAAU;CACV,MAAM;CACN,UAAU;CACV,YAAY;AACd;AAEA,SAAgB,WAAW,EAAC,IAAI,gBAAyC;CACvE,OACE,sBAAA,cAAC,OAAD;EACM;EACJ,OAAO;EACP,MAAK;EACL,aAAU;EACV,eAAA;CAGG,GADF,YACE;AAET;;;AC/BA,SAAgB,kBAAkB;CAChC,MAAM,CAAC,cAAc,mBAAmB,SAAS,EAAE;CAOnD,OAAO;EAAC,UANS,aAAa,UAA8B;GAC1D,IAAI,SAAS,MACX,gBAAgB,KAAK;EAEzB,GAAG,CAAC,CAEW;EAAG;CAAY;AAChC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucasols/dnd-kit-accessibility",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "A generic toolkit to help with accessibility",
5
5
  "author": "Claudéric Demers",
6
6
  "license": "MIT",
@@ -9,29 +9,31 @@
9
9
  "url": "git+https://github.com/clauderic/dnd-kit.git",
10
10
  "directory": "packages/accessibility"
11
11
  },
12
- "scripts": {
13
- "start": "tsdx watch --tsconfig tsconfig.build.json --verbose --noClean",
14
- "build": "tsdx build --tsconfig tsconfig.build.json",
15
- "test": "tsdx test",
16
- "lint": "tsdx lint",
17
- "prepublish": "npm run build"
12
+ "type": "module",
13
+ "main": "./dist/index.js",
14
+ "module": "./dist/index.js",
15
+ "typings": "./dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js"
20
+ },
21
+ "./package.json": "./package.json"
18
22
  },
19
- "main": "dist/index.js",
20
- "module": "dist/accessibility.esm.js",
21
- "typings": "dist/index.d.ts",
22
23
  "files": [
23
24
  "README.md",
24
25
  "CHANGELOG.md",
25
26
  "dist"
26
27
  ],
27
28
  "peerDependencies": {
28
- "react": ">=16.8.0"
29
- },
30
- "dependencies": {
31
- "tslib": "^2.0.0"
29
+ "react": "^19.0.0"
32
30
  },
33
31
  "publishConfig": {
34
32
  "access": "public"
35
33
  },
36
- "gitHead": "d4c160d488c7d4e49dba5aee2bbb3ac7a8acc71b"
37
- }
34
+ "scripts": {
35
+ "start": "tsdown --config ../../tsdown.config.mts --watch",
36
+ "build": "tsdown --config ../../tsdown.config.mts",
37
+ "test": "vitest run --config ../../vitest.config.mts"
38
+ }
39
+ }
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- interface Props {
3
- id: string;
4
- value: string;
5
- }
6
- export declare function HiddenText({ id, value }: Props): JSX.Element;
7
- export {};
@@ -1 +0,0 @@
1
- export { HiddenText } from './HiddenText';
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- export interface Props {
3
- id: string;
4
- announcement: string;
5
- }
6
- export declare function LiveRegion({ id, announcement }: Props): JSX.Element;
@@ -1 +0,0 @@
1
- export { LiveRegion } from './LiveRegion';
@@ -1,2 +0,0 @@
1
- export { HiddenText } from './HiddenText';
2
- export { LiveRegion } from './LiveRegion';
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
-
7
- var React = require('react');
8
- var React__default = _interopDefault(React);
9
-
10
- const hiddenStyles = {
11
- display: 'none'
12
- };
13
- function HiddenText(_ref) {
14
- let {
15
- id,
16
- value
17
- } = _ref;
18
- return React__default.createElement("div", {
19
- id: id,
20
- style: hiddenStyles
21
- }, value);
22
- }
23
-
24
- const visuallyHidden = {
25
- position: 'fixed',
26
- width: 1,
27
- height: 1,
28
- margin: -1,
29
- border: 0,
30
- padding: 0,
31
- overflow: 'hidden',
32
- clip: 'rect(0 0 0 0)',
33
- clipPath: 'inset(100%)',
34
- whiteSpace: 'nowrap'
35
- };
36
- function LiveRegion(_ref) {
37
- let {
38
- id,
39
- announcement
40
- } = _ref;
41
- return React__default.createElement("div", {
42
- id: id,
43
- style: visuallyHidden,
44
- role: "status",
45
- "aria-live": "assertive",
46
- "aria-atomic": true
47
- }, announcement);
48
- }
49
-
50
- function useAnnouncement() {
51
- const [announcement, setAnnouncement] = React.useState('');
52
- const announce = React.useCallback(value => {
53
- if (value != null) {
54
- setAnnouncement(value);
55
- }
56
- }, []);
57
- return {
58
- announce,
59
- announcement
60
- };
61
- }
62
-
63
- exports.HiddenText = HiddenText;
64
- exports.LiveRegion = LiveRegion;
65
- exports.useAnnouncement = useAnnouncement;
66
- //# sourceMappingURL=dnd-kit-accessibility.cjs.development.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dnd-kit-accessibility.cjs.development.js","sources":["../src/components/HiddenText/HiddenText.tsx","../src/components/LiveRegion/LiveRegion.tsx","../src/hooks/useAnnouncement.ts"],"sourcesContent":["import React from 'react';\n\ninterface Props {\n id: string;\n value: string;\n}\n\nconst hiddenStyles: React.CSSProperties = {\n display: 'none',\n};\n\nexport function HiddenText({id, value}: Props) {\n return (\n <div id={id} style={hiddenStyles}>\n {value}\n </div>\n );\n}\n","import React from 'react';\n\nexport interface Props {\n id: string;\n announcement: string;\n}\n\n// Hide element visually but keep it readable by screen readers\nconst visuallyHidden: React.CSSProperties = {\n position: 'fixed',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap',\n};\n\nexport function LiveRegion({id, announcement}: Props) {\n return (\n <div\n id={id}\n style={visuallyHidden}\n role=\"status\"\n aria-live=\"assertive\"\n aria-atomic\n >\n {announcement}\n </div>\n );\n}\n","import {useCallback, useState} from 'react';\n\nexport function useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback((value: string | undefined) => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n\n return {announce, announcement} as const;\n}\n"],"names":["hiddenStyles","display","HiddenText","id","value","React","style","visuallyHidden","position","width","height","margin","border","padding","overflow","clip","clipPath","whiteSpace","LiveRegion","announcement","role","useAnnouncement","setAnnouncement","useState","announce","useCallback"],"mappings":";;;;;;;;;AAOA,MAAMA,YAAY,GAAwB;EACxCC,OAAO,EAAE;AAD+B,CAA1C;SAIgBC;MAAW;IAACC,EAAD;IAAKC;;EAC9B,OACEC,4BAAA,MAAA;IAAKF,EAAE,EAAEA;IAAIG,KAAK,EAAEN;GAApB,EACGI,KADH,CADF;AAKD;;ACTD,MAAMG,cAAc,GAAwB;EAC1CC,QAAQ,EAAE,OADgC;EAE1CC,KAAK,EAAE,CAFmC;EAG1CC,MAAM,EAAE,CAHkC;EAI1CC,MAAM,EAAE,CAAC,CAJiC;EAK1CC,MAAM,EAAE,CALkC;EAM1CC,OAAO,EAAE,CANiC;EAO1CC,QAAQ,EAAE,QAPgC;EAQ1CC,IAAI,EAAE,eARoC;EAS1CC,QAAQ,EAAE,aATgC;EAU1CC,UAAU,EAAE;AAV8B,CAA5C;AAaA,SAAgBC;MAAW;IAACf,EAAD;IAAKgB;;EAC9B,OACEd,4BAAA,MAAA;IACEF,EAAE,EAAEA;IACJG,KAAK,EAAEC;IACPa,IAAI,EAAC;iBACK;;GAJZ,EAOGD,YAPH,CADF;AAWD;;SC/BeE;EACd,MAAM,CAACF,YAAD,EAAeG,eAAf,IAAkCC,cAAQ,CAAC,EAAD,CAAhD;EACA,MAAMC,QAAQ,GAAGC,iBAAW,CAAErB,KAAD;IAC3B,IAAIA,KAAK,IAAI,IAAb,EAAmB;MACjBkB,eAAe,CAAClB,KAAD,CAAf;;GAFwB,EAIzB,EAJyB,CAA5B;EAMA,OAAO;IAACoB,QAAD;IAAWL;GAAlB;AACD;;;;;;"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e;const i={display:"none"},r={position:"fixed",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};exports.HiddenText=function(e){let{id:t,value:r}=e;return n.createElement("div",{id:t,style:i},r)},exports.LiveRegion=function(e){let{id:t,announcement:i}=e;return n.createElement("div",{id:t,style:r,role:"status","aria-live":"assertive","aria-atomic":!0},i)},exports.useAnnouncement=function(){const[e,n]=t.useState("");return{announce:t.useCallback(e=>{null!=e&&n(e)},[]),announcement:e}};
2
- //# sourceMappingURL=dnd-kit-accessibility.cjs.production.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dnd-kit-accessibility.cjs.production.min.js","sources":["../src/components/HiddenText/HiddenText.tsx","../src/components/LiveRegion/LiveRegion.tsx","../src/hooks/useAnnouncement.ts"],"sourcesContent":["import React from 'react';\n\ninterface Props {\n id: string;\n value: string;\n}\n\nconst hiddenStyles: React.CSSProperties = {\n display: 'none',\n};\n\nexport function HiddenText({id, value}: Props) {\n return (\n <div id={id} style={hiddenStyles}>\n {value}\n </div>\n );\n}\n","import React from 'react';\n\nexport interface Props {\n id: string;\n announcement: string;\n}\n\n// Hide element visually but keep it readable by screen readers\nconst visuallyHidden: React.CSSProperties = {\n position: 'fixed',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap',\n};\n\nexport function LiveRegion({id, announcement}: Props) {\n return (\n <div\n id={id}\n style={visuallyHidden}\n role=\"status\"\n aria-live=\"assertive\"\n aria-atomic\n >\n {announcement}\n </div>\n );\n}\n","import {useCallback, useState} from 'react';\n\nexport function useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback((value: string | undefined) => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n\n return {announce, announcement} as const;\n}\n"],"names":["hiddenStyles","display","visuallyHidden","position","width","height","margin","border","padding","overflow","clip","clipPath","whiteSpace","id","value","React","style","announcement","role","setAnnouncement","useState","announce","useCallback"],"mappings":"oJAOA,MAAMA,EAAoC,CACxCC,QAAS,QCALC,EAAsC,CAC1CC,SAAU,QACVC,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,OAAQ,EACRC,QAAS,EACTC,SAAU,SACVC,KAAM,gBACNC,SAAU,cACVC,WAAY,6CDPaC,GAACA,EAADC,MAAKA,KAC9B,OACEC,uBAAKF,GAAIA,EAAIG,MAAOhB,GACjBc,uCCOoBD,GAACA,EAADI,aAAKA,KAC9B,OACEF,uBACEF,GAAIA,EACJG,MAAOd,EACPgB,KAAK,qBACK,8BAGTD,uCC3BL,MAAOA,EAAcE,GAAmBC,WAAS,IAOjD,MAAO,CAACC,SANSC,cAAaR,IACf,MAATA,GACFK,EAAgBL,IAEjB,IAEeG,aAAAA"}
@@ -1,57 +0,0 @@
1
- import React, { useState, useCallback } from 'react';
2
-
3
- const hiddenStyles = {
4
- display: 'none'
5
- };
6
- function HiddenText(_ref) {
7
- let {
8
- id,
9
- value
10
- } = _ref;
11
- return React.createElement("div", {
12
- id: id,
13
- style: hiddenStyles
14
- }, value);
15
- }
16
-
17
- const visuallyHidden = {
18
- position: 'fixed',
19
- width: 1,
20
- height: 1,
21
- margin: -1,
22
- border: 0,
23
- padding: 0,
24
- overflow: 'hidden',
25
- clip: 'rect(0 0 0 0)',
26
- clipPath: 'inset(100%)',
27
- whiteSpace: 'nowrap'
28
- };
29
- function LiveRegion(_ref) {
30
- let {
31
- id,
32
- announcement
33
- } = _ref;
34
- return React.createElement("div", {
35
- id: id,
36
- style: visuallyHidden,
37
- role: "status",
38
- "aria-live": "assertive",
39
- "aria-atomic": true
40
- }, announcement);
41
- }
42
-
43
- function useAnnouncement() {
44
- const [announcement, setAnnouncement] = useState('');
45
- const announce = useCallback(value => {
46
- if (value != null) {
47
- setAnnouncement(value);
48
- }
49
- }, []);
50
- return {
51
- announce,
52
- announcement
53
- };
54
- }
55
-
56
- export { HiddenText, LiveRegion, useAnnouncement };
57
- //# sourceMappingURL=dnd-kit-accessibility.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dnd-kit-accessibility.esm.js","sources":["../src/components/HiddenText/HiddenText.tsx","../src/components/LiveRegion/LiveRegion.tsx","../src/hooks/useAnnouncement.ts"],"sourcesContent":["import React from 'react';\n\ninterface Props {\n id: string;\n value: string;\n}\n\nconst hiddenStyles: React.CSSProperties = {\n display: 'none',\n};\n\nexport function HiddenText({id, value}: Props) {\n return (\n <div id={id} style={hiddenStyles}>\n {value}\n </div>\n );\n}\n","import React from 'react';\n\nexport interface Props {\n id: string;\n announcement: string;\n}\n\n// Hide element visually but keep it readable by screen readers\nconst visuallyHidden: React.CSSProperties = {\n position: 'fixed',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap',\n};\n\nexport function LiveRegion({id, announcement}: Props) {\n return (\n <div\n id={id}\n style={visuallyHidden}\n role=\"status\"\n aria-live=\"assertive\"\n aria-atomic\n >\n {announcement}\n </div>\n );\n}\n","import {useCallback, useState} from 'react';\n\nexport function useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback((value: string | undefined) => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n\n return {announce, announcement} as const;\n}\n"],"names":["hiddenStyles","display","HiddenText","id","value","React","style","visuallyHidden","position","width","height","margin","border","padding","overflow","clip","clipPath","whiteSpace","LiveRegion","announcement","role","useAnnouncement","setAnnouncement","useState","announce","useCallback"],"mappings":";;AAOA,MAAMA,YAAY,GAAwB;EACxCC,OAAO,EAAE;AAD+B,CAA1C;SAIgBC;MAAW;IAACC,EAAD;IAAKC;;EAC9B,OACEC,mBAAA,MAAA;IAAKF,EAAE,EAAEA;IAAIG,KAAK,EAAEN;GAApB,EACGI,KADH,CADF;AAKD;;ACTD,MAAMG,cAAc,GAAwB;EAC1CC,QAAQ,EAAE,OADgC;EAE1CC,KAAK,EAAE,CAFmC;EAG1CC,MAAM,EAAE,CAHkC;EAI1CC,MAAM,EAAE,CAAC,CAJiC;EAK1CC,MAAM,EAAE,CALkC;EAM1CC,OAAO,EAAE,CANiC;EAO1CC,QAAQ,EAAE,QAPgC;EAQ1CC,IAAI,EAAE,eARoC;EAS1CC,QAAQ,EAAE,aATgC;EAU1CC,UAAU,EAAE;AAV8B,CAA5C;AAaA,SAAgBC;MAAW;IAACf,EAAD;IAAKgB;;EAC9B,OACEd,mBAAA,MAAA;IACEF,EAAE,EAAEA;IACJG,KAAK,EAAEC;IACPa,IAAI,EAAC;iBACK;;GAJZ,EAOGD,YAPH,CADF;AAWD;;SC/BeE;EACd,MAAM,CAACF,YAAD,EAAeG,eAAf,IAAkCC,QAAQ,CAAC,EAAD,CAAhD;EACA,MAAMC,QAAQ,GAAGC,WAAW,CAAErB,KAAD;IAC3B,IAAIA,KAAK,IAAI,IAAb,EAAmB;MACjBkB,eAAe,CAAClB,KAAD,CAAf;;GAFwB,EAIzB,EAJyB,CAA5B;EAMA,OAAO;IAACoB,QAAD;IAAWL;GAAlB;AACD;;;;"}
@@ -1 +0,0 @@
1
- export { useAnnouncement } from './useAnnouncement';
@@ -1,4 +0,0 @@
1
- export declare function useAnnouncement(): {
2
- readonly announce: (value: string | undefined) => void;
3
- readonly announcement: string;
4
- };