@krrli/cm-designsystem 1.1.0 → 1.19.8

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 (174) hide show
  1. package/README.md +422 -2
  2. package/dist/components/avatar/Avatar.d.ts +71 -0
  3. package/dist/components/avatar/Avatar.js +63 -0
  4. package/dist/components/branding/BrandingGallery.d.ts +1 -0
  5. package/dist/components/branding/BrandingGallery.js +139 -0
  6. package/dist/components/button/Button.d.ts +54 -0
  7. package/dist/components/button/Button.js +56 -0
  8. package/dist/components/button/Button.test.d.ts +1 -0
  9. package/dist/components/button/Button.test.js +30 -0
  10. package/dist/components/color/ColorDoc.d.ts +4 -0
  11. package/dist/components/color/ColorDoc.js +10 -0
  12. package/dist/components/file-upload/FileUpload.d.ts +83 -0
  13. package/dist/components/file-upload/FileUpload.js +70 -0
  14. package/dist/components/form/Form.d.ts +54 -0
  15. package/dist/components/form/Form.js +38 -0
  16. package/dist/components/icon-button/IconButton.d.ts +50 -0
  17. package/dist/components/icon-button/IconButton.js +22 -0
  18. package/dist/components/icon-button/IconButton.test.d.ts +1 -0
  19. package/dist/components/icon-button/IconButton.test.js +22 -0
  20. package/dist/components/icons/IconBase.d.ts +5 -0
  21. package/dist/components/icons/IconBase.js +9 -0
  22. package/dist/components/icons/generated/ArrowDown.d.ts +3 -0
  23. package/dist/components/icons/generated/ArrowDown.js +4 -0
  24. package/dist/components/icons/generated/ArrowLeft.d.ts +3 -0
  25. package/dist/components/icons/generated/ArrowLeft.js +4 -0
  26. package/dist/components/icons/generated/ArrowRight.d.ts +3 -0
  27. package/dist/components/icons/generated/ArrowRight.js +4 -0
  28. package/dist/components/icons/generated/ArrowUp.d.ts +3 -0
  29. package/dist/components/icons/generated/ArrowUp.js +4 -0
  30. package/dist/components/icons/generated/Calendar.d.ts +3 -0
  31. package/dist/components/icons/generated/Calendar.js +4 -0
  32. package/dist/components/icons/generated/Cancel.d.ts +3 -0
  33. package/dist/components/icons/generated/Cancel.js +4 -0
  34. package/dist/components/icons/generated/Checkmark.d.ts +3 -0
  35. package/dist/components/icons/generated/Checkmark.js +4 -0
  36. package/dist/components/icons/generated/Edit.d.ts +3 -0
  37. package/dist/components/icons/generated/Edit.js +4 -0
  38. package/dist/components/icons/generated/Eye.d.ts +3 -0
  39. package/dist/components/icons/generated/Eye.js +4 -0
  40. package/dist/components/icons/generated/Fullscreen.d.ts +3 -0
  41. package/dist/components/icons/generated/Fullscreen.js +4 -0
  42. package/dist/components/icons/generated/HeartFilled.d.ts +3 -0
  43. package/dist/components/icons/generated/HeartFilled.js +4 -0
  44. package/dist/components/icons/generated/HeartOutline.d.ts +3 -0
  45. package/dist/components/icons/generated/HeartOutline.js +4 -0
  46. package/dist/components/icons/generated/Location.d.ts +3 -0
  47. package/dist/components/icons/generated/Location.js +4 -0
  48. package/dist/components/icons/generated/LogOut.d.ts +3 -0
  49. package/dist/components/icons/generated/LogOut.js +4 -0
  50. package/dist/components/icons/generated/Mumble.d.ts +3 -0
  51. package/dist/components/icons/generated/Mumble.js +4 -0
  52. package/dist/components/icons/generated/Profile.d.ts +3 -0
  53. package/dist/components/icons/generated/Profile.js +4 -0
  54. package/dist/components/icons/generated/ReplyFilled.d.ts +3 -0
  55. package/dist/components/icons/generated/ReplyFilled.js +4 -0
  56. package/dist/components/icons/generated/ReplyOutline.d.ts +3 -0
  57. package/dist/components/icons/generated/ReplyOutline.js +4 -0
  58. package/dist/components/icons/generated/Repost.d.ts +3 -0
  59. package/dist/components/icons/generated/Repost.js +4 -0
  60. package/dist/components/icons/generated/Send.d.ts +3 -0
  61. package/dist/components/icons/generated/Send.js +4 -0
  62. package/dist/components/icons/generated/Settings.d.ts +3 -0
  63. package/dist/components/icons/generated/Settings.js +4 -0
  64. package/dist/components/icons/generated/Share.d.ts +3 -0
  65. package/dist/components/icons/generated/Share.js +4 -0
  66. package/dist/components/icons/generated/Time.d.ts +3 -0
  67. package/dist/components/icons/generated/Time.js +4 -0
  68. package/dist/components/icons/generated/Upload.d.ts +3 -0
  69. package/dist/components/icons/generated/Upload.js +4 -0
  70. package/dist/components/icons/generated/index.d.ts +24 -0
  71. package/dist/components/icons/generated/index.js +24 -0
  72. package/dist/components/index.d.ts +25 -0
  73. package/dist/components/index.js +25 -0
  74. package/dist/components/input/Input.d.ts +61 -0
  75. package/dist/components/input/Input.js +47 -0
  76. package/dist/components/like-toggle/LikeToggle.d.ts +97 -0
  77. package/dist/components/like-toggle/LikeToggle.js +185 -0
  78. package/dist/components/like-toggle/LikeToggle.test.d.ts +1 -0
  79. package/dist/components/like-toggle/LikeToggle.test.js +35 -0
  80. package/dist/components/modal/Modal.d.ts +75 -0
  81. package/dist/components/modal/Modal.js +63 -0
  82. package/dist/components/modal/Modal.test.d.ts +1 -0
  83. package/dist/components/modal/Modal.test.js +24 -0
  84. package/dist/components/navi-button/NaviButton.d.ts +26 -0
  85. package/dist/components/navi-button/NaviButton.js +29 -0
  86. package/dist/components/navi-button/NaviButton.test.d.ts +1 -0
  87. package/dist/components/navi-button/NaviButton.test.js +22 -0
  88. package/dist/components/navi-user-button/NaviUserButton.d.ts +26 -0
  89. package/dist/components/navi-user-button/NaviUserButton.js +29 -0
  90. package/dist/components/round-button/RoundButton.d.ts +25 -0
  91. package/dist/components/round-button/RoundButton.js +28 -0
  92. package/dist/components/round-button/RoundButton.test.d.ts +1 -0
  93. package/dist/components/round-button/RoundButton.test.js +21 -0
  94. package/dist/components/tabs/TabItem.d.ts +11 -0
  95. package/dist/components/tabs/TabItem.js +13 -0
  96. package/dist/components/tabs/Tabs.d.ts +67 -0
  97. package/dist/components/tabs/Tabs.js +67 -0
  98. package/dist/components/tabs/Tabs.test.d.ts +1 -0
  99. package/dist/components/tabs/Tabs.test.js +61 -0
  100. package/dist/components/text-link/TextLink.d.ts +9 -0
  101. package/dist/components/text-link/TextLink.js +15 -0
  102. package/dist/components/text-link/TextLink.test.d.ts +1 -0
  103. package/dist/components/text-link/TextLink.test.js +14 -0
  104. package/dist/components/textarea/Textarea.d.ts +48 -0
  105. package/dist/components/textarea/Textarea.js +46 -0
  106. package/dist/components/timed-button/TimedButton.d.ts +56 -0
  107. package/dist/components/timed-button/TimedButton.js +106 -0
  108. package/dist/components/timed-button/TimedButton.test.d.ts +1 -0
  109. package/dist/components/timed-button/TimedButton.test.js +35 -0
  110. package/dist/components/toggle/Toggle.d.ts +62 -0
  111. package/dist/components/toggle/Toggle.js +67 -0
  112. package/dist/components/toggle/Toggle.test.d.ts +1 -0
  113. package/dist/components/toggle/Toggle.test.js +93 -0
  114. package/dist/components/typography/Heading.d.ts +17 -0
  115. package/dist/components/typography/Heading.js +11 -0
  116. package/dist/components/typography/Label.d.ts +15 -0
  117. package/dist/components/typography/Label.js +7 -0
  118. package/dist/components/typography/Paragraph.d.ts +15 -0
  119. package/dist/components/typography/Paragraph.js +7 -0
  120. package/dist/components/typography/Placeholder.d.ts +13 -0
  121. package/dist/components/typography/Placeholder.js +7 -0
  122. package/dist/components/typography/ValidationMessage.d.ts +15 -0
  123. package/dist/components/typography/ValidationMessage.js +9 -0
  124. package/dist/components/typography/styles.d.ts +74 -0
  125. package/dist/components/typography/styles.js +52 -0
  126. package/dist/favicon.svg +18 -0
  127. package/dist/index.d.ts +1 -0
  128. package/dist/index.es.js +7550 -0
  129. package/dist/index.js +2 -0
  130. package/dist/logo-inline-gradient.svg +43 -0
  131. package/dist/setupTests.d.ts +1 -0
  132. package/dist/setupTests.js +7 -0
  133. package/package.json +78 -33
  134. package/.github/CODEOWNERS +0 -7
  135. package/.github/semantic.yml +0 -24
  136. package/.github/workflows/publish-npm.yml +0 -29
  137. package/.github/workflows/storybook.yml +0 -44
  138. package/.releaserc.json +0 -9
  139. package/.storybook/main.ts +0 -19
  140. package/.storybook/preview.ts +0 -21
  141. package/.storybook/vitest.setup.ts +0 -7
  142. package/src/index.ts +0 -4
  143. package/stories/Button.stories.ts +0 -54
  144. package/stories/Button.tsx +0 -37
  145. package/stories/Button2.stories.ts +0 -54
  146. package/stories/Button2.tsx +0 -41
  147. package/stories/Configure.mdx +0 -364
  148. package/stories/Header.stories.ts +0 -34
  149. package/stories/Header.tsx +0 -56
  150. package/stories/Page.stories.ts +0 -33
  151. package/stories/Page.tsx +0 -73
  152. package/stories/assets/accessibility.png +0 -0
  153. package/stories/assets/accessibility.svg +0 -1
  154. package/stories/assets/addon-library.png +0 -0
  155. package/stories/assets/assets.png +0 -0
  156. package/stories/assets/avif-test-image.avif +0 -0
  157. package/stories/assets/context.png +0 -0
  158. package/stories/assets/discord.svg +0 -1
  159. package/stories/assets/docs.png +0 -0
  160. package/stories/assets/figma-plugin.png +0 -0
  161. package/stories/assets/github.svg +0 -1
  162. package/stories/assets/share.png +0 -0
  163. package/stories/assets/styling.png +0 -0
  164. package/stories/assets/testing.png +0 -0
  165. package/stories/assets/theming.png +0 -0
  166. package/stories/assets/tutorials.svg +0 -1
  167. package/stories/assets/youtube.svg +0 -1
  168. package/stories/button.css +0 -30
  169. package/stories/button2.css +0 -30
  170. package/stories/header.css +0 -32
  171. package/stories/page.css +0 -68
  172. package/tsconfig.json +0 -13
  173. package/vitest.config.ts +0 -35
  174. package/vitest.shims.d.ts +0 -1
