@krrli/cm-designsystem 1.34.2 → 1.34.4

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.
@@ -604,6 +604,10 @@
604
604
  width: auto;
605
605
  }
606
606
 
607
+ .w-fit {
608
+ width: fit-content;
609
+ }
610
+
607
611
  .w-full {
608
612
  width: 100%;
609
613
  }
@@ -755,11 +759,6 @@
755
759
  border-top-right-radius: var(--radius-2xl);
756
760
  }
757
761
 
758
- .rounded-b-none {
759
- border-bottom-right-radius: 0;
760
- border-bottom-left-radius: 0;
761
- }
762
-
763
762
  .border {
764
763
  border-style: var(--tw-border-style);
765
764
  border-width: 1px;
@@ -1684,6 +1683,10 @@
1684
1683
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1685
1684
  }
1686
1685
 
1686
+ .focus-visible\:ring-slate-300:focus-visible {
1687
+ --tw-ring-color: var(--color-slate-300);
1688
+ }
1689
+
1687
1690
  .focus-visible\:ring-violet-600:focus-visible {
1688
1691
  --tw-ring-color: var(--color-violet-600);
1689
1692
  }
@@ -17,7 +17,7 @@ export interface BaseAccessibleButtonProps {
17
17
  /**
18
18
  * Click handler for the button.
19
19
  */
20
- onClick?: () => void;
20
+ onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
21
21
  }
