@krrli/cm-designsystem 1.32.0 → 1.32.2
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/assets/fallback.png.js +4 -0
- package/dist/cm-designsystem.css +1944 -1
- package/dist/components/accessible-button/AccessibleButton.js +29 -11
- package/dist/components/avatar/Avatar.js +91 -65
- package/dist/components/branding/BrandingGallery.js +212 -145
- package/dist/components/branding/app-icon-gradient.svg.js +4 -0
- package/dist/components/branding/app-icon-white.svg.js +4 -0
- package/dist/components/branding/hover-logo-default.svg.js +4 -0
- package/dist/components/branding/hover-logo-hovered.svg.js +4 -0
- package/dist/components/branding/logo-inline-gradient.svg.js +4 -0
- package/dist/components/branding/logo-inline-violet.svg.js +4 -0
- package/dist/components/branding/logo-inline-white.svg.js +4 -0
- package/dist/components/branding/logo-stacked-gradient.svg.js +4 -0
- package/dist/components/branding/logo-stacked-violet.svg.js +4 -0
- package/dist/components/branding/logo-stacked-white.svg.js +4 -0
- package/dist/components/branding/superzeichen.svg.js +4 -0
- package/dist/components/button/Button.js +61 -55
- package/dist/components/color/ColorDoc.js +26 -7
- package/dist/components/file-upload/FileUpload.js +129 -66
- package/dist/components/form/Form.js +33 -26
- package/dist/components/icon-button/IconButton.js +33 -29
- package/dist/components/icons/IconBase.js +21 -6
- package/dist/components/icons/generated/ArrowDown.js +15 -4
- package/dist/components/icons/generated/ArrowLeft.js +15 -4
- package/dist/components/icons/generated/ArrowRight.js +15 -4
- package/dist/components/icons/generated/ArrowUp.js +15 -4
- package/dist/components/icons/generated/Calendar.js +15 -4
- package/dist/components/icons/generated/Cancel.js +12 -4
- package/dist/components/icons/generated/Checkmark.js +12 -4
- package/dist/components/icons/generated/Edit.js +9 -4
- package/dist/components/icons/generated/Eye.js +15 -4
- package/dist/components/icons/generated/Fullscreen.js +9 -4
- package/dist/components/icons/generated/HeartFilled.js +15 -4
- package/dist/components/icons/generated/HeartOutline.js +15 -4
- package/dist/components/icons/generated/Location.js +15 -4
- package/dist/components/icons/generated/LogOut.js +12 -4
- package/dist/components/icons/generated/Mumble.js +13 -4
- package/dist/components/icons/generated/Profile.js +12 -4
- package/dist/components/icons/generated/ReplyFilled.js +15 -4
- package/dist/components/icons/generated/ReplyOutline.js +15 -4
- package/dist/components/icons/generated/Repost.js +15 -4
- package/dist/components/icons/generated/Send.js +15 -4
- package/dist/components/icons/generated/Settings.js +15 -4
- package/dist/components/icons/generated/Share.js +12 -4
- package/dist/components/icons/generated/Time.js +12 -4
- package/dist/components/icons/generated/Upload.js +21 -4
- package/dist/components/input/Input.js +67 -41
- package/dist/components/like-toggle/LikeToggle.js +203 -176
- package/dist/components/logo-link/LogoLink.js +56 -34
- package/dist/components/modal/Modal.js +66 -50
- package/dist/components/navi-button/NaviButton.js +42 -30
- package/dist/components/navi-user-button/NaviUserButton.js +39 -29
- package/dist/components/round-button/RoundButton.js +39 -29
- package/dist/components/tabs/TabItem.js +11 -8
- package/dist/components/tabs/Tabs.js +74 -59
- package/dist/components/text-link/TextLink.js +14 -11
- package/dist/components/textarea/Textarea.js +57 -41
- package/dist/components/timed-button/TimedButton.js +116 -102
- package/dist/components/toggle/Toggle.js +91 -62
- package/dist/components/typography/AccessibleTypography.js +12 -9
- package/dist/components/typography/Heading.js +13 -9
- package/dist/components/typography/Label.js +13 -9
- package/dist/components/typography/Paragraph.js +13 -9
- package/dist/components/typography/Placeholder.js +13 -9
- package/dist/components/typography/ValidationMessage.js +14 -9
- package/dist/components/typography/styles.js +53 -46
- package/dist/compositions/image-banner/ImageBanner.js +53 -45
- package/dist/compositions/image-upload-modal/ImageUploadModal.js +44 -20
- package/dist/compositions/post/Post.js +81 -26
- package/dist/compositions/post-base/PostBase.js +23 -24
- package/dist/compositions/post-creator/PostCreator.js +72 -24
- package/dist/compositions/profile-banner/ProfileBanner.js +71 -21
- package/dist/compositions/profile-banner-image/ProfileBannerImage.js +60 -52
- package/dist/compositions/profile-banner-info/ProfileBannerInfo.js +72 -40
- package/dist/compositions/response/Response.js +63 -19
- package/dist/compositions/response-creator/ResponseCreator.js +67 -23
- package/dist/compositions/user-info/UserInfo.js +71 -52
- package/dist/compositions/user-recommendation/UserRecommendation.js +58 -30
- package/dist/index.js +129 -4
- package/package.json +14 -11
- package/dist/components/accessible-button/AccessibleButton.d.ts +0 -32
- package/dist/components/accessible-button/AccessibleButton.test.d.ts +0 -1
- package/dist/components/accessible-button/AccessibleButton.test.js +0 -28
- package/dist/components/avatar/Avatar.d.ts +0 -118
- package/dist/components/branding/BrandingGallery.d.ts +0 -1
- package/dist/components/button/Button.d.ts +0 -66
- package/dist/components/button/Button.test.d.ts +0 -1
- package/dist/components/button/Button.test.js +0 -30
- package/dist/components/color/ColorDoc.d.ts +0 -4
- package/dist/components/file-upload/FileUpload.d.ts +0 -83
- package/dist/components/form/Form.d.ts +0 -54
- package/dist/components/icon-button/IconButton.d.ts +0 -69
- package/dist/components/icon-button/IconButton.test.d.ts +0 -1
- package/dist/components/icon-button/IconButton.test.js +0 -22
- package/dist/components/icons/IconBase.d.ts +0 -5
- package/dist/components/icons/generated/ArrowDown.d.ts +0 -3
- package/dist/components/icons/generated/ArrowLeft.d.ts +0 -3
- package/dist/components/icons/generated/ArrowRight.d.ts +0 -3
- package/dist/components/icons/generated/ArrowUp.d.ts +0 -3
- package/dist/components/icons/generated/Calendar.d.ts +0 -3
- package/dist/components/icons/generated/Cancel.d.ts +0 -3
- package/dist/components/icons/generated/Checkmark.d.ts +0 -3
- package/dist/components/icons/generated/Edit.d.ts +0 -3
- package/dist/components/icons/generated/Eye.d.ts +0 -3
- package/dist/components/icons/generated/Fullscreen.d.ts +0 -3
- package/dist/components/icons/generated/HeartFilled.d.ts +0 -3
- package/dist/components/icons/generated/HeartOutline.d.ts +0 -3
- package/dist/components/icons/generated/Location.d.ts +0 -3
- package/dist/components/icons/generated/LogOut.d.ts +0 -3
- package/dist/components/icons/generated/Mumble.d.ts +0 -3
- package/dist/components/icons/generated/Profile.d.ts +0 -3
- package/dist/components/icons/generated/ReplyFilled.d.ts +0 -3
- package/dist/components/icons/generated/ReplyOutline.d.ts +0 -3
- package/dist/components/icons/generated/Repost.d.ts +0 -3
- package/dist/components/icons/generated/Send.d.ts +0 -3
- package/dist/components/icons/generated/Settings.d.ts +0 -3
- package/dist/components/icons/generated/Share.d.ts +0 -3
- package/dist/components/icons/generated/Time.d.ts +0 -3
- package/dist/components/icons/generated/Upload.d.ts +0 -3
- package/dist/components/icons/generated/index.d.ts +0 -24
- package/dist/components/icons/generated/index.js +0 -24
- package/dist/components/index.d.ts +0 -27
- package/dist/components/index.js +0 -27
- package/dist/components/input/Input.d.ts +0 -61
- package/dist/components/like-toggle/LikeToggle.d.ts +0 -97
- package/dist/components/like-toggle/LikeToggle.test.d.ts +0 -1
- package/dist/components/like-toggle/LikeToggle.test.js +0 -35
- package/dist/components/logo-link/LogoLink.d.ts +0 -11
- package/dist/components/modal/Modal.d.ts +0 -75
- package/dist/components/modal/Modal.test.d.ts +0 -1
- package/dist/components/modal/Modal.test.js +0 -24
- package/dist/components/navi-button/NaviButton.d.ts +0 -49
- package/dist/components/navi-button/NaviButton.test.d.ts +0 -1
- package/dist/components/navi-button/NaviButton.test.js +0 -22
- package/dist/components/navi-user-button/NaviUserButton.d.ts +0 -44
- package/dist/components/round-button/RoundButton.d.ts +0 -44
- package/dist/components/round-button/RoundButton.test.d.ts +0 -1
- package/dist/components/round-button/RoundButton.test.js +0 -22
- package/dist/components/tabs/TabItem.d.ts +0 -11
- package/dist/components/tabs/Tabs.d.ts +0 -67
- package/dist/components/tabs/Tabs.test.d.ts +0 -1
- package/dist/components/tabs/Tabs.test.js +0 -61
- package/dist/components/text-link/TextLink.d.ts +0 -9
- package/dist/components/text-link/TextLink.test.d.ts +0 -1
- package/dist/components/text-link/TextLink.test.js +0 -14
- package/dist/components/textarea/Textarea.d.ts +0 -48
- package/dist/components/timed-button/TimedButton.d.ts +0 -79
- package/dist/components/timed-button/TimedButton.test.d.ts +0 -1
- package/dist/components/timed-button/TimedButton.test.js +0 -36
- package/dist/components/toggle/Toggle.d.ts +0 -62
- package/dist/components/toggle/Toggle.test.d.ts +0 -1
- package/dist/components/toggle/Toggle.test.js +0 -93
- package/dist/components/typography/AccessibleTypography.d.ts +0 -33
- package/dist/components/typography/Heading.d.ts +0 -24
- package/dist/components/typography/Label.d.ts +0 -22
- package/dist/components/typography/Paragraph.d.ts +0 -22
- package/dist/components/typography/Placeholder.d.ts +0 -17
- package/dist/components/typography/ValidationMessage.d.ts +0 -22
- package/dist/components/typography/styles.d.ts +0 -74
- package/dist/compositions/image-banner/ImageBanner.d.ts +0 -54
- package/dist/compositions/image-upload-modal/ImageUploadModal.d.ts +0 -15
- package/dist/compositions/index.d.ts +0 -11
- package/dist/compositions/index.js +0 -11
- package/dist/compositions/post/Post.d.ts +0 -75
- package/dist/compositions/post-base/PostBase.d.ts +0 -41
- package/dist/compositions/post-creator/PostCreator.d.ts +0 -69
- package/dist/compositions/profile-banner/ProfileBanner.d.ts +0 -82
- package/dist/compositions/profile-banner-image/ProfileBannerImage.d.ts +0 -54
- package/dist/compositions/profile-banner-info/ProfileBannerInfo.d.ts +0 -92
- package/dist/compositions/response/Response.d.ts +0 -75
- package/dist/compositions/response-creator/ResponseCreator.d.ts +0 -63
- package/dist/compositions/user-info/UserInfo.d.ts +0 -75
- package/dist/compositions/user-recommendation/UserRecommendation.d.ts +0 -63
- package/dist/favicon.svg +0 -18
- package/dist/index.d.ts +0 -3
- package/dist/index.es.js +0 -8343
- package/dist/logo-inline-gradient.svg +0 -43
- package/dist/setupTests.d.ts +0 -1
- package/dist/setupTests.js +0 -7
|
@@ -1,34 +1,62 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { tv } from "tailwind-variants";
|
|
3
|
-
import { Avatar } from "../../components/avatar/Avatar";
|
|
4
|
-
import { Button } from "../../components/button/Button";
|
|
5
|
-
import { IconButton } from "../../components/icon-button/IconButton";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { Avatar } from "../../components/avatar/Avatar.js";
|
|
4
|
+
import { Button } from "../../components/button/Button.js";
|
|
5
|
+
import { IconButton } from "../../components/icon-button/IconButton.js";
|
|
6
|
+
import { Label } from "../../components/typography/Label.js";
|
|
7
|
+
import { Mumble } from "../../components/icons/generated/Mumble.js";
|
|
8
|
+
import { Profile } from "../../components/icons/generated/Profile.js";
|
|
8
9
|
const userRecommendationStyles = tv({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
slots: {
|
|
11
|
+
base: [
|
|
12
|
+
"flex",
|
|
13
|
+
"flex-col",
|
|
14
|
+
"gap-4",
|
|
15
|
+
"items-center",
|
|
16
|
+
"p-4",
|
|
17
|
+
"bg-white",
|
|
18
|
+
"rounded-2xl"
|
|
19
|
+
],
|
|
20
|
+
userInfo: ["flex", "flex-col", "gap-2", "items-center"],
|
|
21
|
+
displayName: ["text-slate-900", "**:cursor-pointer"]
|
|
22
|
+
}
|
|
22
23
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
const UserRecommendation = (props) => {
|
|
25
|
+
const { base, userInfo, displayName } = userRecommendationStyles(props);
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", { className: base(), children: [
|
|
27
|
+
/* @__PURE__ */ jsx(
|
|
28
|
+
Avatar,
|
|
29
|
+
{
|
|
30
|
+
alt: "Profile",
|
|
31
|
+
size: "lg",
|
|
32
|
+
src: props.src,
|
|
33
|
+
onAvatarClick: props.onProfileClick
|
|
34
|
+
}
|
|
35
|
+
),
|
|
36
|
+
/* @__PURE__ */ jsxs("div", { className: userInfo(), children: [
|
|
37
|
+
/* @__PURE__ */ jsx("button", { onClick: props.onProfileClick, className: displayName(), children: /* @__PURE__ */ jsx(Label, { size: "lg", children: props.displayName }) }),
|
|
38
|
+
/* @__PURE__ */ jsx(
|
|
39
|
+
IconButton,
|
|
40
|
+
{
|
|
41
|
+
icon: Profile,
|
|
42
|
+
intent: "secondary",
|
|
43
|
+
onClick: props.onProfileClick,
|
|
44
|
+
children: props.userName
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
] }),
|
|
48
|
+
/* @__PURE__ */ jsx(
|
|
49
|
+
Button,
|
|
50
|
+
{
|
|
51
|
+
icon: Mumble,
|
|
52
|
+
intent: "secondary",
|
|
53
|
+
onClick: props.onFollowClick,
|
|
54
|
+
size: "md",
|
|
55
|
+
children: props.label
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] });
|
|
59
|
+
};
|
|
60
|
+
export {
|
|
61
|
+
UserRecommendation
|
|
34
62
|
};
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,129 @@
|
|
|
1
|
-
|
|
2
|
-
import "./
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/* empty css */
|
|
2
|
+
import { Avatar } from "./components/avatar/Avatar.js";
|
|
3
|
+
import { BrandingGallery } from "./components/branding/BrandingGallery.js";
|
|
4
|
+
import { Button } from "./components/button/Button.js";
|
|
5
|
+
import { ColorDoc } from "./components/color/ColorDoc.js";
|
|
6
|
+
import { FileUpload } from "./components/file-upload/FileUpload.js";
|
|
7
|
+
import { Form, FormAction, FormFields } from "./components/form/Form.js";
|
|
8
|
+
import { IconButton } from "./components/icon-button/IconButton.js";
|
|
9
|
+
import { IconBase } from "./components/icons/IconBase.js";
|
|
10
|
+
import { ArrowDown } from "./components/icons/generated/ArrowDown.js";
|
|
11
|
+
import { ArrowLeft } from "./components/icons/generated/ArrowLeft.js";
|
|
12
|
+
import { ArrowRight } from "./components/icons/generated/ArrowRight.js";
|
|
13
|
+
import { ArrowUp } from "./components/icons/generated/ArrowUp.js";
|
|
14
|
+
import { Calendar } from "./components/icons/generated/Calendar.js";
|
|
15
|
+
import { Cancel } from "./components/icons/generated/Cancel.js";
|
|
16
|
+
import { Checkmark } from "./components/icons/generated/Checkmark.js";
|
|
17
|
+
import { Edit } from "./components/icons/generated/Edit.js";
|
|
18
|
+
import { Eye } from "./components/icons/generated/Eye.js";
|
|
19
|
+
import { Fullscreen } from "./components/icons/generated/Fullscreen.js";
|
|
20
|
+
import { HeartFilled } from "./components/icons/generated/HeartFilled.js";
|
|
21
|
+
import { HeartOutline } from "./components/icons/generated/HeartOutline.js";
|
|
22
|
+
import { Location } from "./components/icons/generated/Location.js";
|
|
23
|
+
import { LogOut } from "./components/icons/generated/LogOut.js";
|
|
24
|
+
import { Mumble } from "./components/icons/generated/Mumble.js";
|
|
25
|
+
import { Profile } from "./components/icons/generated/Profile.js";
|
|
26
|
+
import { ReplyFilled } from "./components/icons/generated/ReplyFilled.js";
|
|
27
|
+
import { ReplyOutline } from "./components/icons/generated/ReplyOutline.js";
|
|
28
|
+
import { Repost } from "./components/icons/generated/Repost.js";
|
|
29
|
+
import { Send } from "./components/icons/generated/Send.js";
|
|
30
|
+
import { Settings } from "./components/icons/generated/Settings.js";
|
|
31
|
+
import { Share } from "./components/icons/generated/Share.js";
|
|
32
|
+
import { Time } from "./components/icons/generated/Time.js";
|
|
33
|
+
import { Upload } from "./components/icons/generated/Upload.js";
|
|
34
|
+
import { Input } from "./components/input/Input.js";
|
|
35
|
+
import { LikeToggle } from "./components/like-toggle/LikeToggle.js";
|
|
36
|
+
import { LogoLink } from "./components/logo-link/LogoLink.js";
|
|
37
|
+
import { Modal, ModalActions, ModalBody } from "./components/modal/Modal.js";
|
|
38
|
+
import { NaviButton } from "./components/navi-button/NaviButton.js";
|
|
39
|
+
import { NaviUserButton } from "./components/navi-user-button/NaviUserButton.js";
|
|
40
|
+
import { RoundButton } from "./components/round-button/RoundButton.js";
|
|
41
|
+
import { TabItem } from "./components/tabs/TabItem.js";
|
|
42
|
+
import { Tabs } from "./components/tabs/Tabs.js";
|
|
43
|
+
import { TextLink } from "./components/text-link/TextLink.js";
|
|
44
|
+
import { Textarea } from "./components/textarea/Textarea.js";
|
|
45
|
+
import { TimedButton } from "./components/timed-button/TimedButton.js";
|
|
46
|
+
import { Toggle } from "./components/toggle/Toggle.js";
|
|
47
|
+
import { Heading } from "./components/typography/Heading.js";
|
|
48
|
+
import { Label } from "./components/typography/Label.js";
|
|
49
|
+
import { Paragraph } from "./components/typography/Paragraph.js";
|
|
50
|
+
import { Placeholder } from "./components/typography/Placeholder.js";
|
|
51
|
+
import { ValidationMessage } from "./components/typography/ValidationMessage.js";
|
|
52
|
+
import { ImageBanner } from "./compositions/image-banner/ImageBanner.js";
|
|
53
|
+
import { ImageUploadModal } from "./compositions/image-upload-modal/ImageUploadModal.js";
|
|
54
|
+
import { Post } from "./compositions/post/Post.js";
|
|
55
|
+
import { PostCreator } from "./compositions/post-creator/PostCreator.js";
|
|
56
|
+
import { ProfileBanner } from "./compositions/profile-banner/ProfileBanner.js";
|
|
57
|
+
import { ProfileBannerImage } from "./compositions/profile-banner-image/ProfileBannerImage.js";
|
|
58
|
+
import { ProfileBannerInfo } from "./compositions/profile-banner-info/ProfileBannerInfo.js";
|
|
59
|
+
import { Response } from "./compositions/response/Response.js";
|
|
60
|
+
import { ResponseCreator } from "./compositions/response-creator/ResponseCreator.js";
|
|
61
|
+
import { UserInfo } from "./compositions/user-info/UserInfo.js";
|
|
62
|
+
import { UserRecommendation } from "./compositions/user-recommendation/UserRecommendation.js";
|
|
63
|
+
export {
|
|
64
|
+
ArrowDown,
|
|
65
|
+
ArrowLeft,
|
|
66
|
+
ArrowRight,
|
|
67
|
+
ArrowUp,
|
|
68
|
+
Avatar,
|
|
69
|
+
BrandingGallery,
|
|
70
|
+
Button,
|
|
71
|
+
Calendar,
|
|
72
|
+
Cancel,
|
|
73
|
+
Checkmark,
|
|
74
|
+
ColorDoc,
|
|
75
|
+
Edit,
|
|
76
|
+
Eye,
|
|
77
|
+
FileUpload,
|
|
78
|
+
Form,
|
|
79
|
+
FormAction,
|
|
80
|
+
FormFields,
|
|
81
|
+
Fullscreen,
|
|
82
|
+
Heading,
|
|
83
|
+
HeartFilled,
|
|
84
|
+
HeartOutline,
|
|
85
|
+
IconBase,
|
|
86
|
+
IconButton,
|
|
87
|
+
ImageBanner,
|
|
88
|
+
ImageUploadModal,
|
|
89
|
+
Input,
|
|
90
|
+
Label,
|
|
91
|
+
LikeToggle,
|
|
92
|
+
Location,
|
|
93
|
+
LogOut,
|
|
94
|
+
LogoLink,
|
|
95
|
+
Modal,
|
|
96
|
+
ModalActions,
|
|
97
|
+
ModalBody,
|
|
98
|
+
Mumble,
|
|
99
|
+
NaviButton,
|
|
100
|
+
NaviUserButton,
|
|
101
|
+
Paragraph,
|
|
102
|
+
Placeholder,
|
|
103
|
+
Post,
|
|
104
|
+
PostCreator,
|
|
105
|
+
Profile,
|
|
106
|
+
ProfileBanner,
|
|
107
|
+
ProfileBannerImage,
|
|
108
|
+
ProfileBannerInfo,
|
|
109
|
+
ReplyFilled,
|
|
110
|
+
ReplyOutline,
|
|
111
|
+
Repost,
|
|
112
|
+
Response,
|
|
113
|
+
ResponseCreator,
|
|
114
|
+
RoundButton,
|
|
115
|
+
Send,
|
|
116
|
+
Settings,
|
|
117
|
+
Share,
|
|
118
|
+
TabItem,
|
|
119
|
+
Tabs,
|
|
120
|
+
TextLink,
|
|
121
|
+
Textarea,
|
|
122
|
+
Time,
|
|
123
|
+
TimedButton,
|
|
124
|
+
Toggle,
|
|
125
|
+
Upload,
|
|
126
|
+
UserInfo,
|
|
127
|
+
UserRecommendation,
|
|
128
|
+
ValidationMessage
|
|
129
|
+
};
|
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@krrli/cm-designsystem",
|
|
3
|
-
"version": "1.32.
|
|
4
|
-
"
|
|
5
|
-
"dist/",
|
|
6
|
-
"dist/cm-designsystem.css"
|
|
7
|
-
],
|
|
3
|
+
"version": "1.32.2",
|
|
4
|
+
"type": "module",
|
|
8
5
|
"main": "dist/index.js",
|
|
9
|
-
"module": "dist/index.
|
|
6
|
+
"module": "dist/index.js",
|
|
10
7
|
"types": "dist/index.d.ts",
|
|
11
|
-
"
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"sideEffects": false,
|
|
12
12
|
"publishConfig": {
|
|
13
13
|
"access": "public"
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
16
|
"preflight": "npm run prettier && npm run lint && npm run typecheck && npm run build && npm run knip",
|
|
17
|
-
"build": "
|
|
17
|
+
"build": "vite build",
|
|
18
18
|
"lint": "eslint . --max-warnings 0",
|
|
19
19
|
"lint:fix": "eslint . --fix",
|
|
20
20
|
"typecheck": "npx tsc -b --noEmit",
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@radix-ui/react-accessible-icon": "1.1.8",
|
|
38
|
+
"@radix-ui/react-aspect-ratio": "1.1.8",
|
|
38
39
|
"@radix-ui/react-avatar": "1.1.11",
|
|
39
40
|
"@radix-ui/react-dialog": "1.1.15",
|
|
40
41
|
"@radix-ui/react-form": "0.1.8",
|
|
41
42
|
"@radix-ui/react-tabs": "1.1.13",
|
|
42
43
|
"@radix-ui/react-toggle": "1.1.10",
|
|
43
|
-
"@radix-ui/react-aspect-ratio": "1.1.8",
|
|
44
44
|
"react": "19.2.1",
|
|
45
45
|
"react-dom": "19.2.1"
|
|
46
46
|
},
|
|
@@ -76,17 +76,20 @@
|
|
|
76
76
|
"eslint-plugin-unused-imports": "4.3.0",
|
|
77
77
|
"globals": "16.5.0",
|
|
78
78
|
"jsdom": "27.2.0",
|
|
79
|
-
"knip": "5.
|
|
79
|
+
"knip": "5.72.0",
|
|
80
80
|
"playwright": "1.57.0",
|
|
81
81
|
"prettier": "3.7.4",
|
|
82
82
|
"prettier-plugin-tailwindcss": "0.7.2",
|
|
83
|
+
"rollup-preserve-directives": "1.1.3",
|
|
83
84
|
"semantic-release": "25.0.2",
|
|
84
85
|
"storybook": "10.1.4",
|
|
85
86
|
"tailwind-merge": "3.4.0",
|
|
86
87
|
"tailwindcss": "4.1.17",
|
|
87
88
|
"typescript": "5.9.3",
|
|
88
89
|
"typescript-eslint": "8.48.1",
|
|
89
|
-
"vite": "7.2.
|
|
90
|
+
"vite": "7.2.7",
|
|
91
|
+
"vite-plugin-dts": "4.5.4",
|
|
92
|
+
"vite-plugin-svgr": "^4.5.0",
|
|
90
93
|
"vitest": "4.0.15"
|
|
91
94
|
}
|
|
92
95
|
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Props for the AccessibleButton component.
|
|
3
|
-
*/
|
|
4
|
-
export interface BaseAccessibleButtonProps {
|
|
5
|
-
/**
|
|
6
|
-
* Accessible label for the button, used by screen readers.
|
|
7
|
-
*/
|
|
8
|
-
ariaLabel?: string;
|
|
9
|
-
/**
|
|
10
|
-
* Additional class names to apply to the button element.
|
|
11
|
-
*/
|
|
12
|
-
className?: string;
|
|
13
|
-
/**
|
|
14
|
-
* HTML button type attribute.
|
|
15
|
-
*/
|
|
16
|
-
type?: React.ButtonHTMLAttributes<HTMLButtonElement>["type"];
|
|
17
|
-
/**
|
|
18
|
-
* Click handler for the button.
|
|
19
|
-
*/
|
|
20
|
-
onClick?: () => void;
|
|
21
|
-
}
|
|
22
|
-
interface AccessibleButtonProps extends BaseAccessibleButtonProps {
|
|
23
|
-
/**
|
|
24
|
-
* The content displayed inside the button.
|
|
25
|
-
*/
|
|
26
|
-
children?: React.ReactNode;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* A fully accessible button component.
|
|
30
|
-
*/
|
|
31
|
-
export declare const AccessibleButton: React.FC<AccessibleButtonProps>;
|
|
32
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { fireEvent, render, screen } from "@testing-library/react";
|
|
3
|
-
import { describe, expect, test, vi } from "vitest";
|
|
4
|
-
import { AccessibleButton } from "./AccessibleButton";
|
|
5
|
-
describe("Button", () => {
|
|
6
|
-
test("should render button", async () => {
|
|
7
|
-
// Arrange
|
|
8
|
-
render(_jsx(AccessibleButton, { onClick: vi.fn(), children: "button" }));
|
|
9
|
-
// Assert
|
|
10
|
-
expect(screen.getByRole("button")).toBeVisible();
|
|
11
|
-
expect(screen.getByRole("button")).toHaveTextContent("button");
|
|
12
|
-
});
|
|
13
|
-
test("should render button with ariaLabel", async () => {
|
|
14
|
-
// Arrange
|
|
15
|
-
render(_jsx(AccessibleButton, { ariaLabel: "This is a button", onClick: vi.fn(), children: "button" }));
|
|
16
|
-
// Assert
|
|
17
|
-
expect(screen.getByRole("button")).toBeVisible();
|
|
18
|
-
expect(screen.getByRole("button")).toHaveTextContent("button");
|
|
19
|
-
expect(screen.queryByLabelText("This is a button")).toBeInTheDocument();
|
|
20
|
-
});
|
|
21
|
-
test("should call onClick when clicked", () => {
|
|
22
|
-
// Arrange
|
|
23
|
-
const onClick = vi.fn();
|
|
24
|
-
render(_jsx(AccessibleButton, { onClick: onClick, children: "button" }));
|
|
25
|
-
fireEvent.click(screen.getByRole("button"));
|
|
26
|
-
expect(onClick).toHaveBeenCalled();
|
|
27
|
-
});
|
|
28
|
-
});
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { type VariantProps } from "tailwind-variants";
|
|
2
|
-
declare const avatarStyles: import("tailwind-variants").TVReturnType<{
|
|
3
|
-
isClickable: {
|
|
4
|
-
true: {
|
|
5
|
-
base: string[];
|
|
6
|
-
};
|
|
7
|
-
};
|
|
8
|
-
size: {
|
|
9
|
-
sm: {
|
|
10
|
-
avatar: string[];
|
|
11
|
-
};
|
|
12
|
-
md: {
|
|
13
|
-
avatar: string[];
|
|
14
|
-
};
|
|
15
|
-
lg: {
|
|
16
|
-
avatar: string[];
|
|
17
|
-
};
|
|
18
|
-
xl: {
|
|
19
|
-
avatar: string[];
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
}, {
|
|
23
|
-
base: string[];
|
|
24
|
-
avatar: string[];
|
|
25
|
-
action: string[];
|
|
26
|
-
}, undefined, {
|
|
27
|
-
isClickable: {
|
|
28
|
-
true: {
|
|
29
|
-
base: string[];
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
size: {
|
|
33
|
-
sm: {
|
|
34
|
-
avatar: string[];
|
|
35
|
-
};
|
|
36
|
-
md: {
|
|
37
|
-
avatar: string[];
|
|
38
|
-
};
|
|
39
|
-
lg: {
|
|
40
|
-
avatar: string[];
|
|
41
|
-
};
|
|
42
|
-
xl: {
|
|
43
|
-
avatar: string[];
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
}, {
|
|
47
|
-
base: string[];
|
|
48
|
-
avatar: string[];
|
|
49
|
-
action: string[];
|
|
50
|
-
}, import("tailwind-variants").TVReturnType<{
|
|
51
|
-
isClickable: {
|
|
52
|
-
true: {
|
|
53
|
-
base: string[];
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
size: {
|
|
57
|
-
sm: {
|
|
58
|
-
avatar: string[];
|
|
59
|
-
};
|
|
60
|
-
md: {
|
|
61
|
-
avatar: string[];
|
|
62
|
-
};
|
|
63
|
-
lg: {
|
|
64
|
-
avatar: string[];
|
|
65
|
-
};
|
|
66
|
-
xl: {
|
|
67
|
-
avatar: string[];
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
}, {
|
|
71
|
-
base: string[];
|
|
72
|
-
avatar: string[];
|
|
73
|
-
action: string[];
|
|
74
|
-
}, undefined, unknown, unknown, undefined>>;
|
|
75
|
-
type AvatarVariants = VariantProps<typeof avatarStyles>;
|
|
76
|
-
type AvatarSize = "sm" | "md" | "lg" | "xl";
|
|
77
|
-
/**
|
|
78
|
-
* Props for the Avatar component.
|
|
79
|
-
*/
|
|
80
|
-
interface AvatarProps extends AvatarVariants {
|
|
81
|
-
/**
|
|
82
|
-
* Alternative text describing the avatar image.
|
|
83
|
-
*/
|
|
84
|
-
alt: string;
|
|
85
|
-
/**
|
|
86
|
-
* Controls the visual size of the avatar.
|
|
87
|
-
*/
|
|
88
|
-
size: AvatarSize;
|
|
89
|
-
/**
|
|
90
|
-
* The URL source of the avatar image.
|
|
91
|
-
*/
|
|
92
|
-
src: string;
|
|
93
|
-
/**
|
|
94
|
-
* Accessible label for the action button that appears on extra-large (`xl`)
|
|
95
|
-
* avatars when `onActionClick` is provided.
|
|
96
|
-
*/
|
|
97
|
-
actionAriaLabel?: string;
|
|
98
|
-
/**
|
|
99
|
-
* Click handler for the entire avatar.
|
|
100
|
-
* Makes the outer wrapper clickable.
|
|
101
|
-
*/
|
|
102
|
-
onAvatarClick?: () => void;
|
|
103
|
-
/**
|
|
104
|
-
* Optional click handler for the action button.
|
|
105
|
-
* Only visible when:
|
|
106
|
-
* - `size === "xl"`
|
|
107
|
-
* - `onActionClick` is provided
|
|
108
|
-
*
|
|
109
|
-
* Useful for “Edit avatar” or “Change photo” actions.
|
|
110
|
-
*/
|
|
111
|
-
onActionClick?: () => void;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* A flexible and accessible user avatar component.
|
|
115
|
-
* Built on top of Radix UI’s `Avatar` primitives and styled with Tailwind variants.
|
|
116
|
-
*/
|
|
117
|
-
export declare const Avatar: React.FC<AvatarProps>;
|
|
118
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const BrandingGallery: React.FC;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { type VariantProps } from "tailwind-variants";
|
|
2
|
-
import { type BaseAccessibleButtonProps } from "../accessible-button/AccessibleButton";
|
|
3
|
-
import type { IconBaseProps } from "../icons/IconBase";
|
|
4
|
-
declare const buttonStyles: import("tailwind-variants").TVReturnType<{
|
|
5
|
-
intent: {
|
|
6
|
-
primary: string[];
|
|
7
|
-
secondary: string[];
|
|
8
|
-
tertiary: string[];
|
|
9
|
-
};
|
|
10
|
-
size: {
|
|
11
|
-
md: string[];
|
|
12
|
-
lg: string[];
|
|
13
|
-
};
|
|
14
|
-
}, undefined, string[], {
|
|
15
|
-
intent: {
|
|
16
|
-
primary: string[];
|
|
17
|
-
secondary: string[];
|
|
18
|
-
tertiary: string[];
|
|
19
|
-
};
|
|
20
|
-
size: {
|
|
21
|
-
md: string[];
|
|
22
|
-
lg: string[];
|
|
23
|
-
};
|
|
24
|
-
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
25
|
-
intent: {
|
|
26
|
-
primary: string[];
|
|
27
|
-
secondary: string[];
|
|
28
|
-
tertiary: string[];
|
|
29
|
-
};
|
|
30
|
-
size: {
|
|
31
|
-
md: string[];
|
|
32
|
-
lg: string[];
|
|
33
|
-
};
|
|
34
|
-
}, undefined, string[], unknown, unknown, undefined>>;
|
|
35
|
-
type ButtonVariants = VariantProps<typeof buttonStyles>;
|
|
36
|
-
type ButtonIntent = "primary" | "secondary" | "tertiary";
|
|
37
|
-
type ButtonSize = "md" | "lg";
|
|
38
|
-
/**
|
|
39
|
-
* Props for the Button component.
|
|
40
|
-
*
|
|
41
|
-
* @inheritdoc BaseAccessibleButtonProps
|
|
42
|
-
* @inheritdoc ButtonVariants
|
|
43
|
-
*/
|
|
44
|
-
interface ButtonProps extends ButtonVariants, BaseAccessibleButtonProps {
|
|
45
|
-
/**
|
|
46
|
-
* Visual intent of the button (controls background color, hover, and active styles).
|
|
47
|
-
*/
|
|
48
|
-
intent: ButtonIntent;
|
|
49
|
-
/**
|
|
50
|
-
* Visual size of the button (padding and spacing).
|
|
51
|
-
*/
|
|
52
|
-
size: ButtonSize;
|
|
53
|
-
/**
|
|
54
|
-
* Optional icon element rendered alongside the button label.
|
|
55
|
-
*/
|
|
56
|
-
icon?: React.ComponentType<IconBaseProps>;
|
|
57
|
-
/**
|
|
58
|
-
* Visible text label displayed inside the button.
|
|
59
|
-
*/
|
|
60
|
-
children: string;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* A fully accessible, stylable button component.
|
|
64
|
-
*/
|
|
65
|
-
export declare const Button: React.FC<ButtonProps>;
|
|
66
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { fireEvent, render, screen } from "@testing-library/react";
|
|
3
|
-
import { describe, expect, test, vi } from "vitest";
|
|
4
|
-
import { Mumble } from "../icons/generated";
|
|
5
|
-
import { Button } from "./Button";
|
|
6
|
-
describe("Button", () => {
|
|
7
|
-
test("should render button with icon", async () => {
|
|
8
|
-
// Arrange
|
|
9
|
-
render(_jsx(Button, { intent: "primary", size: "md", icon: Mumble, onClick: vi.fn(), children: "button" }));
|
|
10
|
-
// Assert
|
|
11
|
-
expect(screen.getByRole("button")).toBeVisible();
|
|
12
|
-
expect(screen.getByRole("button")).toHaveTextContent("button");
|
|
13
|
-
expect(screen.getByText("Mumble")).toBeVisible();
|
|
14
|
-
});
|
|
15
|
-
test("should render button without icon", async () => {
|
|
16
|
-
// Arrange
|
|
17
|
-
render(_jsx(Button, { intent: "primary", size: "md", onClick: vi.fn(), children: "button" }));
|
|
18
|
-
// Assert
|
|
19
|
-
expect(screen.getByRole("button")).toBeVisible();
|
|
20
|
-
expect(screen.getByRole("button")).toHaveTextContent("button");
|
|
21
|
-
expect(screen.queryByText("Mumble")).not.toBeInTheDocument();
|
|
22
|
-
});
|
|
23
|
-
test("should call onClick when clicked", () => {
|
|
24
|
-
// Arrange
|
|
25
|
-
const onClick = vi.fn();
|
|
26
|
-
render(_jsx(Button, { intent: "primary", size: "md", icon: Mumble, onClick: onClick, children: "button" }));
|
|
27
|
-
fireEvent.click(screen.getByRole("button"));
|
|
28
|
-
expect(onClick).toHaveBeenCalled();
|
|
29
|
-
});
|
|
30
|
-
});
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { type VariantProps } from "tailwind-variants";
|
|
2
|
-
declare const fileUploadStyles: import("tailwind-variants").TVReturnType<{
|
|
3
|
-
[key: string]: {
|
|
4
|
-
[key: string]: import("tailwind-merge").ClassNameValue | {
|
|
5
|
-
base?: import("tailwind-merge").ClassNameValue;
|
|
6
|
-
input?: import("tailwind-merge").ClassNameValue;
|
|
7
|
-
action?: import("tailwind-merge").ClassNameValue;
|
|
8
|
-
dropzone?: import("tailwind-merge").ClassNameValue;
|
|
9
|
-
uploadIcon?: import("tailwind-merge").ClassNameValue;
|
|
10
|
-
titleText?: import("tailwind-merge").ClassNameValue;
|
|
11
|
-
subtitleText?: import("tailwind-merge").ClassNameValue;
|
|
12
|
-
preview?: import("tailwind-merge").ClassNameValue;
|
|
13
|
-
previewLabel?: import("tailwind-merge").ClassNameValue;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
} | {
|
|
17
|
-
[x: string]: {
|
|
18
|
-
[x: string]: import("tailwind-merge").ClassNameValue | {
|
|
19
|
-
base?: import("tailwind-merge").ClassNameValue;
|
|
20
|
-
input?: import("tailwind-merge").ClassNameValue;
|
|
21
|
-
action?: import("tailwind-merge").ClassNameValue;
|
|
22
|
-
dropzone?: import("tailwind-merge").ClassNameValue;
|
|
23
|
-
uploadIcon?: import("tailwind-merge").ClassNameValue;
|
|
24
|
-
titleText?: import("tailwind-merge").ClassNameValue;
|
|
25
|
-
subtitleText?: import("tailwind-merge").ClassNameValue;
|
|
26
|
-
preview?: import("tailwind-merge").ClassNameValue;
|
|
27
|
-
previewLabel?: import("tailwind-merge").ClassNameValue;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
} | {}, {
|
|
31
|
-
base: string[];
|
|
32
|
-
dropzone: string[];
|
|
33
|
-
uploadIcon: string[];
|
|
34
|
-
titleText: string[];
|
|
35
|
-
subtitleText: string[];
|
|
36
|
-
action: string[];
|
|
37
|
-
input: string[];
|
|
38
|
-
preview: string[];
|
|
39
|
-
previewLabel: string[];
|
|
40
|
-
}, undefined, {
|
|
41
|
-
[key: string]: {
|
|
42
|
-
[key: string]: import("tailwind-merge").ClassNameValue | {
|
|
43
|
-
base?: import("tailwind-merge").ClassNameValue;
|
|
44
|
-
input?: import("tailwind-merge").ClassNameValue;
|
|
45
|
-
action?: import("tailwind-merge").ClassNameValue;
|
|
46
|
-
dropzone?: import("tailwind-merge").ClassNameValue;
|
|
47
|
-
uploadIcon?: import("tailwind-merge").ClassNameValue;
|
|
48
|
-
titleText?: import("tailwind-merge").ClassNameValue;
|
|
49
|
-
subtitleText?: import("tailwind-merge").ClassNameValue;
|
|
50
|
-
preview?: import("tailwind-merge").ClassNameValue;
|
|
51
|
-
previewLabel?: import("tailwind-merge").ClassNameValue;
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
} | {}, {
|
|
55
|
-
base: string[];
|
|
56
|
-
dropzone: string[];
|
|
57
|
-
uploadIcon: string[];
|
|
58
|
-
titleText: string[];
|
|
59
|
-
subtitleText: string[];
|
|
60
|
-
action: string[];
|
|
61
|
-
input: string[];
|
|
62
|
-
preview: string[];
|
|
63
|
-
previewLabel: string[];
|
|
64
|
-
}, import("tailwind-variants").TVReturnType<unknown, {
|
|
65
|
-
base: string[];
|
|
66
|
-
dropzone: string[];
|
|
67
|
-
uploadIcon: string[];
|
|
68
|
-
titleText: string[];
|
|
69
|
-
subtitleText: string[];
|
|
70
|
-
action: string[];
|
|
71
|
-
input: string[];
|
|
72
|
-
preview: string[];
|
|
73
|
-
previewLabel: string[];
|
|
74
|
-
}, undefined, unknown, unknown, undefined>>;
|
|
75
|
-
type FileUploadVariants = VariantProps<typeof fileUploadStyles>;
|
|
76
|
-
interface FileUploadProps extends FileUploadVariants {
|
|
77
|
-
title?: string;
|
|
78
|
-
subtitle?: string;
|
|
79
|
-
actionLabel?: string;
|
|
80
|
-
onFileSelect: (file: File | null) => void;
|
|
81
|
-
}
|
|
82
|
-
export declare const FileUpload: ({ title, subtitle, actionLabel, ...props }: FileUploadProps) => import("react/jsx-runtime").JSX.Element;
|
|
83
|
-
export {};
|