@kivid/native-components 1.0.0-alpha.6 → 1.0.0-alpha.7

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 (155) hide show
  1. package/dist/commonjs/components/ChatBubble/components/ChatBubbleSeal/index.js +2 -2
  2. package/dist/commonjs/components/ChatBubble/components/ChatBubbleSeal/index.js.map +1 -1
  3. package/dist/commonjs/components/ChatBubble/components/ChatBubbleText/index.js +2 -2
  4. package/dist/commonjs/components/ChatBubble/components/ChatBubbleText/index.js.map +1 -1
  5. package/dist/commonjs/components/ChatBubble/{context.js → contexts/ChatBubbleContext/index.js} +1 -1
  6. package/dist/commonjs/components/ChatBubble/contexts/ChatBubbleContext/index.js.map +1 -0
  7. package/dist/commonjs/components/ChatBubble/contexts/ChatBubbleContext/types.js +6 -0
  8. package/dist/commonjs/components/ChatBubble/contexts/ChatBubbleContext/types.js.map +1 -0
  9. package/dist/commonjs/components/ChatBubble/contexts/index.js +17 -0
  10. package/dist/commonjs/components/ChatBubble/contexts/index.js.map +1 -0
  11. package/dist/commonjs/components/ChatBubble/index.js +2 -2
  12. package/dist/commonjs/components/ChatBubble/index.js.map +1 -1
  13. package/dist/commonjs/components/IconButton/assets/class-variants.js +82 -0
  14. package/dist/commonjs/components/IconButton/assets/class-variants.js.map +1 -0
  15. package/dist/commonjs/components/IconButton/assets/design-system-showcase.js +119 -0
  16. package/dist/commonjs/components/IconButton/assets/design-system-showcase.js.map +1 -0
  17. package/dist/commonjs/components/IconButton/enums.js +33 -0
  18. package/dist/commonjs/components/IconButton/enums.js.map +1 -0
  19. package/dist/commonjs/components/IconButton/index.js +108 -0
  20. package/dist/commonjs/components/IconButton/index.js.map +1 -0
  21. package/dist/commonjs/components/IconButton/types.js +6 -0
  22. package/dist/commonjs/components/IconButton/types.js.map +1 -0
  23. package/dist/commonjs/components/ListButton/assets/class-variants.js +2 -10
  24. package/dist/commonjs/components/ListButton/assets/class-variants.js.map +1 -1
  25. package/dist/commonjs/components/ListButton/assets/design-system-showcase.js +424 -0
  26. package/dist/commonjs/components/ListButton/assets/design-system-showcase.js.map +1 -0
  27. package/dist/commonjs/components/ListButton/enums/index.js +0 -11
  28. package/dist/commonjs/components/ListButton/enums/index.js.map +1 -1
  29. package/dist/commonjs/components/ListButton/index.js +24 -28
  30. package/dist/commonjs/components/ListButton/index.js.map +1 -1
  31. package/dist/commonjs/components/OtpInput/assets/class-variant.js +1 -1
  32. package/dist/commonjs/components/OtpInput/assets/class-variant.js.map +1 -1
  33. package/dist/commonjs/components/OtpInput/components/InformationStatus/index.js +13 -11
  34. package/dist/commonjs/components/OtpInput/components/InformationStatus/index.js.map +1 -1
  35. package/dist/commonjs/components/OtpInput/enums/index.js +7 -8
  36. package/dist/commonjs/components/OtpInput/enums/index.js.map +1 -1
  37. package/dist/commonjs/components/OtpInput/index.js +66 -101
  38. package/dist/commonjs/components/OtpInput/index.js.map +1 -1
  39. package/dist/commonjs/components/TextInput/index.js +1 -1
  40. package/dist/commonjs/components/TextInput/index.js.map +1 -1
  41. package/dist/commonjs/components/Tooltip/index.js +44 -5
  42. package/dist/commonjs/components/Tooltip/index.js.map +1 -1
  43. package/dist/commonjs/components/index.js +22 -0
  44. package/dist/commonjs/components/index.js.map +1 -1
  45. package/dist/commonjs/iconography/Icons/index.js +1 -1
  46. package/dist/commonjs/iconography/Icons/index.js.map +1 -1
  47. package/dist/module/components/ChatBubble/components/ChatBubbleSeal/index.js +1 -1
  48. package/dist/module/components/ChatBubble/components/ChatBubbleSeal/index.js.map +1 -1
  49. package/dist/module/components/ChatBubble/components/ChatBubbleText/index.js +3 -2
  50. package/dist/module/components/ChatBubble/components/ChatBubbleText/index.js.map +1 -1
  51. package/dist/module/components/ChatBubble/{context.js → contexts/ChatBubbleContext/index.js} +1 -1
  52. package/dist/module/components/ChatBubble/contexts/ChatBubbleContext/index.js.map +1 -0
  53. package/dist/module/components/ChatBubble/contexts/ChatBubbleContext/types.js +4 -0
  54. package/dist/module/components/ChatBubble/contexts/ChatBubbleContext/types.js.map +1 -0
  55. package/dist/module/components/ChatBubble/contexts/index.js +4 -0
  56. package/dist/module/components/ChatBubble/contexts/index.js.map +1 -0
  57. package/dist/module/components/ChatBubble/index.js +1 -1
  58. package/dist/module/components/ChatBubble/index.js.map +1 -1
  59. package/dist/module/components/IconButton/assets/class-variants.js +79 -0
  60. package/dist/module/components/IconButton/assets/class-variants.js.map +1 -0
  61. package/dist/module/components/IconButton/assets/design-system-showcase.js +115 -0
  62. package/dist/module/components/IconButton/assets/design-system-showcase.js.map +1 -0
  63. package/dist/module/components/IconButton/enums.js +29 -0
  64. package/dist/module/components/IconButton/enums.js.map +1 -0
  65. package/dist/module/components/IconButton/index.js +103 -0
  66. package/dist/module/components/IconButton/index.js.map +1 -0
  67. package/dist/module/components/IconButton/types.js +4 -0
  68. package/dist/module/components/IconButton/types.js.map +1 -0
  69. package/dist/module/components/ListButton/assets/class-variants.js +2 -10
  70. package/dist/module/components/ListButton/assets/class-variants.js.map +1 -1
  71. package/dist/module/components/ListButton/assets/design-system-showcase.js +420 -0
  72. package/dist/module/components/ListButton/assets/design-system-showcase.js.map +1 -0
  73. package/dist/module/components/ListButton/enums/index.js +0 -1
  74. package/dist/module/components/ListButton/enums/index.js.map +1 -1
  75. package/dist/module/components/ListButton/index.js +27 -31
  76. package/dist/module/components/ListButton/index.js.map +1 -1
  77. package/dist/module/components/OtpInput/assets/class-variant.js +1 -1
  78. package/dist/module/components/OtpInput/assets/class-variant.js.map +1 -1
  79. package/dist/module/components/OtpInput/components/InformationStatus/index.js +15 -13
  80. package/dist/module/components/OtpInput/components/InformationStatus/index.js.map +1 -1
  81. package/dist/module/components/OtpInput/enums/index.js +6 -7
  82. package/dist/module/components/OtpInput/enums/index.js.map +1 -1
  83. package/dist/module/components/OtpInput/index.js +66 -101
  84. package/dist/module/components/OtpInput/index.js.map +1 -1
  85. package/dist/module/components/TextInput/index.js +1 -1
  86. package/dist/module/components/TextInput/index.js.map +1 -1
  87. package/dist/module/components/Tooltip/index.js +45 -6
  88. package/dist/module/components/Tooltip/index.js.map +1 -1
  89. package/dist/module/components/index.js +2 -0
  90. package/dist/module/components/index.js.map +1 -1
  91. package/dist/module/iconography/Icons/index.js +2 -2
  92. package/dist/module/iconography/Icons/index.js.map +1 -1
  93. package/dist/typescript/components/ChatBubble/components/ChatBubbleSeal/types.d.ts +1 -1
  94. package/dist/typescript/components/ChatBubble/components/ChatBubbleText/types.d.ts +1 -1
  95. package/dist/typescript/components/ChatBubble/contexts/ChatBubbleContext/index.d.ts +3 -0
  96. package/dist/typescript/components/ChatBubble/contexts/ChatBubbleContext/types.d.ts +6 -0
  97. package/dist/typescript/components/ChatBubble/contexts/index.d.ts +1 -0
  98. package/dist/typescript/components/ChatBubble/types.d.ts +0 -1
  99. package/dist/typescript/components/IconButton/assets/class-variants.d.ts +8 -0
  100. package/dist/typescript/components/IconButton/assets/design-system-showcase.d.ts +17 -0
  101. package/dist/typescript/components/IconButton/enums.d.ts +22 -0
  102. package/dist/typescript/components/IconButton/index.d.ts +2 -0
  103. package/dist/typescript/components/IconButton/types.d.ts +15 -0
  104. package/dist/typescript/components/ListButton/assets/class-variants.d.ts +1 -4
  105. package/dist/typescript/components/ListButton/assets/design-system-showcase.d.ts +14 -0
  106. package/dist/typescript/components/ListButton/enums/index.d.ts +0 -1
  107. package/dist/typescript/components/ListButton/types.d.ts +5 -4
  108. package/dist/typescript/components/OtpInput/components/InformationStatus/types.d.ts +2 -2
  109. package/dist/typescript/components/OtpInput/enums/index.d.ts +2 -3
  110. package/dist/typescript/components/OtpInput/index.d.ts +1 -1
  111. package/dist/typescript/components/OtpInput/types.d.ts +4 -4
  112. package/dist/typescript/components/Tooltip/components/Content/types.d.ts +1 -0
  113. package/dist/typescript/components/Tooltip/types.d.ts +3 -1
  114. package/dist/typescript/components/index.d.ts +4 -0
  115. package/package.json +5 -5
  116. package/src/components/ChatBubble/components/ChatBubbleSeal/index.tsx +2 -1
  117. package/src/components/ChatBubble/components/ChatBubbleSeal/types.ts +1 -1
  118. package/src/components/ChatBubble/components/ChatBubbleText/index.tsx +2 -1
  119. package/src/components/ChatBubble/components/ChatBubbleText/types.ts +1 -1
  120. package/src/components/ChatBubble/{context.tsx → contexts/ChatBubbleContext/index.tsx} +1 -10
  121. package/src/components/ChatBubble/contexts/ChatBubbleContext/types.ts +11 -0
  122. package/src/components/ChatBubble/contexts/index.ts +1 -0
  123. package/src/components/ChatBubble/index.tsx +5 -2
  124. package/src/components/ChatBubble/types.ts +0 -2
  125. package/src/components/IconButton/assets/class-variants.ts +126 -0
  126. package/src/components/IconButton/assets/design-system-showcase.ts +246 -0
  127. package/src/components/IconButton/enums.ts +26 -0
  128. package/src/components/IconButton/index.tsx +124 -0
  129. package/src/components/IconButton/types.ts +22 -0
  130. package/src/components/ListButton/assets/class-variants.ts +2 -11
  131. package/src/components/ListButton/assets/design-system-showcase.ts +502 -0
  132. package/src/components/ListButton/enums/index.ts +0 -1
  133. package/src/components/ListButton/index.tsx +28 -26
  134. package/src/components/ListButton/types.ts +5 -4
  135. package/src/components/OtpInput/assets/class-variant.ts +1 -1
  136. package/src/components/OtpInput/components/InformationStatus/index.tsx +15 -14
  137. package/src/components/OtpInput/components/InformationStatus/types.ts +2 -2
  138. package/src/components/OtpInput/enums/index.ts +1 -2
  139. package/src/components/OtpInput/index.tsx +77 -136
  140. package/src/components/OtpInput/types.ts +4 -4
  141. package/src/components/TextInput/index.tsx +1 -1
  142. package/src/components/Tooltip/components/Content/types.ts +1 -0
  143. package/src/components/Tooltip/index.tsx +57 -5
  144. package/src/components/Tooltip/types.ts +3 -1
  145. package/src/components/index.ts +5 -0
  146. package/src/iconography/Icons/index.tsx +2 -3
  147. package/dist/commonjs/components/ChatBubble/context.js.map +0 -1
  148. package/dist/commonjs/components/ListButton/enums/icon-color.js +0 -18
  149. package/dist/commonjs/components/ListButton/enums/icon-color.js.map +0 -1
  150. package/dist/module/components/ChatBubble/context.js.map +0 -1
  151. package/dist/module/components/ListButton/enums/icon-color.js +0 -14
  152. package/dist/module/components/ListButton/enums/icon-color.js.map +0 -1
  153. package/dist/typescript/components/ChatBubble/context.d.ts +0 -8
  154. package/dist/typescript/components/ListButton/enums/icon-color.d.ts +0 -10
  155. package/src/components/ListButton/enums/icon-color.ts +0 -10
