@stihl-design-system/components 1.0.0-RC.37 → 1.0.0-RC.39

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.
@@ -0,0 +1,199 @@
1
+ "use client";
2
+ import { jsxs as P, jsx as h, Fragment as Ve } from "react/jsx-runtime";
3
+ import { d as Ae } from "./index.D-sRdssb.js";
4
+ import { c as n } from "./index.DL9mof6u.js";
5
+ import { isValidElement as Be, cloneElement as Ie } from "react";
6
+ import { DSFlag as He } from "../flag.CE32qHPa.js";
7
+ import { DSHeading as Oe } from "../heading.DHLpT4dc.js";
8
+ import { D as qe } from "./LinkButton.CWibqvhs.js";
9
+ import { g as j } from "./helpers.CexwVao7.js";
10
+ import '../assets/LinkCard.Bi9QqIDA.css';const Me = "ds-link-card_root_h40nd_1", Re = "ds-link-card_root--horizontal_h40nd_53", $e = "ds-link-card_image-wrapper_h40nd_58", Ge = "ds-link-card_content_h40nd_68", Je = "ds-link-card_header_h40nd_97", Ke = "ds-link-card_footer_h40nd_98", Qe = "ds-link-card_heading_h40nd_109", Ue = "ds-link-card_link_h40nd_113", Xe = "ds-link-card_description_h40nd_118", Ye = "ds-link-card_meta-data_h40nd_135", Ze = "ds-link-card_decorative-link_h40nd_152", et = "ds-link-card_flags_h40nd_156", tt = "ds-link-card_brand-flag_h40nd_165", i = {
11
+ root: Me,
12
+ rootHorizontal: Re,
13
+ imageWrapper: $e,
14
+ content: Ge,
15
+ header: Je,
16
+ footer: Ke,
17
+ heading: Qe,
18
+ link: Ue,
19
+ description: Xe,
20
+ metaData: Ye,
21
+ decorativeLink: Ze,
22
+ flags: et,
23
+ brandFlag: tt
24
+ }, at = ({
25
+ href: p,
26
+ linkComponent: e,
27
+ flags: t,
28
+ flagListAriaLabel: m,
29
+ heading: f,
30
+ img: g,
31
+ brandFlag: o
32
+ }) => {
33
+ if (!p && !e)
34
+ throw new Error(j("DSLinkCard", "Please provide either the 'href' prop or a custom 'linkComponent'."));
35
+ if (p && e)
36
+ throw new Error(j("DSLinkCard", "Please provide either the 'href' prop or a custom 'linkComponent', but not both."));
37
+ if (!f)
38
+ throw new Error(j("DSLinkCard", "The 'heading' prop is required and must be provided."));
39
+ t && t.length > 6 && console.warn(j("DSLinkCard", "It is recommended to provide a maximum of 6 flags for optimal display.")), t && t.length > 0 && !m && console.warn(j("DSLinkCard", "When providing flags, please also ensure to add the 'flagListAriaLabel' to describe the list of flags for non sighted screen reader users.")), o && g === void 0 && console.warn(j("DSLinkCard", "The 'brandFlag' prop is set to true, but no 'img' prop is provided. The 'brandFlag' will have no effect without an image."));
40
+ }, it = (p) => {
41
+ const e = Ae.c(112);
42
+ let t, m, f, g, o, s, l, d, r, a, k, b, v, _;
43
+ e[0] !== p ? ({
44
+ heading: l,
45
+ brandFlag: t,
46
+ className: f,
47
+ cardClassNames: m,
48
+ decorativeLinkButtonProps: g,
49
+ description: o,
50
+ flagListAriaLabel: s,
51
+ flags: v,
52
+ href: d,
53
+ img: r,
54
+ linkComponent: a,
55
+ metaData: k,
56
+ orientation: _,
57
+ ...b
58
+ } = p, e[0] = p, e[1] = t, e[2] = m, e[3] = f, e[4] = g, e[5] = o, e[6] = s, e[7] = l, e[8] = d, e[9] = r, e[10] = a, e[11] = k, e[12] = b, e[13] = v, e[14] = _) : (t = e[1], m = e[2], f = e[3], g = e[4], o = e[5], s = e[6], l = e[7], d = e[8], r = e[9], a = e[10], k = e[11], b = e[12], v = e[13], _ = e[14]);
59
+ let c, A;
60
+ e[15] !== t || e[16] !== s || e[17] !== l || e[18] !== d || e[19] !== r || e[20] !== a || e[21] !== v || e[22] !== _ ? (c = v === void 0 ? [] : v, A = _ === void 0 ? "vertical" : _, process.env.NODE_ENV !== "production" && at({
61
+ href: d,
62
+ linkComponent: a,
63
+ heading: l,
64
+ flags: c,
65
+ flagListAriaLabel: s,
66
+ img: r,
67
+ brandFlag: t
68
+ }), e[15] = t, e[16] = s, e[17] = l, e[18] = d, e[19] = r, e[20] = a, e[21] = v, e[22] = _, e[23] = c, e[24] = A) : (c = e[23], A = e[24]);
69
+ let B;
70
+ e[25] !== g ? (B = g || {}, e[25] = g, e[26] = B) : B = e[26];
71
+ const {
72
+ label: V,
73
+ iconName: ae,
74
+ variant: Pe,
75
+ hideLabel: ie,
76
+ size: Ee
77
+ } = B, ne = Ee === void 0 ? "small" : Ee, I = Pe === "ghost" ? "ghost" : "filled", re = k || c.length > 0 || V;
78
+ let O;
79
+ e[27] !== m ? (O = m || {}, e[27] = m, e[28] = O) : O = e[28];
80
+ const {
81
+ brandFlag: oe,
82
+ contentWrapper: se,
83
+ descriptionWrapper: le,
84
+ decorativeLink: de,
85
+ flagsWrapper: ce,
86
+ footerWrapper: he,
87
+ headerWrapper: pe,
88
+ heading: me,
89
+ imageWrapper: fe,
90
+ metaDataWrapper: ge
91
+ } = O, ke = A === "horizontal";
92
+ let q;
93
+ e[29] !== f || e[30] !== ke ? (q = n(i.root, f, {
94
+ [i.rootHorizontal]: ke
95
+ }), e[29] = f, e[30] = ke, e[31] = q) : q = e[31];
96
+ const ve = q;
97
+ let M;
98
+ e[32] !== oe ? (M = n(i.brandFlag, oe), e[32] = oe, e[33] = M) : M = e[33];
99
+ const _e = M;
100
+ let R;
101
+ e[34] !== se ? (R = n(i.content, se), e[34] = se, e[35] = R) : R = e[35];
102
+ const Le = R;
103
+ let $;
104
+ e[36] !== le ? ($ = n(i.description, le), e[36] = le, e[37] = $) : $ = e[37];
105
+ const be = $;
106
+ let G;
107
+ e[38] !== de ? (G = n(i.decorativeLink, de), e[38] = de, e[39] = G) : G = e[39];
108
+ const Ce = G;
109
+ let J;
110
+ e[40] !== ce ? (J = n(i.flags, ce), e[40] = ce, e[41] = J) : J = e[41];
111
+ const ue = J;
112
+ let K;
113
+ e[42] !== he ? (K = n(i.footer, he), e[42] = he, e[43] = K) : K = e[43];
114
+ const Ne = K;
115
+ let Q;
116
+ e[44] !== pe ? (Q = n(i.header, pe), e[44] = pe, e[45] = Q) : Q = e[45];
117
+ const De = Q;
118
+ let U;
119
+ e[46] !== me ? (U = n(i.heading, me), e[46] = me, e[47] = U) : U = e[47];
120
+ const Se = U;
121
+ let X;
122
+ e[48] !== fe ? (X = n(i.imageWrapper, fe), e[48] = fe, e[49] = X) : X = e[49];
123
+ const we = X;
124
+ let Y;
125
+ e[50] !== ge ? (Y = n(i.metaData, ge), e[50] = ge, e[51] = Y) : Y = e[51];
126
+ const Fe = Y;
127
+ let C, u, N, D, S, w, F, z;
128
+ e[52] !== b ? ({
129
+ download: u,
130
+ hrefLang: N,
131
+ ping: D,
132
+ referrerPolicy: S,
133
+ rel: w,
134
+ target: F,
135
+ type: z,
136
+ ...C
137
+ } = b, e[52] = b, e[53] = C, e[54] = u, e[55] = N, e[56] = D, e[57] = S, e[58] = w, e[59] = F, e[60] = z) : (C = e[53], u = e[54], N = e[55], D = e[56], S = e[57], w = e[58], F = e[59], z = e[60]);
138
+ let Z;
139
+ e[61] !== u || e[62] !== d || e[63] !== N || e[64] !== a || e[65] !== D || e[66] !== S || e[67] !== w || e[68] !== F || e[69] !== z ? (Z = (L) => a && Be(a) ? Ie(a, {
140
+ ...a.props,
141
+ className: n(i.link, a.props.className),
142
+ children: /* @__PURE__ */ P(Ve, { children: [
143
+ L,
144
+ " ",
145
+ a.props.children
146
+ ] })
147
+ }) : /* @__PURE__ */ h("a", { href: d, className: i.link, download: u, hrefLang: N, ping: D, referrerPolicy: S, rel: w, target: F, type: z, children: L }), e[61] = u, e[62] = d, e[63] = N, e[64] = a, e[65] = D, e[66] = S, e[67] = w, e[68] = F, e[69] = z, e[70] = Z) : Z = e[70];
148
+ const ze = Z;
149
+ let ee;
150
+ e[71] !== ze || e[72] !== Se ? (ee = (L) => {
151
+ const Te = typeof L == "object" && L !== void 0, {
152
+ headingText: je,
153
+ headingSize: xe,
154
+ headingTag: ye
155
+ } = Te ? L : {
156
+ headingText: L
157
+ };
158
+ return /* @__PURE__ */ h(Oe, { tag: ye === void 0 ? "h3" : ye, size: xe === void 0 ? "medium" : xe, className: Se, children: ze(je) });
159
+ }, e[71] = ze, e[72] = Se, e[73] = ee) : ee = e[73];
160
+ const We = ee;
161
+ let W;
162
+ e[74] !== We || e[75] !== l ? (W = We(l), e[74] = We, e[75] = l, e[76] = W) : W = e[76];
163
+ let E;
164
+ e[77] !== o || e[78] !== be ? (E = o && /* @__PURE__ */ h("div", { className: be, children: o }), e[77] = o, e[78] = be, e[79] = E) : E = e[79];
165
+ let T;
166
+ e[80] !== De || e[81] !== W || e[82] !== E ? (T = /* @__PURE__ */ P("div", { className: De, children: [
167
+ W,
168
+ E
169
+ ] }), e[80] = De, e[81] = W, e[82] = E, e[83] = T) : T = e[83];
170
+ let x;
171
+ e[84] !== I || e[85] !== Ce || e[86] !== ie || e[87] !== ae || e[88] !== V || e[89] !== ne || e[90] !== s || e[91] !== c || e[92] !== ue || e[93] !== Ne || e[94] !== re || e[95] !== k || e[96] !== Fe ? (x = re && /* @__PURE__ */ P("div", { className: Ne, children: [
172
+ k && /* @__PURE__ */ h("div", { className: Fe, children: k }),
173
+ c.length > 0 && /* @__PURE__ */ h("ul", { className: ue, "aria-label": s, children: c.map(nt) }),
174
+ V && /* @__PURE__ */ h(qe, { iconName: ae, iconPosition: "right", variant: I, hideLabel: ie, size: ne, isFlush: I === "ghost", "aria-hidden": !0, className: Ce, children: V })
175
+ ] }), e[84] = I, e[85] = Ce, e[86] = ie, e[87] = ae, e[88] = V, e[89] = ne, e[90] = s, e[91] = c, e[92] = ue, e[93] = Ne, e[94] = re, e[95] = k, e[96] = Fe, e[97] = x) : x = e[97];
176
+ let y;
177
+ e[98] !== Le || e[99] !== T || e[100] !== x ? (y = /* @__PURE__ */ P("div", { className: Le, children: [
178
+ T,
179
+ x
180
+ ] }), e[98] = Le, e[99] = T, e[100] = x, e[101] = y) : y = e[101];
181
+ let H;
182
+ e[102] !== t || e[103] !== _e || e[104] !== we || e[105] !== r ? (H = r && /* @__PURE__ */ P("div", { className: we, children: [
183
+ t && /* @__PURE__ */ h(He, { color: "orange-base", className: _e, children: t }),
184
+ r
185
+ ] }), e[102] = t, e[103] = _e, e[104] = we, e[105] = r, e[106] = H) : H = e[106];
186
+ let te;
187
+ return e[107] !== C || e[108] !== ve || e[109] !== y || e[110] !== H ? (te = /* @__PURE__ */ P("div", { ...C, className: ve, children: [
188
+ y,
189
+ H
190
+ ] }), e[107] = C, e[108] = ve, e[109] = y, e[110] = H, e[111] = te) : te = e[111], te;
191
+ };
192
+ it.displayName = "DSLinkCard";
193
+ function nt(p, e) {
194
+ return /* @__PURE__ */ h("li", { children: /* @__PURE__ */ h(He, { color: "grey-light", children: p }) }, e);
195
+ }
196
+ export {
197
+ it as D,
198
+ at as v
199
+ };
@@ -0,0 +1,69 @@
1
+ "use client";
2
+ import { jsx as z } from "react/jsx-runtime";
3
+ import { d as G } from "./chunks/index.D-sRdssb.js";
4
+ import { v as H, c as J } from "./chunks/CustomReactSelect.DS9Ey-jr.js";
5
+ import { forwardRef as K } from "react";
6
+ const Q = K((N, S) => {
7
+ const t = G.c(38);
8
+ let a, r, e, d, l, s, p, i, c, u, n, v, f, o, m, b;
9
+ if (t[0] !== N) {
10
+ const h = N ?? {}, {
11
+ id: q,
12
+ label: A,
13
+ className: B,
14
+ disabled: g,
15
+ dropdownOnFocus: w,
16
+ filterOption: L,
17
+ hideLabel: y,
18
+ invalid: D,
19
+ lang: E,
20
+ menuIsOpen: R,
21
+ popoverContent: j,
22
+ popoverInfoButtonProps: k,
23
+ required: F,
24
+ tabSelectsValue: M,
25
+ variant: V,
26
+ ..._
27
+ } = h;
28
+ s = q, i = A, a = B, d = L, u = R, n = j, v = k, o = _, r = g === void 0 ? !1 : g, e = w === void 0 ? !1 : w, l = y === void 0 ? !1 : y, p = D === void 0 ? !1 : D, c = E === void 0 ? "en" : E, f = F === void 0 ? !1 : F, m = M === void 0 ? !0 : M, b = V === void 0 ? "single" : V;
29
+ const $ = Array.isArray(o.options) ? o.options : [];
30
+ process.env.NODE_ENV !== "production" && H({
31
+ id: s,
32
+ label: i,
33
+ options: $,
34
+ hideLabel: l,
35
+ popoverContent: n
36
+ }), t[0] = N, t[1] = a, t[2] = r, t[3] = e, t[4] = d, t[5] = l, t[6] = s, t[7] = p, t[8] = i, t[9] = c, t[10] = u, t[11] = n, t[12] = v, t[13] = f, t[14] = o, t[15] = m, t[16] = b;
37
+ } else
38
+ a = t[1], r = t[2], e = t[3], d = t[4], l = t[5], s = t[6], p = t[7], i = t[8], c = t[9], u = t[10], n = t[11], v = t[12], f = t[13], o = t[14], m = t[15], b = t[16];
39
+ const O = b === "multi", I = !e || O;
40
+ let C;
41
+ t[17] !== a || t[18] !== r || t[19] !== e || t[20] !== d || t[21] !== l || t[22] !== s || t[23] !== p || t[24] !== O || t[25] !== i || t[26] !== c || t[27] !== u || t[28] !== n || t[29] !== v || t[30] !== S || t[31] !== f || t[32] !== o || t[33] !== I || t[34] !== m ? (C = {
42
+ id: s,
43
+ label: i,
44
+ className: a,
45
+ disabled: r,
46
+ filterOption: d,
47
+ hideLabel: l,
48
+ isMulti: O,
49
+ invalid: p,
50
+ lang: c,
51
+ menuIsOpen: u,
52
+ openMenuOnClick: e,
53
+ openMenuOnFocus: e,
54
+ isClearable: I,
55
+ required: f,
56
+ ref: S,
57
+ tabSelectsValue: m,
58
+ popoverContent: n,
59
+ popoverInfoButtonProps: v,
60
+ ...o
61
+ }, t[17] = a, t[18] = r, t[19] = e, t[20] = d, t[21] = l, t[22] = s, t[23] = p, t[24] = O, t[25] = i, t[26] = c, t[27] = u, t[28] = n, t[29] = v, t[30] = S, t[31] = f, t[32] = o, t[33] = I, t[34] = m, t[35] = C) : C = t[35];
62
+ const P = C;
63
+ let x;
64
+ return t[36] !== P ? (x = /* @__PURE__ */ z(J, { ...P }), t[36] = P, t[37] = x) : x = t[37], x;
65
+ });
66
+ Q.displayName = "DSCombobox";
67
+ export {
68
+ Q as DSCombobox
69
+ };
@@ -26,6 +26,8 @@ export interface ComboboxOption {
26
26
  * @default false
27
27
  */
28
28
  isDisabled?: boolean;
29
+ /** Custom data attributes. */
30
+ [key: `data-${string}`]: string | undefined;
29
31
  }
