@stihl-design-system/components 1.0.0-RC.40 → 1.0.0-RC.41

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.
Files changed (32) hide show
  1. package/{accordion.nt0Foequ.js → accordion.CiiPLwYQ.js} +1 -1
  2. package/{actionbutton.Ctea6drN.js → actionbutton.DKb4ph1c.js} +1 -1
  3. package/{actionlink.VX1OMtm-.js → actionlink.DEGta2h9.js} +1 -1
  4. package/{chipgroup.i5SOv6LA.js → chipgroup.CSjQHeeW.js} +17 -17
  5. package/chunks/Accordion.Q50G9LZ3.js +172 -0
  6. package/chunks/ActionButton.BEMy35Lh.js +188 -0
  7. package/chunks/ActionLink.DECHT42B.js +161 -0
  8. package/chunks/{NavigationTabList.C2f-lWex.js → NavigationTabList.ltT6igtk.js} +23 -22
  9. package/chunks/NavigationTabs.DsVepb7H.js +63 -0
  10. package/chunks/Tabs.DfH2q9EL.js +84 -0
  11. package/components/Accordion/Accordion.d.ts +2 -0
  12. package/components/Accordion/Accordion.utils.d.ts +2 -2
  13. package/components/ActionButton/ActionButton.d.ts +2 -0
  14. package/components/ActionButton/ActionButton.utils.d.ts +2 -2
  15. package/components/ActionLink/ActionLink.d.ts +2 -0
  16. package/components/ActionLink/ActionLink.utils.d.ts +2 -2
  17. package/components/ChipGroup/ChipGroup.d.ts +7 -1
  18. package/components/ChipGroup/ChipGroup.utils.d.ts +2 -2
  19. package/components/NavigationTabs/NavigationTabs.d.ts +3 -0
  20. package/components/Tabs/Tabs.d.ts +3 -0
  21. package/index.es.js +6 -6
  22. package/{navigationtablist.CKPpQrme.js → navigationtablist.Cd9hZzFQ.js} +1 -1
  23. package/{navigationtabs.VUAOwesQ.js → navigationtabs.DHG-TeF2.js} +2 -2
  24. package/package.json +1 -1
  25. package/{tablist.hMHdX1V8.js → tablist.DPiNeY3_.js} +66 -65
  26. package/{tabs.t-gR7dGc.js → tabs.Cxzm6ZZ-.js} +2 -2
  27. package/chunks/Accordion.B-0pf8Fq.js +0 -168
  28. package/chunks/ActionButton.wdWh7E2b.js +0 -182
  29. package/chunks/ActionLink.DwUP-Kgm.js +0 -155
  30. package/chunks/NavigationTabs.D2QrnlL2.js +0 -62
  31. package/chunks/Tabs.2JTenRcr.js +0 -83
  32. /package/components/Accordion/{Acordion.utils.test.d.ts → Accordion.utils.test.d.ts} +0 -0
@@ -1,21 +1,21 @@
1
1
  "use client";
