@timmbr/native-ui 0.0.0-stage → 1.0.1

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 +1019 -0
  212. package/README.md +0 -3
@@ -0,0 +1,42 @@
1
+ import { tva } from '../../theme/config.js';
2
+
3
+ const toastStyle = tva({
4
+ base: "flex flex-col p-4 rounded-xl shadow-lg font-sans border gap-1 max-w-sm w-full",
5
+ variants: {
6
+ action: {
7
+ error: "",
8
+ warning: "",
9
+ success: "",
10
+ info: "",
11
+ muted: ""
12
+ },
13
+ variant: {
14
+ solid: "",
15
+ outline: "bg-card"
16
+ }
17
+ },
18
+ compoundVariants: [
19
+ { action: "success", variant: "solid", class: "bg-success text-white border-success" },
20
+ { action: "success", variant: "outline", class: "border-success text-success" },
21
+ { action: "error", variant: "solid", class: "bg-destructive text-destructive-foreground border-destructive" },
22
+ { action: "error", variant: "outline", class: "border-destructive text-destructive" },
23
+ { action: "warning", variant: "solid", class: "bg-warning text-white border-warning" },
24
+ { action: "warning", variant: "outline", class: "border-warning text-warning" },
25
+ { action: "info", variant: "solid", class: "bg-info text-white border-info" },
26
+ { action: "info", variant: "outline", class: "border-info text-info" },
27
+ { action: "muted", variant: "solid", class: "bg-card text-card-foreground border-border" },
28
+ { action: "muted", variant: "outline", class: "border-border text-foreground" }
29
+ ],
30
+ defaultVariants: {
31
+ action: "muted",
32
+ variant: "solid"
33
+ }
34
+ });
35
+ const toastTitleStyle = tva({
36
+ base: "text-sm font-semibold leading-tight"
37
+ });
38
+ const toastDescriptionStyle = tva({
39
+ base: "text-xs opacity-90 leading-normal"
40
+ });
41
+
42
+ export { toastDescriptionStyle, toastStyle, toastTitleStyle };
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ export type ToastAction = 'error' | 'warning' | 'success' | 'info' | 'muted';
3
+ export type ToastVariant = 'solid' | 'outline';
4
+ export interface ToastContextValue {
5
+ action?: ToastAction;
6
+ variant?: ToastVariant;
7
+ }
8
+ export interface ToastProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ action?: ToastAction;
10
+ variant?: ToastVariant;
11
+ className?: string;
12
+ children?: React.ReactNode;
13
+ }
14
+ export interface ToastTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
15
+ className?: string;
16
+ children?: React.ReactNode;
17
+ }
18
+ export interface ToastDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
19
+ className?: string;
20
+ children?: React.ReactNode;
21
+ }
22
+ //# sourceMappingURL=Toast.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.types.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAC7E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,4 @@
1
+ export * from './Toast';
2
+ export * from './Toast.types';
3
+ export * from './Toast.styles';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { VStackProps } from './VStack.types';
3
+ export declare const VStack: React.ForwardRefExoticComponent<VStackProps & React.RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=VStack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStack.d.ts","sourceRoot":"","sources":["../../../src/components/VStack/VStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,eAAO,MAAM,MAAM,oFAYlB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { vstackStyle } from './VStack.styles.js';
4
+ import { cn } from '@timmbr/utils';
5
+
6
+ const VStack = React.forwardRef(
7
+ ({ space = "none", reversed = false, className, children, ...props }, ref) => {
8
+ return /* @__PURE__ */ jsx(
9
+ "div",
10
+ {
11
+ ref,
12
+ className: cn(vstackStyle({ space, reversed }), className),
13
+ ...props,
14
+ children
15
+ }
16
+ );
17
+ }
18
+ );
19
+ VStack.displayName = "VStack";
20
+
21
+ export { VStack };
@@ -0,0 +1,8 @@
1
+ export declare const vstackStyle: (props?: ({
2
+ space?: string | boolean | undefined;
3
+ reversed?: string | boolean | undefined;
4
+ } & {
5
+ class?: string;
6
+ className?: string;
7
+ }) | undefined) => string;
8
+ //# sourceMappingURL=VStack.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStack.styles.d.ts","sourceRoot":"","sources":["../../../src/components/VStack/VStack.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;yBAuBtB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { tva } from '../../theme/config.js';
2
+
3
+ const vstackStyle = tva({
4
+ base: "flex flex-col",
5
+ variants: {
6
+ space: {
7
+ none: "gap-0",
8
+ xs: "gap-1",
9
+ sm: "gap-2",
10
+ md: "gap-3",
11
+ lg: "gap-4",
12
+ xl: "gap-6",
13
+ "2xl": "gap-8",
14
+ "3xl": "gap-12",
15
+ "4xl": "gap-16"
16
+ },
17
+ reversed: {
18
+ true: "flex-col-reverse",
19
+ false: "flex-col"
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ space: "none",
24
+ reversed: false
25
+ }
26
+ });
27
+
28
+ export { vstackStyle };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export type VStackSpace = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
3
+ export interface VStackProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ space?: VStackSpace;
5
+ reversed?: boolean;
6
+ className?: string;
7
+ children?: React.ReactNode;
8
+ }
9
+ //# sourceMappingURL=VStack.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStack.types.d.ts","sourceRoot":"","sources":["../../../src/components/VStack/VStack.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5F,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,4 @@
1
+ export * from './VStack';
2
+ export * from './VStack.types';
3
+ export * from './VStack.styles';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/VStack/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,23 @@
1
+ export * from './theme/config';
2
+ export * from './provider/TimmbrNativeProvider';
3
+ export * from './components/Box';
4
+ export * from './components/VStack';
5
+ export * from './components/HStack';
6
+ export * from './components/Text';
7
+ export * from './components/Heading';
8
+ export * from './components/Button';
9
+ export * from './components/Badge';
10
+ export * from './components/Card';
11
+ export * from './components/Input';
12
+ export * from './components/Textarea';
13
+ export * from './components/Tabs';
14
+ export * from './components/Actionsheet';
15
+ export * from './components/Modal';
16
+ export * from './components/Switch';
17
+ export * from './components/Spinner';
18
+ export * from './components/Avatar';
19
+ export * from './components/Divider';
20
+ export * from './components/Pressable';
21
+ export * from './components/Toast';
22
+ export * from './components/Icon';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAEhD,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ export { createStyleContext, nativeThemes, nativeTokens, tva, useStyleContext, vars, withStyleContext } from './theme/config.js';
2
+ export { GluestackUIProvider, TimmbrNativeProvider, useThemeMode, useTimmbrTheme } from './provider/TimmbrNativeProvider.js';
3
+ export { Actionsheet, ActionsheetBackdrop, ActionsheetContent, ActionsheetDragIndicator, ActionsheetDragIndicatorWrapper, ActionsheetIcon, ActionsheetItem, ActionsheetItemText, useActionsheetContext } from './components/Actionsheet/Actionsheet.js';
4
+ export { Avatar, AvatarBadge, AvatarFallbackText, AvatarImage, useAvatarContext } from './components/Avatar/Avatar.js';
5
+ export { Badge, BadgeIcon, BadgeText, useBadgeContext } from './components/Badge/Badge.js';
6
+ export { Box } from './components/Box/Box.js';
7
+ export { Button, ButtonGroup, ButtonIcon, ButtonSpinner, ButtonText, useButtonContext } from './components/Button/Button.js';
8
+ export { Card, CardBody, CardFooter, CardHeader, useCardContext } from './components/Card/Card.js';
9
+ export { Divider } from './components/Divider/Divider.js';
10
+ export { HStack } from './components/HStack/HStack.js';
11
+ export { Heading } from './components/Heading/Heading.js';
12
+ export { Icon } from './components/Icon/Icon.js';
13
+ export { Input, InputField, InputIcon, InputSlot, useInputContext } from './components/Input/Input.js';
14
+ export { Modal, ModalBackdrop, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, useModalContext } from './components/Modal/Modal.js';
15
+ export { Pressable } from './components/Pressable/Pressable.js';
16
+ export { Spinner } from './components/Spinner/Spinner.js';
17
+ export { Switch } from './components/Switch/Switch.js';
18
+ export { Tabs, TabsContent, TabsList, TabsTrigger, TabsTriggerText, useTabsContext } from './components/Tabs/Tabs.js';
19
+ export { Text } from './components/Text/Text.js';
20
+ export { Textarea, TextareaInput, useTextareaContext } from './components/Textarea/Textarea.js';
21
+ export { Toast, ToastDescription, ToastTitle, useToastContext } from './components/Toast/Toast.js';
22
+ export { VStack } from './components/VStack/VStack.js';
23
+ export { actionsheetBackdropStyle, actionsheetContentStyle, actionsheetDragIndicatorStyle, actionsheetDragIndicatorWrapperStyle, actionsheetItemStyle, actionsheetItemTextStyle, actionsheetStyle } from './components/Actionsheet/Actionsheet.styles.js';
24
+ export { avatarBadgeStyle, avatarFallbackTextStyle, avatarImageStyle, avatarStyle } from './components/Avatar/Avatar.styles.js';
25
+ export { badgeStyle, badgeTextStyle } from './components/Badge/Badge.styles.js';
26
+ export { boxStyle } from './components/Box/Box.styles.js';
27
+ export { buttonGroupStyle, buttonIconStyle, buttonStyle, buttonTextStyle } from './components/Button/Button.styles.js';
28
+ export { cardBodyStyle, cardFooterStyle, cardHeaderStyle, cardStyle } from './components/Card/Card.styles.js';
29
+ export { dividerStyle } from './components/Divider/Divider.styles.js';
30
+ export { headingStyle } from './components/Heading/Heading.styles.js';
31
+ export { hstackStyle } from './components/HStack/HStack.styles.js';
32
+ export { iconStyle } from './components/Icon/Icon.styles.js';
33
+ export { inputFieldStyle, inputSlotStyle, inputStyle } from './components/Input/Input.styles.js';
34
+ export { modalBackdropStyle, modalBodyStyle, modalCloseButtonStyle, modalContentStyle, modalFooterStyle, modalHeaderStyle, modalStyle } from './components/Modal/Modal.styles.js';
35
+ export { pressableStyle } from './components/Pressable/Pressable.styles.js';
36
+ export { spinnerStyle } from './components/Spinner/Spinner.styles.js';
37
+ export { switchStyle, switchThumbStyle } from './components/Switch/Switch.styles.js';
38
+ export { tabsContentStyle, tabsListStyle, tabsStyle, tabsTriggerStyle, tabsTriggerTextStyle } from './components/Tabs/Tabs.styles.js';
39
+ export { textStyle } from './components/Text/Text.styles.js';
40
+ export { textareaInputStyle, textareaStyle } from './components/Textarea/Textarea.styles.js';
41
+ export { toastDescriptionStyle, toastStyle, toastTitleStyle } from './components/Toast/Toast.styles.js';
42
+ export { vstackStyle } from './components/VStack/VStack.styles.js';
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ export type ThemeMode = 'light' | 'dark' | 'system';
3
+ export type ResolvedTheme = 'light' | 'dark';
4
+ export interface TimmbrNativeContextValue {
5
+ mode: ThemeMode;
6
+ resolvedTheme: ResolvedTheme;
7
+ setMode: (mode: ThemeMode) => void;
8
+ toggleTheme: () => void;
9
+ }
10
+ export declare const useTimmbrTheme: () => TimmbrNativeContextValue;
11
+ export declare const useThemeMode: () => TimmbrNativeContextValue;
12
+ export interface TimmbrNativeProviderProps {
13
+ mode?: ThemeMode;
14
+ defaultMode?: ThemeMode;
15
+ children: React.ReactNode;
16
+ className?: string;
17
+ style?: React.CSSProperties;
18
+ }
19
+ export declare function TimmbrNativeProvider({ mode: controlledMode, defaultMode, children, className, style, }: TimmbrNativeProviderProps): React.JSX.Element;
20
+ export declare const GluestackUIProvider: typeof TimmbrNativeProvider;
21
+ //# sourceMappingURL=TimmbrNativeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimmbrNativeProvider.d.ts","sourceRoot":"","sources":["../../src/provider/TimmbrNativeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AASD,eAAO,MAAM,cAAc,QAAO,wBAEjC,CAAC;AAEF,eAAO,MAAM,YAAY,QAJS,wBAIQ,CAAC;AAE3C,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EAAE,cAAc,EACpB,WAAsB,EACtB,QAAQ,EACR,SAAS,EACT,KAAK,GACN,EAAE,yBAAyB,qBA+F3B;AAED,eAAO,MAAM,mBAAmB,6BAAuB,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { cn } from '@timmbr/utils';
4
+ import { nativeThemes } from '../theme/config.js';
5
+
6
+ const TimmbrNativeContext = React.createContext({
7
+ mode: "system",
8
+ resolvedTheme: "light",
9
+ setMode: () => {
10
+ },
11
+ toggleTheme: () => {
12
+ }
13
+ });
14
+ const useTimmbrTheme = () => {
15
+ return React.useContext(TimmbrNativeContext);
16
+ };
17
+ const useThemeMode = useTimmbrTheme;
18
+ function TimmbrNativeProvider({
19
+ mode: controlledMode,
20
+ defaultMode = "system",
21
+ children,
22
+ className,
23
+ style
24
+ }) {
25
+ const [uncontrolledMode, setUncontrolledMode] = React.useState(defaultMode);
26
+ const currentMode = controlledMode ?? uncontrolledMode;
27
+ const [domIsDark, setDomIsDark] = React.useState(() => {
28
+ if (typeof document !== "undefined") {
29
+ return document.documentElement.classList.contains("dark") || document.body.classList.contains("dark");
30
+ }
31
+ return false;
32
+ });
33
+ const [systemIsDark, setSystemIsDark] = React.useState(() => {
34
+ if (typeof window !== "undefined" && window.matchMedia) {
35
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
36
+ }
37
+ return false;
38
+ });
39
+ React.useEffect(() => {
40
+ if (typeof document === "undefined") return;
41
+ const updateTheme = () => {
42
+ const isDark = document.documentElement.classList.contains("dark") || document.body.classList.contains("dark");
43
+ setDomIsDark(isDark);
44
+ };
45
+ updateTheme();
46
+ const observer = new MutationObserver(updateTheme);
47
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
48
+ return () => observer.disconnect();
49
+ }, []);
50
+ React.useEffect(() => {
51
+ if (typeof window === "undefined" || !window.matchMedia) return;
52
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
53
+ const handler = (e) => {
54
+ setSystemIsDark(e.matches);
55
+ };
56
+ if (mediaQuery.addEventListener) {
57
+ mediaQuery.addEventListener("change", handler);
58
+ return () => mediaQuery.removeEventListener("change", handler);
59
+ }
60
+ }, []);
61
+ const resolvedTheme = React.useMemo(() => {
62
+ if (currentMode === "dark") return "dark";
63
+ if (currentMode === "light") return "light";
64
+ if (typeof document !== "undefined") {
65
+ return domIsDark ? "dark" : "light";
66
+ }
67
+ return systemIsDark ? "dark" : "light";
68
+ }, [currentMode, domIsDark, systemIsDark]);
69
+ const setMode = React.useCallback(
70
+ (newMode) => {
71
+ setUncontrolledMode(newMode);
72
+ },
73
+ []
74
+ );
75
+ const toggleTheme = React.useCallback(() => {
76
+ setUncontrolledMode((prev) => {
77
+ const active = prev === "system" ? typeof document !== "undefined" ? domIsDark ? "dark" : "light" : systemIsDark ? "dark" : "light" : prev;
78
+ return active === "dark" ? "light" : "dark";
79
+ });
80
+ }, [domIsDark, systemIsDark]);
81
+ const contextValue = React.useMemo(
82
+ () => ({
83
+ mode: currentMode,
84
+ resolvedTheme,
85
+ setMode,
86
+ toggleTheme
87
+ }),
88
+ [currentMode, resolvedTheme, setMode, toggleTheme]
89
+ );
90
+ return /* @__PURE__ */ jsx(TimmbrNativeContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
91
+ "div",
92
+ {
93
+ "data-theme": resolvedTheme,
94
+ "data-mode": currentMode,
95
+ className: cn(
96
+ "timmbr-native-provider min-h-full w-full font-sans antialiased text-foreground bg-background",
97
+ resolvedTheme === "dark" ? "dark" : "",
98
+ className
99
+ ),
100
+ style: {
101
+ ...nativeThemes[resolvedTheme],
102
+ ...style
103
+ },
104
+ children
105
+ }
106
+ ) });
107
+ }
108
+ const GluestackUIProvider = TimmbrNativeProvider;
109
+
110
+ export { GluestackUIProvider, TimmbrNativeProvider, useThemeMode, useTimmbrTheme };