30
32
  export type ComboboxOptionsGroup = GroupBase<ComboboxOption>;
31
33
  export type ComboboxOptionsOrOptGroups = OptionsOrGroups<ComboboxOption, ComboboxOptionsGroup>;
@@ -47,6 +47,10 @@ export interface CustomReactSelectProps<IsMulti extends boolean> extends PickedR
47
47
  * @default 'en'
48
48
  */
49
49
  lang?: ComboboxLanguage;
50
+ /** Keeps the menu open or always closed, useful for specific testing scenarios.
51
+ * @default undefined
52
+ */
53
+ menuIsOpen?: boolean | undefined;
50
54
  /** Shows an info button next to the label that triggers a popover with the passed content. */
51
55
  popoverContent?: React.ReactNode;
52
56
  /** Popover info button props:
@@ -5,6 +5,18 @@ type DecorativeLinkButtonProps = Pick<LinkButtonProps, 'iconPosition' | 'iconNam
5
5
  label?: string;
6
6
  variant?: Extract<LinkButtonProps['variant'], 'filled' | 'ghost'>;
7
7
  };
8
+ type CardClassNames = {
9
+ brandFlag?: string;
10
+ contentWrapper?: string;
11
+ descriptionWrapper?: string;
12
+ decorativeLink?: string;
13
+ flagsWrapper?: string;
14
+ footerWrapper?: string;
15
+ headerWrapper?: string;
16
+ heading?: string;
17
+ imageWrapper?: string;
18
+ metaDataWrapper?: string;
19
+ };
8
20
  export interface LinkCardProps extends AnchorHTMLAttributes<HTMLAnchorElement | HTMLDivElement> {
9
21
  /**
10
22
  * The `heading` prop can either be a simple `string` or an object with specific properties.
@@ -20,13 +32,19 @@ export interface LinkCardProps extends AnchorHTMLAttributes<HTMLAnchorElement |
20
32
  /** Orange brand flag text displayed on the image. */
