panelui-native 0.1.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 (122) hide show
  1. package/lib/module/components/alert/index.js +122 -0
  2. package/lib/module/components/alert/index.js.map +1 -0
  3. package/lib/module/components/avatar/index.js +74 -0
  4. package/lib/module/components/avatar/index.js.map +1 -0
  5. package/lib/module/components/badge/index.js +77 -0
  6. package/lib/module/components/badge/index.js.map +1 -0
  7. package/lib/module/components/bottom-sheet/index.js +137 -0
  8. package/lib/module/components/bottom-sheet/index.js.map +1 -0
  9. package/lib/module/components/button/index.js +101 -0
  10. package/lib/module/components/button/index.js.map +1 -0
  11. package/lib/module/components/card/index.js +73 -0
  12. package/lib/module/components/card/index.js.map +1 -0
  13. package/lib/module/components/checkbox/index.js +84 -0
  14. package/lib/module/components/checkbox/index.js.map +1 -0
  15. package/lib/module/components/dialog/index.js +140 -0
  16. package/lib/module/components/dialog/index.js.map +1 -0
  17. package/lib/module/components/input/index.js +92 -0
  18. package/lib/module/components/input/index.js.map +1 -0
  19. package/lib/module/components/radio-group/index.js +92 -0
  20. package/lib/module/components/radio-group/index.js.map +1 -0
  21. package/lib/module/components/select/index.js +147 -0
  22. package/lib/module/components/select/index.js.map +1 -0
  23. package/lib/module/components/skeleton/index.js +26 -0
  24. package/lib/module/components/skeleton/index.js.map +1 -0
  25. package/lib/module/components/spinner/index.js +47 -0
  26. package/lib/module/components/spinner/index.js.map +1 -0
  27. package/lib/module/components/switch/index.js +96 -0
  28. package/lib/module/components/switch/index.js.map +1 -0
  29. package/lib/module/components/tabs/index.js +161 -0
  30. package/lib/module/components/tabs/index.js.map +1 -0
  31. package/lib/module/icons/index.js +65 -0
  32. package/lib/module/icons/index.js.map +1 -0
  33. package/lib/module/index.js +36 -0
  34. package/lib/module/index.js.map +1 -0
  35. package/lib/module/package.json +1 -0
  36. package/lib/module/primitives/animated-pressable.js +51 -0
  37. package/lib/module/primitives/animated-pressable.js.map +1 -0
  38. package/lib/module/primitives/portal.js +76 -0
  39. package/lib/module/primitives/portal.js.map +1 -0
  40. package/lib/module/primitives/text.js +51 -0
  41. package/lib/module/primitives/text.js.map +1 -0
  42. package/lib/module/providers/panel-ui-provider.js +29 -0
  43. package/lib/module/providers/panel-ui-provider.js.map +1 -0
  44. package/lib/module/theme/use-theme.js +19 -0
  45. package/lib/module/theme/use-theme.js.map +1 -0
  46. package/lib/module/uniwind-env.d.js +4 -0
  47. package/lib/module/uniwind-env.d.js.map +1 -0
  48. package/lib/module/utils/cn.js +8 -0
  49. package/lib/module/utils/cn.js.map +1 -0
  50. package/lib/typescript/package.json +1 -0
  51. package/lib/typescript/src/components/alert/index.d.ts +113 -0
  52. package/lib/typescript/src/components/alert/index.d.ts.map +1 -0
  53. package/lib/typescript/src/components/avatar/index.d.ts +83 -0
  54. package/lib/typescript/src/components/avatar/index.d.ts.map +1 -0
  55. package/lib/typescript/src/components/badge/index.d.ts +114 -0
  56. package/lib/typescript/src/components/badge/index.d.ts.map +1 -0
  57. package/lib/typescript/src/components/bottom-sheet/index.d.ts +30 -0
  58. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -0
  59. package/lib/typescript/src/components/button/index.d.ts +159 -0
  60. package/lib/typescript/src/components/button/index.d.ts.map +1 -0
  61. package/lib/typescript/src/components/card/index.d.ts +13 -0
  62. package/lib/typescript/src/components/card/index.d.ts.map +1 -0
  63. package/lib/typescript/src/components/checkbox/index.d.ts +47 -0
  64. package/lib/typescript/src/components/checkbox/index.d.ts.map +1 -0
  65. package/lib/typescript/src/components/dialog/index.d.ts +50 -0
  66. package/lib/typescript/src/components/dialog/index.d.ts.map +1 -0
  67. package/lib/typescript/src/components/input/index.d.ts +12 -0
  68. package/lib/typescript/src/components/input/index.d.ts.map +1 -0
  69. package/lib/typescript/src/components/radio-group/index.d.ts +20 -0
  70. package/lib/typescript/src/components/radio-group/index.d.ts.map +1 -0
  71. package/lib/typescript/src/components/select/index.d.ts +23 -0
  72. package/lib/typescript/src/components/select/index.d.ts.map +1 -0
  73. package/lib/typescript/src/components/skeleton/index.d.ts +6 -0
  74. package/lib/typescript/src/components/skeleton/index.d.ts.map +1 -0
  75. package/lib/typescript/src/components/spinner/index.d.ts +27 -0
  76. package/lib/typescript/src/components/spinner/index.d.ts.map +1 -0
  77. package/lib/typescript/src/components/switch/index.d.ts +76 -0
  78. package/lib/typescript/src/components/switch/index.d.ts.map +1 -0
  79. package/lib/typescript/src/components/tabs/index.d.ts +34 -0
  80. package/lib/typescript/src/components/tabs/index.d.ts.map +1 -0
  81. package/lib/typescript/src/icons/index.d.ts +9 -0
  82. package/lib/typescript/src/icons/index.d.ts.map +1 -0
  83. package/lib/typescript/src/index.d.ts +23 -0
  84. package/lib/typescript/src/index.d.ts.map +1 -0
  85. package/lib/typescript/src/primitives/animated-pressable.d.ts +14 -0
  86. package/lib/typescript/src/primitives/animated-pressable.d.ts.map +1 -0
  87. package/lib/typescript/src/primitives/portal.d.ts +11 -0
  88. package/lib/typescript/src/primitives/portal.d.ts.map +1 -0
  89. package/lib/typescript/src/primitives/text.d.ts +66 -0
  90. package/lib/typescript/src/primitives/text.d.ts.map +1 -0
  91. package/lib/typescript/src/providers/panel-ui-provider.d.ts +13 -0
  92. package/lib/typescript/src/providers/panel-ui-provider.d.ts.map +1 -0
  93. package/lib/typescript/src/theme/use-theme.d.ts +12 -0
  94. package/lib/typescript/src/theme/use-theme.d.ts.map +1 -0
  95. package/lib/typescript/src/utils/cn.d.ts +3 -0
  96. package/lib/typescript/src/utils/cn.d.ts.map +1 -0
  97. package/package.json +73 -0
  98. package/src/components/alert/index.tsx +106 -0
  99. package/src/components/avatar/index.tsx +68 -0
  100. package/src/components/badge/index.tsx +51 -0
  101. package/src/components/bottom-sheet/index.tsx +186 -0
  102. package/src/components/button/index.tsx +93 -0
  103. package/src/components/card/index.tsx +64 -0
  104. package/src/components/checkbox/index.tsx +79 -0
  105. package/src/components/dialog/index.tsx +180 -0
  106. package/src/components/input/index.tsx +104 -0
  107. package/src/components/radio-group/index.tsx +118 -0
  108. package/src/components/select/index.tsx +165 -0
  109. package/src/components/skeleton/index.tsx +34 -0
  110. package/src/components/spinner/index.tsx +53 -0
  111. package/src/components/switch/index.tsx +83 -0
  112. package/src/components/tabs/index.tsx +208 -0
  113. package/src/icons/index.tsx +48 -0
  114. package/src/index.ts +54 -0
  115. package/src/primitives/animated-pressable.tsx +71 -0
  116. package/src/primitives/portal.tsx +90 -0
  117. package/src/primitives/text.tsx +47 -0
  118. package/src/providers/panel-ui-provider.tsx +30 -0
  119. package/src/theme/use-theme.ts +18 -0
  120. package/src/uniwind-env.d.ts +1 -0
  121. package/src/utils/cn.ts +6 -0
  122. package/theme.css +143 -0