@@ -0,0 +1,93 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { render, screen } from "@testing-library/react";
3
+ import userEvent from "@testing-library/user-event";
4
+ import { describe, expect, test, vi } from "vitest";
5
+ import { Toggle } from "./Toggle";
6
+ describe("LikeToggle", () => {
7
+ test("should render icon and label", async () => {
8
+ // Arrange
9
+ render(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Comment", onToggle: () => { } }));
10
+ const button = screen.getByRole("button");
11
+ expect(button).toBeVisible();
12
+ expect(button).toHaveTextContent("Comment");
13
+ // Icon prüfen
14
+ expect(screen.getByLabelText("ReplyOutline")).toBeInTheDocument();
15
+ });
16
+ test("when clicked, onToggle should return flag", async () => {
17
+ // Arrange
18
+ const onToggleMock = vi.fn();
19
+ render(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Comment", onToggle: onToggleMock }));
20
+ const button = screen.getByRole("button");
21
+ // Act
22
+ await userEvent.click(button);
23
+ // Assert
24
+ expect(onToggleMock).toHaveBeenCalledWith(true);
25
+ });
26
+ test("when toggled and clicked, onToggle should return false", async () => {
27
+ // Arrange
28
+ const onToggleMock = vi.fn();
29
+ render(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Comment", pressed: true, onToggle: onToggleMock }));
30
+ const button = screen.getByRole("button");
31
+ // Act
32
+ await userEvent.click(button);
33
+ // Assert
34
+ expect(onToggleMock).toHaveBeenCalledWith(false);
35
+ });
36
+ test("should display ReplyFilled icon when pressed is true", async () => {
37
+ // Arrange
38
+ render(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Comment", pressed: true, onToggle: () => { } }));
39
+ // Assert
40
+ expect(screen.getByLabelText("ReplyFilled")).toBeInTheDocument();
41
+ expect(screen.queryByLabelText("ReplyOutline")).not.toBeInTheDocument();
42
+ });
43
+ test("should display ReplyOutline icon when pressed is false", async () => {
44
+ // Arrange
45
+ render(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Comment", pressed: false, onToggle: () => { } }));
46
+ // Assert
47
+ expect(screen.getByLabelText("ReplyOutline")).toBeInTheDocument();
48
+ expect(screen.queryByLabelText("ReplyFilled")).not.toBeInTheDocument();
49
+ });
50
+ test("should use custom ariaLabel", async () => {
51
+ // Arrange
52
+ render(_jsx(Toggle, { ariaLabel: "Custom Comment Label", labelText: "Comment", onToggle: () => { } }));
53
+ // Assert
54
+ const button = screen.getByRole("button", {
55
+ name: "Custom Comment Label",
56
+ });
57
+ expect(button).toBeInTheDocument();
58
+ });
59
+ test("should display custom labelText", async () => {
60
+ // Arrange
61
+ render(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Custom Label Text", onToggle: () => { } }));
62
+ // Assert
63
+ expect(screen.getByText("Custom Label Text")).toBeInTheDocument();
64
+ });
65
+ test("should be keyboard accessible", async () => {
66
+ // Arrange
67
+ const onToggleMock = vi.fn();
68
+ render(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Comment", onToggle: onToggleMock }));
69
+ const button = screen.getByRole("button");
70
+ // Act
71
+ button.focus();
72
+ expect(button).toHaveFocus();
73
+ await userEvent.keyboard("{Enter}");
74
+ // Assert
75
+ expect(onToggleMock).toHaveBeenCalledWith(true);
76
+ });
77
+ test("should toggle multiple times correctly", async () => {
78
+ // Arrange
79
+ const onToggleMock = vi.fn();
80
+ const { rerender } = render(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Comment", onToggle: onToggleMock }));
81
+ const button = screen.getByRole("button");
82
+ // Act - First click
83
+ await userEvent.click(button);
84
+ expect(onToggleMock).toHaveBeenCalledWith(true);
85
+ // Rerender with pressed state
86
+ rerender(_jsx(Toggle, { ariaLabel: "Comment", labelText: "Comment", pressed: true, onToggle: onToggleMock }));
87
+ // Act - Second click
88
+ await userEvent.click(button);
89
+ // Assert
90
+ expect(onToggleMock).toHaveBeenCalledWith(false);
91
+ expect(onToggleMock).toHaveBeenCalledTimes(2);
92
+ });
93
+ });
@@ -0,0 +1,17 @@
1
+ import { type JSX } from "react";
2
+ import { type VariantProps } from "tailwind-variants";
3
+ import { headingStyles } from "./styles";
4
+ type HeadingVariants = VariantProps<typeof headingStyles>;
5
+ type HeadingSize = "1" | "2" | "3" | "4";
6
+ interface HeadingProps extends HeadingVariants {
7
+ size: HeadingSize;
8
+ as: keyof JSX.IntrinsicElements;
9
+ className?: string;
10
+ children: React.ReactNode;
11
+ }
12
+ export declare const Heading: ({ as, className, ...props }: HeadingProps) => import("react").ReactElement<{
13
+ role: string;
14
+ "aria-level": HeadingSize;
15
+ className: string;
16
+ }, string | import("react").JSXElementConstructor<any>>;
17
+ export {};
@@ -0,0 +1,11 @@
1
+ import { createElement } from "react";
2
+ import { twMerge } from "tailwind-merge";
3
+ import {} from "tailwind-variants";
4
+ import { headingStyles } from "./styles";
5
+ export const Heading = ({ as, className, ...props }) => {
6
+ return createElement(as, {
7
+ role: "heading",
8
+ "aria-level": props.size,
9
+ className: twMerge(className, headingStyles(props)),
10
+ }, props.children);
11
+ };
@@ -0,0 +1,15 @@
1
+ import { type JSX } from "react";
2
+ import { type VariantProps } from "tailwind-variants";
3
+ import { labelStyles } from "./styles";
4
+ type LabelVariants = VariantProps<typeof labelStyles>;
5
+ type LabelSize = "xl" | "lg" | "md" | "sm";
6
+ interface LabelProps extends LabelVariants {
7
+ size: LabelSize;
8
+ as?: keyof JSX.IntrinsicElements;
9
+ className?: string;
10
+ children: React.ReactNode;
11
+ }
12
+ export declare const Label: ({ as, className, ...props }: LabelProps) => import("react").ReactElement<{
13
+ className: string;
14
+ }, string | import("react").JSXElementConstructor<any>>;
15
+ export {};
@@ -0,0 +1,7 @@
1
+ import { createElement } from "react";
2
+ import { twMerge } from "tailwind-merge";
3
+ import {} from "tailwind-variants";
4
+ import { labelStyles } from "./styles";
5
+ export const Label = ({ as = "label", className, ...props }) => {
6
+ return createElement(as, { className: twMerge(className, labelStyles(props)) }, props.children);
7
+ };
@@ -0,0 +1,15 @@
1
+ import { type JSX } from "react";
2
+ import { type VariantProps } from "tailwind-variants";
3
+ import { paragraphStyles } from "./styles";
4
+ type ParagraphVariants = VariantProps<typeof paragraphStyles>;
5
+ type ParagraphSize = "lg" | "md";
6
+ interface ParagraphProps extends ParagraphVariants {
7
+ size: ParagraphSize;
8
+ as?: keyof JSX.IntrinsicElements;
9
+ className?: string;
10
+ children: React.ReactNode;
11
+ }
12
+ export declare const Paragraph: ({ as, className, ...props }: ParagraphProps) => import("react").ReactElement<{
13
+ className: string;
14
+ }, string | import("react").JSXElementConstructor<any>>;
15
+ export {};
@@ -0,0 +1,7 @@
1
+ import { createElement } from "react";
2
+ import { twMerge } from "tailwind-merge";
3
+ import {} from "tailwind-variants";
4
+ import { paragraphStyles } from "./styles";
5
+ export const Paragraph = ({ as = "p", className, ...props }) => {
6
+ return createElement(as, { className: twMerge(className, paragraphStyles(props)) }, props.children);
7
+ };
@@ -0,0 +1,13 @@
1
+ import { type JSX } from "react";
2
+ import { type VariantProps } from "tailwind-variants";
3
+ import { placeholderStyles } from "./styles";
4
+ type PlaceholderVariants = VariantProps<typeof placeholderStyles>;
5
+ interface PlaceholderProps extends PlaceholderVariants {
6
+ as?: keyof JSX.IntrinsicElements;
7
+ className?: string;
8
+ children: React.ReactNode;
9
+ }
10
+ export declare const Placeholder: ({ as, className, ...props }: PlaceholderProps) => import("react").ReactElement<{
11
+ className: string;
12
+ }, string | import("react").JSXElementConstructor<any>>;
13
+ export {};
@@ -0,0 +1,7 @@
1
+ import { createElement } from "react";
2
+ import { twMerge } from "tailwind-merge";
3
+ import {} from "tailwind-variants";
4
+ import { placeholderStyles } from "./styles";
5
+ export const Placeholder = ({ as = "span", className, ...props }) => {
6
+ return createElement(as, { className: twMerge(className, placeholderStyles(props)) }, props.children);
7
+ };
@@ -0,0 +1,15 @@
1
+ import { type JSX } from "react";
2
+ import { type VariantProps } from "tailwind-variants";
3
+ import { validationMessageStyles } from "./styles";
4
+ type ValidationMessageVariants = VariantProps<typeof validationMessageStyles>;
5
+ type ValidationMessageType = "error";
6
+ interface ValidationMessageProps extends ValidationMessageVariants {
7
+ as?: keyof JSX.IntrinsicElements;
8
+ type?: ValidationMessageType;
9
+ className?: string;
10
+ children: React.ReactNode;
11
+ }
12
+ export declare const ValidationMessage: ({ as, type, className, ...props }: ValidationMessageProps) => import("react").ReactElement<{
13
+ className: string;
14
+ }, string | import("react").JSXElementConstructor<any>>;
15
+ export {};
@@ -0,0 +1,9 @@
1
+ import { createElement } from "react";
2
+ import { twMerge } from "tailwind-merge";
3
+ import {} from "tailwind-variants";
4
+ import { validationMessageStyles } from "./styles";
5
+ export const ValidationMessage = ({ as = "span", type = "error", className, ...props }) => {
6
+ return createElement(as, {
7
+ className: twMerge(className, validationMessageStyles({ type, ...props })),
8
+ }, props.children);
9
+ };
@@ -0,0 +1,74 @@
1
+ export declare const headingStyles: import("tailwind-variants").TVReturnType<{
2
+ size: {
3
+ "1": string[];
4
+ "2": string[];
5
+ "3": string[];
6
+ "4": string[];
7
+ };
8
+ }, undefined, string[], {
9
+ size: {
10
+ "1": string[];
11
+ "2": string[];
12
+ "3": string[];
13
+ "4": string[];
14
+ };
15
+ }, undefined, import("tailwind-variants").TVReturnType<{
16
+ size: {
17
+ "1": string[];
18
+ "2": string[];
19
+ "3": string[];
20
+ "4": string[];
21
+ };
22
+ }, undefined, string[], unknown, unknown, undefined>>;
23
+ export declare const paragraphStyles: import("tailwind-variants").TVReturnType<{
24
+ size: {
25
+ lg: string[];
26
+ md: string[];
27
+ };
28
+ }, undefined, string[], {
29
+ size: {
30
+ lg: string[];
31
+ md: string[];
32
+ };
33
+ }, undefined, import("tailwind-variants").TVReturnType<{
34
+ size: {
35
+ lg: string[];
36
+ md: string[];
37
+ };
38
+ }, undefined, string[], unknown, unknown, undefined>>;
39
+ export declare const labelStyles: import("tailwind-variants").TVReturnType<{
40
+ size: {
41
+ xl: string[];
42
+ lg: string[];
43
+ md: string[];
44
+ sm: string[];
45
+ };
46
+ }, undefined, string[], {
47
+ size: {
48
+ xl: string[];
49
+ lg: string[];
50
+ md: string[];
51
+ sm: string[];
52
+ };
53
+ }, undefined, import("tailwind-variants").TVReturnType<{
54
+ size: {
55
+ xl: string[];
56
+ lg: string[];
57
+ md: string[];
58
+ sm: string[];
59
+ };
60
+ }, undefined, string[], unknown, unknown, undefined>>;
61
+ export declare const placeholderStyles: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, string[], unknown, unknown, undefined>>;
62
+ export declare const validationMessageStyles: import("tailwind-variants").TVReturnType<{
63
+ type: {
64
+ error: string[];
65
+ };
66
+ }, undefined, string[], {
67
+ type: {
68
+ error: string[];
69
+ };
70
+ }, undefined, import("tailwind-variants").TVReturnType<{
71
+ type: {
72
+ error: string[];
73
+ };
74
+ }, undefined, string[], unknown, unknown, undefined>>;
@@ -0,0 +1,52 @@
1
+ import { tv } from "tailwind-variants";
2
+ export const headingStyles = tv({
3
+ base: ["tracking-normal"],
4
+ variants: {
5
+ size: {
6
+ "1": ["font-bold", "text-[48px]/[125%]"],
7
+ "2": ["font-bold", "text-[40px]/[125%]"],
8
+ "3": ["font-semibold", "text-[32px]/[125%]"],
9
+ "4": ["font-semibold", "text-[24px]/[125%]"],
10
+ },
11
+ },
12
+ });
13
+ export const paragraphStyles = tv({
14
+ base: ["font-medium", "tracking-normal"],
15
+ variants: {
16
+ size: {
17
+ lg: ["text-[24px]/[145%]"],
18
+ md: ["text-[18px]/[140%]"],
19
+ },
20
+ },
21
+ });
22
+ export const labelStyles = tv({
23
+ base: ["font-semibold", "tracking-normal"],
24
+ variants: {
25
+ size: {
26
+ xl: ["text-[24px]/[100%]"],
27
+ lg: ["text-[20px]/[100%]"],
28
+ md: ["text-[16px]/[100%]"],
29
+ sm: ["text-[14px]/[100%]"],
30
+ },
31
+ },
32
+ });
33
+ export const placeholderStyles = tv({
34
+ base: [
35
+ "font-medium",
36
+ "text-slate-500",
37
+ "text-[16px]/[100%]",
38
+ "tracking-normal",
39
+ "placeholder:font-medium",
40
+ "placeholder:text-slate-300",
41
+ "placeholder:text-[16px]/[100%]",
42
+ "placeholder:tracking-normal",
43
+ ],
44
+ });
45
+ export const validationMessageStyles = tv({
46
+ base: ["font-medium", "text-[14px]/[100%]", "tracking-normal"],
47
+ variants: {
48
+ type: {
49
+ error: ["text-error"],
50
+ },
51
+ },
52
+ });
@@ -0,0 +1,18 @@
1
+ <svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 64C0 41.5979 0 30.3968 4.35974 21.8404C8.19467 14.3139 14.3139 8.19467 21.8404 4.35974C30.3968 0 41.5979 0 64 0H96C118.402 0 129.603 0 138.16 4.35974C145.686 8.19467 151.805 14.3139 155.64 21.8404C160 30.3968 160 41.5979 160 64V96C160 118.402 160 129.603 155.64 138.16C151.805 145.686 145.686 151.805 138.16 155.64C129.603 160 118.402 160 96 160H64C41.5979 160 30.3968 160 21.8404 155.64C14.3139 151.805 8.19467 145.686 4.35974 138.16C0 129.603 0 118.402 0 96V64Z" fill="url(#paint0_linear_437_1102)"/>
3
+ <g clip-path="url(#clip0_437_1102)">
4
+ <path d="M86.6667 90H73.3333C71.4258 90 69.7135 91.0612 68.8607 92.7669C68.0078 94.4694 68.1901 96.4779 69.3327 97.9981L75.9993 106.891C76.9531 108.161 78.4114 108.89 80 108.89C81.5886 108.89 83.0469 108.161 84.0007 106.888L90.6673 98.0013C91.8099 96.4779 91.9922 94.4694 91.1393 92.7669C90.2865 91.0612 88.5742 90 86.6667 90Z" fill="white"/>
5
+ <path d="M116.12 72.1517C115.235 69.8159 114.136 67.4571 112.861 65.1422C117.135 62.8979 120 58.419 120 53.3333C120 45.9798 114.02 40 106.667 40C101.865 40 97.4064 42.8033 94.9882 46.946C90.5688 44.693 85.5747 43.3333 80 43.3333C74.4253 43.3333 69.4314 44.6932 65.0118 46.946C62.5936 42.8033 58.135 40 53.3333 40C45.9798 40 40 45.9798 40 53.3333C40 58.4184 42.8646 62.8971 47.1375 65.1416C45.8622 67.4567 44.7628 69.8157 43.877 72.1517C40.1367 82.0313 37.2168 96.0352 44.5606 106.67C50.6673 115.514 62.5911 120 80 120C97.4089 120 109.333 115.514 115.439 106.67C122.783 96.0352 119.86 82.0313 116.12 72.1517ZM109.954 102.881C105.166 109.818 95.0879 113.333 80 113.333C64.9121 113.333 54.834 109.818 50.0456 102.881C44.3457 94.6289 46.9368 82.9004 50.1107 74.515C51.6634 70.4199 60.4004 50 80 50C99.5996 50 108.337 70.4199 109.889 74.515C113.063 82.9004 115.654 94.6289 109.954 102.881Z" fill="white"/>
6
+ <path d="M72.1289 81.2663C75.1367 76.9889 75.3971 75.2864 74.6452 72.3437C73.2194 66.7611 69.6647 65.5892 66.9368 65.5892C60.1595 65.5892 54.873 74.7363 54.8079 79.3099C54.7689 82.0573 55.8789 84.9186 57.7116 86.7773C58.9974 88.0794 60.5078 88.7695 62.0833 88.7695C66.2923 88.7695 69.5247 84.9772 72.1289 81.2663Z" fill="white"/>
7
+ <path d="M93.0632 65.5892C90.3353 65.5892 86.7806 66.7611 85.3548 72.3438C84.6029 75.2865 84.8633 76.9889 87.8711 81.2663C90.4753 84.9772 93.7077 88.7696 97.9167 88.7696C99.4922 88.7696 101.003 88.0795 102.288 86.7774C104.121 84.9186 105.231 82.0573 105.192 79.3132C105.127 74.7363 99.8405 65.5892 93.0632 65.5892Z" fill="white"/>
8
+ </g>
9
+ <defs>
10
+ <linearGradient id="paint0_linear_437_1102" x1="1.19209e-06" y1="80" x2="160" y2="80" gradientUnits="userSpaceOnUse">
11
+ <stop stop-color="#EC4899"/>
12
+ <stop offset="1" stop-color="#7C3AED"/>
13
+ </linearGradient>
14
+ <clipPath id="clip0_437_1102">
15
+ <rect width="80" height="80" fill="white" transform="translate(40 40)"/>
16
+ </clipPath>
17
+ </defs>
18
+ </svg>
@@ -0,0 +1 @@
1
+ export * from "./components";