21
33
  brandFlag?: string;
22
34
  /**
23
- * ClassName for the content container inside the card.
24
- */
25
- classNameContent?: string;
26
- /**
27
- * ClassName for the card wrapper element.
35
+ * ClassNames for various parts of the LinkCard can be provided via the `cardClassNames` prop.
36
+ * - `brandFlag?: string` className for the brand flag element.
37
+ * - `contentWrapper?: string` className for the content wrapper element.
38
+ * - `descriptionWrapper?: string` className for the description wrapper element.
39
+ * - `decorativeLink?: string` className for the decorative link button element.
40
+ * - `flagsWrapper?: string` className for the flags wrapper element.
41
+ * - `footerWrapper?: string` className for the footer wrapper element.
42
+ * - `headerWrapper?: string` className for the header wrapper element.
43
+ * - `heading?: string` className for the heading element.
44
+ * - `imageWrapper?: string` className for the image wrapper element.
45
+ * - `metaDataWrapper?: string` className for the meta data wrapper element.
28
46
  */
29
- classNameWrapper?: string;
47
+ cardClassNames?: CardClassNames;
30
48
  /**
31
49
  * Props for the decorative link button optionally displayed at the bottom of the card.
32
50
  *
@@ -52,11 +70,6 @@ export interface LinkCardProps extends AnchorHTMLAttributes<HTMLAnchorElement |
52
70
  href?: string;
53
71
  /** Image element to be displayed within the card. */
