panelui-native 0.2.0 → 0.5.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 (106) hide show
  1. package/README.md +258 -0
  2. package/lib/module/components/accordion/index.js +312 -0
  3. package/lib/module/components/accordion/index.js.map +1 -0
  4. package/lib/module/components/alert/index.js +106 -13
  5. package/lib/module/components/alert/index.js.map +1 -1
  6. package/lib/module/components/avatar/index.js +58 -17
  7. package/lib/module/components/avatar/index.js.map +1 -1
  8. package/lib/module/components/badge/index.js +29 -8
  9. package/lib/module/components/badge/index.js.map +1 -1
  10. package/lib/module/components/button/index.js +87 -26
  11. package/lib/module/components/button/index.js.map +1 -1
  12. package/lib/module/components/checkbox/index.js +59 -18
  13. package/lib/module/components/checkbox/index.js.map +1 -1
  14. package/lib/module/components/empty-state/index.js +178 -0
  15. package/lib/module/components/empty-state/index.js.map +1 -0
  16. package/lib/module/components/frame/index.js +64 -13
  17. package/lib/module/components/frame/index.js.map +1 -1
  18. package/lib/module/components/input-group/index.js +132 -0
  19. package/lib/module/components/input-group/index.js.map +1 -0
  20. package/lib/module/components/label/index.js +117 -0
  21. package/lib/module/components/label/index.js.map +1 -0
  22. package/lib/module/components/progress/index.js +138 -0
  23. package/lib/module/components/progress/index.js.map +1 -0
  24. package/lib/module/components/steps/index.js +354 -0
  25. package/lib/module/components/steps/index.js.map +1 -0
  26. package/lib/module/components/tabs/index.js +9 -3
  27. package/lib/module/components/tabs/index.js.map +1 -1
  28. package/lib/module/components/timeline/index.js +633 -0
  29. package/lib/module/components/timeline/index.js.map +1 -0
  30. package/lib/module/components/toast/index.js +569 -0
  31. package/lib/module/components/toast/index.js.map +1 -0
  32. package/lib/module/components/toast/toast-store.js +81 -0
  33. package/lib/module/components/toast/toast-store.js.map +1 -0
  34. package/lib/module/components/typography/index.js +126 -0
  35. package/lib/module/components/typography/index.js.map +1 -0
  36. package/lib/module/icons/index.js +590 -8
  37. package/lib/module/icons/index.js.map +1 -1
  38. package/lib/module/index.js +11 -2
  39. package/lib/module/index.js.map +1 -1
  40. package/lib/module/providers/panel-ui-provider.js +2 -1
  41. package/lib/module/providers/panel-ui-provider.js.map +1 -1
  42. package/lib/module/theme/use-theme.js +90 -3
  43. package/lib/module/theme/use-theme.js.map +1 -1
  44. package/lib/typescript/src/components/accordion/index.d.ts +56 -0
  45. package/lib/typescript/src/components/accordion/index.d.ts.map +1 -0
  46. package/lib/typescript/src/components/alert/index.d.ts +56 -4
  47. package/lib/typescript/src/components/alert/index.d.ts.map +1 -1
  48. package/lib/typescript/src/components/avatar/index.d.ts +8 -1
  49. package/lib/typescript/src/components/avatar/index.d.ts.map +1 -1
  50. package/lib/typescript/src/components/badge/index.d.ts +38 -0
  51. package/lib/typescript/src/components/badge/index.d.ts.map +1 -1
  52. package/lib/typescript/src/components/button/index.d.ts +57 -0
  53. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  54. package/lib/typescript/src/components/checkbox/index.d.ts +50 -0
  55. package/lib/typescript/src/components/checkbox/index.d.ts.map +1 -1
  56. package/lib/typescript/src/components/empty-state/index.d.ts +73 -0
  57. package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -0
  58. package/lib/typescript/src/components/frame/index.d.ts +39 -5
  59. package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
  60. package/lib/typescript/src/components/input-group/index.d.ts +34 -0
  61. package/lib/typescript/src/components/input-group/index.d.ts.map +1 -0
  62. package/lib/typescript/src/components/label/index.d.ts +28 -0
  63. package/lib/typescript/src/components/label/index.d.ts.map +1 -0
  64. package/lib/typescript/src/components/progress/index.d.ts +132 -0
  65. package/lib/typescript/src/components/progress/index.d.ts.map +1 -0
  66. package/lib/typescript/src/components/steps/index.d.ts +62 -0
  67. package/lib/typescript/src/components/steps/index.d.ts.map +1 -0
  68. package/lib/typescript/src/components/tabs/index.d.ts.map +1 -1
  69. package/lib/typescript/src/components/timeline/index.d.ts +96 -0
  70. package/lib/typescript/src/components/timeline/index.d.ts.map +1 -0
  71. package/lib/typescript/src/components/toast/index.d.ts +176 -0
  72. package/lib/typescript/src/components/toast/index.d.ts.map +1 -0
  73. package/lib/typescript/src/components/toast/toast-store.d.ts +65 -0
  74. package/lib/typescript/src/components/toast/toast-store.d.ts.map +1 -0
  75. package/lib/typescript/src/components/typography/index.d.ts +77 -0
  76. package/lib/typescript/src/components/typography/index.d.ts.map +1 -0
  77. package/lib/typescript/src/icons/index.d.ts +60 -0
  78. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  79. package/lib/typescript/src/index.d.ts +13 -4
  80. package/lib/typescript/src/index.d.ts.map +1 -1
  81. package/lib/typescript/src/providers/panel-ui-provider.d.ts.map +1 -1
  82. package/lib/typescript/src/theme/use-theme.d.ts +64 -4
  83. package/lib/typescript/src/theme/use-theme.d.ts.map +1 -1
  84. package/package.json +22 -4
  85. package/src/components/accordion/index.tsx +344 -0
  86. package/src/components/alert/index.tsx +102 -16
  87. package/src/components/avatar/index.tsx +68 -20
  88. package/src/components/badge/index.tsx +38 -9
  89. package/src/components/button/index.tsx +102 -19
  90. package/src/components/checkbox/index.tsx +64 -12
  91. package/src/components/empty-state/index.tsx +136 -0
  92. package/src/components/frame/index.tsx +101 -31
  93. package/src/components/input-group/index.tsx +164 -0
  94. package/src/components/label/index.tsx +128 -0
  95. package/src/components/progress/index.tsx +147 -0
  96. package/src/components/steps/index.tsx +343 -0
  97. package/src/components/tabs/index.tsx +10 -2
  98. package/src/components/timeline/index.tsx +456 -0
  99. package/src/components/toast/index.tsx +568 -0
  100. package/src/components/toast/toast-store.ts +120 -0
  101. package/src/components/typography/index.tsx +121 -0
  102. package/src/icons/index.tsx +423 -7
  103. package/src/index.ts +114 -4
  104. package/src/providers/panel-ui-provider.tsx +3 -0
  105. package/src/theme/use-theme.ts +119 -4
  106. package/theme.css +330 -7