2
- import { jsxs as B, Fragment as k, jsx as d } from "react/jsx-runtime";
3
- import { d as I } from "./index.cKLI89Eg.js";
4
- import { isValidElement as w, cloneElement as R } from "react";
5
- import { D as W } from "./Icon.m6sMB6vl.js";
6
- import { NumberIndicator as v } from "../numberindicator.ZGVRSmqf.js";
7
- import '../assets/NavigationTabList.CzAiHz7G.css';const y = "ds-tabs_tabs-wrapper_ccgp4_1", D = "ds-tabs_scroll-wrapper_ccgp4_6", E = "ds-tabs_scroller_ccgp4_17", T = "ds-tabs_scroller--centered_ccgp4_28", j = "ds-tabs_tab_ccgp4_1", x = "ds-tabs_scroll-button_ccgp4_105", H = "ds-tabs_scroll-button--hidden_ccgp4_110", K = "ds-tabs_scroll-button--right_ccgp4_114", L = "ds-tabs_indicator_ccgp4_126", S = {
8
- tabsWrapper: y,
9
- scrollWrapper: D,
10
- scroller: E,
2
+ import { jsxs as I, Fragment as k, jsx as d } from "react/jsx-runtime";
3
+ import { d as w } from "./index.cKLI89Eg.js";
4
+ import { isValidElement as R, cloneElement as W } from "react";
5
+ import { D as v } from "./Icon.m6sMB6vl.js";
6
+ import { NumberIndicator as y } from "../numberindicator.ZGVRSmqf.js";
7
+ import '../assets/NavigationTabList.CzAiHz7G.css';const D = "ds-tabs_tabs-wrapper_ccgp4_1", E = "ds-tabs_scroll-wrapper_ccgp4_6", L = "ds-tabs_scroller_ccgp4_17", T = "ds-tabs_scroller--centered_ccgp4_28", j = "ds-tabs_tab_ccgp4_1", x = "ds-tabs_scroll-button_ccgp4_105", H = "ds-tabs_scroll-button--hidden_ccgp4_110", K = "ds-tabs_scroll-button--right_ccgp4_114", S = "ds-tabs_indicator_ccgp4_126", V = {
8
+ tabsWrapper: D,
9
+ scrollWrapper: E,
10
+ scroller: L,
11
11
  scrollerCentered: T,
12
12
  tab: j,
13
13
  scrollButton: x,
14
14
  scrollButtonHidden: H,
15
15
  scrollButtonRight: K,
16
- indicator: L
17
- }, A = (h) => {
18
- const t = I.c(15), {
16
+ indicator: S
17
+ }, G = (h) => {
18
+ const t = w.c(15), {
19
19
  tabs: p,
20
20
  tabRefs: e,
21
21
  scrollerClass: b,
@@ -32,18 +32,19 @@ import '../assets/NavigationTabList.CzAiHz7G.css';const y = "ds-tabs_tabs-wrappe
32
32
  id: u,
33
33
  linkComponent: n,
34
34
  iconName: g,
35
- numberIndicatorValue: f
35
+ numberIndicatorValue: f,
36
+ numberIndicatorAriaLabel: N
36
37
  } = C;
37
- if (!w(n))
38
+ if (!R(n))
38
39
  return null;
39
- const N = R(n, {
40
+ const B = W(n, {
40
41
  "aria-current": r === l ? "page" : void 0,
41
- children: /* @__PURE__ */ B(k, { children: [
42
- g && /* @__PURE__ */ d(W, { name: g, "aria-hidden": "true" }),
42
+ children: /* @__PURE__ */ I(k, { children: [
43
+ g && /* @__PURE__ */ d(v, { name: g, "aria-hidden": "true" }),
43
44
  n.props.children,
44
- f && /* @__PURE__ */ d(v, { label: f })
45
+ f && /* @__PURE__ */ d(y, { "aria-label": N, label: f })
45
46
  ] }),
46
- className: S.tab,
47
+ className: V.tab,
47
48
  id: u,
48
49
  tabIndex: r === l ? 0 : -1,
49
50
  onKeyDown: (m) => o(m, l),
@@ -54,7 +55,7 @@ import '../assets/NavigationTabList.CzAiHz7G.css';const y = "ds-tabs_tabs-wrappe
54
55
  e.current[l] = m;
55
56
  }
56
57
  });
57
- return /* @__PURE__ */ d("li", { children: N }, u);
58
+ return /* @__PURE__ */ d("li", { children: B }, u);
58
59
  }, t[6] = o, t[7] = r, t[8] = c, t[9] = e, t[10] = i) : i = t[10], s = p.map(i), t[0] = o, t[1] = r, t[2] = c, t[3] = e, t[4] = p, t[5] = s;
59
60
  } else
60
61
  s = t[5];
@@ -62,6 +63,6 @@ import '../assets/NavigationTabList.CzAiHz7G.css';const y = "ds-tabs_tabs-wrappe
62
63
  return t[11] !== b || t[12] !== _ || t[13] !== s ? (a = /* @__PURE__ */ d("ul", { className: b, ref: _, children: s }), t[11] = b, t[12] = _, t[13] = s, t[14] = a) : a = t[14], a;
63
64
  };
64
65
  export {
65
- A as N,
66
- S as s
66
+ G as N,
67
+ V as s
67
68
  };
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ import { jsx as v } from "react/jsx-runtime";
3
+ import { d as N } from "./index.cKLI89Eg.js";
4
+ import { useState as T, useEffect as h } from "react";
5
+ import { TabList as y } from "../tablist.DPiNeY3_.js";
6
+ import { g as o, r as A } from "./helpers.CexwVao7.js";
7
+ const V = ["left", "center"], M = ["prev", "next"], I = ({
8
+ aria: t,
9
+ tabs: e,
10
+ activeTabIndex: a
11
+ }) => {
12
+ if (!t || typeof t != "object" || Object.keys(t).length === 0 || !t["aria-label"] && !t["aria-labelledby"] || t["aria-label"]?.trim() === "" && t["aria-labelledby"]?.trim() === "")
13
+ throw new Error(o("DSNavigationTabs", 'A valid "aria-label" or "aria-labelledby" property is required. Ensure the "aria" prop is a non-empty object and includes either "aria-label" or "aria-labelledby" with a non-empty string value.'));
14
+ if (Array.isArray(e)) {
15
+ if (e.length === 0)
16
+ throw new Error(o("DSNavigationTabs", "The tabs array must not be empty."));
17
+ } else throw new Error(o("DSNavigationTabs", A("tabs", "DSNavigationTabs")));
18
+ if (a != null && (a < 0 || a >= e.length))
19
+ throw new Error(o("DSNavigationTabs", `Invalid activeTabIndex: ${a}. It must be between 0 and ${e.length - 1}.`));
20
+ e.some((r) => (r.numberIndicatorValue || r.numberIndicatorValue === "") && !r.numberIndicatorAriaLabel) && console.warn(o("DSNavigationTabs", 'For better accessibility, please provide a descriptive label via "numberIndicatorAriaLabel" when using "numberIndicatorValue".'));
21
+ }, O = (t) => {
22
+ const e = N.c(19);
23
+ let a, i, r, l, n, s;
24
+ e[0] !== t ? ({
25
+ aria: i,
26
+ tabs: s,
27
+ activeTabIndex: a,
28
+ alignment: n,
29
+ className: r,
30
+ ...l
31
+ } = t, e[0] = t, e[1] = a, e[2] = i, e[3] = r, e[4] = l, e[5] = n, e[6] = s) : (a = e[1], i = e[2], r = e[3], l = e[4], n = e[5], s = e[6]);
32
+ const u = n === void 0 ? "left" : n;
33
+ process.env.NODE_ENV !== "production" && I({
34
+ aria: i,
35
+ tabs: s,
36
+ activeTabIndex: a
37
+ });
38
+ const [g, f] = T(a);
39
+ let b, c;
40
+ e[7] !== a ? (b = () => {
41
+ a != null && f(a);
42
+ }, c = [a], e[7] = a, e[8] = b, e[9] = c) : (b = e[8], c = e[9]), h(b, c);
43
+ let d;
44
+ e[10] !== u || e[11] !== i || e[12] !== r || e[13] !== l || e[14] !== g || e[15] !== s ? (d = {
45
+ aria: i,
46
+ tabs: s,
47
+ setSelectedTabIndex: f,
48
+ selectedTabIndex: g,
49
+ alignment: u,
50
+ className: r,
51
+ isNavigation: !0,
52
+ ...l
53
+ }, e[10] = u, e[11] = i, e[12] = r, e[13] = l, e[14] = g, e[15] = s, e[16] = d) : d = e[16];
54
+ const p = d;
55
+ let m;
56
+ return e[17] !== p ? (m = /* @__PURE__ */ v(y, { ...p }), e[17] = p, e[18] = m) : m = e[18], m;
57
+ };
58
+ export {
59
+ O as D,
60
+ V as N,
61
+ M as a,
62
+ I as v
63
+ };
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { jsx as E, jsxs as M } from "react/jsx-runtime";
3
+ import { d as q } from "./index.cKLI89Eg.js";
4
+ import { useState as C } from "react";
5
+ import { TabList as V } from "../tablist.DPiNeY3_.js";
6
+ import { TabPane as $ } from "../tabpane.7vMXUKFX.js";
7
+ import { g as j } from "./TabPane.utils.DG16Y2uD.js";
8
+ import { g as p, r as B } from "./helpers.CexwVao7.js";
9
+ const J = ["left", "center"], K = ["prev", "next"], O = ({
10
+ id: m,
11
+ tabs: e,
12
+ defaultSelectedTabIndex: s = 0
13
+ }) => {
14
+ if (!m)
15
+ throw new Error(p("DSTabs", 'A unique "id" prop is required. Please add a unique "id" prop to the DSTabs component.'));
16
+ if (Array.isArray(e)) {
17
+ if (e.length === 0)
18
+ throw new Error(p("DSTabs", "The tabs array must not be empty."));
19
+ } else throw new Error(p("DSTabs", B("tabs", "DSTabs")));
20
+ if (s < 0 || s >= e.length)
21
+ throw new Error(p("DSTabs", `Invalid defaultSelectedTabIndex: ${s}. It must be between 0 and ${e.length - 1}.`));
22
+ e.some((a) => (a.numberIndicatorValue || a.numberIndicatorValue === "") && !a.numberIndicatorAriaLabel) && console.warn(p("DSTabs", 'For better accessibility, please provide a descriptive label via "numberIndicatorAriaLabel" when using "numberIndicatorValue".'));
23
+ }, Q = (m) => {
24
+ const e = q.c(37);
25
+ let s, o, a, n, d, T, f, t, r;
26
+ e[0] !== m ? ({
27
+ id: t,
28
+ tabs: r,
29
+ activeTabIndex: s,
30
+ alignment: T,
31
+ className: o,
32
+ classNameTabPane: a,
33
+ defaultSelectedTabIndex: f,
34
+ onTabChange: n,
35
+ ...d
36
+ } = m, e[0] = m, e[1] = s, e[2] = o, e[3] = a, e[4] = n, e[5] = d, e[6] = T, e[7] = f, e[8] = t, e[9] = r) : (s = e[1], o = e[2], a = e[3], n = e[4], d = e[5], T = e[6], f = e[7], t = e[8], r = e[9]);
37
+ const S = T === void 0 ? "left" : T, w = f === void 0 ? 0 : f;
38
+ process.env.NODE_ENV !== "production" && O({
39
+ id: t,
40
+ tabs: r,
41
+ defaultSelectedTabIndex: w
42
+ });
43
+ const [N, L] = C(s || w), u = s !== void 0, i = u ? s : N;
44
+ let I;
45
+ e[10] !== u || e[11] !== n ? (I = (l) => {
46
+ u || L(l), n?.(l);
47
+ }, e[10] = u, e[11] = n, e[12] = I) : I = e[12];
48
+ const v = I;
49
+ let g;
50
+ e[13] !== S || e[14] !== v || e[15] !== n || e[16] !== i || e[17] !== t || e[18] !== r ? (g = {
51
+ id: t,
52
+ tabs: r,
53
+ setSelectedTabIndex: v,
54
+ selectedTabIndex: i,
55
+ alignment: S,
56
+ onTabChange: n
57
+ }, e[13] = S, e[14] = v, e[15] = n, e[16] = i, e[17] = t, e[18] = r, e[19] = g) : g = e[19];
58
+ const D = g;
59
+ let c;
60
+ e[20] !== D ? (c = /* @__PURE__ */ E(V, { ...D }), e[20] = D, e[21] = c) : c = e[21];
61
+ let b;
62
+ if (e[22] !== a || e[23] !== i || e[24] !== t || e[25] !== r) {
63
+ let l;
64
+ e[27] !== a || e[28] !== i || e[29] !== t ? (l = (P, x) => {
65
+ const {
66
+ id: A,
67
+ content: y
68
+ } = P;
69
+ return /* @__PURE__ */ E($, { id: A, content: y, index: x, selectedTabIndex: i, tabListId: t, className: a }, j(t, A, x));
70
+ }, e[27] = a, e[28] = i, e[29] = t, e[30] = l) : l = e[30], b = r.map(l), e[22] = a, e[23] = i, e[24] = t, e[25] = r, e[26] = b;
71
+ } else
72
+ b = e[26];
73
+ let h;
74
+ return e[31] !== o || e[32] !== d || e[33] !== c || e[34] !== b || e[35] !== t ? (h = /* @__PURE__ */ M("div", { className: o, id: t, ...d, children: [
75
+ c,
76
+ b
77
+ ] }), e[31] = o, e[32] = d, e[33] = c, e[34] = b, e[35] = t, e[36] = h) : h = e[36], h;
78
+ };
79
+ export {
80
+ Q as D,
81
+ J as T,
82
+ K as a,
83
+ O as v
84
+ };
@@ -30,6 +30,8 @@ export interface AccordionProps extends DetailsHTMLAttributes<HTMLDetailsElement
30
30
  isOpen?: boolean;
31
31
  /** Number Indicator value displayed next to the label. **Cannot be used together with hint**. */
32
32
  numberIndicatorValue?: string;
33
+ /** Adds a descriptive label for screen readers to the Number Indicator. */
34
+ numberIndicatorAriaLabel?: string;
33
35
  /** Size of the accordion.
34
36
  * @default 'medium'
35
37
  */
@@ -11,6 +11,6 @@ export type Summary = string | {
11
11
  headingSize?: HeadingSize;
12
12
  headingTag?: HeadingTag;
13
13
  };
14
- type ValidationProps = Pick<AccordionProps, 'children' | 'hint' | 'numberIndicatorValue' | 'summary'>;
15
- export declare const validateAccordionProps: ({ children, hint, numberIndicatorValue, summary, }: ValidationProps) => void;
14
+ type ValidationProps = Pick<AccordionProps, 'children' | 'hint' | 'numberIndicatorValue' | 'numberIndicatorAriaLabel' | 'summary'>;
15
+ export declare const validateAccordionProps: ({ children, hint, numberIndicatorValue, numberIndicatorAriaLabel, summary, }: ValidationProps) => void;
16
16
  export {};
@@ -42,6 +42,8 @@ export interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElemen
42
42
  isActive?: boolean;
43
43
  /** Number Indicator value displayed next to the label or above the icon. */
44
44
  numberIndicatorValue?: string;
45
+ /** Adds a descriptive label for screen readers to the Number Indicator. */
46
+ numberIndicatorAriaLabel?: string;
45
47
  /** Stretches the button over the parent's width. **Only available with `iconPosition='left'`**.
46
48
  * @default false
47
49
  */
@@ -10,7 +10,7 @@ export type ActionButtonWeight = (typeof ACTION_BUTTON_WEIGHT)[number];
10
10
  export declare const ACTION_BUTTON_CHEVRON_DIRECTION: readonly ["up", "down", "right", "left"];
11
11
  export type ActionButtonChevronDirection = (typeof ACTION_BUTTON_CHEVRON_DIRECTION)[number];
12
12
  export type ActionButtonAriaAttribute = 'aria-label' | 'aria-expanded' | 'aria-pressed' | 'aria-haspopup';
13
- type ValidationProps = Pick<ActionButtonProps, 'iconName' | 'iconSize' | 'iconSource' | 'iconPosition' | 'indentLevel' | 'stretched' | 'weight'>;
13
+ type ValidationProps = Pick<ActionButtonProps, 'iconName' | 'iconSize' | 'iconSource' | 'iconPosition' | 'indentLevel' | 'stretched' | 'weight' | 'numberIndicatorValue' | 'numberIndicatorAriaLabel'>;
14
14
  /**
15
15
  * Performs runtime validation on a subset of `DSActionButton` props to detect
16
16
  * misconfigurations during development.
@@ -18,5 +18,5 @@ type ValidationProps = Pick<ActionButtonProps, 'iconName' | 'iconSize' | 'iconSo
18
18
  * Intended for development use only; should not be used in production environments.
19
19
  *
20
20
  */
21
- export declare const validateActionButtonProps: ({ iconName, iconSize, iconSource, iconPosition, indentLevel, stretched, weight, }: ValidationProps) => void;
21
+ export declare const validateActionButtonProps: ({ iconName, iconSize, iconSource, iconPosition, indentLevel, stretched, weight, numberIndicatorValue, numberIndicatorAriaLabel, }: ValidationProps) => void;
22
22
  export {};
@@ -21,6 +21,8 @@ export interface ActionLinkProps extends Omit<CommonLinkProps, 'iconPosition' |
21
21
  isActive?: boolean;
22
22
  /** Number Indicator value displayed next to the label or above the icon. */
23
23
  numberIndicatorValue?: string;
24
+ /** Adds a descriptive label for screen readers to the Number Indicator. */
25
+ numberIndicatorAriaLabel?: string;
24
26
  /** Stretches the link over the parent's width. **Only available with `iconPosition='left'`**.
25
27
  * @default false
26
28
  */
@@ -7,7 +7,7 @@ export declare const ACTION_LINK_INDENT_LEVEL: readonly [0, 1];
7
7
  export type ActionLinkIndentLevel = (typeof ACTION_LINK_INDENT_LEVEL)[number];
8
8
  export declare const ACTION_LINK_WEIGHT: readonly ["normal", "bold"];
9
9
  export type ActionLinkWeight = (typeof ACTION_LINK_WEIGHT)[number];
10
- type ValidationProps = Pick<ActionLinkProps, 'iconName' | 'iconSize' | 'iconSource' | 'iconPosition' | 'indentLevel' | 'stretched' | 'weight'>;
10
+ type ValidationProps = Pick<ActionLinkProps, 'iconName' | 'iconSize' | 'iconSource' | 'iconPosition' | 'indentLevel' | 'stretched' | 'weight' | 'numberIndicatorValue' | 'numberIndicatorAriaLabel'>;
11
11
  /**
12
12
  * Performs runtime validation on a subset of `DSActionLink` props to detect
13
13
  * misconfigurations during development.
@@ -15,5 +15,5 @@ type ValidationProps = Pick<ActionLinkProps, 'iconName' | 'iconSize' | 'iconSour
15
15
  * Intended for development use only; should not be used in production environments.
16
16
  *
17
17
  */
18
- export declare const validateActionLinkProps: ({ iconName, iconSize, iconSource, iconPosition, indentLevel, stretched, weight, }: ValidationProps) => void;
18
+ export declare const validateActionLinkProps: ({ iconName, iconSize, iconSource, iconPosition, indentLevel, stretched, weight, numberIndicatorValue, numberIndicatorAriaLabel, }: ValidationProps) => void;
19
19
  export {};
@@ -3,7 +3,13 @@ import { BreakpointCustomizable } from '../../types';
3
3
  import { Chip, ChipGroupAriaTranslations, ChipGroupLanguage, ChipGroupSelectionMode, ChipGroupSize } from './ChipGroup.utils';
4
4
  export interface ChipGroupProps extends HTMLAttributes<HTMLDivElement> {
5
5
  /** An array of Chip Objects containing the id and label and other optional parameters.
6
- * `{id: string; label: string; disabled?: boolean; iconName?: IconName; isSelected?: boolean; onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;}[]`*/
6
+ * `{id: string;`
7
+ * `label: string;`
8
+ * `disabled?: boolean;`
9
+ * `iconName?: IconName;`
10
+ * `isSelected?: boolean;`
11
+ * `onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent> | React.KeyboardEvent<HTMLDivElement>) => void;}[]`
12
+ * */
7
13
  chips: Chip[];
8
14
  /** Unique id for the DSChipGroup. */
9
15
  id: string;
@@ -16,8 +16,8 @@ export interface Chip {
16
16
  iconName?: IconName;
17
17
  /** Displays the Chip as selected */
18
18
  isSelected?: boolean;
19
- /** Callback function called when the Chip is clicked. */
20
- onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
19
+ /** Callback function called when the Chip is clicked or selected / removed via keyboard. */
20
+ onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent> | React.KeyboardEvent<HTMLDivElement>) => void;
21
21
  }
22
22
  export declare const CHIP_GROUP_SIZE: readonly ["medium", "small"];
23
23
  export type ChipGroupSize = (typeof CHIP_GROUP_SIZE)[number];
@@ -14,6 +14,8 @@ export interface NavigationTab {
14
14
  iconName?: IconName;
15
15
  /** Number Indicator value displayed next to the label. */
16
16
  numberIndicatorValue?: string;
17
+ /** Adds a descriptive label for screen readers to the Number Indicator. */
18
+ numberIndicatorAriaLabel?: string;
17
19
  }
18
20
  export interface NavigationTabsProps extends HTMLAttributes<HTMLDivElement> {
19
21
  /** ARIA attributes to ensure accessibility
@@ -25,6 +27,7 @@ export interface NavigationTabsProps extends HTMLAttributes<HTMLDivElement> {
25
27
  * `{ id: string;`
26
28
  * `linkComponent: React.ReactElement<React.AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement> & { onClick?: () => void; to?: string; }>;`
27
29
  * `iconName?: IconName;`
30
+ * `numberIndicatorAriaLabel?: string;`
28
31
  * `numberIndicatorValue?: string; }[]`
29
32
  */
30
33
  tabs: NavigationTab[];
@@ -12,6 +12,8 @@ export interface Tab {
12
12
  iconName?: IconName;
13
13
  /** Number Indicator value displayed next to the label. */
14
14
  numberIndicatorValue?: string;
15
+ /** Adds a descriptive label for screen readers to the Number Indicator. */
16
+ numberIndicatorAriaLabel?: string;
15
17
  }
16
18
  export interface TabsProps extends HTMLAttributes<HTMLDivElement> {
17
19
  /** Unique id for the tab list. */
@@ -21,6 +23,7 @@ export interface TabsProps extends HTMLAttributes<HTMLDivElement> {
21
23
  * `id: string;`
22
24
  * `label: string;`
23
25
  * `iconName?: IconName;`
26
+ * `numberIndicatorAriaLabel?: string;`
24
27
  * `numberIndicatorValue?: string; }[]`
25
28
  */
26
29
  tabs: Tab[];
package/index.es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { a as N, A as _, C as D, D as A, v as l } from "./chunks/Accordion.B-0pf8Fq.js";
3
- import { d as E, A as O, a as d, b as m, c as v, D as P, v as C } from "./chunks/ActionButton.wdWh7E2b.js";
4
- import { A as u, a as L, b as c, c as R, D as f, v as g } from "./chunks/ActionLink.DwUP-Kgm.js";
2
+ import { a as N, A as _, C as D, D as A, v as l } from "./chunks/Accordion.Q50G9LZ3.js";
3
+ import { d as E, A as O, a as d, b as m, c as v, D as P, v as C } from "./chunks/ActionButton.BEMy35Lh.js";
4
+ import { A as u, a as L, b as c, c as R, D as f, v as g } from "./chunks/ActionLink.DECHT42B.js";
5
5
  import { DSAriaLiveRegions as B } from "./arialiveregions.B0AV2JcV.js";
6
6
  import { DSBanner as U } from "./banner.S_c1UQJe.js";
7
7
  import { D as M, M as H, v as F } from "./chunks/Breadcrumb.nflDJoKs.js";
@@ -9,7 +9,7 @@ import { B as X, a as k, D as Z, v as K } from "./chunks/Button.DpGeheky.js";
9
9
  import { DSButtonRound as w } from "./buttonround.Bqi8Ej-y.js";
10
10
  import { D as Y, v as j } from "./chunks/Checkbox.B3NeB54s.js";
11
11
  import { D as z, v as J } from "./chunks/CheckboxGroup.BYZSvqF7.js";
12
- import { DSChipGroup as $ } from "./chipgroup.i5SOv6LA.js";
12
+ import { DSChipGroup as $ } from "./chipgroup.CSjQHeeW.js";
13
13
  import { C as ea, c as sa, b as oa, D as ra, g as ta, d as Ta, v as Sa, a as Ia } from "./chunks/Chip.SiGIIHR-.js";
14
14
  import { DSCombobox as pa } from "./combobox.DzSEFo_5.js";
15
15
  import { C as _a, b as Da, a as Aa, D as la, v as na } from "./chunks/CustomReactSelect.DBsnmMPl.js";
@@ -32,7 +32,7 @@ import { D as ce, L as Re, a as fe, v as ge } from "./chunks/LinkButton.CMjq2FKc
32
32
  import { D as Be, v as be } from "./chunks/LinkCard.CJ5P0ews.js";
33
33
  import { DSLogo as Ge } from "./logo.D7LnRA1E.js";
34
34
  import { D as He, u as Fe, v as Ve, a as Xe } from "./chunks/MegaMenu.CiSiMlE3.js";
35
- import { D as Ze, N as Ke, a as ye, v as we } from "./chunks/NavigationTabs.D2QrnlL2.js";
35
+ import { D as Ze, N as Ke, a as ye, v as we } from "./chunks/NavigationTabs.DsVepb7H.js";
36
36
  import { D as Ye, a as je, N as qe } from "./chunks/Notification.COwLndR0.js";
37
37
  import { D as Je, u as Qe, v as $e, a as as } from "./chunks/Popover.C5wtha5l.js";
38
38
  import { D as ss, b as os, a as rs, o as ts, v as Ts } from "./chunks/RadioGroup.B-qTH31u.js";
@@ -44,7 +44,7 @@ import { D as hs, L as Bs, M as bs, g as Us, a as Gs, i as Ms, s as Hs, v as Fs
44
44
  import { DSSpinner as Xs } from "./spinner.CRVyui04.js";
45
45
  import { DSSwitch as Zs } from "./switch.DgKgzm-j.js";
46
46
  import { D as ys, a as ws, S as Ws } from "./chunks/SystemFeedback.DFN6Y2cw.js";
47
- import { D as js, T as qs, a as zs, v as Js } from "./chunks/Tabs.2JTenRcr.js";
47
+ import { D as js, T as qs, a as zs, v as Js } from "./chunks/Tabs.DfH2q9EL.js";
48
48
  import { DSText as $s } from "./text.D_e3JBvf.js";
49
49
  import { a as eo, T as so, b as oo, i as ro } from "./chunks/Text.utils.D_iOyOSH.js";
50
50
  import { D as To, T as So, v as Io } from "./chunks/Textarea.ymNCbcvH.js";
@@ -4,7 +4,7 @@ import "./chunks/index.cKLI89Eg.js";
4
4
  import "react";
5
5
  import "./chunks/Icon.m6sMB6vl.js";
6
6
  import "./numberindicator.ZGVRSmqf.js";
7
- import { N as e } from "./chunks/NavigationTabList.C2f-lWex.js";
7
+ import { N as e } from "./chunks/NavigationTabList.ltT6igtk.js";
8
8
  export {
9
9
  e as NavigationTabList
10
10
  };
@@ -2,8 +2,8 @@
2
2
  import "react/jsx-runtime";
3
3
  import "./chunks/index.cKLI89Eg.js";
4
4
  import "react";
5
- import "./tablist.hMHdX1V8.js";
6
- import { D as a } from "./chunks/NavigationTabs.D2QrnlL2.js";
5
+ import "./tablist.DPiNeY3_.js";
6
+ import { D as a } from "./chunks/NavigationTabs.DsVepb7H.js";
7
7
  export {
8
8
  a as DSNavigationTabs
9
9
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stihl-design-system/components",
3
3
  "private": false,
4
- "version": "1.0.0-RC.40",
4
+ "version": "1.0.0-RC.41",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://designsystem.stihl.de/",
7
7
  "keywords": [