54
72
  img?: React.ReactNode;
55
- /**
56
- * Makes the card layout responsive.
57
- * @default true
58
- */
59
- isResponsive?: boolean;
60
73
  /** Link component to be used for the navigation. */
61
74
  linkComponent?: React.ReactElement<React.AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement> & {
62
75
  onClick?: () => void;
@@ -71,10 +84,13 @@ export interface LinkCardProps extends AnchorHTMLAttributes<HTMLAnchorElement |
71
84
  orientation?: 'vertical' | 'horizontal';
72
85
  }
73
86
  /**
74
- * A simple, responsive & accessible Card component that can be used as a link to navigate to other pages.
87
+ * A simple, accessible Card component that can be used as a link to navigate to other pages.
75
88
  * The entire card is clickable and follows accessibility best practices.
76
89
  *
77
90
  * Design in Figma: [Link Card](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=26075-11591&p=f&t=WDN78eWtKR9F8yYp-11)
78
91
  */
79
- export declare const DSLinkCard: ({ heading, brandFlag, className, classNameContent, classNameWrapper, decorativeLinkButtonProps, description, flagListAriaLabel, flags, href, img, isResponsive, linkComponent, metaData, orientation, ...rest }: LinkCardProps) => JSX.Element;
92
+ export declare const DSLinkCard: {
93
+ ({ heading, brandFlag, className, cardClassNames, decorativeLinkButtonProps, description, flagListAriaLabel, flags, href, img, linkComponent, metaData, orientation, ...rest }: LinkCardProps): JSX.Element;
94
+ displayName: string;
95
+ };
80
96
  export {};