@@ -7,22 +7,33 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
7
7
  primary: {
8
8
  root: string;
9
9
  label: string;
10
+ spinner: string;
10
11
  };
11
12
  secondary: {
12
13
  root: string;
13
14
  label: string;
15
+ spinner: string;
14
16
  };
15
17
  outline: {
16
18
  root: string;
17
19
  label: string;
20
+ spinner: string;
18
21
  };
19
22
  ghost: {
20
23
  root: string;
21
24
  label: string;
25
+ spinner: string;
22
26
  };
23
27
  destructive: {
24
28
  root: string;
25
29
  label: string;
30
+ spinner: string;
31
+ };
32
+ /** Neutral surface for third-party sign-in, sized for a full-width stack. */
33
+ social: {
34
+ root: string;
35
+ label: string;
36
+ spinner: string;
26
37
  };
27
38
  };
28
39
  size: {
@@ -42,6 +53,11 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
42
53
  root: string;
43
54
  };
44
55
  };
56
+ fullWidth: {
57
+ true: {
58
+ root: string;
59
+ };
60
+ };
45
61
  disabled: {
46
62
  true: {
47
63
  root: string;
@@ -50,27 +66,39 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
50
66
  }, {
51
67
  root: string;
52
68
  label: string;
69
+ spinner: string;
53
70
  }, undefined, {
54
71
  variant: {
55
72
  primary: {
56
73
  root: string;
57
74
  label: string;
75
+ spinner: string;
58
76
  };
59
77
  secondary: {
60
78
  root: string;
61
79
  label: string;
80
+ spinner: string;
62
81
  };
63
82
  outline: {
64
83
  root: string;
65
84
  label: string;
85
+ spinner: string;
66
86
  };
67
87
  ghost: {
68
88
  root: string;
69
89
  label: string;
90
+ spinner: string;
70
91
  };
71
92
  destructive: {
72
93
  root: string;
73
94
  label: string;
95
+ spinner: string;
96
+ };
97
+ /** Neutral surface for third-party sign-in, sized for a full-width stack. */
98
+ social: {
99
+ root: string;
100
+ label: string;
101
+ spinner: string;
74
102
  };
75
103
  };
76
104
  size: {
@@ -90,6 +118,11 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
90
118
  root: string;
91
119
  };
92
120
  };
121
+ fullWidth: {
122
+ true: {
123
+ root: string;
124
+ };
125
+ };
93
126
  disabled: {
94
127
  true: {
95
128
  root: string;
@@ -98,27 +131,39 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
98
131
  }, {
99
132
  root: string;
100
133
  label: string;
134
+ spinner: string;
101
135
  }, import("tailwind-variants").TVReturnType<{
102
136
  variant: {
103
137
  primary: {
104
138
  root: string;
105
139
  label: string;
140
+ spinner: string;
106
141
  };
107
142
  secondary: {
108
143
  root: string;
109
144
  label: string;
145
+ spinner: string;
110
146
  };
111
147
  outline: {
112
148
  root: string;
113
149
  label: string;
150
+ spinner: string;
114
151
  };
115
152
  ghost: {
116
153
  root: string;
117
154
  label: string;
155
+ spinner: string;
118
156
  };
119
157
  destructive: {
120
158
  root: string;
121
159
  label: string;
160
+ spinner: string;
161
+ };
162
+ /** Neutral surface for third-party sign-in, sized for a full-width stack. */
163
+ social: {
164
+ root: string;
165
+ label: string;
166
+ spinner: string;
122
167
  };
123
168
  };
124
169
  size: {
@@ -138,6 +183,11 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
138
183
  root: string;
139
184
  };
140
185
  };
186
+ fullWidth: {
187
+ true: {
188
+ root: string;
189
+ };
190
+ };
141
191
  disabled: {
142
192
  true: {
143
193
  root: string;
@@ -146,11 +196,18 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
146
196
  }, {
147
197
  root: string;
148
198
  label: string;
199
+ spinner: string;
149
200
  }, undefined, unknown, unknown, undefined>>;
150
201
  type ButtonVariantProps = VariantProps<typeof buttonVariants>;
151
202
  export interface ButtonProps extends Omit<AnimatedPressableProps, 'children' | 'disabled'>, Omit<ButtonVariantProps, 'disabled'> {
152
203
  children?: ReactNode;
153
204
  disabled?: boolean;
205
+ /** Show a spinner and block presses while an action is in flight. */
206
+ loading?: boolean;
207
+ /** Content rendered before the label (replaced by the spinner while loading). */
208
+ startContent?: ReactNode;
209
+ /** Content rendered after the label. */
210
+ endContent?: ReactNode;
154
211
  /** Extra classes for the label when children is a string. */
155
212
  labelClassName?: string;
156
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/button/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAqC,CAAC;AAG7C,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA0ClB,CAAC;AAEH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAE9D,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC,EAC3D,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,MAAM,8FA0BlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/button/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAqC,CAAC;AAK7C,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCd,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAwBjF,CAAC;AAEH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAsB9D,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC,EAC3D,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,MAAM,8FAiElB,CAAC"}
@@ -1,6 +1,20 @@
1
1
  import { View } from 'react-native';
2
2
  import { type VariantProps } from 'tailwind-variants';
3
3
  declare const checkboxVariants: import("tailwind-variants").TVReturnType<{
4
+ variant: {
5
+ default: {};
6
+ /**
7
+ * The whole surface is the target — for pickable options where the
8
+ * checkbox is a confirmation rather than the affordance itself.
9
+ */
10
+ card: {
11
+ row: string;
12
+ label: string;
13
+ };
14
+ };
15
+ checked: {
16
+ true: {};
17
+ };
4
18
  disabled: {
5
19
  true: {
6
20
  row: string;
@@ -10,8 +24,24 @@ declare const checkboxVariants: import("tailwind-variants").TVReturnType<{
10
24
  row: string;
11
25
  box: string;
12
26
  fill: string;
27
+ content: string;
13
28
  label: string;
29
+ description: string;
14
30
  }, undefined, {
31
+ variant: {
32
+ default: {};
33
+ /**
34
+ * The whole surface is the target — for pickable options where the
35
+ * checkbox is a confirmation rather than the affordance itself.
36
+ */
37
+ card: {
38
+ row: string;
39
+ label: string;
40
+ };
41
+ };
42
+ checked: {
43
+ true: {};
44
+ };
15
45
  disabled: {
16
46
  true: {
17
47
  row: string;
@@ -21,8 +51,24 @@ declare const checkboxVariants: import("tailwind-variants").TVReturnType<{
21
51
  row: string;
22
52
  box: string;
23
53
  fill: string;
54
+ content: string;
24
55
  label: string;
56
+ description: string;
25
57
  }, import("tailwind-variants").TVReturnType<{
58
+ variant: {
59
+ default: {};
60
+ /**
61
+ * The whole surface is the target — for pickable options where the
62
+ * checkbox is a confirmation rather than the affordance itself.
63
+ */
64
+ card: {
65
+ row: string;
66
+ label: string;
67
+ };
68
+ };
69
+ checked: {
70
+ true: {};
71
+ };
26
72
  disabled: {
27
73
  true: {
28
74
  row: string;
@@ -32,7 +78,9 @@ declare const checkboxVariants: import("tailwind-variants").TVReturnType<{
32
78
  row: string;
33
79
  box: string;
34
80
  fill: string;
81
+ content: string;
35
82
  label: string;
83
+ description: string;
36
84
  }, undefined, unknown, unknown, undefined>>;
37
85
  export interface CheckboxProps extends VariantProps<typeof checkboxVariants> {
38
86
  className?: string;
@@ -41,6 +89,8 @@ export interface CheckboxProps extends VariantProps<typeof checkboxVariants> {
41
89
  disabled?: boolean;
42
90
  /** Optional label rendered next to the box; pressing it also toggles. */
43
91
  label?: string;
92
+ /** Secondary line under the label, for extra context. */
93
+ description?: string;
44
94
  }
45
95
  export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<View>>;
46
96
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/checkbox/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,IAAI,EAAE,MAAM,cAAc,CAAC;AAO/C,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAK1D,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAYpB,CAAC;AAEH,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,OAAO,gBAAgB,CAAC;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,gGAwCpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/checkbox/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,IAAI,EAAE,MAAM,cAAc,CAAC;AAO/C,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAK1D,QAAA,MAAM,gBAAgB;;;QAYhB;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;QAHH;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;QAHH;;;WAGG;;;;;;;;;;;;;;;;;;;;;2CAuBP,CAAC;AAEH,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,OAAO,gBAAgB,CAAC;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,gGAgEpB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * EmptyState — the placeholder shown when a list or view has no content.
3
+ *
4
+ * Adapted from: cosscom/coss packages/ui/src/components/empty.tsx
5
+ * (centered Header / Media / Title / Description / Content anatomy, and the
6
+ * `icon` media variant that stacks two rotated ghost cards behind the icon).
7
+ * Coss does that with CSS pseudo-elements; on native it is two absolutely
8
+ * positioned siblings with static rotate transforms.
9
+ */
10
+ import { type ReactNode } from 'react';
11
+ import { View, type Text as RNText, type ViewProps } from 'react-native';
12
+ import { type VariantProps } from 'tailwind-variants';
13
+ import { type TextProps } from '../../primitives/text.js';
14
+ declare const mediaVariants: import("tailwind-variants").TVReturnType<{
15
+ variant: {
16
+ default: {
17
+ card: string;
18
+ ghost: string;
19
+ };
20
+ icon: {
21
+ card: string;
22
+ };
23
+ };
24
+ }, {
25
+ wrapper: string;
26
+ card: string;
27
+ ghost: string;
28
+ }, undefined, {
29
+ variant: {
30
+ default: {
31
+ card: string;
32
+ ghost: string;
33
+ };
34
+ icon: {
35
+ card: string;
36
+ };
37
+ };
38
+ }, {
39
+ wrapper: string;
40
+ card: string;
41
+ ghost: string;
42
+ }, import("tailwind-variants").TVReturnType<{
43
+ variant: {
44
+ default: {
45
+ card: string;
46
+ ghost: string;
47
+ };
48
+ icon: {
49
+ card: string;
50
+ };
51
+ };
52
+ }, {
53
+ wrapper: string;
54
+ card: string;
55
+ ghost: string;
56
+ }, undefined, unknown, unknown, undefined>>;
57
+ export interface EmptyStateProps extends ViewProps {
58
+ className?: string;
59
+ children?: ReactNode;
60
+ }
61
+ export interface EmptyStateMediaProps extends ViewProps, VariantProps<typeof mediaVariants> {
62
+ className?: string;
63
+ children?: ReactNode;
64
+ }
65
+ export declare const EmptyState: import("react").ForwardRefExoticComponent<EmptyStateProps & import("react").RefAttributes<View>> & {
66
+ Header: import("react").ForwardRefExoticComponent<EmptyStateProps & import("react").RefAttributes<View>>;
67
+ Media: import("react").ForwardRefExoticComponent<EmptyStateMediaProps & import("react").RefAttributes<View>>;
68
+ Title: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
69
+ Description: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
70
+ Content: import("react").ForwardRefExoticComponent<EmptyStateProps & import("react").RefAttributes<View>>;
71
+ };
72
+ export {};
73
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/empty-state/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAY7D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAoBjB,CAAC;AAEH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmBD,MAAM,WAAW,oBACf,SAAQ,SAAS,EACf,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAwDD,eAAO,MAAM,UAAU;;;;;;CAMrB,CAAC"}
@@ -1,8 +1,38 @@
1
- import { View, type ViewProps } from 'react-native';
1
+ /**
2
+ * Frame — a widget shell: a titled surface wrapping an inset panel of rows,
3
+ * with an optional action on the header row and a caption underneath.
4
+ *
5
+ * Layout follows the nested-radius rule (inner radius = outer radius minus the
6
+ * gap between them), which is why the panel is `rounded-xl` inside a
7
+ * `rounded-2xl` shell. Since v0.4.0 the radius scale is theme-scoped, so this
8
+ * relationship holds while the absolute values change per theme.
9
+ *
10
+ * ```tsx
11
+ * <Frame>
12
+ * <Frame.Header>
13
+ * <Frame.Title>Usage Type</Frame.Title>
14
+ * <Frame.Action>Amount</Frame.Action>
15
+ * </Frame.Header>
16
+ * <Frame.Panel>
17
+ * <Frame.Row>…</Frame.Row>
18
+ * <Frame.Row divided>…</Frame.Row>
19
+ * </Frame.Panel>
20
+ * <Frame.Footer>Updated 2 minutes ago</Frame.Footer>
21
+ * </Frame>
22
+ * ```
23
+ */
24
+ import { type ReactNode } from 'react';
25
+ import { View, type Text as RNText, type ViewProps } from 'react-native';
2
26
  import { type TextProps } from '../../primitives/text.js';
3
27
  export interface FrameProps extends ViewProps {
4
28
  className?: string;
5
29
  }
30
+ export interface FrameHeaderProps extends FrameProps {
31
+ children?: ReactNode;
32
+ }
33
+ export interface FrameActionProps extends FrameProps {
34
+ children?: ReactNode;
35
+ }
6
36
  /**
7
37
  * A row inside a Frame.Panel. Pass `divided` on every row after the first to
8
38
  * draw a hairline separator above it (React Native has no :first-child).
@@ -10,12 +40,16 @@ export interface FrameProps extends ViewProps {
10
40
  export interface FrameRowProps extends FrameProps {
11
41
  divided?: boolean;
12
42
  }
43
+ export interface FrameFooterProps extends FrameProps {
44
+ children?: ReactNode;
45
+ }
13
46
  export declare const Frame: import("react").ForwardRefExoticComponent<FrameProps & import("react").RefAttributes<View>> & {
14
- Header: import("react").ForwardRefExoticComponent<FrameProps & import("react").RefAttributes<View>>;
15
- Title: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<import("react-native").Text>>;
16
- Description: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<import("react-native").Text>>;
47
+ Header: import("react").ForwardRefExoticComponent<FrameHeaderProps & import("react").RefAttributes<View>>;
48
+ Title: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
49
+ Action: import("react").ForwardRefExoticComponent<FrameActionProps & import("react").RefAttributes<View>>;
50
+ Description: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
17
51
  Panel: import("react").ForwardRefExoticComponent<FrameProps & import("react").RefAttributes<View>>;
18
52
  Row: import("react").ForwardRefExoticComponent<FrameRowProps & import("react").RefAttributes<View>>;
19
- Footer: import("react").ForwardRefExoticComponent<FrameProps & import("react").RefAttributes<View>>;
53
+ Footer: import("react").ForwardRefExoticComponent<FrameFooterProps & import("react").RefAttributes<View>>;
20
54
  };
21
55
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/frame/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAG7D,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyDD;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA0BD,eAAO,MAAM,KAAK;;;;;;;CAOhB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/frame/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAG7D,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA+BD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA0CD;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiBD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAsBD,eAAO,MAAM,KAAK;;;;;;;;CAQhB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * InputGroup — an Input with leading and/or trailing decorators.
3
+ *
4
+ * Adapted from: heroui-inc/heroui-native src/components/input-group/
5
+ * Prefix and Suffix are absolutely positioned and their measured widths become
6
+ * padding on the Input, so text never runs underneath a decorator regardless
7
+ * of how wide that decorator turns out to be.
8
+ */
9
+ import { type ReactNode } from 'react';
10
+ import { View, type TextInput, type ViewProps } from 'react-native';
11
+ import { type InputProps } from '../input/index.js';
12
+ export interface InputGroupProps extends ViewProps {
13
+ className?: string;
14
+ /** Disables the input and dims both decorators. */
15
+ isDisabled?: boolean;
16
+ children?: ReactNode;
17
+ }
18
+ export interface InputGroupDecoratorProps extends ViewProps {
19
+ className?: string;
20
+ /**
21
+ * Marks the decorator as presentation-only: touches fall through to the
22
+ * Input and screen readers skip it. Leave it off when the decorator holds
23
+ * something interactive, such as a show-password toggle.
24
+ */
25
+ isDecorative?: boolean;
26
+ children?: ReactNode;
27
+ }
28
+ export type InputGroupInputProps = InputProps;
29
+ export declare const InputGroup: import("react").ForwardRefExoticComponent<InputGroupProps & import("react").RefAttributes<View>> & {
30
+ Prefix: import("react").ForwardRefExoticComponent<InputGroupDecoratorProps & import("react").RefAttributes<View>>;
31
+ Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<TextInput>>;
32
+ Suffix: import("react").ForwardRefExoticComponent<InputGroupDecoratorProps & import("react").RefAttributes<View>>;
33
+ };
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/input-group/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EACL,IAAI,EAEJ,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,mBAAU,CAAC;AA6BlD,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAwBD,MAAM,WAAW,wBAAyB,SAAQ,SAAS;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAwCD,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC;AA4B9C,eAAO,MAAM,UAAU;;;;CAIrB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Label — text that names a form field.
3
+ *
4
+ * Adapted from: heroui-inc/heroui-native src/components/label/ (root +
5
+ * Label.Text anatomy, string children auto-wrapping, the required asterisk,
6
+ * and the isInvalid / isDisabled recolouring).
7
+ */
8
+ import { type ReactNode } from 'react';
9
+ import { View, type Text as RNText, type ViewProps } from 'react-native';
10
+ import { type TextProps } from '../../primitives/text.js';
11
+ export interface LabelProps extends ViewProps {
12
+ className?: string;
13
+ /** Appends an asterisk marking the field as required. */
14
+ isRequired?: boolean;
15
+ /** Recolours the label to signal a validation error. */
16
+ isInvalid?: boolean;
17
+ isDisabled?: boolean;
18
+ children?: ReactNode;
19
+ }
20
+ export interface LabelTextProps extends TextProps {
21
+ className?: string;
22
+ /** Classes for the required asterisk. */
23
+ asteriskClassName?: string;
24
+ }
25
+ export declare const Label: import("react").ForwardRefExoticComponent<LabelProps & import("react").RefAttributes<View>> & {
26
+ Text: import("react").ForwardRefExoticComponent<LabelTextProps & import("react").RefAttributes<RNText>>;
27
+ };
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/label/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAiC7D,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAqCD,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AA2BD,eAAO,MAAM,KAAK;;CAEhB,CAAC"}
@@ -0,0 +1,132 @@
1
+ import { View, type ViewProps } from 'react-native';
2
+ import { type VariantProps } from 'tailwind-variants';
3
+ declare const progressVariants: import("tailwind-variants").TVReturnType<{
4
+ color: {
5
+ primary: {
6
+ track: string;
7
+ indicator: string;
8
+ };
9
+ success: {
10
+ track: string;
11
+ indicator: string;
12
+ };
13
+ warning: {
14
+ track: string;
15
+ indicator: string;
16
+ };
17
+ destructive: {
18
+ track: string;
19
+ indicator: string;
20
+ };
21
+ info: {
22
+ track: string;
23
+ indicator: string;
24
+ };
25
+ };
26
+ size: {
27
+ sm: {
28
+ track: string;
29
+ };
30
+ md: {
31
+ track: string;
32
+ };
33
+ lg: {
34
+ track: string;
35
+ };
36
+ };
37
+ }, {
38
+ track: string;
39
+ indicator: string;
40
+ }, undefined, {
41
+ color: {
42
+ primary: {
43
+ track: string;
44
+ indicator: string;
45
+ };
46
+ success: {
47
+ track: string;
48
+ indicator: string;
49
+ };
50
+ warning: {
51
+ track: string;
52
+ indicator: string;
53
+ };
54
+ destructive: {
55
+ track: string;
56
+ indicator: string;
57
+ };
58
+ info: {
59
+ track: string;
60
+ indicator: string;
61
+ };
62
+ };
63
+ size: {
64
+ sm: {
65
+ track: string;
66
+ };
67
+ md: {
68
+ track: string;
69
+ };
70
+ lg: {
71
+ track: string;
72
+ };
73
+ };
74
+ }, {
75
+ track: string;
76
+ indicator: string;
77
+ }, import("tailwind-variants").TVReturnType<{
78
+ color: {
79
+ primary: {
80
+ track: string;
81
+ indicator: string;
82
+ };
83
+ success: {
84
+ track: string;
85
+ indicator: string;
86
+ };
87
+ warning: {
88
+ track: string;
89
+ indicator: string;
90
+ };
91
+ destructive: {
92
+ track: string;
93
+ indicator: string;
94
+ };
95
+ info: {
96
+ track: string;
97
+ indicator: string;
98
+ };
99
+ };
100
+ size: {
101
+ sm: {
102
+ track: string;
103
+ };
104
+ md: {
105
+ track: string;
106
+ };
107
+ lg: {
108
+ track: string;
109
+ };
110
+ };
111
+ }, {
112
+ track: string;
113
+ indicator: string;
114
+ }, undefined, unknown, unknown, undefined>>;
115
+ type ProgressVariantProps = VariantProps<typeof progressVariants>;
116
+ export interface ProgressProps extends Omit<ViewProps, 'children'>, ProgressVariantProps {
117
+ className?: string;
118
+ /** Progress value, 0–100. Ignored when `indeterminate` is set. */
119
+ value?: number;
120
+ /** Show a looping animation for unknown-duration work. */
121
+ indeterminate?: boolean;
122
+ /** Extra classes for the moving indicator. */
123
+ indicatorClassName?: string;
124
+ }
125
+ /**
126
+ * Determinate or indeterminate progress bar. The fill width (determinate) and
127
+ * the sliding bar (indeterminate) are both driven on the UI thread, so updates
128
+ * never re-render past the value change itself.
129
+ */
130
+ export declare const Progress: import("react").ForwardRefExoticComponent<ProgressProps & import("react").RefAttributes<View>>;
131
+ export {};
132
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/progress/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA0B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAW5E,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAM1D,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAuBpB,CAAC;AAEH,KAAK,oBAAoB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAElE,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACjC,oBAAoB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AASD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,gGA2EpB,CAAC"}