@timmbr/native-ui 0.0.0-stage → 1.0.0

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 (212) hide show
  1. package/dist/components/Actionsheet/Actionsheet.d.ts +12 -0
  2. package/dist/components/Actionsheet/Actionsheet.d.ts.map +1 -0
  3. package/dist/components/Actionsheet/Actionsheet.js +116 -0
  4. package/dist/components/Actionsheet/Actionsheet.styles.d.ts +43 -0
  5. package/dist/components/Actionsheet/Actionsheet.styles.d.ts.map +1 -0
  6. package/dist/components/Actionsheet/Actionsheet.styles.js +25 -0
  7. package/dist/components/Actionsheet/Actionsheet.types.d.ts +39 -0
  8. package/dist/components/Actionsheet/Actionsheet.types.d.ts.map +1 -0
  9. package/dist/components/Actionsheet/index.d.ts +4 -0
  10. package/dist/components/Actionsheet/index.d.ts.map +1 -0
  11. package/dist/components/Avatar/Avatar.d.ts +8 -0
  12. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  13. package/dist/components/Avatar/Avatar.js +66 -0
  14. package/dist/components/Avatar/Avatar.styles.d.ts +25 -0
  15. package/dist/components/Avatar/Avatar.styles.d.ts.map +1 -0
  16. package/dist/components/Avatar/Avatar.styles.js +29 -0
  17. package/dist/components/Avatar/Avatar.types.d.ts +21 -0
  18. package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
  19. package/dist/components/Avatar/index.d.ts +4 -0
  20. package/dist/components/Avatar/index.d.ts.map +1 -0
  21. package/dist/components/Badge/Badge.d.ts +7 -0
  22. package/dist/components/Badge/Badge.d.ts.map +1 -0
  23. package/dist/components/Badge/Badge.js +73 -0
  24. package/dist/components/Badge/Badge.styles.d.ts +15 -0
  25. package/dist/components/Badge/Badge.styles.d.ts.map +1 -0
  26. package/dist/components/Badge/Badge.styles.js +71 -0
  27. package/dist/components/Badge/Badge.types.d.ts +25 -0
  28. package/dist/components/Badge/Badge.types.d.ts.map +1 -0
  29. package/dist/components/Badge/index.d.ts +4 -0
  30. package/dist/components/Badge/index.d.ts.map +1 -0
  31. package/dist/components/Box/Box.d.ts +4 -0
  32. package/dist/components/Box/Box.d.ts.map +1 -0
  33. package/dist/components/Box/Box.js +26 -0
  34. package/dist/components/Box/Box.styles.d.ts +7 -0
  35. package/dist/components/Box/Box.styles.d.ts.map +1 -0
  36. package/dist/components/Box/Box.styles.js +7 -0
  37. package/dist/components/Box/Box.types.d.ts +8 -0
  38. package/dist/components/Box/Box.types.d.ts.map +1 -0
  39. package/dist/components/Box/index.d.ts +4 -0
  40. package/dist/components/Box/index.d.ts.map +1 -0
  41. package/dist/components/Button/Button.d.ts +9 -0
  42. package/dist/components/Button/Button.d.ts.map +1 -0
  43. package/dist/components/Button/Button.js +169 -0
  44. package/dist/components/Button/Button.styles.d.ts +30 -0
  45. package/dist/components/Button/Button.styles.d.ts.map +1 -0
  46. package/dist/components/Button/Button.styles.js +106 -0
  47. package/dist/components/Button/Button.types.d.ts +41 -0
  48. package/dist/components/Button/Button.types.d.ts.map +1 -0
  49. package/dist/components/Button/index.d.ts +4 -0
  50. package/dist/components/Button/index.d.ts.map +1 -0
  51. package/dist/components/Card/Card.d.ts +8 -0
  52. package/dist/components/Card/Card.d.ts.map +1 -0
  53. package/dist/components/Card/Card.js +50 -0
  54. package/dist/components/Card/Card.styles.d.ts +26 -0
  55. package/dist/components/Card/Card.styles.d.ts.map +1 -0
  56. package/dist/components/Card/Card.styles.js +32 -0
  57. package/dist/components/Card/Card.types.d.ts +26 -0
  58. package/dist/components/Card/Card.types.d.ts.map +1 -0
  59. package/dist/components/Card/index.d.ts +4 -0
  60. package/dist/components/Card/index.d.ts.map +1 -0
  61. package/dist/components/Divider/Divider.d.ts +4 -0
  62. package/dist/components/Divider/Divider.d.ts.map +1 -0
  63. package/dist/components/Divider/Divider.js +22 -0
  64. package/dist/components/Divider/Divider.styles.d.ts +7 -0
  65. package/dist/components/Divider/Divider.styles.d.ts.map +1 -0
  66. package/dist/components/Divider/Divider.styles.js +16 -0
  67. package/dist/components/Divider/Divider.types.d.ts +7 -0
  68. package/dist/components/Divider/Divider.types.d.ts.map +1 -0
  69. package/dist/components/Divider/index.d.ts +4 -0
  70. package/dist/components/Divider/index.d.ts.map +1 -0
  71. package/dist/components/HStack/HStack.d.ts +4 -0
  72. package/dist/components/HStack/HStack.d.ts.map +1 -0
  73. package/dist/components/HStack/HStack.js +21 -0
  74. package/dist/components/HStack/HStack.styles.d.ts +8 -0
  75. package/dist/components/HStack/HStack.styles.d.ts.map +1 -0
  76. package/dist/components/HStack/HStack.styles.js +28 -0
  77. package/dist/components/HStack/HStack.types.d.ts +9 -0
  78. package/dist/components/HStack/HStack.types.d.ts.map +1 -0
  79. package/dist/components/HStack/index.d.ts +4 -0
  80. package/dist/components/HStack/index.d.ts.map +1 -0
  81. package/dist/components/Heading/Heading.d.ts +4 -0
  82. package/dist/components/Heading/Heading.d.ts.map +1 -0
  83. package/dist/components/Heading/Heading.js +22 -0
  84. package/dist/components/Heading/Heading.styles.d.ts +8 -0
  85. package/dist/components/Heading/Heading.styles.d.ts.map +1 -0
  86. package/dist/components/Heading/Heading.styles.js +28 -0
  87. package/dist/components/Heading/Heading.types.d.ts +10 -0
  88. package/dist/components/Heading/Heading.types.d.ts.map +1 -0
  89. package/dist/components/Heading/index.d.ts +4 -0
  90. package/dist/components/Heading/index.d.ts.map +1 -0
  91. package/dist/components/Icon/Icon.d.ts +4 -0
  92. package/dist/components/Icon/Icon.d.ts.map +1 -0
  93. package/dist/components/Icon/Icon.js +37 -0
  94. package/dist/components/Icon/Icon.styles.d.ts +7 -0
  95. package/dist/components/Icon/Icon.styles.d.ts.map +1 -0
  96. package/dist/components/Icon/Icon.styles.js +20 -0
  97. package/dist/components/Icon/Icon.types.d.ts +9 -0
  98. package/dist/components/Icon/Icon.types.d.ts.map +1 -0
  99. package/dist/components/Icon/index.d.ts +4 -0
  100. package/dist/components/Icon/index.d.ts.map +1 -0
  101. package/dist/components/Input/Input.d.ts +8 -0
  102. package/dist/components/Input/Input.d.ts.map +1 -0
  103. package/dist/components/Input/Input.js +105 -0
  104. package/dist/components/Input/Input.styles.d.ts +23 -0
  105. package/dist/components/Input/Input.styles.d.ts.map +1 -0
  106. package/dist/components/Input/Input.styles.js +56 -0
  107. package/dist/components/Input/Input.types.d.ts +32 -0
  108. package/dist/components/Input/Input.types.d.ts.map +1 -0
  109. package/dist/components/Input/index.d.ts +4 -0
  110. package/dist/components/Input/index.d.ts.map +1 -0
  111. package/dist/components/Modal/Modal.d.ts +11 -0
  112. package/dist/components/Modal/Modal.d.ts.map +1 -0
  113. package/dist/components/Modal/Modal.js +102 -0
  114. package/dist/components/Modal/Modal.styles.d.ts +43 -0
  115. package/dist/components/Modal/Modal.styles.d.ts.map +1 -0
  116. package/dist/components/Modal/Modal.styles.js +37 -0
  117. package/dist/components/Modal/Modal.types.d.ts +38 -0
  118. package/dist/components/Modal/Modal.types.d.ts.map +1 -0
  119. package/dist/components/Modal/index.d.ts +4 -0
  120. package/dist/components/Modal/index.d.ts.map +1 -0
  121. package/dist/components/Pressable/Pressable.d.ts +4 -0
  122. package/dist/components/Pressable/Pressable.d.ts.map +1 -0
  123. package/dist/components/Pressable/Pressable.js +43 -0
  124. package/dist/components/Pressable/Pressable.styles.d.ts +7 -0
  125. package/dist/components/Pressable/Pressable.styles.d.ts.map +1 -0
  126. package/dist/components/Pressable/Pressable.styles.js +16 -0
  127. package/dist/components/Pressable/Pressable.types.d.ts +9 -0
  128. package/dist/components/Pressable/Pressable.types.d.ts.map +1 -0
  129. package/dist/components/Pressable/index.d.ts +4 -0
  130. package/dist/components/Pressable/index.d.ts.map +1 -0
  131. package/dist/components/Spinner/Spinner.d.ts +4 -0
  132. package/dist/components/Spinner/Spinner.d.ts.map +1 -0
  133. package/dist/components/Spinner/Spinner.js +52 -0
  134. package/dist/components/Spinner/Spinner.styles.d.ts +7 -0
  135. package/dist/components/Spinner/Spinner.styles.d.ts.map +1 -0
  136. package/dist/components/Spinner/Spinner.styles.js +20 -0
  137. package/dist/components/Spinner/Spinner.types.d.ts +8 -0
  138. package/dist/components/Spinner/Spinner.types.d.ts.map +1 -0
  139. package/dist/components/Spinner/index.d.ts +4 -0
  140. package/dist/components/Spinner/index.d.ts.map +1 -0
  141. package/dist/components/Switch/Switch.d.ts +4 -0
  142. package/dist/components/Switch/Switch.d.ts.map +1 -0
  143. package/dist/components/Switch/Switch.js +56 -0
  144. package/dist/components/Switch/Switch.styles.d.ts +16 -0
  145. package/dist/components/Switch/Switch.styles.d.ts.map +1 -0
  146. package/dist/components/Switch/Switch.styles.js +50 -0
  147. package/dist/components/Switch/Switch.types.d.ts +11 -0
  148. package/dist/components/Switch/Switch.types.d.ts.map +1 -0
  149. package/dist/components/Switch/index.d.ts +4 -0
  150. package/dist/components/Switch/index.d.ts.map +1 -0
  151. package/dist/components/Tabs/Tabs.d.ts +9 -0
  152. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  153. package/dist/components/Tabs/Tabs.js +109 -0
  154. package/dist/components/Tabs/Tabs.styles.d.ts +31 -0
  155. package/dist/components/Tabs/Tabs.styles.d.ts.map +1 -0
  156. package/dist/components/Tabs/Tabs.styles.js +37 -0
  157. package/dist/components/Tabs/Tabs.types.d.ts +31 -0
  158. package/dist/components/Tabs/Tabs.types.d.ts.map +1 -0
  159. package/dist/components/Tabs/index.d.ts +4 -0
  160. package/dist/components/Tabs/index.d.ts.map +1 -0
  161. package/dist/components/Text/Text.d.ts +4 -0
  162. package/dist/components/Text/Text.d.ts.map +1 -0
  163. package/dist/components/Text/Text.js +29 -0
  164. package/dist/components/Text/Text.styles.d.ts +9 -0
  165. package/dist/components/Text/Text.styles.d.ts.map +1 -0
  166. package/dist/components/Text/Text.styles.js +35 -0
  167. package/dist/components/Text/Text.types.d.ts +11 -0
  168. package/dist/components/Text/Text.types.d.ts.map +1 -0
  169. package/dist/components/Text/index.d.ts +4 -0
  170. package/dist/components/Text/index.d.ts.map +1 -0
  171. package/dist/components/Textarea/Textarea.d.ts +6 -0
  172. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  173. package/dist/components/Textarea/Textarea.js +66 -0
  174. package/dist/components/Textarea/Textarea.styles.d.ts +16 -0
  175. package/dist/components/Textarea/Textarea.styles.d.ts.map +1 -0
  176. package/dist/components/Textarea/Textarea.styles.js +47 -0
  177. package/dist/components/Textarea/Textarea.types.d.ts +20 -0
  178. package/dist/components/Textarea/Textarea.types.d.ts.map +1 -0
  179. package/dist/components/Textarea/index.d.ts +4 -0
  180. package/dist/components/Textarea/index.d.ts.map +1 -0
  181. package/dist/components/Toast/Toast.d.ts +7 -0
  182. package/dist/components/Toast/Toast.d.ts.map +1 -0
  183. package/dist/components/Toast/Toast.js +39 -0
  184. package/dist/components/Toast/Toast.styles.d.ts +20 -0
  185. package/dist/components/Toast/Toast.styles.d.ts.map +1 -0
  186. package/dist/components/Toast/Toast.styles.js +42 -0
  187. package/dist/components/Toast/Toast.types.d.ts +22 -0
  188. package/dist/components/Toast/Toast.types.d.ts.map +1 -0
  189. package/dist/components/Toast/index.d.ts +4 -0
  190. package/dist/components/Toast/index.d.ts.map +1 -0
  191. package/dist/components/VStack/VStack.d.ts +4 -0
  192. package/dist/components/VStack/VStack.d.ts.map +1 -0
  193. package/dist/components/VStack/VStack.js +21 -0
  194. package/dist/components/VStack/VStack.styles.d.ts +8 -0
  195. package/dist/components/VStack/VStack.styles.d.ts.map +1 -0
  196. package/dist/components/VStack/VStack.styles.js +28 -0
  197. package/dist/components/VStack/VStack.types.d.ts +9 -0
  198. package/dist/components/VStack/VStack.types.d.ts.map +1 -0
  199. package/dist/components/VStack/index.d.ts +4 -0
  200. package/dist/components/VStack/index.d.ts.map +1 -0
  201. package/dist/index.d.ts +23 -0
  202. package/dist/index.d.ts.map +1 -0
  203. package/dist/index.js +42 -0
  204. package/dist/provider/TimmbrNativeProvider.d.ts +21 -0
  205. package/dist/provider/TimmbrNativeProvider.d.ts.map +1 -0
  206. package/dist/provider/TimmbrNativeProvider.js +110 -0
  207. package/dist/theme/config.d.ts +360 -0
  208. package/dist/theme/config.d.ts.map +1 -0
  209. package/dist/theme/config.js +129 -0
  210. package/package.json +70 -3
  211. package/src/native/index.tsx +799 -0
  212. package/README.md +0 -3
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import type { TabsProps, TabsListProps, TabsTriggerProps, TabsTriggerTextProps, TabsContentProps, TabsContextValue } from './Tabs.types';
3
+ export declare const useTabsContext: () => TabsContextValue;
4
+ export declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
5
+ export declare const TabsList: React.ForwardRefExoticComponent<TabsListProps & React.RefAttributes<HTMLDivElement>>;
6
+ export declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
7
+ export declare const TabsTriggerText: React.ForwardRefExoticComponent<TabsTriggerTextProps & React.RefAttributes<HTMLSpanElement>>;
8
+ export declare const TabsContent: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<HTMLDivElement>>;
9
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAQtB,eAAO,MAAM,cAAc,wBAAsC,CAAC;AAElE,eAAO,MAAM,IAAI,kFAyChB,CAAC;AAIF,eAAO,MAAM,QAAQ,sFAapB,CAAC;AAIF,eAAO,MAAM,WAAW,4FAyBvB,CAAC;AAIF,eAAO,MAAM,eAAe,8FAQ3B,CAAC;AAIF,eAAO,MAAM,WAAW,yFAmBvB,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { tabsStyle, tabsContentStyle, tabsListStyle, tabsTriggerStyle, tabsTriggerTextStyle } from './Tabs.styles.js';
4
+ import { cn } from '@timmbr/utils';
5
+
6
+ const TabsContext = React.createContext({
7
+ value: "",
8
+ onValueChange: () => {
9
+ }
10
+ });
11
+ const useTabsContext = () => React.useContext(TabsContext);
12
+ const Tabs = React.forwardRef(
13
+ ({
14
+ value: controlledValue,
15
+ defaultValue = "",
16
+ onValueChange,
17
+ className,
18
+ children,
19
+ ...props
20
+ }, ref) => {
21
+ const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);
22
+ const currentValue = controlledValue !== void 0 ? controlledValue : uncontrolledValue;
23
+ const handleValueChange = React.useCallback(
24
+ (newValue) => {
25
+ if (controlledValue === void 0) {
26
+ setUncontrolledValue(newValue);
27
+ }
28
+ onValueChange?.(newValue);
29
+ },
30
+ [controlledValue, onValueChange]
31
+ );
32
+ const contextValue = React.useMemo(
33
+ () => ({
34
+ value: currentValue,
35
+ onValueChange: handleValueChange
36
+ }),
37
+ [currentValue, handleValueChange]
38
+ );
39
+ return /* @__PURE__ */ jsx(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx("div", { ref, className: cn(tabsStyle(), className), ...props, children }) });
40
+ }
41
+ );
42
+ Tabs.displayName = "Tabs";
43
+ const TabsList = React.forwardRef(
44
+ ({ className, children, ...props }, ref) => {
45
+ return /* @__PURE__ */ jsx(
46
+ "div",
47
+ {
48
+ ref,
49
+ role: "tablist",
50
+ className: cn(tabsListStyle(), className),
51
+ ...props,
52
+ children
53
+ }
54
+ );
55
+ }
56
+ );
57
+ TabsList.displayName = "TabsList";
58
+ const TabsTrigger = React.forwardRef(
59
+ ({ value, className, children, onClick, ...props }, ref) => {
60
+ const { value: activeValue, onValueChange } = useTabsContext();
61
+ const isActive = activeValue === value;
62
+ const handleClick = (e) => {
63
+ onValueChange(value);
64
+ onClick?.(e);
65
+ };
66
+ return /* @__PURE__ */ jsx(
67
+ "button",
68
+ {
69
+ ref,
70
+ type: "button",
71
+ role: "tab",
72
+ "aria-selected": isActive,
73
+ "data-state": isActive ? "active" : "inactive",
74
+ className: cn(tabsTriggerStyle({ isActive }), className),
75
+ onClick: handleClick,
76
+ ...props,
77
+ children
78
+ }
79
+ );
80
+ }
81
+ );
82
+ TabsTrigger.displayName = "TabsTrigger";
83
+ const TabsTriggerText = React.forwardRef(
84
+ ({ className, children, ...props }, ref) => {
85
+ return /* @__PURE__ */ jsx("span", { ref, className: cn(tabsTriggerTextStyle(), className), ...props, children });
86
+ }
87
+ );
88
+ TabsTriggerText.displayName = "TabsTriggerText";
89
+ const TabsContent = React.forwardRef(
90
+ ({ value, className, children, ...props }, ref) => {
91
+ const { value: activeValue } = useTabsContext();
92
+ const isActive = activeValue === value;
93
+ if (!isActive) return null;
94
+ return /* @__PURE__ */ jsx(
95
+ "div",
96
+ {
97
+ ref,
98
+ role: "tabpanel",
99
+ "data-state": isActive ? "active" : "inactive",
100
+ className: cn(tabsContentStyle({ isActive }), className),
101
+ ...props,
102
+ children
103
+ }
104
+ );
105
+ }
106
+ );
107
+ TabsContent.displayName = "TabsContent";
108
+
109
+ export { Tabs, TabsContent, TabsList, TabsTrigger, TabsTriggerText, useTabsContext };
@@ -0,0 +1,31 @@
1
+ export declare const tabsStyle: (props?: ({
2
+ [x: string]: string | boolean | undefined;
3
+ } & {
4
+ class?: string;
5
+ className?: string;
6
+ }) | undefined) => string;
7
+ export declare const tabsListStyle: (props?: ({
8
+ [x: string]: string | boolean | undefined;
9
+ } & {
10
+ class?: string;
11
+ className?: string;
12
+ }) | undefined) => string;
13
+ export declare const tabsTriggerStyle: (props?: ({
14
+ isActive?: string | boolean | undefined;
15
+ } & {
16
+ class?: string;
17
+ className?: string;
18
+ }) | undefined) => string;
19
+ export declare const tabsTriggerTextStyle: (props?: ({
20
+ [x: string]: string | boolean | undefined;
21
+ } & {
22
+ class?: string;
23
+ className?: string;
24
+ }) | undefined) => string;
25
+ export declare const tabsContentStyle: (props?: ({
26
+ isActive?: string | boolean | undefined;
27
+ } & {
28
+ class?: string;
29
+ className?: string;
30
+ }) | undefined) => string;
31
+ //# sourceMappingURL=Tabs.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;yBAEpB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;yBAExB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;yBAW3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;yBAE/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;yBAW3B,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { tva } from '../../theme/config.js';
2
+
3
+ const tabsStyle = tva({
4
+ base: "flex flex-col w-full font-sans"
5
+ });
6
+ const tabsListStyle = tva({
7
+ base: "inline-flex h-11 items-center justify-start rounded-lg bg-secondary/50 p-1 text-muted-foreground border border-border/50 gap-1"
8
+ });
9
+ const tabsTriggerStyle = tva({
10
+ base: "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3.5 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 select-none cursor-pointer",
11
+ variants: {
12
+ isActive: {
13
+ true: "bg-card text-foreground shadow-sm font-semibold border border-border/40",
14
+ false: "hover:text-foreground hover:bg-card/50"
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ isActive: false
19
+ }
20
+ });
21
+ const tabsTriggerTextStyle = tva({
22
+ base: "leading-none"
23
+ });
24
+ const tabsContentStyle = tva({
25
+ base: "mt-3 focus-visible:outline-none",
26
+ variants: {
27
+ isActive: {
28
+ true: "block",
29
+ false: "hidden"
30
+ }
31
+ },
32
+ defaultVariants: {
33
+ isActive: false
34
+ }
35
+ });
36
+
37
+ export { tabsContentStyle, tabsListStyle, tabsStyle, tabsTriggerStyle, tabsTriggerTextStyle };
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ export interface TabsContextValue {
3
+ value: string;
4
+ onValueChange: (value: string) => void;
5
+ }
6
+ export interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ value?: string;
8
+ defaultValue?: string;
9
+ onValueChange?: (value: string) => void;
10
+ className?: string;
11
+ children?: React.ReactNode;
12
+ }
13
+ export interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {
14
+ className?: string;
15
+ children?: React.ReactNode;
16
+ }
17
+ export interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
18
+ value: string;
19
+ className?: string;
20
+ children?: React.ReactNode;
21
+ }
22
+ export interface TabsTriggerTextProps extends React.HTMLAttributes<HTMLSpanElement> {
23
+ className?: string;
24
+ children?: React.ReactNode;
25
+ }
26
+ export interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {
27
+ value: string;
28
+ className?: string;
29
+ children?: React.ReactNode;
30
+ }
31
+ //# sourceMappingURL=Tabs.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.types.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,4 @@
1
+ export * from './Tabs';
2
+ export * from './Tabs.types';
3
+ export * from './Tabs.styles';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { TextProps } from './Text.types';
3
+ export declare const Text: React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLSpanElement>>;
4
+ //# sourceMappingURL=Text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/components/Text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,eAAO,MAAM,IAAI,mFAuBhB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { textStyle } from './Text.styles.js';
4
+ import { cn } from '@timmbr/utils';
5
+
6
+ const Text = React.forwardRef(
7
+ ({
8
+ size = "md",
9
+ sub = false,
10
+ highlight = false,
11
+ className,
12
+ children,
13
+ as: Component = "span",
14
+ ...props
15
+ }, ref) => {
16
+ return /* @__PURE__ */ jsx(
17
+ Component,
18
+ {
19
+ ref,
20
+ className: cn(textStyle({ size, sub, highlight }), className),
21
+ ...props,
22
+ children
23
+ }
24
+ );
25
+ }
26
+ );
27
+ Text.displayName = "Text";
28
+
29
+ export { Text };
@@ -0,0 +1,9 @@
1
+ export declare const textStyle: (props?: ({
2
+ size?: string | boolean | undefined;
3
+ sub?: string | boolean | undefined;
4
+ highlight?: string | boolean | undefined;
5
+ } & {
6
+ class?: string;
7
+ className?: string;
8
+ }) | undefined) => string;
9
+ //# sourceMappingURL=Text.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Text/Text.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;yBA8BpB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { tva } from '../../theme/config.js';
2
+
3
+ const textStyle = tva({
4
+ base: "text-foreground font-sans tracking-normal",
5
+ variants: {
6
+ size: {
7
+ "2xs": "text-[10px] leading-tight",
8
+ xs: "text-xs leading-4",
9
+ sm: "text-sm leading-5",
10
+ md: "text-base leading-6",
11
+ lg: "text-lg leading-7",
12
+ xl: "text-xl leading-7",
13
+ "2xl": "text-2xl leading-8",
14
+ "3xl": "text-3xl leading-9",
15
+ "4xl": "text-4xl leading-10",
16
+ "5xl": "text-5xl leading-none",
17
+ "6xl": "text-6xl leading-none"
18
+ },
19
+ sub: {
20
+ true: "text-muted-foreground",
21
+ false: ""
22
+ },
23
+ highlight: {
24
+ true: "bg-primary/10 text-primary px-1 rounded",
25
+ false: ""
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ size: "md",
30
+ sub: false,
31
+ highlight: false
32
+ }
33
+ });
34
+
35
+ export { textStyle };
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ export type TextSize = '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl';
3
+ export interface TextProps extends React.HTMLAttributes<HTMLSpanElement> {
4
+ size?: TextSize;
5
+ sub?: boolean;
6
+ highlight?: boolean;
7
+ className?: string;
8
+ children?: React.ReactNode;
9
+ as?: React.ElementType;
10
+ }
11
+ //# sourceMappingURL=Text.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.types.d.ts","sourceRoot":"","sources":["../../../src/components/Text/Text.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,QAAQ,GAChB,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACtE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CACxB"}
@@ -0,0 +1,4 @@
1
+ export * from './Text';
2
+ export * from './Text.types';
3
+ export * from './Text.styles';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Text/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import type { TextareaProps, TextareaInputProps, TextareaContextValue } from './Textarea.types';
3
+ export declare const useTextareaContext: () => TextareaContextValue;
4
+ export declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLDivElement>>;
5
+ export declare const TextareaInput: React.ForwardRefExoticComponent<TextareaInputProps & React.RefAttributes<HTMLTextAreaElement>>;
6
+ //# sourceMappingURL=Textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAU1B,eAAO,MAAM,kBAAkB,4BAA0C,CAAC;AAE1E,eAAO,MAAM,QAAQ,sFA0CpB,CAAC;AAIF,eAAO,MAAM,aAAa,gGAcxB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { textareaStyle, textareaInputStyle } from './Textarea.styles.js';
4
+ import { cn } from '@timmbr/utils';
5
+
6
+ const TextareaContext = React.createContext({
7
+ size: "md",
8
+ isInvalid: false,
9
+ isDisabled: false,
10
+ isFocused: false
11
+ });
12
+ const useTextareaContext = () => React.useContext(TextareaContext);
13
+ const Textarea = React.forwardRef(
14
+ ({
15
+ size = "md",
16
+ isInvalid = false,
17
+ isDisabled = false,
18
+ isFocused = false,
19
+ className,
20
+ children,
21
+ ...props
22
+ }, ref) => {
23
+ const contextValue = React.useMemo(
24
+ () => ({
25
+ size,
26
+ isInvalid,
27
+ isDisabled,
28
+ isFocused
29
+ }),
30
+ [size, isInvalid, isDisabled, isFocused]
31
+ );
32
+ return /* @__PURE__ */ jsx(TextareaContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
33
+ "div",
34
+ {
35
+ ref,
36
+ "data-size": size,
37
+ "data-invalid": isInvalid,
38
+ "data-disabled": isDisabled,
39
+ "aria-disabled": isDisabled,
40
+ className: cn(
41
+ textareaStyle({ size, isInvalid, isDisabled, isFocused }),
42
+ className
43
+ ),
44
+ ...props,
45
+ children
46
+ }
47
+ ) });
48
+ }
49
+ );
50
+ Textarea.displayName = "Textarea";
51
+ const TextareaInput = React.forwardRef(({ className, disabled, ...props }, ref) => {
52
+ const { size, isDisabled, isInvalid } = useTextareaContext();
53
+ return /* @__PURE__ */ jsx(
54
+ "textarea",
55
+ {
56
+ ref,
57
+ disabled: isDisabled || disabled,
58
+ "aria-invalid": isInvalid,
59
+ className: cn(textareaInputStyle({ size }), className),
60
+ ...props
61
+ }
62
+ );
63
+ });
64
+ TextareaInput.displayName = "TextareaInput";
65
+
66
+ export { Textarea, TextareaInput, useTextareaContext };
@@ -0,0 +1,16 @@
1
+ export declare const textareaStyle: (props?: ({
2
+ size?: string | boolean | undefined;
3
+ isInvalid?: string | boolean | undefined;
4
+ isDisabled?: string | boolean | undefined;
5
+ isFocused?: string | boolean | undefined;
6
+ } & {
7
+ class?: string;
8
+ className?: string;
9
+ }) | undefined) => string;
10
+ export declare const textareaInputStyle: (props?: ({
11
+ size?: string | boolean | undefined;
12
+ } & {
13
+ class?: string;
14
+ className?: string;
15
+ }) | undefined) => string;
16
+ //# sourceMappingURL=Textarea.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/Textarea.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;;yBA4BxB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;yBAa7B,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { tva } from '../../theme/config.js';
2
+
3
+ const textareaStyle = tva({
4
+ base: "flex flex-col font-sans transition-colors border rounded-md bg-background text-foreground focus-within:ring-2 focus-within:border-primary focus-within:ring-primary/20",
5
+ variants: {
6
+ size: {
7
+ sm: "p-2 text-xs",
8
+ md: "p-3 text-sm",
9
+ lg: "p-3.5 text-base",
10
+ xl: "p-4 text-lg"
11
+ },
12
+ isInvalid: {
13
+ true: "border-destructive focus-within:border-destructive focus-within:ring-destructive/20 text-destructive",
14
+ false: "border-border"
15
+ },
16
+ isDisabled: {
17
+ true: "opacity-50 cursor-not-allowed bg-muted/20 pointer-events-none",
18
+ false: ""
19
+ },
20
+ isFocused: {
21
+ true: "border-primary ring-2 ring-primary/20",
22
+ false: ""
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ size: "md",
27
+ isInvalid: false,
28
+ isDisabled: false,
29
+ isFocused: false
30
+ }
31
+ });
32
+ const textareaInputStyle = tva({
33
+ base: "w-full h-full min-h-[80px] bg-transparent border-none outline-none resize-y text-foreground placeholder:text-muted-foreground p-0 leading-relaxed",
34
+ variants: {
35
+ size: {
36
+ sm: "text-xs",
37
+ md: "text-sm",
38
+ lg: "text-base",
39
+ xl: "text-lg"
40
+ }
41
+ },
42
+ defaultVariants: {
43
+ size: "md"
44
+ }
45
+ });
46
+
47
+ export { textareaInputStyle, textareaStyle };
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ export type TextareaSize = 'sm' | 'md' | 'lg' | 'xl';
3
+ export interface TextareaContextValue {
4
+ size?: TextareaSize;
5
+ isInvalid?: boolean;
6
+ isDisabled?: boolean;
7
+ isFocused?: boolean;
8
+ }
9
+ export interface TextareaProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ size?: TextareaSize;
11
+ isInvalid?: boolean;
12
+ isDisabled?: boolean;
13
+ isFocused?: boolean;
14
+ className?: string;
15
+ children?: React.ReactNode;
16
+ }
17
+ export interface TextareaInputProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
18
+ className?: string;
19
+ }
20
+ //# sourceMappingURL=Textarea.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.types.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/Textarea.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,kBACf,SAAQ,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,4 @@
1
+ export * from './Textarea';
2
+ export * from './Textarea.types';
3
+ export * from './Textarea.styles';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import type { ToastProps, ToastTitleProps, ToastDescriptionProps, ToastContextValue } from './Toast.types';
3
+ export declare const useToastContext: () => ToastContextValue;
4
+ export declare const Toast: React.ForwardRefExoticComponent<ToastProps & React.RefAttributes<HTMLDivElement>>;
5
+ export declare const ToastTitle: React.ForwardRefExoticComponent<ToastTitleProps & React.RefAttributes<HTMLHeadingElement>>;
6
+ export declare const ToastDescription: React.ForwardRefExoticComponent<ToastDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
7
+ //# sourceMappingURL=Toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAQvB,eAAO,MAAM,eAAe,yBAAuC,CAAC;AAEpE,eAAO,MAAM,KAAK,mFAiBjB,CAAC;AAIF,eAAO,MAAM,UAAU,4FAQtB,CAAC;AAIF,eAAO,MAAM,gBAAgB,oGAS3B,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { toastStyle, toastDescriptionStyle, toastTitleStyle } from './Toast.styles.js';
4
+ import { cn } from '@timmbr/utils';
5
+
6
+ const ToastContext = React.createContext({
7
+ action: "muted",
8
+ variant: "solid"
9
+ });
10
+ const useToastContext = () => React.useContext(ToastContext);
11
+ const Toast = React.forwardRef(
12
+ ({ action = "muted", variant = "solid", className, children, ...props }, ref) => {
13
+ return /* @__PURE__ */ jsx(ToastContext.Provider, { value: { action, variant }, children: /* @__PURE__ */ jsx(
14
+ "div",
15
+ {
16
+ ref,
17
+ role: "status",
18
+ "data-action": action,
19
+ "data-variant": variant,
20
+ className: cn(toastStyle({ action, variant }), className),
21
+ ...props,
22
+ children
23
+ }
24
+ ) });
25
+ }
26
+ );
27
+ Toast.displayName = "Toast";
28
+ const ToastTitle = React.forwardRef(
29
+ ({ className, children, ...props }, ref) => {
30
+ return /* @__PURE__ */ jsx("h5", { ref, className: cn(toastTitleStyle(), className), ...props, children });
31
+ }
32
+ );
33
+ ToastTitle.displayName = "ToastTitle";
34
+ const ToastDescription = React.forwardRef(({ className, children, ...props }, ref) => {
35
+ return /* @__PURE__ */ jsx("p", { ref, className: cn(toastDescriptionStyle(), className), ...props, children });
36
+ });
37
+ ToastDescription.displayName = "ToastDescription";
38
+
39
+ export { Toast, ToastDescription, ToastTitle, useToastContext };
@@ -0,0 +1,20 @@
1
+ export declare const toastStyle: (props?: ({
2
+ action?: string | boolean | undefined;
3
+ variant?: string | boolean | undefined;
4
+ } & {
5
+ class?: string;
6
+ className?: string;
7
+ }) | undefined) => string;
8
+ export declare const toastTitleStyle: (props?: ({
9
+ [x: string]: string | boolean | undefined;
10
+ } & {
11
+ class?: string;
12
+ className?: string;
13
+ }) | undefined) => string;
14
+ export declare const toastDescriptionStyle: (props?: ({
15
+ [x: string]: string | boolean | undefined;
16
+ } & {
17
+ class?: string;
18
+ className?: string;
19
+ }) | undefined) => string;
20
+ //# sourceMappingURL=Toast.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;yBAmCrB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;yBAE1B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;yBAEhC,CAAC"}