@@ -5,6 +5,6 @@ export type CardHeading = string | {
5
5
  headingSize?: HeadingSize;
6
6
  headingTag?: HeadingTag;
7
7
  };
8
- type ValidationProps = Pick<LinkCardProps, 'href' | 'linkComponent' | 'flags' | 'flagListAriaLabel' | 'heading' | 'isResponsive' | 'orientation' | 'img' | 'brandFlag'>;
9
- export declare const validateLinkCardProps: ({ href, linkComponent, flags, flagListAriaLabel, heading, isResponsive, orientation, img, brandFlag, }: ValidationProps) => void;
8
+ type ValidationProps = Pick<LinkCardProps, 'href' | 'linkComponent' | 'flags' | 'flagListAriaLabel' | 'heading' | 'img' | 'brandFlag'>;
9
+ export declare const validateLinkCardProps: ({ href, linkComponent, flags, flagListAriaLabel, heading, img, brandFlag, }: ValidationProps) => void;
10
10
  export {};
@@ -3,7 +3,7 @@ import "react/jsx-runtime";
3
3
  import "./chunks/index.D-sRdssb.js";
4
4
  import "./chunks/index.DL9mof6u.js";
5
5
  import "react";
6
- import { c as f } from "./chunks/CustomReactSelect.D4kopDzX.js";
6
+ import { c as f } from "./chunks/CustomReactSelect.DS9Ey-jr.js";
7
7
  import "./chunks/useBreakpoint.1txsny17.js";
8
8
  import "./asterisk.B2ih8VwF.js";
9
9
  import "./chunks/Icon.CDLyB7Pv.js";
package/index.es.js CHANGED
@@ -11,8 +11,8 @@ import { D as Y, v as j } from "./chunks/Checkbox.D5X5T6Yg.js";
11
11
  import { D as z, v as J } from "./chunks/CheckboxGroup.BIspWqeW.js";
12
12
  import { DSChipGroup as $ } from "./chipgroup.CY3pWyLO.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.DIp5hdRH.js";
14
- import { DSCombobox as pa } from "./combobox.C2XUM4fM.js";
15
- import { C as _a, b as Da, a as Aa, D as la, v as na } from "./chunks/CustomReactSelect.D4kopDzX.js";
14
+ import { DSCombobox as pa } from "./combobox.Ds2prR5y.js";
15
+ import { C as _a, b as Da, a as Aa, D as la, v as na } from "./chunks/CustomReactSelect.DS9Ey-jr.js";
16
16
  import { D as Oa, v as da } from "./chunks/Dialog.DMxHRrxo.js";
17
17
  import { a as va, D as Pa, v as Ca } from "./chunks/Drawer.CatmvDHJ.js";
18
18
  import { D as ua, v as La } from "./chunks/Fieldset.Bk8W5h13.js";
@@ -29,7 +29,7 @@ import { D as Oe, v as de } from "./chunks/InputPassword.Ctb0xbwg.js";
29
29
  import { D as ve, i as Pe, v as Ce } from "./chunks/InputSearch.C-r5ktR8.js";
30
30
  import { DSLink as ue } from "./link.BtZeNdii.js";
31
31
  import { D as ce, L as Re, a as fe, v as ge } from "./chunks/LinkButton.CWibqvhs.js";
32
- import { D as Be, v as be } from "./chunks/LinkCard.BjXQ85ZH.js";
32
+ import { D as Be, v as be } from "./chunks/LinkCard.SIrSjRNL.js";
33
33
  import { DSLogo as Ge } from "./logo.DprmD8HU.js";
34
34
  import { D as He, u as Fe, v as Ve, a as Xe } from "./chunks/MegaMenu.qttkjGbD.js";
35
35
  import { D as Ze, N as Ke, a as ye, v as we } from "./chunks/NavigationTabs.SBNLx87A.js";
@@ -6,7 +6,7 @@ import "react";
6
6
  import "./flag.CE32qHPa.js";
7
7
  import "./heading.DHLpT4dc.js";
8
8
  import "./chunks/LinkButton.CWibqvhs.js";