@@ -0,0 +1,50 @@
1
+ import { type ReactElement, type ReactNode } from 'react';
2
+ import { type ViewProps } from 'react-native';
3
+ import { type TextProps } from '../../primitives/text.js';
4
+ export interface DialogProps {
5
+ children: ReactNode;
6
+ /** Controlled open state. */
7
+ open?: boolean;
8
+ onOpenChange?: (open: boolean) => void;
9
+ /** Initial state when uncontrolled. */
10
+ defaultOpen?: boolean;
11
+ }
12
+ declare function DialogRoot({ children, open, onOpenChange, defaultOpen }: DialogProps): import("react").JSX.Element;
13
+ interface DialogTriggerProps {
14
+ children: ReactElement<{
15
+ onPress?: (...args: unknown[]) => void;
16
+ }>;
17
+ }
18
+ /** Wraps its child and opens the dialog on press. */
19
+ declare function DialogTrigger({ children }: DialogTriggerProps): ReactElement<{
20
+ onPress?: (...args: unknown[]) => void;
21
+ }, string | import("react").JSXElementConstructor<any>>;
22
+ export interface DialogContentProps extends ViewProps {
23
+ className?: string;
24
+ /** Tap on the backdrop closes the dialog. Default true. */
25
+ dismissible?: boolean;
26
+ children?: ReactNode;
27
+ }
28
+ declare function DialogContent({ className, dismissible, children, ...props }: DialogContentProps): import("react").JSX.Element | null;
29
+ declare function DialogFooter({ className, ...props }: ViewProps & {
30
+ className?: string;
31
+ }): import("react").JSX.Element;
32
+ interface DialogCloseProps {
33
+ children: ReactElement<{
34
+ onPress?: (...args: unknown[]) => void;
35
+ }>;
36
+ }
37
+ /** Wraps its child and closes the dialog on press. */
38
+ declare function DialogClose({ children }: DialogCloseProps): ReactElement<{
39
+ onPress?: (...args: unknown[]) => void;
40
+ }, string | import("react").JSXElementConstructor<any>>;
41
+ export declare const Dialog: typeof DialogRoot & {
42
+ Trigger: typeof DialogTrigger;
43
+ Content: typeof DialogContent;
44
+ Title: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<import("react-native").Text>>;
45
+ Description: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<import("react-native").Text>>;
46
+ Footer: typeof DialogFooter;
47
+ Close: typeof DialogClose;
48
+ };
49
+ export {};
50
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialog/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAkB7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,WAAmB,EAAE,EAAE,WAAW,+BAmBrF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,YAAY,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,qDAAqD;AACrD,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB;cAJlB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;wDAchE;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,WAAkB,EAClB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,sCAgCpB;AAsBD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAOhF;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,YAAY,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,sDAAsD;AACtD,iBAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB;cAJd,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;wDAchE;AAED,eAAO,MAAM,MAAM;;;;;;;CAOjB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { TextInput, type TextInputProps } from 'react-native';
2
+ export interface InputProps extends TextInputProps {
3
+ className?: string;
4
+ containerClassName?: string;
5
+ label?: string;
6
+ description?: string;
7
+ /** Error message. When set, the field renders in its invalid state. */
8
+ errorMessage?: string;
9
+ disabled?: boolean;
10
+ }
11
+ export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<TextInput>>;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/input/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAQ,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AA2BpE,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,KAAK,kGA+DjB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from 'react';
2
+ import { View, type ViewProps } from 'react-native';
3
+ export interface RadioGroupProps extends ViewProps {
4
+ className?: string;
5
+ value?: string;
6
+ onValueChange: (value: string) => void;
7
+ disabled?: boolean;
8
+ children: ReactNode;
9
+ }
10
+ export interface RadioGroupItemProps {
11
+ className?: string;
12
+ value: string;
13
+ label?: string;
14
+ disabled?: boolean;
15
+ children?: ReactNode;
16
+ }
17
+ export declare const RadioGroup: import("react").ForwardRefExoticComponent<RadioGroupProps & import("react").RefAttributes<View>> & {
18
+ Item: import("react").ForwardRefExoticComponent<RadioGroupItemProps & import("react").RefAttributes<View>>;
19
+ };
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/radio-group/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAa,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAkB/D,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAyBD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAoDD,eAAO,MAAM,UAAU;;CAErB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface SelectItemProps {
3
+ value: string;
4
+ label: string;
5
+ }
6
+ /** Declarative option. Rendered inside the picker sheet. */
7
+ declare function SelectItem({ value, label }: SelectItemProps): import("react").JSX.Element;
8
+ export interface SelectProps {
9
+ className?: string;
10
+ value?: string;
11
+ onValueChange: (value: string) => void;
12
+ placeholder?: string;
13
+ /** Sheet title shown above the options. */
14
+ title?: string;
15
+ disabled?: boolean;
16
+ children: ReactNode;
17
+ }
18
+ declare function SelectRoot({ className, value, onValueChange, placeholder, title, disabled, children, }: SelectProps): import("react").JSX.Element;
19
+ export declare const Select: typeof SelectRoot & {
20
+ Item: typeof SelectItem;
21
+ };
22
+ export {};
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/select/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAkCf,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4DAA4D;AAC5D,iBAAS,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,eAAe,+BA0BpD;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,KAAK,EACL,aAAa,EACb,WAAgC,EAChC,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,WAAW,+BAgEb;AAED,eAAO,MAAM,MAAM;;CAEjB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface SkeletonProps {
2
+ className?: string;
3
+ }
4
+ /** Pulsing placeholder. Opacity animation runs on the UI thread. */
5
+ export declare const Skeleton: import("react").MemoExoticComponent<({ className }: SkeletonProps) => import("react").JSX.Element>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/skeleton/index.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,eAAO,MAAM,QAAQ,sDAAyC,aAAa,iCAkBzE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ declare const spinnerVariants: import("tailwind-variants").TVReturnType<{
3
+ size: {
4
+ sm: string;
5
+ md: string;
6
+ lg: string;
7
+ };
8
+ }, undefined, "rounded-full border-2 border-foreground/15 border-t-primary", {
9
+ size: {
10
+ sm: string;
11
+ md: string;
12
+ lg: string;
13
+ };
14
+ }, undefined, import("tailwind-variants").TVReturnType<{
15
+ size: {
16
+ sm: string;
17
+ md: string;
18
+ lg: string;
19
+ };
20
+ }, undefined, "rounded-full border-2 border-foreground/15 border-t-primary", unknown, unknown, undefined>>;
21
+ export interface SpinnerProps extends VariantProps<typeof spinnerVariants> {
22
+ className?: string;
23
+ }
24
+ /** Rotating ring spinner. Animation runs entirely on the UI thread. */
25
+ export declare const Spinner: import("react").MemoExoticComponent<({ className, size }: SpinnerProps) => import("react").JSX.Element>;
26
+ export {};
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/spinner/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;0GAYnB,CAAC;AAEH,MAAM,WAAW,YAAa,SAAQ,YAAY,CAAC,OAAO,eAAe,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uEAAuE;AACvE,eAAO,MAAM,OAAO,4DAA8C,YAAY,iCAsB5E,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { View } from 'react-native';
2
+ import { type VariantProps } from 'tailwind-variants';
3
+ declare const switchVariants: import("tailwind-variants").TVReturnType<{
4
+ size: {
5
+ sm: {
6
+ track: string;
7
+ thumb: string;
8
+ };
9
+ md: {
10
+ track: string;
11
+ thumb: string;
12
+ };
13
+ };
14
+ disabled: {
15
+ true: {
16
+ track: string;
17
+ };
18
+ };
19
+ }, {
20
+ track: string;
21
+ activeTrack: string;
22
+ thumb: string;
23
+ }, undefined, {
24
+ size: {
25
+ sm: {
26
+ track: string;
27
+ thumb: string;
28
+ };
29
+ md: {
30
+ track: string;
31
+ thumb: string;
32
+ };
33
+ };
34
+ disabled: {
35
+ true: {
36
+ track: string;
37
+ };
38
+ };
39
+ }, {
40
+ track: string;
41
+ activeTrack: string;
42
+ thumb: string;
43
+ }, import("tailwind-variants").TVReturnType<{
44
+ size: {
45
+ sm: {
46
+ track: string;
47
+ thumb: string;
48
+ };
49
+ md: {
50
+ track: string;
51
+ thumb: string;
52
+ };
53
+ };
54
+ disabled: {
55
+ true: {
56
+ track: string;
57
+ };
58
+ };
59
+ }, {
60
+ track: string;
61
+ activeTrack: string;
62
+ thumb: string;
63
+ }, undefined, unknown, unknown, undefined>>;
64
+ export interface SwitchProps extends VariantProps<typeof switchVariants> {
65
+ className?: string;
66
+ value: boolean;
67
+ onValueChange?: (value: boolean) => void;
68
+ disabled?: boolean;
69
+ }
70
+ /**
71
+ * Animated switch. Thumb position and active-track opacity are driven on the
72
+ * UI thread; toggling never re-renders beyond the value change itself.
73
+ */
74
+ export declare const Switch: import("react").ForwardRefExoticComponent<SwitchProps & import("react").RefAttributes<View>>;
75
+ export {};
76
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/switch/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,IAAI,EAAE,MAAM,cAAc,CAAC;AAO/C,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI1D,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAkBlB,CAAC;AAIH,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,OAAO,cAAc,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,8FAmClB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type ViewProps } from 'react-native';
3
+ export interface TabsProps extends ViewProps {
4
+ className?: string;
5
+ value?: string;
6
+ onValueChange?: (value: string) => void;
7
+ defaultValue: string;
8
+ children: ReactNode;
9
+ }
10
+ declare function TabsRoot({ className, value, onValueChange, defaultValue, children, ...props }: TabsProps): import("react").JSX.Element;
11
+ export interface TabsListProps extends ViewProps {
12
+ className?: string;
13
+ children: ReactNode;
14
+ }
15
+ declare function TabsList({ className, children, ...props }: TabsListProps): import("react").JSX.Element;
16
+ export interface TabsTriggerProps {
17
+ className?: string;
18
+ value: string;
19
+ children: ReactNode;
20
+ }
21
+ declare function TabsTrigger({ className, value, children }: TabsTriggerProps): import("react").JSX.Element;
22
+ export interface TabsContentProps extends ViewProps {
23
+ className?: string;
24
+ value: string;
25
+ children: ReactNode;
26
+ }
27
+ declare function TabsContent({ className, value, children, ...props }: TabsContentProps): import("react").JSX.Element | null;
28
+ export declare const Tabs: typeof TabsRoot & {
29
+ List: typeof TabsList;
30
+ Trigger: typeof TabsTrigger;
31
+ Content: typeof TabsContent;
32
+ };
33
+ export {};
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAkCvF,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,SAAS,+BAoCX;AAkCD,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,+BAWjE;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BAiCpE;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,sCAS9E;AAED,eAAO,MAAM,IAAI;;;;CAIf,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type SvgProps } from 'react-native-svg';
2
+ export interface IconProps extends SvgProps {
3
+ size?: number;
4
+ color?: string;
5
+ }
6
+ export declare function CheckIcon({ size, color, ...props }: IconProps): import("react").JSX.Element;
7
+ export declare function ChevronDownIcon({ size, color, ...props }: IconProps): import("react").JSX.Element;
8
+ export declare function XIcon({ size, color, ...props }: IconProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/index.tsx"],"names":[],"mappings":"AAAA,OAAY,EAAQ,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,WAAW,SAAU,SAAQ,QAAQ;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAS,EAAE,KAAc,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAY3E;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAS,EAAE,KAAiB,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAYpF;AAED,wBAAgB,KAAK,CAAC,EAAE,IAAS,EAAE,KAAiB,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAY1E"}
@@ -0,0 +1,23 @@
1
+ export { PanelUIProvider, type PanelUIProviderProps } from './providers/panel-ui-provider.js';
2
+ export { useTheme, type ThemeName } from './theme/use-theme.js';
3
+ export { Portal, PortalHost, PortalProvider } from './primitives/portal.js';
4
+ export { Text, type TextProps } from './primitives/text.js';
5
+ export { AnimatedPressable, type AnimatedPressableProps, } from './primitives/animated-pressable.js';
6
+ export { Alert, type AlertProps } from './components/alert/index.js';
7
+ export { Avatar, type AvatarProps } from './components/avatar/index.js';
8
+ export { Badge, type BadgeProps } from './components/badge/index.js';
9
+ export { BottomSheet, type BottomSheetProps, type BottomSheetContentProps, } from './components/bottom-sheet/index.js';
10
+ export { Button, type ButtonProps } from './components/button/index.js';
11
+ export { Dialog, type DialogProps, type DialogContentProps, } from './components/dialog/index.js';
12
+ export { Select, type SelectProps, type SelectItemProps } from './components/select/index.js';
13
+ export { Tabs, type TabsProps, type TabsListProps, type TabsTriggerProps, type TabsContentProps, } from './components/tabs/index.js';
14
+ export { Card, type CardProps } from './components/card/index.js';
15
+ export { Checkbox, type CheckboxProps } from './components/checkbox/index.js';
16
+ export { Input, type InputProps } from './components/input/index.js';
17
+ export { RadioGroup, type RadioGroupProps, type RadioGroupItemProps, } from './components/radio-group/index.js';
18
+ export { Skeleton, type SkeletonProps } from './components/skeleton/index.js';
19
+ export { Spinner, type SpinnerProps } from './components/spinner/index.js';
20
+ export { Switch, type SwitchProps } from './components/switch/index.js';
21
+ export { CheckIcon, ChevronDownIcon, XIcon, type IconProps } from './icons/index.js';
22
+ export { cn } from './utils/cn.js';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAA+B,CAAC;AAG3F,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAmB,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAqB,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAmB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,oCAAiC,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,6BAAoB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,8BAAqB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,6BAAoB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,oCAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,8BAAqB,CAAC;AAC/D,OAAO,EACL,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,8BAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,8BAAqB,CAAC;AACrF,OAAO,EACL,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,4BAAmB,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,4BAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAuB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,6BAAoB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,mCAA0B,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAuB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,+BAAsB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,8BAAqB,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAS,CAAC;AAG5E,OAAO,EAAE,EAAE,EAAE,MAAM,eAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type PressableProps, type View } from 'react-native';
2
+ export interface AnimatedPressableProps extends PressableProps {
3
+ className?: string;
4
+ /** Scale applied while pressed. Set to 1 to disable. Default 0.97. */
5
+ pressScale?: number;
6
+ /** Opacity applied while pressed. Set to 1 to disable. Default 1. */
7
+ pressOpacity?: number;
8
+ }
9
+ /**
10
+ * Pressable with UI-thread press feedback (scale/opacity via Reanimated).
11
+ * The shared base for every interactive PanelUI component.
12
+ */
13
+ export declare const AnimatedPressable: import("react").ForwardRefExoticComponent<AnimatedPressableProps & import("react").RefAttributes<View>>;
14
+ //# sourceMappingURL=animated-pressable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animated-pressable.d.ts","sourceRoot":"","sources":["../../../../src/primitives/animated-pressable.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAYtB,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yGAsC7B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type ReactNode } from 'react';
2
+ export declare function PortalProvider({ children }: {
3
+ children: ReactNode;
4
+ }): import("react").JSX.Element;
5
+ /** Renders children into the nearest PortalHost (above everything else). */
6
+ export declare function Portal({ children }: {
7
+ children: ReactNode;
8
+ }): null;
9
+ /** Mount point for portaled content. PanelUIProvider renders one automatically. */
10
+ export declare function PortalHost(): import("react").JSX.Element;
11
+ //# sourceMappingURL=portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../../src/primitives/portal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAkCf,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAQnE;AAUD,4EAA4E;AAC5E,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,QAU3D;AAED,mFAAmF;AACnF,wBAAgB,UAAU,gCAWzB"}
@@ -0,0 +1,66 @@
1
+ import { Text as RNText, type TextProps as RNTextProps } from 'react-native';
2
+ import { type VariantProps } from 'tailwind-variants';
3
+ declare const textVariants: import("tailwind-variants").TVReturnType<{
4
+ size: {
5
+ xs: string;
6
+ sm: string;
7
+ base: string;
8
+ lg: string;
9
+ xl: string;
10
+ '2xl': string;
11
+ '3xl': string;
12
+ };
13
+ weight: {
14
+ normal: string;
15
+ medium: string;
16
+ semibold: string;
17
+ bold: string;
18
+ };
19
+ muted: {
20
+ true: string;
21
+ };
22
+ }, undefined, "text-foreground", {
23
+ size: {
24
+ xs: string;
25
+ sm: string;
26
+ base: string;
27
+ lg: string;
28
+ xl: string;
29
+ '2xl': string;
30
+ '3xl': string;
31
+ };
32
+ weight: {
33
+ normal: string;
34
+ medium: string;
35
+ semibold: string;
36
+ bold: string;
37
+ };
38
+ muted: {
39
+ true: string;
40
+ };
41
+ }, undefined, import("tailwind-variants").TVReturnType<{
42
+ size: {
43
+ xs: string;
44
+ sm: string;
45
+ base: string;
46
+ lg: string;
47
+ xl: string;
48
+ '2xl': string;
49
+ '3xl': string;
50
+ };
51
+ weight: {
52
+ normal: string;
53
+ medium: string;
54
+ semibold: string;
55
+ bold: string;
56
+ };
57
+ muted: {
58
+ true: string;
59
+ };
60
+ }, undefined, "text-foreground", unknown, unknown, undefined>>;
61
+ export interface TextProps extends RNTextProps, VariantProps<typeof textVariants> {
62
+ className?: string;
63
+ }
64
+ export declare const Text: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
65
+ export {};
66
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/primitives/text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,IAAI,MAAM,EAA2B,KAAK,SAAS,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACtG,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DA0BhB,CAAC;AAEH,MAAM,WAAW,SAAU,SAAQ,WAAW,EAAE,YAAY,CAAC,OAAO,YAAY,CAAC;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,8FAQhB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PanelUIProviderProps {
3
+ children: ReactNode;
4
+ }
5
+ /**
6
+ * Root provider for PanelUI. Wraps the app with the gesture handler root and
7
+ * the portal host used by overlay components (Dialog, BottomSheet, Select).
8
+ *
9
+ * Theme switching is handled natively by Uniwind — use `Uniwind.setTheme()`
10
+ * or the `useTheme()` hook exported from panelui-native.
11
+ */
12
+ export declare function PanelUIProvider({ children }: PanelUIProviderProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=panel-ui-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-ui-provider.d.ts","sourceRoot":"","sources":["../../../../src/providers/panel-ui-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BASjE"}
@@ -0,0 +1,12 @@
1
+ export type ThemeName = 'light' | 'dark' | 'system';
2
+ /**
3
+ * Reactive access to the current Uniwind theme plus a setter.
4
+ * Theme changes are applied natively by Uniwind without re-rendering the tree.
5
+ */
6
+ export declare function useTheme(): {
7
+ /** Currently resolved theme ('light' or 'dark'). */
8
+ theme: string;
9
+ /** Switch theme: 'light', 'dark', or 'system' (follows device). */
10
+ setTheme: (name: ThemeName) => void;
11
+ };
12
+ //# sourceMappingURL=use-theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme.d.ts","sourceRoot":"","sources":["../../../../src/theme/use-theme.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,QAAQ;IAIpB,oDAAoD;;IAEpD,mEAAmE;qBAClD,SAAS;EAE7B"}
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "panelui-native",
3
+ "version": "0.1.0",
4
+ "description": "High-performance React Native UI components for Expo. Coss UI design language, powered by Uniwind (Tailwind v4) and Reanimated.",
5
+ "main": "./lib/module/index.js",
6
+ "module": "./lib/module/index.js",
7
+ "types": "./lib/typescript/src/index.d.ts",
8
+ "react-native": "./src/index.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./lib/typescript/src/index.d.ts",
12
+ "react-native": "./src/index.ts",
13
+ "default": "./lib/module/index.js"
14
+ },
15
+ "./theme.css": "./theme.css",
16
+ "./package.json": "./package.json"
17
+ },
18
+ "files": [
19
+ "src",
20
+ "lib",
21
+ "theme.css",
22
+ "!**/__tests__",
23
+ "!**/*.tsbuildinfo"
24
+ ],
25
+ "sideEffects": false,
26
+ "scripts": {
27
+ "build": "bob build",
28
+ "typecheck": "tsc --noEmit",
29
+ "clean": "rm -rf lib"
30
+ },
31
+ "keywords": [
32
+ "react-native",
33
+ "expo",
34
+ "ui",
35
+ "components",
36
+ "tailwind",
37
+ "uniwind",
38
+ "design-system",
39
+ "shadcn"
40
+ ],
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "git+https://github.com/Khalidabdi1/PanelUI.git"
44
+ },
45
+ "author": "Khalid Abdi",
46
+ "license": "MIT",
47
+ "homepage": "https://github.com/Khalidabdi1/PanelUI#readme",
48
+ "peerDependencies": {
49
+ "react": "*",
50
+ "react-native": "*",
51
+ "react-native-gesture-handler": ">=2.0.0",
52
+ "react-native-reanimated": ">=3.0.0",
53
+ "react-native-safe-area-context": ">=4.0.0",
54
+ "tailwindcss": ">=4.0.0",
55
+ "uniwind": ">=1.0.0"
56
+ },
57
+ "dependencies": {
58
+ "clsx": "^2.1.1",
59
+ "tailwind-merge": "^3.3.1",
60
+ "tailwind-variants": "^3.2.2"
61
+ },
62
+ "devDependencies": {
63
+ "react-native-builder-bob": "^0.43.0"
64
+ },
65
+ "react-native-builder-bob": {
66
+ "source": "src",
67
+ "output": "lib",
68
+ "targets": [
69
+ ["module", { "esm": true }],
70
+ "typescript"
71
+ ]
72
+ }
73
+ }