@@ -1,13 +1,14 @@
1
1
  import type { VariantProps } from "class-variance-authority";
2
2
  import type { buttonVariants } from "./assets/class-variants";
3
- import type { ListButtonIconColorEnum, ListButtonVariantEnum } from "./enums";
3
+ import type { ListButtonVariantEnum } from "./enums";
4
4
  import { PressableProps } from "react-native";
5
5
  import { SizeEnum, CornersEnum } from "../../enums";
6
6
  export interface ListButtonProps extends PressableProps, VariantProps<typeof buttonVariants> {
7
- icon?: React.ReactNode;
8
- iconColor?: ListButtonIconColorEnum;
7
+ iconLeft?: React.ReactNode;
8
+ iconRight?: React.ReactNode;
9
+ iconLeftContainerClassName?: React.ReactNode;
10
+ iconRightContainerClassName?: React.ReactNode;
9
11
  children: React.ReactNode;
10
- showChevronIcon?: boolean;
11
12
  variant?: ListButtonVariantEnum;
12
13
  size?: SizeEnum.SMALL | SizeEnum.MEDIUM | SizeEnum.LARGE;
13
14
  corners?: CornersEnum.SMALL | CornersEnum.MEDIUM;
@@ -1,6 +1,6 @@
1
- import type { InformationStatusEnum } from "../../enums";
1
+ import type { OTPInputInformationStatusEnum } from "../../enums";
2
2
  export interface InformationStatusProps {
3
- status: InformationStatusEnum;
3
+ status: OTPInputInformationStatusEnum;
4
4
  disabled?: boolean;
5
5
  onPress?: () => void;
6
6
  }
@@ -1,7 +1,6 @@
1
- export declare enum InformationStatusEnum {
1
+ export declare enum OTPInputInformationStatusEnum {
2
2
  DEFAULT = "default",
3
3
  ERROR = "error",
4
4
  SUCCESS = "success",
5
- LOADING = "loading",
6
- COOLDOWN = "cooldown"
5
+ LOADING = "loading"
7
6
  }
@@ -1,3 +1,3 @@
1
- import type { OtpInputProps } from "./types";
1
+ import { OtpInputProps } from "./types";
2
2
  export declare function OtpInput(props: OtpInputProps): import("react").JSX.Element;
3
3
  export default OtpInput;
@@ -1,12 +1,12 @@
1
1
  import type React from "react";
2
- import type { InformationStatusEnum } from "./enums";
2
+ import { OTPInputInformationStatusEnum } from "./enums";
3
3
  export interface OtpInputProps {
4
- OTPInputsQuantity?: number;
4
+ length?: number;
5
5
  rounded?: boolean;
6
6
  disabled?: boolean;
7
- status?: InformationStatusEnum;
7
+ status?: OTPInputInformationStatusEnum;
8
8
  customInformation?: React.ReactNode;
9
- onChange: (value: string) => void;
9
+ onChange: (value?: string) => void;
10
10
  onPressRetryToken?: (value: string) => void;
11
11
  inputClassName?: string;
12
12
  }
@@ -10,4 +10,5 @@ export interface ContentProps {
10
10
  onLayout?: (event: LayoutChangeEvent) => void;
11
11
  translateX?: number;
12
12
  pointerOffset?: TooltipPointerOffsetEnum;
13
+ onChangeVisibility?: (isVisible: boolean) => void;
13
14
  }
@@ -7,6 +7,8 @@ export interface TooltipProps {
7
7
  className?: string;
8
8
  pointerClassName?: string;
9
9
  containerClassName?: string;
10
- isVisible: boolean;
10
+ triggerButtonClassName?: string;
11
11
  style?: ViewStyle;
12
+ onChangeVisibility?: (isVisible: boolean) => void;
13
+ isOpenedByVariantError?: boolean;
12
14
  }
@@ -3,6 +3,7 @@ export * from "./Button";
3
3
  export type * from "./Button/types";
4
4
  export * from "./ChatBubble";
5
5
  export type * from "./ChatBubble/types";
6
+ export type * from "./ChatBubble/contexts/ChatBubbleContext/types";
6
7
  export * from "./Chip";
7
8
  export * from "./Chip/types";
8
9
  export * from "./Chip/enums";
@@ -46,3 +47,6 @@ export * from "./SelectButton/enums";
46
47
  export * from "./RadioInput";
47
48
  export type * from "./RadioInput/types";
48
49
  export * from "./RadioInput/enums";
50
+ export * from "./IconButton";
51
+ export type * from "./IconButton/types";
52
+ export * from "./IconButton/enums";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kivid/native-components",
3
- "version": "1.0.0-alpha.6",
3
+ "version": "1.0.0-alpha.7",
4
4
  "description": "A React Native component library for the Butterfly Design System.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -78,8 +78,8 @@
78
78
  "react": "19.0.0",
79
79
  "ts-jest": "^29.2.5",
80
80
  "typescript": "~5.8.3",
81
- "@kivid/tailwind-preset": "1.0.0-alpha.6",
82
- "@kivid/icons": "1.0.0-alpha.6"
81
+ "@kivid/tailwind-preset": "1.0.0-alpha.7",
82
+ "@kivid/icons": "1.0.0-alpha.7"
83
83
  },
84
84
  "peerDependencies": {
85
85
  "@lottiefiles/dotlottie-react": "^0.15.1",
@@ -89,8 +89,8 @@
89
89
  "react-native-svg": "^15.12.0",
90
90
  "react-native": "0.79.5",
91
91
  "react": "19.0.0",
92
- "@kivid/tailwind-preset": "1.0.0-alpha.6",
93
- "@kivid/icons": "1.0.0-alpha.6"
92
+ "@kivid/tailwind-preset": "1.0.0-alpha.7",
93
+ "@kivid/icons": "1.0.0-alpha.7"
94
94
  },
95
95
  "eslintIgnore": [
96
96
  "node_modules/",
@@ -1,10 +1,11 @@
1
1
  import React from "react";
2
2
  import { merge } from "@kivid/tailwind-preset";
3
3
  import { Seal } from "../../../Seal";
4
- import { useChatBubbleContext } from "../../context";
4
+
5
5
  import type { ChatBubbleSealProps } from "./types";
6
6
  import { SealVariantEnum } from "../../../Seal/enums";
7
7
  import { SizeEnum } from "../../../../enums";
8
+ import { useChatBubbleContext } from "../../contexts";
8
9
 
9
10
  export const ChatBubbleSeal: React.FC<ChatBubbleSealProps> = ({
10
11
  className,
@@ -1,4 +1,4 @@
1
- import { SealProps } from "../../..";
1
+ import { SealProps } from "../../../Seal/types";
2
2
 
3
3
  export interface ChatBubbleSealProps extends Omit<SealProps, "variant"> {
4
4
  className?: string;
@@ -1,8 +1,9 @@
1
1
  import React from "react";
2
2
  import { merge } from "@kivid/tailwind-preset";
3
3
  import { Typography } from "../../../Typography";
4
- import { useChatBubbleContext } from "../../context";
4
+
5
5
  import type { ChatBubbleTextProps } from "./types";
6
+ import { useChatBubbleContext } from "../../contexts";
6
7
 
7
8
  /**
8
9
  * Typography component for bubble text content
@@ -1,4 +1,4 @@
1
- import { TypographyProps } from "../../..";
1
+ import { TypographyProps } from "../../../Typography/types";
2
2
 
3
3
  export interface ChatBubbleTextProps
4
4
  extends Omit<TypographyProps, "variant" | "weight"> {
@@ -1,15 +1,6 @@
1
1
  import { createContext, useContext } from "react";
2
- import type {
3
- ChatBubbleType,
4
- ChatBubbleColorState,
5
- ChatBubbleMessageType,
6
- } from "./types";
7
2
 
8
- export interface ChatBubbleContextValue {
9
- contentType?: ChatBubbleType;
10
- colorState: ChatBubbleColorState;
11
- messageType: ChatBubbleMessageType;
12
- }
3
+ import type { ChatBubbleContextValue } from "./types";
13
4
 
14
5
  export const ChatBubbleContext = createContext<ChatBubbleContextValue | null>(
15
6
  null
@@ -0,0 +1,11 @@
1
+ import {
2
+ ChatBubbleColorState,
3
+ ChatBubbleMessageType,
4
+ ChatBubbleType,
5
+ } from "../../types";
6
+
7
+ export interface ChatBubbleContextValue {
8
+ contentType?: ChatBubbleType;
9
+ colorState: ChatBubbleColorState;
10
+ messageType: ChatBubbleMessageType;
11
+ }
@@ -0,0 +1 @@
1
+ export * from "./ChatBubbleContext";
@@ -7,11 +7,14 @@ import {
7
7
  ChatBubbleTime,
8
8
  ChatBubbleLoading,
9
9
  } from "./components";
10
- import { ChatBubbleContext } from "./context";
10
+
11
11
  import { chatBubbleBoxVariants } from "./assets/class-variants";
12
- import type { ChatBubbleProps, ChatBubbleContextValue } from "./types";
12
+ import type { ChatBubbleProps } from "./types";
13
13
  import { elevationDown100 } from "../../styles/mixins/shadows";
14
14
  import { merge } from "@kivid/tailwind-preset";
15
+ import { ChatBubbleContext } from "./contexts";
16
+ import type { ChatBubbleContextValue } from "./contexts/ChatBubbleContext/types";
17
+
15
18
 
16
19
  export function ChatBubble(props: ChatBubbleProps) {
17
20
  const {
@@ -1,7 +1,5 @@
1
1
  import type { ViewProps } from "react-native";
2
2
 
3
- export type { ChatBubbleContextValue } from "./context";
4
-
5
3
  export type ChatBubbleType = "check" | "alert" | "error" | "custom";
6
4
  export type ChatBubbleColorState = "fill" | "outline";
7
5
  export type ChatBubbleMessageType = "initial" | "followUp";
@@ -0,0 +1,126 @@
1
+ import { cva } from "class-variance-authority";
2
+ import {
3
+ IconButtonCornersEnum,
4
+ IconButtonSizeEnum,
5
+ IconButtonVariantEnum,
6
+ } from "../enums";
7
+
8
+ const buttonVariants = cva(
9
+ [
10
+ "flex flex-row items-center justify-center max-w-fit",
11
+ "disabled:cursor-not-allowed",
12
+ "relative overflow-hidden",
13
+ ],
14
+ {
15
+ variants: {
16
+ variant: {
17
+ [IconButtonVariantEnum.GRAPE]: [
18
+ "bg-grape-500",
19
+ "disabled:bg-grape-500 disabled:opacity-30",
20
+ ],
21
+ [IconButtonVariantEnum.JAVA]: [
22
+ "bg-java-500",
23
+ "disabled:bg-java-500 disabled:opacity-30",
24
+ ],
25
+ [IconButtonVariantEnum.PEAR]: [
26
+ "bg-pear-500",
27
+ "disabled:bg-pear-500 disabled:opacity-30",
28
+ ],
29
+ [IconButtonVariantEnum.TANGERINE]: [
30
+ "bg-tangerine-500",
31
+ "disabled:bg-tangerine-500 disabled:opacity-30",
32
+ ],
33
+ [IconButtonVariantEnum.PITAYA]: [
34
+ "bg-pitaya-500 border border-pitaya-500",
35
+ "disabled:bg-pitaya-500 disabled:opacity-30",
36
+ ],
37
+ [IconButtonVariantEnum.BLACKBERRY]: [
38
+ "bg-blackberry-500",
39
+ "disabled:bg-blackberry-500 disabled:opacity-30",
40
+ ],
41
+ [IconButtonVariantEnum.CHIA]: [
42
+ "bg-chia-700",
43
+ "disabled:bg-chia-700 disabled:opacity-30",
44
+ ],
45
+ [IconButtonVariantEnum.OUTLINE]: [
46
+ "bg-chia-100 border-100 border-chia-400",
47
+ "disabled:bg-chia-200 disabled:opacity-50",
48
+ ],
49
+ [IconButtonVariantEnum.GHOST]: [
50
+ "bg-transparent",
51
+ "disabled:opacity-30",
52
+ ],
53
+ },
54
+ size: {
55
+ [IconButtonSizeEnum.SMALL]: "px-400 py-300",
56
+ [IconButtonSizeEnum.MEDIUM]: "px-500 py-400",
57
+ [IconButtonSizeEnum.LARGE]: "px-600 py-400",
58
+ [IconButtonSizeEnum.XLARGE]: "px-700 py-500",
59
+ [IconButtonSizeEnum.XXLARGE]: "px-800 py-600",
60
+ },
61
+ corners: {
62
+ [IconButtonCornersEnum.SMALL]: "rounded-500",
63
+ [IconButtonCornersEnum.MEDIUM]: "rounded-700",
64
+ },
65
+ selected: {
66
+ true: "",
67
+ false: "",
68
+ },
69
+ },
70
+ compoundVariants: [
71
+ {
72
+ variant: IconButtonVariantEnum.GRAPE,
73
+ selected: true,
74
+ className: "bg-grape-600",
75
+ },
76
+ {
77
+ variant: IconButtonVariantEnum.JAVA,
78
+ selected: true,
79
+ className: "bg-java-600",
80
+ },
81
+ {
82
+ variant: IconButtonVariantEnum.PEAR,
83
+ selected: true,
84
+ className: "bg-pear-600",
85
+ },
86
+ {
87
+ variant: IconButtonVariantEnum.TANGERINE,
88
+ selected: true,
89
+ className: "bg-tangerine-600",
90
+ },
91
+ {
92
+ variant: IconButtonVariantEnum.BLACKBERRY,
93
+ selected: true,
94
+ className: "bg-blackberry-600",
95
+ },
96
+ {
97
+ variant: IconButtonVariantEnum.CHIA,
98
+ selected: true,
99
+ className: "bg-chia-600",
100
+ },
101
+ {
102
+ variant: IconButtonVariantEnum.OUTLINE,
103
+ selected: true,
104
+ className: "bg-outline-600",
105
+ },
106
+ {
107
+ variant: IconButtonVariantEnum.PITAYA,
108
+ selected: true,
109
+ className: "bg-pitaya-600",
110
+ },
111
+ {
112
+ variant: IconButtonVariantEnum.GHOST,
113
+ selected: true,
114
+ className: "bg-grape-100 border-100 border-grape-300",
115
+ },
116
+ ],
117
+ defaultVariants: {
118
+ variant: IconButtonVariantEnum.GRAPE,
119
+ size: IconButtonSizeEnum.MEDIUM,
120
+ corners: IconButtonCornersEnum.MEDIUM,
121
+ selected: false,
122
+ },
123
+ }
124
+ );
125
+
126
+ export { buttonVariants };
@@ -0,0 +1,246 @@
1
+ import {
2
+ IconButtonCornersEnum,
3
+ IconButtonSizeEnum,
4
+ IconButtonVariantEnum,
5
+ } from "../enums";
6
+
7
+ interface DesignSystemShowcaseItem {
8
+ size: IconButtonSizeEnum;
9
+ variant: IconButtonVariantEnum;
10
+ corners: IconButtonCornersEnum;
11
+ disabled?: boolean;
12
+ selected?: boolean;
13
+ loading?: boolean;
14
+ }
15
+
16
+ interface DesignSystemShowcaseButtonProps {
17
+ title: string;
18
+ buttons: {
19
+ [key: string]: DesignSystemShowcaseItem[];
20
+ };
21
+ }
22
+
23
+ const makeVariantSet = (
24
+ size: IconButtonSizeEnum,
25
+ variant: IconButtonVariantEnum
26
+ ): DesignSystemShowcaseItem[] => [
27
+ { size, variant, corners: IconButtonCornersEnum.MEDIUM },
28
+ { size, variant, corners: IconButtonCornersEnum.MEDIUM, selected: true },
29
+ { size, variant, corners: IconButtonCornersEnum.MEDIUM, disabled: true },
30
+ { size, variant, corners: IconButtonCornersEnum.MEDIUM, loading: true },
31
+ { size, variant, corners: IconButtonCornersEnum.SMALL },
32
+ { size, variant, corners: IconButtonCornersEnum.SMALL, selected: true },
33
+ { size, variant, corners: IconButtonCornersEnum.SMALL, disabled: true },
34
+ { size, variant, corners: IconButtonCornersEnum.SMALL, loading: true },
35
+ ];
36
+
37
+ export const designSystemShowcase: Record<
38
+ IconButtonSizeEnum,
39
+ DesignSystemShowcaseButtonProps
40
+ > = {
41
+ [IconButtonSizeEnum.SMALL]: {
42
+ title: "Small Size",
43
+ buttons: {
44
+ [IconButtonVariantEnum.GRAPE]: makeVariantSet(
45
+ IconButtonSizeEnum.SMALL,
46
+ IconButtonVariantEnum.GRAPE
47
+ ),
48
+ [IconButtonVariantEnum.JAVA]: makeVariantSet(
49
+ IconButtonSizeEnum.SMALL,
50
+ IconButtonVariantEnum.JAVA
51
+ ),
52
+ [IconButtonVariantEnum.PEAR]: makeVariantSet(
53
+ IconButtonSizeEnum.SMALL,
54
+ IconButtonVariantEnum.PEAR
55
+ ),
56
+ [IconButtonVariantEnum.TANGERINE]: makeVariantSet(
57
+ IconButtonSizeEnum.SMALL,
58
+ IconButtonVariantEnum.TANGERINE
59
+ ),
60
+ [IconButtonVariantEnum.PITAYA]: makeVariantSet(
61
+ IconButtonSizeEnum.SMALL,
62
+ IconButtonVariantEnum.PITAYA
63
+ ),
64
+ [IconButtonVariantEnum.BLACKBERRY]: makeVariantSet(
65
+ IconButtonSizeEnum.SMALL,
66
+ IconButtonVariantEnum.BLACKBERRY
67
+ ),
68
+ [IconButtonVariantEnum.CHIA]: makeVariantSet(
69
+ IconButtonSizeEnum.SMALL,
70
+ IconButtonVariantEnum.CHIA
71
+ ),
72
+ [IconButtonVariantEnum.OUTLINE]: makeVariantSet(
73
+ IconButtonSizeEnum.SMALL,
74
+ IconButtonVariantEnum.OUTLINE
75
+ ),
76
+ [IconButtonVariantEnum.GHOST]: makeVariantSet(
77
+ IconButtonSizeEnum.SMALL,
78
+ IconButtonVariantEnum.GHOST
79
+ ),
80
+ },
81
+ },
82
+ [IconButtonSizeEnum.MEDIUM]: {
83
+ title: "Medium Size",
84
+ buttons: {
85
+ [IconButtonVariantEnum.GRAPE]: makeVariantSet(
86
+ IconButtonSizeEnum.MEDIUM,
87
+ IconButtonVariantEnum.GRAPE
88
+ ),
89
+ [IconButtonVariantEnum.JAVA]: makeVariantSet(
90
+ IconButtonSizeEnum.MEDIUM,
91
+ IconButtonVariantEnum.JAVA
92
+ ),
93
+ [IconButtonVariantEnum.PEAR]: makeVariantSet(
94
+ IconButtonSizeEnum.MEDIUM,
95
+ IconButtonVariantEnum.PEAR
96
+ ),
97
+ [IconButtonVariantEnum.TANGERINE]: makeVariantSet(
98
+ IconButtonSizeEnum.MEDIUM,
99
+ IconButtonVariantEnum.TANGERINE
100
+ ),
101
+ [IconButtonVariantEnum.PITAYA]: makeVariantSet(
102
+ IconButtonSizeEnum.MEDIUM,
103
+ IconButtonVariantEnum.PITAYA
104
+ ),
105
+ [IconButtonVariantEnum.BLACKBERRY]: makeVariantSet(
106
+ IconButtonSizeEnum.MEDIUM,
107
+ IconButtonVariantEnum.BLACKBERRY
108
+ ),
109
+ [IconButtonVariantEnum.CHIA]: makeVariantSet(
110
+ IconButtonSizeEnum.MEDIUM,
111
+ IconButtonVariantEnum.CHIA
112
+ ),
113
+ [IconButtonVariantEnum.OUTLINE]: makeVariantSet(
114
+ IconButtonSizeEnum.MEDIUM,
115
+ IconButtonVariantEnum.OUTLINE
116
+ ),
117
+ [IconButtonVariantEnum.GHOST]: makeVariantSet(
118
+ IconButtonSizeEnum.MEDIUM,
119
+ IconButtonVariantEnum.GHOST
120
+ ),
121
+ },
122
+ },
123
+ [IconButtonSizeEnum.LARGE]: {
124
+ title: "Large Size",
125
+ buttons: {
126
+ [IconButtonVariantEnum.GRAPE]: makeVariantSet(
127
+ IconButtonSizeEnum.LARGE,
128
+ IconButtonVariantEnum.GRAPE
129
+ ),
130
+ [IconButtonVariantEnum.JAVA]: makeVariantSet(
131
+ IconButtonSizeEnum.LARGE,
132
+ IconButtonVariantEnum.JAVA
133
+ ),
134
+ [IconButtonVariantEnum.PEAR]: makeVariantSet(
135
+ IconButtonSizeEnum.LARGE,
136
+ IconButtonVariantEnum.PEAR
137
+ ),
138
+ [IconButtonVariantEnum.TANGERINE]: makeVariantSet(
139
+ IconButtonSizeEnum.LARGE,
140
+ IconButtonVariantEnum.TANGERINE
141
+ ),
142
+ [IconButtonVariantEnum.PITAYA]: makeVariantSet(
143
+ IconButtonSizeEnum.LARGE,
144
+ IconButtonVariantEnum.PITAYA
145
+ ),
146
+ [IconButtonVariantEnum.BLACKBERRY]: makeVariantSet(
147
+ IconButtonSizeEnum.LARGE,
148
+ IconButtonVariantEnum.BLACKBERRY
149
+ ),
150
+ [IconButtonVariantEnum.CHIA]: makeVariantSet(
151
+ IconButtonSizeEnum.LARGE,
152
+ IconButtonVariantEnum.CHIA
153
+ ),
154
+ [IconButtonVariantEnum.OUTLINE]: makeVariantSet(
155
+ IconButtonSizeEnum.LARGE,
156
+ IconButtonVariantEnum.OUTLINE
157
+ ),
158
+ [IconButtonVariantEnum.GHOST]: makeVariantSet(
159
+ IconButtonSizeEnum.LARGE,
160
+ IconButtonVariantEnum.GHOST
161
+ ),
162
+ },
163
+ },
164
+ [IconButtonSizeEnum.XLARGE]: {
165
+ title: "XLarge Size",
166
+ buttons: {
167
+ [IconButtonVariantEnum.GRAPE]: makeVariantSet(
168
+ IconButtonSizeEnum.XLARGE,
169
+ IconButtonVariantEnum.GRAPE
170
+ ),
171
+ [IconButtonVariantEnum.JAVA]: makeVariantSet(
172
+ IconButtonSizeEnum.XLARGE,
173
+ IconButtonVariantEnum.JAVA
174
+ ),
175
+ [IconButtonVariantEnum.PEAR]: makeVariantSet(
176
+ IconButtonSizeEnum.XLARGE,
177
+ IconButtonVariantEnum.PEAR
178
+ ),
179
+ [IconButtonVariantEnum.TANGERINE]: makeVariantSet(
180
+ IconButtonSizeEnum.XLARGE,
181
+ IconButtonVariantEnum.TANGERINE
182
+ ),
183
+ [IconButtonVariantEnum.PITAYA]: makeVariantSet(
184
+ IconButtonSizeEnum.XLARGE,
185
+ IconButtonVariantEnum.PITAYA
186
+ ),
187
+ [IconButtonVariantEnum.BLACKBERRY]: makeVariantSet(
188
+ IconButtonSizeEnum.XLARGE,
189
+ IconButtonVariantEnum.BLACKBERRY
190
+ ),
191
+ [IconButtonVariantEnum.CHIA]: makeVariantSet(
192
+ IconButtonSizeEnum.XLARGE,
193
+ IconButtonVariantEnum.CHIA
194
+ ),
195
+ [IconButtonVariantEnum.OUTLINE]: makeVariantSet(
196
+ IconButtonSizeEnum.XLARGE,
197
+ IconButtonVariantEnum.OUTLINE
198
+ ),
199
+ [IconButtonVariantEnum.GHOST]: makeVariantSet(
200
+ IconButtonSizeEnum.XLARGE,
201
+ IconButtonVariantEnum.GHOST
202
+ ),
203
+ },
204
+ },
205
+ [IconButtonSizeEnum.XXLARGE]: {
206
+ title: "2x Large Size",
207
+ buttons: {
208
+ [IconButtonVariantEnum.GRAPE]: makeVariantSet(
209
+ IconButtonSizeEnum.XXLARGE,
210
+ IconButtonVariantEnum.GRAPE
211
+ ),
212
+ [IconButtonVariantEnum.JAVA]: makeVariantSet(
213
+ IconButtonSizeEnum.XXLARGE,
214
+ IconButtonVariantEnum.JAVA
215
+ ),
216
+ [IconButtonVariantEnum.PEAR]: makeVariantSet(
217
+ IconButtonSizeEnum.XXLARGE,
218
+ IconButtonVariantEnum.PEAR
219
+ ),
220
+ [IconButtonVariantEnum.TANGERINE]: makeVariantSet(
221
+ IconButtonSizeEnum.XXLARGE,
222
+ IconButtonVariantEnum.TANGERINE
223
+ ),
224
+ [IconButtonVariantEnum.PITAYA]: makeVariantSet(
225
+ IconButtonSizeEnum.XXLARGE,
226
+ IconButtonVariantEnum.PITAYA
227
+ ),
228
+ [IconButtonVariantEnum.BLACKBERRY]: makeVariantSet(
229
+ IconButtonSizeEnum.XXLARGE,
230
+ IconButtonVariantEnum.BLACKBERRY
231
+ ),
232
+ [IconButtonVariantEnum.CHIA]: makeVariantSet(
233
+ IconButtonSizeEnum.XXLARGE,
234
+ IconButtonVariantEnum.CHIA
235
+ ),
236
+ [IconButtonVariantEnum.OUTLINE]: makeVariantSet(
237
+ IconButtonSizeEnum.XXLARGE,
238
+ IconButtonVariantEnum.OUTLINE
239
+ ),
240
+ [IconButtonVariantEnum.GHOST]: makeVariantSet(
241
+ IconButtonSizeEnum.XXLARGE,
242
+ IconButtonVariantEnum.GHOST
243
+ ),
244
+ },
245
+ },
246
+ } as const;
@@ -0,0 +1,26 @@
1
+ import { CornersEnum, SizeEnum } from "../../enums";
2
+
3
+ export enum IconButtonVariantEnum {
4
+ GRAPE = "grape",
5
+ JAVA = "java",
6
+ PEAR = "pear",
7
+ TANGERINE = "tangerine",
8
+ PITAYA = "pitaya",
9
+ BLACKBERRY = "blackberry",
10
+ CHIA = "chia",
11
+ OUTLINE = "outline",
12
+ GHOST = "ghost",
13
+ }
14
+
15
+ export enum IconButtonSizeEnum {
16
+ SMALL = SizeEnum.SMALL,
17
+ MEDIUM = SizeEnum.MEDIUM,
18
+ LARGE = SizeEnum.LARGE,
19
+ XLARGE = SizeEnum.XLARGE,
20
+ XXLARGE = SizeEnum.XXLARGE,
21
+ }
22
+
23
+ export enum IconButtonCornersEnum {
24
+ SMALL = CornersEnum.SMALL,
25
+ MEDIUM = CornersEnum.MEDIUM,
26
+ }