9
- import { D as s } from "./chunks/LinkCard.BjXQ85ZH.js";
9
+ import { D as s } from "./chunks/LinkCard.SIrSjRNL.js";
10
10
  export {
11
11
  s as DSLinkCard
12
12
  };
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.37",
4
+ "version": "1.0.0-RC.39",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://designsystem.stihl.de/",
7
7
  "keywords": [
@@ -95,11 +95,11 @@
95
95
  "@emotion/styled": "^11.14.1",
96
96
  "@floating-ui/react": "^0.27.16",
97
97
  "@juggle/resize-observer": "^3.4.0",
98
- "@playwright/test": "^1.56.0",
99
- "@storybook/addon-a11y": "^9.1.8",
100
- "@storybook/addon-docs": "9.1.8",
101
- "@storybook/addon-links": "^9.1.8",
102
- "@storybook/react-vite": "^9.1.8",
98
+ "@playwright/test": "^1.57.0",
99
+ "@storybook/addon-a11y": "^9.1.17",
100
+ "@storybook/addon-docs": "9.1.17",
101
+ "@storybook/addon-links": "^9.1.17",
102
+ "@storybook/react-vite": "^9.1.17",
103
103
  "@storybook/test-runner": "^0.23.0",
104
104
  "@testing-library/jest-dom": "^6.8.0",
105
105
  "@testing-library/react": "^16.3.0",
@@ -119,7 +119,7 @@
119
119
  "concurrently": "^9.2.1",
120
120
  "eslint": "^9.36.0",
121
121
  "eslint-plugin-react": "^7.37.5",
122
- "eslint-plugin-storybook": "^9.1.8",
122
+ "eslint-plugin-storybook": "^9.1.17",
123
123
  "globals": "^16.4.0",
124
124
  "globby": "^14.1.0",
125
125
  "http-server": "^14.1.1",
@@ -133,7 +133,7 @@
133
133
  "react-intersection-observer": "^9.16.0",
134
134
  "react-syntax-highlighter": "^15.6.6",
135
135
  "sass": "^1.93.2",
136
- "storybook": "^9.1.8",
136
+ "storybook": "^9.1.17",
137
137
  "typescript": "^5.9.2",
138
138
  "vite": "^7.1.7",
139
139
  "vite-plugin-dts": "^4.5.4",
package/partials/index.js CHANGED
@@ -206,8 +206,8 @@ function f(r, a) {
206
206
  {
207
207
  componentName: "DSLinkCard",
208
208
  componentNameLowercase: "linkcard",
209
- cssFileName: "LinkCard.DgC0-Ow5.css",
210
- cssFileContent: ':where(.ds-link-card_root_1v6ea_1){height:inherit}:where(.ds-link-card_root--responsive_1v6ea_4){container-type:inline-size;container-name:card-orientation}@container card-orientation (width > 687px){:where(.ds-link-card_root--responsive_1v6ea_4) :where(.ds-link-card_wrapper_1v6ea_9){grid-template-rows:unset;grid-auto-columns:auto 1fr;grid-auto-flow:column;width:100%}:where(.ds-link-card_root--responsive_1v6ea_4) :where(.ds-link-card_wrapper_1v6ea_9) :where(img){border-top-right-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;aspect-ratio:1/1}:where(.ds-link-card_root--responsive_1v6ea_4) :where(.ds-link-card_wrapper_1v6ea_9) :where(.ds-link-card_content_1v6ea_21){padding:32px}}:where(.ds-link-card_root--responsive_1v6ea_4) :where(.ds-link-card_wrapper_1v6ea_9){container-type:inline-size;container-name:card-content}@container card-content (width > 859px){:where(.ds-link-card_root--responsive_1v6ea_4) :where(.ds-link-card_content_1v6ea_21){display:grid;grid-template-columns:2fr 1fr;gap:64px;width:100%}:where(.ds-link-card_root--responsive_1v6ea_4) :where(.ds-link-card_content_1v6ea_21) :where(.ds-link-card_footer_1v6ea_36){margin-block-start:unset;align-items:flex-end;text-align:right}:where(.ds-link-card_root--responsive_1v6ea_4) :where(.ds-link-card_content_1v6ea_21) :where(.ds-link-card_flags_1v6ea_41){justify-content:flex-end}}:where(.ds-link-card_root--horizontal_1v6ea_45) :where(.ds-link-card_wrapper_1v6ea_9){grid-template-rows:unset;grid-auto-columns:auto 1fr;grid-auto-flow:column;width:100%}:where(.ds-link-card_root--horizontal_1v6ea_45) :where(.ds-link-card_wrapper_1v6ea_9) :where(img){border-top-right-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;aspect-ratio:1/1}:where(.ds-link-card_root--horizontal_1v6ea_45) :where(.ds-link-card_wrapper_1v6ea_9) :where(.ds-link-card_content_1v6ea_21){padding:32px}:where(.ds-link-card_wrapper_1v6ea_9){position:relative;cursor:pointer;background-color:#fff;border-radius:4px;display:grid;grid-template-rows:auto 1fr;height:inherit;min-width:13rem;max-width:89.6875rem}:where(.ds-link-card_wrapper_1v6ea_9):hover{box-shadow:0 8px 48px #0000001a,0 2px 4px #0000000a}:where(.ds-link-card_wrapper_1v6ea_9) a:after{content:"";position:absolute;z-index:1;cursor:pointer;inset:0}:where(.ds-link-card_wrapper_1v6ea_9) a:focus{outline:2px solid;outline-color:#252525;outline-offset:2px}@media screen and (forced-colors: active){:where(.ds-link-card_wrapper_1v6ea_9) a:focus{forced-color-adjust:auto;outline-color:Highlight}}:where(.ds-link-card_wrapper_1v6ea_9):has(:focus-visible) a:after{outline:2px solid;outline-color:#252525;outline-offset:2px}@media screen and (forced-colors: active){:where(.ds-link-card_wrapper_1v6ea_9):has(:focus-visible) a:after{forced-color-adjust:auto;outline-color:Highlight}}:where(.ds-link-card_wrapper_1v6ea_9):has(:focus-within) a:focus{outline:none}:where(.ds-link-card_wrapper_1v6ea_9){box-shadow:0 2px 12px #00000014,0 1px 2px #00000029}@media screen and (forced-colors: active){:where(.ds-link-card_wrapper_1v6ea_9){border:1px solid CanvasText}}:where(.ds-link-card_wrapper_1v6ea_9) :where(img){border-top-left-radius:4px;border-top-right-radius:4px;object-fit:cover;max-width:100%;width:100%;height:100%;aspect-ratio:16/9;display:block}:where(.ds-link-card_content_1v6ea_21){display:flex;flex-direction:column;gap:16px;padding:24px;order:1}:where(.ds-link-card_header_1v6ea_134),:where(.ds-link-card_footer_1v6ea_36){display:flex;flex-direction:column;align-items:flex-start;gap:16px}:where(.ds-link-card_footer_1v6ea_36){margin-block-start:auto}:where(.ds-link-card_heading_1v6ea_146){margin:0}:where(.ds-link-card_link_1v6ea_150){text-decoration:none;color:#252525}:where(.ds-link-card_description_1v6ea_155){overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-family:STIHL Contraface Digital Text Regular,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-style:normal;font-variant:normal;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;font-weight:400;font-size:1rem;line-height:1.5;font-size-adjust:.414}:where(.ds-link-card_meta-data_1v6ea_172){overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-family:STIHL Contraface Digital Text Regular,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-style:normal;font-variant:normal;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;font-weight:400;font-size:.875rem;line-height:1.14;font-size-adjust:.414}:where(.ds-link-card_flags_1v6ea_41){display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}:where(.ds-link-card_brand-flag_1v6ea_198){position:absolute;top:8px;left:8px}'
209
+ cssFileName: "LinkCard.Bi9QqIDA.css",
210
+ cssFileContent: ':where(.ds-link-card_root_h40nd_1){background-color:#fff;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;height:fit-content;min-width:13rem;max-width:42.9375rem;position:relative;box-shadow:0 2px 12px #00000014,0 1px 2px #00000029}@media screen and (forced-colors: active){:where(.ds-link-card_root_h40nd_1){border:1px solid CanvasText}}:where(.ds-link-card_root_h40nd_1):hover{box-shadow:0 2px 12px #00000029,0 1px 2px #0003}:where(.ds-link-card_root_h40nd_1) a:after{content:"";position:absolute;z-index:1;cursor:pointer;inset:0}:where(.ds-link-card_root_h40nd_1) a:focus{outline:2px solid;outline-color:#252525;outline-offset:2px}@media screen and (forced-colors: active){:where(.ds-link-card_root_h40nd_1) a:focus{forced-color-adjust:auto;outline-color:Highlight}}:where(.ds-link-card_root_h40nd_1):has(:focus-visible) a:after{outline:2px solid;outline-color:#252525;outline-offset:2px}@media screen and (forced-colors: active){:where(.ds-link-card_root_h40nd_1):has(:focus-visible) a:after{forced-color-adjust:auto;outline-color:Highlight}}:where(.ds-link-card_root_h40nd_1):has(:focus-within) a:focus{outline:none}:where(.ds-link-card_root--horizontal_h40nd_53){flex-direction:row;width:100%;max-width:89.6875rem}:where(.ds-link-card_root--horizontal_h40nd_53) :where(.ds-link-card_image-wrapper_h40nd_58){aspect-ratio:1/1;max-width:21.5625rem}:where(.ds-link-card_root--horizontal_h40nd_53) :where(.ds-link-card_image-wrapper_h40nd_58) img{border-top-right-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;aspect-ratio:1/1}:where(.ds-link-card_root--horizontal_h40nd_53) :where(.ds-link-card_content_h40nd_68){padding:32px;height:auto}:where(.ds-link-card_image-wrapper_h40nd_58){width:100%;height:auto;aspect-ratio:16/9}:where(.ds-link-card_image-wrapper_h40nd_58) img{border-top-left-radius:4px;border-top-right-radius:4px;width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:16/9}:where(.ds-link-card_content_h40nd_68){display:flex;flex-direction:column;gap:24px;padding:24px;height:100%;order:1}:where(.ds-link-card_header_h40nd_97),:where(.ds-link-card_footer_h40nd_98){display:flex;flex-direction:column;align-items:flex-start;gap:16px}:where(.ds-link-card_footer_h40nd_98){margin-block-start:auto}:where(.ds-link-card_heading_h40nd_109){margin:0}:where(.ds-link-card_link_h40nd_113){text-decoration:none;color:#252525}:where(.ds-link-card_description_h40nd_118){overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-family:STIHL Contraface Digital Text Regular,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-style:normal;font-variant:normal;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;font-weight:400;font-size:1rem;line-height:1.5;font-size-adjust:.414}:where(.ds-link-card_meta-data_h40nd_135){overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-family:STIHL Contraface Digital Text Regular,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-style:normal;font-variant:normal;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;font-weight:400;font-size:.875rem;line-height:1.14;font-size-adjust:.414}:where(.ds-link-card_decorative-link_h40nd_152){margin-block-start:4px}:where(.ds-link-card_flags_h40nd_156){display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}:where(.ds-link-card_brand-flag_h40nd_165){position:absolute;top:8px;left:8px}'
211
211
  },
212
212
  {
213
213
  componentName: "DSLogo",
@@ -3,6 +3,11 @@
3
3
  0px 2px 12px 0px rgba(0, 0, 0, 0.08),
4
4
  0px 1px 2px 0px rgba(0, 0, 0, 0.16);
5
5
  }
6
+ @mixin shadow-m-hover {
7
+ box-shadow:
8
+ 0px 2px 12px 0px rgba(0, 0, 0, 0.16),
9
+ 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
10
+ }
6
11
  @mixin shadow-l {
7
12
  box-shadow:
8
13
  0px 8px 48px 0px rgba(0, 0, 0, 0.1),
@@ -1 +0,0 @@
1
- .ds-link-card_root_1v6ea_1{height:inherit}.ds-link-card_root--responsive_1v6ea_4{container-type:inline-size;container-name:card-orientation}@container card-orientation (width > 687px){.ds-link-card_root--responsive_1v6ea_4 .ds-link-card_wrapper_1v6ea_9{grid-template-rows:unset;grid-auto-columns:auto 1fr;grid-auto-flow:column;width:100%}.ds-link-card_root--responsive_1v6ea_4 .ds-link-card_wrapper_1v6ea_9 :where(img){border-top-right-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;aspect-ratio:1/1}.ds-link-card_root--responsive_1v6ea_4 .ds-link-card_wrapper_1v6ea_9 .ds-link-card_content_1v6ea_21{padding:32px}}.ds-link-card_root--responsive_1v6ea_4 .ds-link-card_wrapper_1v6ea_9{container-type:inline-size;container-name:card-content}@container card-content (width > 859px){.ds-link-card_root--responsive_1v6ea_4 .ds-link-card_content_1v6ea_21{display:grid;grid-template-columns:2fr 1fr;gap:64px;width:100%}.ds-link-card_root--responsive_1v6ea_4 .ds-link-card_content_1v6ea_21 .ds-link-card_footer_1v6ea_36{margin-block-start:unset;align-items:flex-end;text-align:right}.ds-link-card_root--responsive_1v6ea_4 .ds-link-card_content_1v6ea_21 .ds-link-card_flags_1v6ea_41{justify-content:flex-end}}.ds-link-card_root--horizontal_1v6ea_45 .ds-link-card_wrapper_1v6ea_9{grid-template-rows:unset;grid-auto-columns:auto 1fr;grid-auto-flow:column;width:100%}.ds-link-card_root--horizontal_1v6ea_45 .ds-link-card_wrapper_1v6ea_9 :where(img){border-top-right-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;aspect-ratio:1/1}.ds-link-card_root--horizontal_1v6ea_45 .ds-link-card_wrapper_1v6ea_9 .ds-link-card_content_1v6ea_21{padding:32px}.ds-link-card_wrapper_1v6ea_9{position:relative;cursor:pointer;background-color:#fff;border-radius:4px;display:grid;grid-template-rows:auto 1fr;height:inherit;min-width:13rem;max-width:89.6875rem}.ds-link-card_wrapper_1v6ea_9:hover{box-shadow:0 8px 48px #0000001a,0 2px 4px #0000000a}.ds-link-card_wrapper_1v6ea_9 a:after{content:"";position:absolute;z-index:1;cursor:pointer;inset:0}.ds-link-card_wrapper_1v6ea_9 a:focus{outline:2px solid;outline-color:#252525;outline-offset:2px}@media screen and (forced-colors: active){.ds-link-card_wrapper_1v6ea_9 a:focus{forced-color-adjust:auto;outline-color:Highlight}}.ds-link-card_wrapper_1v6ea_9:has(:focus-visible) a:after{outline:2px solid;outline-color:#252525;outline-offset:2px}@media screen and (forced-colors: active){.ds-link-card_wrapper_1v6ea_9:has(:focus-visible) a:after{forced-color-adjust:auto;outline-color:Highlight}}.ds-link-card_wrapper_1v6ea_9:has(:focus-within) a:focus{outline:none}.ds-link-card_wrapper_1v6ea_9{box-shadow:0 2px 12px #00000014,0 1px 2px #00000029}@media screen and (forced-colors: active){.ds-link-card_wrapper_1v6ea_9{border:1px solid CanvasText}}.ds-link-card_wrapper_1v6ea_9 :where(img){border-top-left-radius:4px;border-top-right-radius:4px;object-fit:cover;max-width:100%;width:100%;height:100%;aspect-ratio:16/9;display:block}.ds-link-card_content_1v6ea_21{display:flex;flex-direction:column;gap:16px;padding:24px;order:1}.ds-link-card_header_1v6ea_134,.ds-link-card_footer_1v6ea_36{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.ds-link-card_footer_1v6ea_36{margin-block-start:auto}.ds-link-card_heading_1v6ea_146{margin:0}.ds-link-card_link_1v6ea_150{text-decoration:none;color:#252525}.ds-link-card_description_1v6ea_155{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-family:STIHL Contraface Digital Text Regular,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-style:normal;font-variant:normal;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;font-weight:400;font-size:1rem;line-height:1.5;font-size-adjust:.414}.ds-link-card_meta-data_1v6ea_172{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-family:STIHL Contraface Digital Text Regular,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-style:normal;font-variant:normal;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;font-weight:400;font-size:.875rem;line-height:1.14;font-size-adjust:.414}.ds-link-card_flags_1v6ea_41{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.ds-link-card_brand-flag_1v6ea_198{position:absolute;top:8px;left:8px}
Binary file