@zag-js/live-region 0.47.0 → 0.48.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.js CHANGED
@@ -23,7 +23,6 @@ __export(src_exports, {
23
23
  createLiveRegion: () => createLiveRegion
24
24
  });
25
25
  module.exports = __toCommonJS(src_exports);
26
- var import_visually_hidden = require("@zag-js/visually-hidden");
27
26
  var ID = "__live-region__";
28
27
  function createLiveRegion(opts = {}) {
29
28
  const { level = "polite", document: doc = document, root, delay: _delay = 0 } = opts;
@@ -39,7 +38,18 @@ function createLiveRegion(opts = {}) {
39
38
  const role = level !== "assertive" ? "status" : "alert";
40
39
  region.setAttribute("aria-live", level);
41
40
  region.setAttribute("role", role);
42
- (0, import_visually_hidden.setVisuallyHidden)(region);
41
+ Object.assign(region.style, {
42
+ border: "0",
43
+ clip: "rect(0 0 0 0)",
44
+ height: "1px",
45
+ margin: "-1px",
46
+ overflow: "hidden",
47
+ padding: "0",
48
+ position: "absolute",
49
+ width: "1px",
50
+ whiteSpace: "nowrap",
51
+ wordWrap: "normal"
52
+ });
43
53
  parent.appendChild(region);
44
54
  win.setTimeout(() => {
45
55
  region.textContent = message;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { setVisuallyHidden } from \"@zag-js/visually-hidden\"\n\nexport interface LiveRegionOptions {\n level: \"polite\" | \"assertive\"\n document?: Document\n root?: HTMLElement | null\n delay?: number\n}\n\nexport type LiveRegion = ReturnType<typeof createLiveRegion>\n\nconst ID = \"__live-region__\"\n\nexport function createLiveRegion(opts: Partial<LiveRegionOptions> = {}) {\n const { level = \"polite\", document: doc = document, root, delay: _delay = 0 } = opts\n\n const win = doc.defaultView ?? window\n const parent = root ?? doc.body\n\n function announce(message: string, delay?: number) {\n const oldRegion = doc.getElementById(ID)\n\n // remove old region\n oldRegion?.remove()\n\n // Did an override level get set?\n delay = delay ?? _delay\n\n // create fresh region\n const region = doc.createElement(\"span\")\n region.id = ID\n region.dataset.liveAnnouncer = \"true\"\n\n // Determine redundant role\n const role = level !== \"assertive\" ? \"status\" : \"alert\"\n\n // add role and attributes\n region.setAttribute(\"aria-live\", level)\n region.setAttribute(\"role\", role)\n\n // hide live region\n setVisuallyHidden(region)\n\n parent.appendChild(region)\n\n // populate region to trigger it\n win.setTimeout(() => {\n region.textContent = message\n }, delay)\n }\n\n function destroy() {\n const oldRegion = doc.getElementById(ID)\n oldRegion?.remove()\n }\n\n return {\n announce,\n destroy,\n toJSON() {\n return ID\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAkC;AAWlC,IAAM,KAAK;AAEJ,SAAS,iBAAiB,OAAmC,CAAC,GAAG;AACtE,QAAM,EAAE,QAAQ,UAAU,UAAU,MAAM,UAAU,MAAM,OAAO,SAAS,EAAE,IAAI;AAEhF,QAAM,MAAM,IAAI,eAAe;AAC/B,QAAM,SAAS,QAAQ,IAAI;AAE3B,WAAS,SAAS,SAAiB,OAAgB;AACjD,UAAM,YAAY,IAAI,eAAe,EAAE;AAGvC,eAAW,OAAO;AAGlB,YAAQ,SAAS;AAGjB,UAAM,SAAS,IAAI,cAAc,MAAM;AACvC,WAAO,KAAK;AACZ,WAAO,QAAQ,gBAAgB;AAG/B,UAAM,OAAO,UAAU,cAAc,WAAW;AAGhD,WAAO,aAAa,aAAa,KAAK;AACtC,WAAO,aAAa,QAAQ,IAAI;AAGhC,kDAAkB,MAAM;AAExB,WAAO,YAAY,MAAM;AAGzB,QAAI,WAAW,MAAM;AACnB,aAAO,cAAc;AAAA,IACvB,GAAG,KAAK;AAAA,EACV;AAEA,WAAS,UAAU;AACjB,UAAM,YAAY,IAAI,eAAe,EAAE;AACvC,eAAW,OAAO;AAAA,EACpB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export interface LiveRegionOptions {\n level: \"polite\" | \"assertive\"\n document?: Document\n root?: HTMLElement | null\n delay?: number\n}\n\nexport type LiveRegion = ReturnType<typeof createLiveRegion>\n\nconst ID = \"__live-region__\"\n\nexport function createLiveRegion(opts: Partial<LiveRegionOptions> = {}) {\n const { level = \"polite\", document: doc = document, root, delay: _delay = 0 } = opts\n\n const win = doc.defaultView ?? window\n const parent = root ?? doc.body\n\n function announce(message: string, delay?: number) {\n const oldRegion = doc.getElementById(ID)\n\n // remove old region\n oldRegion?.remove()\n\n // Did an override level get set?\n delay = delay ?? _delay\n\n // create fresh region\n const region = doc.createElement(\"span\")\n region.id = ID\n region.dataset.liveAnnouncer = \"true\"\n\n // Determine redundant role\n const role = level !== \"assertive\" ? \"status\" : \"alert\"\n\n // add role and attributes\n region.setAttribute(\"aria-live\", level)\n region.setAttribute(\"role\", role)\n\n // hide live region\n Object.assign(region.style, {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n })\n\n parent.appendChild(region)\n\n // populate region to trigger it\n win.setTimeout(() => {\n region.textContent = message\n }, delay)\n }\n\n function destroy() {\n const oldRegion = doc.getElementById(ID)\n oldRegion?.remove()\n }\n\n return {\n announce,\n destroy,\n toJSON() {\n return ID\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,IAAM,KAAK;AAEJ,SAAS,iBAAiB,OAAmC,CAAC,GAAG;AACtE,QAAM,EAAE,QAAQ,UAAU,UAAU,MAAM,UAAU,MAAM,OAAO,SAAS,EAAE,IAAI;AAEhF,QAAM,MAAM,IAAI,eAAe;AAC/B,QAAM,SAAS,QAAQ,IAAI;AAE3B,WAAS,SAAS,SAAiB,OAAgB;AACjD,UAAM,YAAY,IAAI,eAAe,EAAE;AAGvC,eAAW,OAAO;AAGlB,YAAQ,SAAS;AAGjB,UAAM,SAAS,IAAI,cAAc,MAAM;AACvC,WAAO,KAAK;AACZ,WAAO,QAAQ,gBAAgB;AAG/B,UAAM,OAAO,UAAU,cAAc,WAAW;AAGhD,WAAO,aAAa,aAAa,KAAK;AACtC,WAAO,aAAa,QAAQ,IAAI;AAGhC,WAAO,OAAO,OAAO,OAAO;AAAA,MAC1B,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,UAAU;AAAA,IACZ,CAAC;AAED,WAAO,YAAY,MAAM;AAGzB,QAAI,WAAW,MAAM;AACnB,aAAO,cAAc;AAAA,IACvB,GAAG,KAAK;AAAA,EACV;AAEA,WAAS,UAAU;AACjB,UAAM,YAAY,IAAI,eAAe,EAAE;AACvC,eAAW,OAAO;AAAA,EACpB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
package/dist/index.mjs CHANGED
@@ -1,5 +1,4 @@
1
1
  // src/index.ts
2
- import { setVisuallyHidden } from "@zag-js/visually-hidden";
3
2
  var ID = "__live-region__";
4
3
  function createLiveRegion(opts = {}) {
5
4
  const { level = "polite", document: doc = document, root, delay: _delay = 0 } = opts;
@@ -15,7 +14,18 @@ function createLiveRegion(opts = {}) {
15
14
  const role = level !== "assertive" ? "status" : "alert";
16
15
  region.setAttribute("aria-live", level);
17
16
  region.setAttribute("role", role);
18
- setVisuallyHidden(region);
17
+ Object.assign(region.style, {
18
+ border: "0",
19
+ clip: "rect(0 0 0 0)",
20
+ height: "1px",
21
+ margin: "-1px",
22
+ overflow: "hidden",
23
+ padding: "0",
24
+ position: "absolute",
25
+ width: "1px",
26
+ whiteSpace: "nowrap",
27
+ wordWrap: "normal"
28
+ });
19
29
  parent.appendChild(region);
20
30
  win.setTimeout(() => {
21
31
  region.textContent = message;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { setVisuallyHidden } from \"@zag-js/visually-hidden\"\n\nexport interface LiveRegionOptions {\n level: \"polite\" | \"assertive\"\n document?: Document\n root?: HTMLElement | null\n delay?: number\n}\n\nexport type LiveRegion = ReturnType<typeof createLiveRegion>\n\nconst ID = \"__live-region__\"\n\nexport function createLiveRegion(opts: Partial<LiveRegionOptions> = {}) {\n const { level = \"polite\", document: doc = document, root, delay: _delay = 0 } = opts\n\n const win = doc.defaultView ?? window\n const parent = root ?? doc.body\n\n function announce(message: string, delay?: number) {\n const oldRegion = doc.getElementById(ID)\n\n // remove old region\n oldRegion?.remove()\n\n // Did an override level get set?\n delay = delay ?? _delay\n\n // create fresh region\n const region = doc.createElement(\"span\")\n region.id = ID\n region.dataset.liveAnnouncer = \"true\"\n\n // Determine redundant role\n const role = level !== \"assertive\" ? \"status\" : \"alert\"\n\n // add role and attributes\n region.setAttribute(\"aria-live\", level)\n region.setAttribute(\"role\", role)\n\n // hide live region\n setVisuallyHidden(region)\n\n parent.appendChild(region)\n\n // populate region to trigger it\n win.setTimeout(() => {\n region.textContent = message\n }, delay)\n }\n\n function destroy() {\n const oldRegion = doc.getElementById(ID)\n oldRegion?.remove()\n }\n\n return {\n announce,\n destroy,\n toJSON() {\n return ID\n },\n }\n}\n"],"mappings":";AAAA,SAAS,yBAAyB;AAWlC,IAAM,KAAK;AAEJ,SAAS,iBAAiB,OAAmC,CAAC,GAAG;AACtE,QAAM,EAAE,QAAQ,UAAU,UAAU,MAAM,UAAU,MAAM,OAAO,SAAS,EAAE,IAAI;AAEhF,QAAM,MAAM,IAAI,eAAe;AAC/B,QAAM,SAAS,QAAQ,IAAI;AAE3B,WAAS,SAAS,SAAiB,OAAgB;AACjD,UAAM,YAAY,IAAI,eAAe,EAAE;AAGvC,eAAW,OAAO;AAGlB,YAAQ,SAAS;AAGjB,UAAM,SAAS,IAAI,cAAc,MAAM;AACvC,WAAO,KAAK;AACZ,WAAO,QAAQ,gBAAgB;AAG/B,UAAM,OAAO,UAAU,cAAc,WAAW;AAGhD,WAAO,aAAa,aAAa,KAAK;AACtC,WAAO,aAAa,QAAQ,IAAI;AAGhC,sBAAkB,MAAM;AAExB,WAAO,YAAY,MAAM;AAGzB,QAAI,WAAW,MAAM;AACnB,aAAO,cAAc;AAAA,IACvB,GAAG,KAAK;AAAA,EACV;AAEA,WAAS,UAAU;AACjB,UAAM,YAAY,IAAI,eAAe,EAAE;AACvC,eAAW,OAAO;AAAA,EACpB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export interface LiveRegionOptions {\n level: \"polite\" | \"assertive\"\n document?: Document\n root?: HTMLElement | null\n delay?: number\n}\n\nexport type LiveRegion = ReturnType<typeof createLiveRegion>\n\nconst ID = \"__live-region__\"\n\nexport function createLiveRegion(opts: Partial<LiveRegionOptions> = {}) {\n const { level = \"polite\", document: doc = document, root, delay: _delay = 0 } = opts\n\n const win = doc.defaultView ?? window\n const parent = root ?? doc.body\n\n function announce(message: string, delay?: number) {\n const oldRegion = doc.getElementById(ID)\n\n // remove old region\n oldRegion?.remove()\n\n // Did an override level get set?\n delay = delay ?? _delay\n\n // create fresh region\n const region = doc.createElement(\"span\")\n region.id = ID\n region.dataset.liveAnnouncer = \"true\"\n\n // Determine redundant role\n const role = level !== \"assertive\" ? \"status\" : \"alert\"\n\n // add role and attributes\n region.setAttribute(\"aria-live\", level)\n region.setAttribute(\"role\", role)\n\n // hide live region\n Object.assign(region.style, {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n })\n\n parent.appendChild(region)\n\n // populate region to trigger it\n win.setTimeout(() => {\n region.textContent = message\n }, delay)\n }\n\n function destroy() {\n const oldRegion = doc.getElementById(ID)\n oldRegion?.remove()\n }\n\n return {\n announce,\n destroy,\n toJSON() {\n return ID\n },\n }\n}\n"],"mappings":";AASA,IAAM,KAAK;AAEJ,SAAS,iBAAiB,OAAmC,CAAC,GAAG;AACtE,QAAM,EAAE,QAAQ,UAAU,UAAU,MAAM,UAAU,MAAM,OAAO,SAAS,EAAE,IAAI;AAEhF,QAAM,MAAM,IAAI,eAAe;AAC/B,QAAM,SAAS,QAAQ,IAAI;AAE3B,WAAS,SAAS,SAAiB,OAAgB;AACjD,UAAM,YAAY,IAAI,eAAe,EAAE;AAGvC,eAAW,OAAO;AAGlB,YAAQ,SAAS;AAGjB,UAAM,SAAS,IAAI,cAAc,MAAM;AACvC,WAAO,KAAK;AACZ,WAAO,QAAQ,gBAAgB;AAG/B,UAAM,OAAO,UAAU,cAAc,WAAW;AAGhD,WAAO,aAAa,aAAa,KAAK;AACtC,WAAO,aAAa,QAAQ,IAAI;AAGhC,WAAO,OAAO,OAAO,OAAO;AAAA,MAC1B,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,UAAU;AAAA,IACZ,CAAC;AAED,WAAO,YAAY,MAAM;AAGzB,QAAI,WAAW,MAAM;AACnB,aAAO,cAAc;AAAA,IACvB,GAAG,KAAK;AAAA,EACV;AAEA,WAAS,UAAU;AACjB,UAAM,YAAY,IAAI,eAAe,EAAE;AACvC,eAAW,OAAO;AAAA,EACpB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zag-js/live-region",
3
- "version": "0.47.0",
3
+ "version": "0.48.0",
4
4
  "description": "Implementing live region for screen readers",
5
5
  "keywords": [
6
6
  "js",
@@ -16,9 +16,6 @@
16
16
  "dist",
17
17
  "src"
18
18
  ],
19
- "dependencies": {
20
- "@zag-js/visually-hidden": "0.47.0"
21
- },
22
19
  "devDependencies": {
23
20
  "clean-package": "2.2.0"
24
21
  },
package/src/index.ts CHANGED
@@ -1,5 +1,3 @@
1
- import { setVisuallyHidden } from "@zag-js/visually-hidden"
2
-
3
1
  export interface LiveRegionOptions {
4
2
  level: "polite" | "assertive"
5
3
  document?: Document
@@ -39,7 +37,18 @@ export function createLiveRegion(opts: Partial<LiveRegionOptions> = {}) {
39
37
  region.setAttribute("role", role)
40
38
 
41
39
  // hide live region
42
- setVisuallyHidden(region)
40
+ Object.assign(region.style, {
41
+ border: "0",
42
+ clip: "rect(0 0 0 0)",
43
+ height: "1px",
44
+ margin: "-1px",
45
+ overflow: "hidden",
46
+ padding: "0",
47
+ position: "absolute",
48
+ width: "1px",
49
+ whiteSpace: "nowrap",
50
+ wordWrap: "normal",
51
+ })
43
52
 
44
53
  parent.appendChild(region)
45
54