@atelier-ui/vue 0.2.2 → 0.2.3

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/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.2.3 (2026-07-22)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **a11y:** extend cross-framework a11y-parity gate to Dialog, Menu, Tabs, Alert ([4e6c297](https://github.com/DominikPieper/atelier-ui/commit/4e6c297))
6
+
7
+ ### ❤️ Thank You
8
+
9
+ - Dominik Pieper @DominikPieper
10
+
1
11
  ## 0.2.2 (2026-07-22)
2
12
 
3
13
  This was a version bump only for vue to align it with other projects, there were no code changes.
package/index.mjs CHANGED
@@ -790,6 +790,13 @@ var j = Symbol("AtlAccordionGroup"), M = /* @__PURE__ */ c({
790
790
  __name: "atl-menu-trigger",
791
791
  setup(e) {
792
792
  let t = v(!1), n = v(null), o = v(null);
793
+ O([t, n], () => {
794
+ let e = n.value?.firstElementChild;
795
+ e && (e.setAttribute("aria-haspopup", "menu"), e.setAttribute("aria-expanded", String(t.value)));
796
+ }, {
797
+ immediate: !0,
798
+ flush: "post"
799
+ });
793
800
  function s() {
794
801
  t.value = !t.value;
795
802
  }
@@ -1816,14 +1823,16 @@ var j = Symbol("AtlAccordionGroup"), M = /* @__PURE__ */ c({
1816
1823
  function p(e) {
1817
1824
  c.value = e, s("update:selectedIndex", e);
1818
1825
  }
1826
+ let m = `atl-tab-group-${Math.random().toString(36).slice(2, 9)}`;
1819
1827
  _(Y, {
1820
1828
  selectedIndex: c,
1821
1829
  tabs: l,
1822
1830
  registerTab: u,
1823
1831
  unregisterTab: f,
1824
- selectTab: p
1832
+ selectTab: p,
1833
+ groupId: m
1825
1834
  });
1826
- function m(e) {
1835
+ function h(e) {
1827
1836
  let t = l.value.map((e, t) => ({
1828
1837
  i: t,
1829
1838
  disabled: e.disabled
@@ -1843,17 +1852,17 @@ var j = Symbol("AtlAccordionGroup"), M = /* @__PURE__ */ c({
1843
1852
  n !== void 0 && p(n);
1844
1853
  }
1845
1854
  }
1846
- let h = `atl-tab-group-${Math.random().toString(36).slice(2, 9)}`, x = t(() => ["atl-tab-group", `variant-${o.variant}`]);
1855
+ let x = t(() => ["atl-tab-group", `variant-${o.variant}`]);
1847
1856
  return (t, n) => (g(), i("div", { class: d(x.value) }, [a("div", {
1848
1857
  class: "tablist",
1849
1858
  role: "tablist",
1850
- onKeydown: m
1859
+ onKeydown: h
1851
1860
  }, [(g(!0), i(e, null, y(l.value, (e, t) => (g(), i("button", {
1852
1861
  key: e.id,
1853
1862
  role: "tab",
1854
- id: `${h}-tab-${t}`,
1863
+ id: `${m}-tab-${t}`,
1855
1864
  "aria-selected": t === c.value,
1856
- "aria-controls": `${h}-panel-${t}`,
1865
+ "aria-controls": `${m}-panel-${t}`,
1857
1866
  tabindex: t === c.value ? 0 : -1,
1858
1867
  disabled: e.disabled,
1859
1868
  class: d([
@@ -1863,9 +1872,13 @@ var j = Symbol("AtlAccordionGroup"), M = /* @__PURE__ */ c({
1863
1872
  ]),
1864
1873
  type: "button",
1865
1874
  onClick: (n) => !e.disabled && p(t)
1866
- }, S(e.label), 11, cn))), 128))], 32), a("div", ln, [b(t.$slots, "default", { groupId: h })])], 2));
1875
+ }, S(e.label), 11, cn))), 128))], 32), a("div", ln, [b(t.$slots, "default", { groupId: m })])], 2));
1867
1876
  }
1868
- }), dn = ["hidden"], fn = /* @__PURE__ */ c({
1877
+ }), dn = [
1878
+ "id",
1879
+ "hidden",
1880
+ "aria-labelledby"
1881
+ ], fn = /* @__PURE__ */ c({
1869
1882
  name: "AtlTab",
1870
1883
  __name: "atl-tab",
1871
1884
  props: {
@@ -1886,13 +1899,14 @@ var j = Symbol("AtlAccordionGroup"), M = /* @__PURE__ */ c({
1886
1899
  }), p(() => {
1887
1900
  a.unregisterTab(o);
1888
1901
  });
1889
- let s = t(() => a.tabs.value.findIndex((e) => e.id === o)), c = t(() => s.value === a.selectedIndex.value);
1890
- return t(() => {}), (e, t) => s.value >= 0 ? (g(), i("div", {
1902
+ let s = t(() => a.tabs.value.findIndex((e) => e.id === o)), c = t(() => s.value === a.selectedIndex.value), u = t(() => s.value >= 0 ? `${a.groupId}-panel-${s.value}` : void 0), d = t(() => s.value >= 0 ? `${a.groupId}-tab-${s.value}` : void 0);
1903
+ return (e, t) => s.value >= 0 ? (g(), i("div", {
1891
1904
  key: 0,
1905
+ id: u.value,
1892
1906
  role: "tabpanel",
1893
1907
  hidden: !c.value,
1894
1908
  class: "tab-panel",
1895
- "aria-labelledby": void 0,
1909
+ "aria-labelledby": d.value,
1896
1910
  tabindex: "0"
1897
1911
  }, [b(e.$slots, "default")], 8, dn)) : r("", !0);
1898
1912
  }
@@ -1 +1 @@
1
- {"version":3,"file":"atl-menu-trigger.vue.d.ts","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/menu/atl-menu-trigger.vue"],"names":[],"mappings":"AAuEA,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAExC,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,qBAAqB,CACxC,CAAC;;;;;qBA6EE,GAAG;kBACN,GAAG;;AA5E7B,wBAkHK;AAEL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"atl-menu-trigger.vue.d.ts","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/menu/atl-menu-trigger.vue"],"names":[],"mappings":"AAqFA,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAExC,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,qBAAqB,CACxC,CAAC;;;;;qBA2FE,GAAG;kBACN,GAAG;;AA1F7B,wBAgIK;AAEL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -10,6 +10,8 @@ export interface AtlTabGroupContext {
10
10
  registerTab: (tab: AtlTabInfo) => void;
11
11
  unregisterTab: (id: string) => void;
12
12
  selectTab: (index: number) => void;
13
+ /** Shared id prefix so panels can derive their own id + aria-labelledby. */
14
+ groupId: string;
13
15
  }
14
16
  export declare const AtlTabGroupKey: InjectionKey<AtlTabGroupContext>;
15
17
  export interface AtlTabGroupProps {
@@ -1 +1 @@
1
- {"version":3,"file":"atl-tab-group.vue.d.ts","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/tabs/atl-tab-group.vue"],"names":[],"mappings":"AAgIA,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,cAAc,EAAE,YAAY,CAAC,kBAAkB,CAAyB,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B;;;;;;aADW,SAAS,GAAG,OAAO;mBADb,MAAM;;;;QA4HK,GAAG;;AAxHhC,wBAmKK;AAaL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"atl-tab-group.vue.d.ts","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/tabs/atl-tab-group.vue"],"names":[],"mappings":"AAoIA,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,YAAY,CAAC,kBAAkB,CAAyB,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B;;;;;;aADW,SAAS,GAAG,OAAO;mBADb,MAAM;;;;QA8HK,GAAG;;AA1HhC,wBAqKK;AAaL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"atl-tab.vue.d.ts","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/tabs/atl-tab.vue"],"names":[],"mappings":"AAuDA,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgCD,iBAAS,cAAc;WA8BT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;cAhFR,OAAO;6EAuFlB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"atl-tab.vue.d.ts","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/tabs/atl-tab.vue"],"names":[],"mappings":"AA2DA,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAmCD,iBAAS,cAAc;WA+BT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;cAtFR,OAAO;6EA6FlB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atelier-ui/vue",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Atelier component library for Vue 3 — LLM-optimised, accessible, design-token-driven",
5
5
  "keywords": [
6
6
  "vue",