22
22
  interface AccessibleButtonProps extends BaseAccessibleButtonProps {
23
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AccessibleButton.d.ts","sourceRoot":"","sources":["../../../src/components/accessible-button/AccessibleButton.tsx"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAE7D;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,UAAU,qBAAsB,SAAQ,yBAAyB;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAoB5D,CAAC"}
1
+ {"version":3,"file":"AccessibleButton.d.ts","sourceRoot":"","sources":["../../../src/components/accessible-button/AccessibleButton.tsx"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAE7D;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC5D;AAED,UAAU,qBAAsB,SAAQ,yBAAyB;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAoB5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LikeToggle.d.ts","sourceRoot":"","sources":["../../../src/components/like-toggle/LikeToggle.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI1D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA0IhB,CAAC;AAEH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AAE5D,UAAU,eAAgB,SAAQ,kBAAkB;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,eAAO,MAAM,UAAU,GAAI,mCAIxB,eAAe,4CAwEjB,CAAC"}
1
+ {"version":3,"file":"LikeToggle.d.ts","sourceRoot":"","sources":["../../../src/components/like-toggle/LikeToggle.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI1D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA0IhB,CAAC;AAEH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AAE5D,UAAU,eAAgB,SAAQ,kBAAkB;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,eAAO,MAAM,UAAU,GAAI,mCAIxB,eAAe,4CAyEjB,CAAC"}
@@ -194,6 +194,7 @@ const LikeToggle = ({
194
194
  className: base(),
195
195
  pressed: selected,
196
196
  onPressedChange: handlePressedChange,
197
+ onClick: (e) => e.stopPropagation(),
197
198
  children: [
198
199
  /* @__PURE__ */ jsx(
199
200
  "span",
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA2Cb,CAAC;AAEH,KAAK,WAAW,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;CAC9C;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,QAAQ,4CAsCnC,CAAC"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAmDb,CAAC;AAEH,KAAK,WAAW,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;CAC9C;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,QAAQ,4CAsCnC,CAAC"}
@@ -5,7 +5,15 @@ import { tv } from "tailwind-variants";
5
5
  import { Label } from "../typography/Label.js";
6
6
  const tabStyles = tv({
7
7
  slots: {
8
- list: ["bg-slate-200", "rounded-lg", "p-1", "flex", "gap-2", "group"],
8
+ list: [
9
+ "bg-slate-200",
10
+ "rounded-lg",
11
+ "p-1",
12
+ "flex",
13
+ "gap-2",
14
+ "group",
15
+ "w-fit"
16
+ ],
9
17
  trigger: ["pt-2", "pb-2", "pr-3", "pl-3", "rounded-md"]
10
18
  },
11
19
  variants: {
@@ -1 +1 @@
1
- {"version":3,"file":"TimedButton.d.ts","sourceRoot":"","sources":["../../../src/components/timed-button/TimedButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAoErB,CAAC;AAEH,KAAK,mBAAmB,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,UAAU,gBACR,SAAQ,mBAAmB,EAAE,yBAAyB;IACtD;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAE1C;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAwDlD,CAAC"}
1
+ {"version":3,"file":"TimedButton.d.ts","sourceRoot":"","sources":["../../../src/components/timed-button/TimedButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAoErB,CAAC;AAEH,KAAK,mBAAmB,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,UAAU,gBACR,SAAQ,mBAAmB,EAAE,yBAAyB;IACtD;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAE1C;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0DlD,CAAC"}
@@ -91,10 +91,11 @@ const TimedButton = ({
91
91
  timeoutsRef.current = [];
92
92
  };
93
93
  }, []);
94
- const handleClick = () => {
94
+ const handleClick = (e) => {
95
+ e.stopPropagation();
95
96
  setPressed(true);
96
97
  setAnimating(true);
97
- onClick?.();
98
+ onClick?.(e);
98
99
  const timeout1 = setTimeout(() => setAnimating(false), 350);
99
100
  timeoutsRef.current.push(timeout1);
100
101
  const timeout2 = setTimeout(() => {
@@ -1,9 +1,7 @@
1
1
  import { VariantProps } from 'tailwind-variants';
2
2
  declare const PostStyles: import('tailwind-variants').TVReturnType<{
3
3
  size: {
4
- lg: {
5
- base: string[];
6
- };
4
+ lg: {};
7
5
  md: {};
8
6
  };
9
7
  }, {
@@ -14,9 +12,7 @@ declare const PostStyles: import('tailwind-variants').TVReturnType<{
14
12
  action: string[];
15
13
  }, undefined, {
16
14
  size: {
17
- lg: {
18
- base: string[];
19
- };
15
+ lg: {};
20
16
  md: {};
21
17
  };
22
18
  }, {
@@ -27,9 +23,7 @@ declare const PostStyles: import('tailwind-variants').TVReturnType<{
27
23
  action: string[];
28
24
  }, import('tailwind-variants').TVReturnType<{
29
25
  size: {
30
- lg: {
31
- base: string[];
32
- };
26
+ lg: {};
33
27
  md: {};
34
28
  };
35
29
  }, {
@@ -72,6 +66,8 @@ interface PostProps extends PostVariants {
72
66
  onLikeClick: () => void;
73
67
  /** Callback fired when the share button is clicked. */
74
68
  onShareClick: () => void;
69
+ /** Link to Detail Post */
70
+ detailLink?: string;
75
71
  }
76
72
  /**
77
73
  * Detailed post component displaying user info, text content,
@@ -1 +1 @@
1
- {"version":3,"file":"Post.d.ts","sourceRoot":"","sources":["../../../src/compositions/post/Post.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAc1D,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAmBd,CAAC;AAEH,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;AACpD,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5B,UAAU,SAAU,SAAQ,YAAY;IACtC,sDAAsD;IACtD,IAAI,EAAE,QAAQ,CAAC;IAEf,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,mDAAmD;IACnD,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAExB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B,yDAAyD;IACzD,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B,sDAAsD;IACtD,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,uDAAuD;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAgEpC,CAAC"}
1
+ {"version":3,"file":"Post.d.ts","sourceRoot":"","sources":["../../../src/compositions/post/Post.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAc1D,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAmBd,CAAC;AAEH,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;AACpD,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5B,UAAU,SAAU,SAAQ,YAAY;IACtC,sDAAsD;IACtD,IAAI,EAAE,QAAQ,CAAC;IAEf,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,mDAAmD;IACnD,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAExB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B,yDAAyD;IACzD,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B,sDAAsD;IACtD,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,uDAAuD;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;IAEzB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA2EpC,CAAC"}
@@ -26,7 +26,7 @@ const PostStyles = tv({
26
26
  },
27
27
  variants: {
28
28
  size: {
29
- lg: { base: ["rounded-b-none"] },
29
+ lg: {},
30
30
  md: {}
31
31
  }
32
32
  }
@@ -37,67 +37,78 @@ const Post = ({
37
37
  ...props
38
38
  }) => {
39
39
  const { base, avatar, content, text, action } = PostStyles(props);
40
- return /* @__PURE__ */ jsxs(PostBase, { className: base(), children: [
41
- /* @__PURE__ */ jsx("div", { className: avatar(), children: /* @__PURE__ */ jsx(
42
- Avatar,
43
- {
44
- alt: "Profile",
45
- size: "md",
46
- src: props.avatarSrc,
47
- onAvatarClick: props.onAvatarClick
48
- }
49
- ) }),
50
- /* @__PURE__ */ jsxs("div", { className: content(), children: [
51
- /* @__PURE__ */ jsx(
52
- UserInfo,
53
- {
54
- size: props.size,
55
- displayName: props.displayName,
56
- userName: props.userName,
57
- timestamp: props.timestamp,
58
- onClick: props.onAvatarClick
59
- }
60
- ),
61
- /* @__PURE__ */ jsx(Paragraph, { size: props.size, className: text(), children: renderWithHashtags(props.text) }),
62
- props.imageSrc && /* @__PURE__ */ jsx(
63
- ImageBanner,
64
- {
65
- src: props.imageSrc,
66
- alt: props.imageAlt ?? "",
67
- onClick: () => {
68
- }
69
- }
70
- ),
71
- /* @__PURE__ */ jsxs("div", { className: action(), children: [
72
- /* @__PURE__ */ jsx(
73
- Toggle,
74
- {
75
- ariaLabel: "Comment",
76
- labelText: nbrOfComments === 0 ? "Comment" : nbrOfComments === 1 ? "1 Comment" : `${nbrOfComments} Comments`,
77
- pressed: nbrOfComments !== 0,
78
- onToggle: props.onCommentClick
79
- }
80
- ),
81
- /* @__PURE__ */ jsx(
82
- LikeToggle,
40
+ const handlePostClick = () => {
41
+ if (!props.detailLink) return;
42
+ window.location.href = props.detailLink;
43
+ };
44
+ return /* @__PURE__ */ jsxs(
45
+ PostBase,
46
+ {
47
+ className: base(),
48
+ onClick: props.detailLink ? handlePostClick : void 0,
49
+ children: [
50
+ /* @__PURE__ */ jsx("div", { className: avatar(), children: /* @__PURE__ */ jsx(
51
+ Avatar,
83
52
  {
84
- pressed: props.likedBySelf ?? false,
85
- likes: nbrOfLikes,
86
- onLikeChange: props.onLikeClick
53
+ alt: "Profile",
54
+ size: "md",
55
+ src: props.avatarSrc,
56
+ onAvatarClick: props.onAvatarClick
87
57
  }
88
- ),
89
- /* @__PURE__ */ jsx(
90
- TimedButton,
91
- {
92
- icon: Share,
93
- label: "Copy Link",
94
- labelActive: "Link copied",
95
- onClick: props.onShareClick
96
- }
97
- )
98
- ] })
99
- ] })
100
- ] });
58
+ ) }),
59
+ /* @__PURE__ */ jsxs("div", { className: content(), children: [
60
+ /* @__PURE__ */ jsx(
61
+ UserInfo,
62
+ {
63
+ size: props.size,
64
+ displayName: props.displayName,
65
+ userName: props.userName,
66
+ timestamp: props.timestamp,
67
+ onClick: props.onAvatarClick
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsx(Paragraph, { size: props.size, className: text(), children: renderWithHashtags(props.text) }),
71
+ props.imageSrc && /* @__PURE__ */ jsx(
72
+ ImageBanner,
73
+ {
74
+ src: props.imageSrc,
75
+ alt: props.imageAlt ?? "",
76
+ onClick: () => {
77
+ }
78
+ }
79
+ ),
80
+ /* @__PURE__ */ jsxs("div", { className: action(), children: [
81
+ /* @__PURE__ */ jsx(
82
+ Toggle,
83
+ {
84
+ ariaLabel: "Comment",
85
+ labelText: nbrOfComments === 0 ? "Comment" : nbrOfComments === 1 ? "1 Comment" : `${nbrOfComments} Comments`,
86
+ pressed: nbrOfComments !== 0,
87
+ onToggle: props.onCommentClick
88
+ }
89
+ ),
90
+ /* @__PURE__ */ jsx(
91
+ LikeToggle,
92
+ {
93
+ pressed: props.likedBySelf ?? false,
94
+ likes: nbrOfLikes,
95
+ onLikeChange: props.onLikeClick
96
+ }
97
+ ),
98
+ /* @__PURE__ */ jsx(
99
+ TimedButton,
100
+ {
101
+ icon: Share,
102
+ label: "Copy Link",
103
+ labelActive: "Link copied",
104
+ onClick: props.onShareClick
105
+ }
106
+ )
107
+ ] })
108
+ ] })
109
+ ]
110
+ }
111
+ );
101
112
  };
102
113
  export {
103
114
  Post
@@ -32,6 +32,8 @@ export interface PostBaseProps extends PostBaseVariants {
32
32
  className?: string;
33
33
  /** Content to be rendered inside the PostBase component */
34
34
  children: React.ReactNode;
35
+ /** Navigation via onClick handler */
36
+ onClick?: () => void;
35
37
  }
36
38
  /**
37
39
  * Base layout wrapper for a post, including an avatar section
@@ -1 +1 @@
1
- {"version":3,"file":"PostBase.d.ts","sourceRoot":"","sources":["../../../src/compositions/post-base/PostBase.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;2CAgBlB,CAAC;AAEH,KAAK,gBAAgB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2DAA2D;IAC3D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAI5C,CAAC"}
1
+ {"version":3,"file":"PostBase.d.ts","sourceRoot":"","sources":["../../../src/compositions/post-base/PostBase.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;2CAiBlB,CAAC;AAEH,KAAK,gBAAgB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2DAA2D;IAC3D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4B5C,CAAC"}
@@ -12,14 +12,37 @@ const PostBaseStyles = tv({
12
12
  "flex",
13
13
  "relative",
14
14
  "w-full",
15
+ "focus-visible:ring-2",
15
16
  "hover:ring-2",
16
17
  "hover:ring-slate-200"
17
18
  ]
18
19
  }
19
20
  });
20
- const PostBase = (props) => {
21
+ const PostBase = ({
22
+ className,
23
+ onClick,
24
+ ...props
25
+ }) => {
21
26
  const { base } = PostBaseStyles(props);
22
- return /* @__PURE__ */ jsx("div", { className: cn(base(), props.className), children: props.children });
27
+ return /* @__PURE__ */ jsx(
28
+ "div",
29
+ {
30
+ className: cn(
31
+ base(),
32
+ className,
33
+ onClick ? "cursor-pointer focus-visible:ring-2 focus-visible:ring-slate-300" : void 0
34
+ ),
35
+ onClick,
36
+ tabIndex: onClick ? 0 : void 0,
37
+ onKeyDown: (e) => {
38
+ if (onClick && (e.key === "Enter" || e.key === " ")) {
39
+ e.preventDefault();
40
+ onClick();
41
+ }
42
+ },
43
+ children: props.children
44
+ }
45
+ );
23
46
  };
24
47
  export {
25
48
  PostBase
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@krrli/cm-designsystem",
3
3
  "repository": "https://github.com/ost-cas-fea-25-26/cm-designsystem",
4
- "version": "1.34.2",
4
+ "version": "1.34.4",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -49,10 +49,10 @@
49
49
  "@chromatic-com/storybook": "4.1.3",
50
50
  "@eslint/js": "9.39.2",
51
51
  "@playwright/test": "1.57.0",
52
- "@storybook/addon-a11y": "10.1.9",
53
- "@storybook/addon-docs": "10.1.9",
54
- "@storybook/addon-vitest": "10.1.9",
55
- "@storybook/react-vite": "10.1.9",
52
+ "@storybook/addon-a11y": "10.1.10",
53
+ "@storybook/addon-docs": "10.1.10",
54
+ "@storybook/addon-vitest": "10.1.10",
55
+ "@storybook/react-vite": "10.1.10",
56
56
  "@tailwindcss/vite": "4.1.18",
57
57
  "@testing-library/dom": "10.4.1",
58
58
  "@testing-library/jest-dom": "6.9.1",
@@ -73,7 +73,7 @@
73
73
  "eslint-plugin-react": "7.37.5",
74
74
  "eslint-plugin-react-hooks": "7.0.1",
75
75
  "eslint-plugin-react-refresh": "0.4.26",
76
- "eslint-plugin-storybook": "10.1.9",
76
+ "eslint-plugin-storybook": "10.1.10",
77
77
  "eslint-plugin-unused-imports": "4.3.0",
78
78
  "globals": "16.5.0",
79
79
  "jsdom": "27.3.0",
@@ -83,7 +83,7 @@
83
83
  "prettier-plugin-tailwindcss": "0.7.2",
84
84
  "rollup-preserve-directives": "1.1.3",
85
85
  "semantic-release": "25.0.2",
86
- "storybook": "10.1.9",
86
+ "storybook": "10.1.10",
87
87
  "tailwind-merge": "3.4.0",
88
88
  "tailwindcss": "4.1.18",
89
89
  "typescript": "5.9.3",