panelui-native 0.2.0 → 0.4.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 (84) hide show
  1. package/README.md +251 -0
  2. package/lib/module/components/alert/index.js +106 -13
  3. package/lib/module/components/alert/index.js.map +1 -1
  4. package/lib/module/components/badge/index.js +3 -3
  5. package/lib/module/components/badge/index.js.map +1 -1
  6. package/lib/module/components/button/index.js +44 -15
  7. package/lib/module/components/button/index.js.map +1 -1
  8. package/lib/module/components/checkbox/index.js +20 -7
  9. package/lib/module/components/checkbox/index.js.map +1 -1
  10. package/lib/module/components/empty-state/index.js +178 -0
  11. package/lib/module/components/empty-state/index.js.map +1 -0
  12. package/lib/module/components/input-group/index.js +132 -0
  13. package/lib/module/components/input-group/index.js.map +1 -0
  14. package/lib/module/components/label/index.js +117 -0
  15. package/lib/module/components/label/index.js.map +1 -0
  16. package/lib/module/components/progress/index.js +138 -0
  17. package/lib/module/components/progress/index.js.map +1 -0
  18. package/lib/module/components/steps/index.js +354 -0
  19. package/lib/module/components/steps/index.js.map +1 -0
  20. package/lib/module/components/tabs/index.js +9 -3
  21. package/lib/module/components/tabs/index.js.map +1 -1
  22. package/lib/module/components/toast/index.js +479 -0
  23. package/lib/module/components/toast/index.js.map +1 -0
  24. package/lib/module/components/toast/toast-store.js +81 -0
  25. package/lib/module/components/toast/toast-store.js.map +1 -0
  26. package/lib/module/components/typography/index.js +126 -0
  27. package/lib/module/components/typography/index.js.map +1 -0
  28. package/lib/module/icons/index.js +223 -2
  29. package/lib/module/icons/index.js.map +1 -1
  30. package/lib/module/index.js +9 -2
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/module/providers/panel-ui-provider.js +2 -1
  33. package/lib/module/providers/panel-ui-provider.js.map +1 -1
  34. package/lib/module/theme/use-theme.js +90 -3
  35. package/lib/module/theme/use-theme.js.map +1 -1
  36. package/lib/typescript/src/components/alert/index.d.ts +56 -4
  37. package/lib/typescript/src/components/alert/index.d.ts.map +1 -1
  38. package/lib/typescript/src/components/button/index.d.ts +39 -0
  39. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  40. package/lib/typescript/src/components/checkbox/index.d.ts +8 -0
  41. package/lib/typescript/src/components/checkbox/index.d.ts.map +1 -1
  42. package/lib/typescript/src/components/empty-state/index.d.ts +73 -0
  43. package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -0
  44. package/lib/typescript/src/components/input-group/index.d.ts +34 -0
  45. package/lib/typescript/src/components/input-group/index.d.ts.map +1 -0
  46. package/lib/typescript/src/components/label/index.d.ts +28 -0
  47. package/lib/typescript/src/components/label/index.d.ts.map +1 -0
  48. package/lib/typescript/src/components/progress/index.d.ts +132 -0
  49. package/lib/typescript/src/components/progress/index.d.ts.map +1 -0
  50. package/lib/typescript/src/components/steps/index.d.ts +62 -0
  51. package/lib/typescript/src/components/steps/index.d.ts.map +1 -0
  52. package/lib/typescript/src/components/tabs/index.d.ts.map +1 -1
  53. package/lib/typescript/src/components/toast/index.d.ts +176 -0
  54. package/lib/typescript/src/components/toast/index.d.ts.map +1 -0
  55. package/lib/typescript/src/components/toast/toast-store.d.ts +65 -0
  56. package/lib/typescript/src/components/toast/toast-store.d.ts.map +1 -0
  57. package/lib/typescript/src/components/typography/index.d.ts +77 -0
  58. package/lib/typescript/src/components/typography/index.d.ts.map +1 -0
  59. package/lib/typescript/src/icons/index.d.ts +25 -0
  60. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  61. package/lib/typescript/src/index.d.ts +10 -3
  62. package/lib/typescript/src/index.d.ts.map +1 -1
  63. package/lib/typescript/src/providers/panel-ui-provider.d.ts.map +1 -1
  64. package/lib/typescript/src/theme/use-theme.d.ts +64 -4
  65. package/lib/typescript/src/theme/use-theme.d.ts.map +1 -1
  66. package/package.json +22 -4
  67. package/src/components/alert/index.tsx +102 -16
  68. package/src/components/badge/index.tsx +3 -3
  69. package/src/components/button/index.tsx +47 -7
  70. package/src/components/checkbox/index.tsx +17 -3
  71. package/src/components/empty-state/index.tsx +136 -0
  72. package/src/components/input-group/index.tsx +164 -0
  73. package/src/components/label/index.tsx +128 -0
  74. package/src/components/progress/index.tsx +147 -0
  75. package/src/components/steps/index.tsx +343 -0
  76. package/src/components/tabs/index.tsx +10 -2
  77. package/src/components/toast/index.tsx +447 -0
  78. package/src/components/toast/toast-store.ts +120 -0
  79. package/src/components/typography/index.tsx +121 -0
  80. package/src/icons/index.tsx +152 -1
  81. package/src/index.ts +76 -3
  82. package/src/providers/panel-ui-provider.tsx +3 -0
  83. package/src/theme/use-theme.ts +119 -4
  84. package/theme.css +330 -7
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Typography — semantic text presets.
5
+ *
6
+ * Adapted from: heroui-inc/heroui-native (Typography `type` scale and the
7
+ * Heading / Paragraph / Code compound parts), built on PanelUI's Text
8
+ * primitive so every preset keeps `className` passthrough and theme colours.
9
+ */
10
+ import { forwardRef } from 'react';
11
+ import { View } from 'react-native';
12
+ import { tv } from 'tailwind-variants';
13
+ import { Text } from "../../primitives/text.js";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ const typographyVariants = tv({
16
+ base: 'text-foreground',
17
+ variants: {
18
+ type: {
19
+ h1: 'text-4xl font-bold tracking-tight',
20
+ h2: 'text-3xl font-semibold tracking-tight',
21
+ h3: 'text-2xl font-semibold tracking-tight',
22
+ h4: 'text-xl font-semibold',
23
+ h5: 'text-lg font-semibold',
24
+ h6: 'text-base font-semibold',
25
+ body: 'text-base font-normal',
26
+ 'body-sm': 'text-sm font-normal',
27
+ 'body-xs': 'text-xs font-normal',
28
+ code: 'font-mono text-sm text-foreground'
29
+ },
30
+ muted: {
31
+ true: 'text-muted-foreground'
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ type: 'body'
36
+ }
37
+ });
38
+
39
+ /** Heading levels, for `Typography.Heading`. */
40
+
41
+ /** Body sizes, for `Typography.Paragraph`. */
42
+
43
+ /** Maps a heading preset to its accessibility heading level. */
44
+ const HEADING_LEVEL = {
45
+ h1: 1,
46
+ h2: 2,
47
+ h3: 3,
48
+ h4: 4,
49
+ h5: 5,
50
+ h6: 6
51
+ };
52
+ const TypographyRoot = /*#__PURE__*/forwardRef(({
53
+ className,
54
+ type,
55
+ muted,
56
+ ...props
57
+ }, ref) => /*#__PURE__*/_jsx(Text, {
58
+ ref: ref,
59
+ className: typographyVariants({
60
+ type,
61
+ muted,
62
+ className
63
+ }),
64
+ ...props
65
+ }));
66
+ TypographyRoot.displayName = 'Typography';
67
+ /** Heading text, wired up with the matching accessibility heading level. */
68
+ const TypographyHeading = /*#__PURE__*/forwardRef(({
69
+ className,
70
+ type = 'h2',
71
+ muted,
72
+ ...props
73
+ }, ref) => /*#__PURE__*/_jsx(Text, {
74
+ ref: ref,
75
+ accessibilityRole: "header",
76
+ "aria-level": HEADING_LEVEL[type],
77
+ className: typographyVariants({
78
+ type,
79
+ muted,
80
+ className
81
+ }),
82
+ ...props
83
+ }));
84
+ TypographyHeading.displayName = 'Typography.Heading';
85
+ const TypographyParagraph = /*#__PURE__*/forwardRef(({
86
+ className,
87
+ type = 'body',
88
+ muted,
89
+ ...props
90
+ }, ref) => /*#__PURE__*/_jsx(Text, {
91
+ ref: ref,
92
+ className: typographyVariants({
93
+ type,
94
+ muted,
95
+ className
96
+ }),
97
+ ...props
98
+ }));
99
+ TypographyParagraph.displayName = 'Typography.Paragraph';
100
+ /** Inline code on a muted surface. */
101
+ const TypographyCode = /*#__PURE__*/forwardRef(({
102
+ className,
103
+ containerClassName,
104
+ muted,
105
+ testID,
106
+ ...props
107
+ }, ref) => /*#__PURE__*/_jsx(View, {
108
+ ref: ref,
109
+ testID: testID,
110
+ className: `self-start rounded-md bg-muted px-1.5 py-1 ${containerClassName ?? ''}`,
111
+ children: /*#__PURE__*/_jsx(Text, {
112
+ className: typographyVariants({
113
+ type: 'code',
114
+ muted,
115
+ className
116
+ }),
117
+ ...props
118
+ })
119
+ }));
120
+ TypographyCode.displayName = 'Typography.Code';
121
+ export const Typography = Object.assign(TypographyRoot, {
122
+ Heading: TypographyHeading,
123
+ Paragraph: TypographyParagraph,
124
+ Code: TypographyCode
125
+ });
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","View","tv","Text","jsx","_jsx","typographyVariants","base","variants","type","h1","h2","h3","h4","h5","h6","body","code","muted","true","defaultVariants","HEADING_LEVEL","TypographyRoot","className","props","ref","displayName","TypographyHeading","accessibilityRole","TypographyParagraph","TypographyCode","containerClassName","testID","children","Typography","Object","assign","Heading","Paragraph","Code"],"sourceRoot":"../../../../src","sources":["components/typography/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,30 @@
1
1
  "use strict";
2
2
 
3
- import Svg, { Path } from 'react-native-svg';
4
- import { jsx as _jsx } from "react/jsx-runtime";
3
+ /**
4
+ * Icon set.
5
+ *
6
+ * Two families live here:
7
+ * - Stroked 24×24 icons (Lucide geometry, as used by shadcn-ui/ui) for chrome
8
+ * such as chevrons and the close button.
9
+ * - Filled 16×16 status icons for Alert and Toast indicators.
10
+ * Adapted from: heroui-inc/heroui-native src/components/alert/{default,success,warning}-icon.tsx
11
+ *
12
+ * `color` has no default on the status icons on purpose — callers resolve it
13
+ * from the active theme with `useCSSVariable`, so icons follow the theme
14
+ * instead of a hardcoded hex.
15
+ */
16
+ import Svg, { Circle, Path } from 'react-native-svg';
17
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ /** Props for icons that must never be announced by a screen reader. */
19
+ const decorative = {
20
+ accessibilityElementsHidden: true,
21
+ importantForAccessibility: 'no-hide-descendants'
22
+ };
23
+
24
+ /* -------------------------------------------------------------------------- */
25
+ /* Stroked chrome icons */
26
+ /* -------------------------------------------------------------------------- */
27
+
5
28
  export function CheckIcon({
6
29
  size = 14,
7
30
  color = '#fff',
@@ -42,6 +65,46 @@ export function ChevronDownIcon({
42
65
  })
43
66
  });
44
67
  }
68
+ export function ChevronLeftIcon({
69
+ size = 16,
70
+ color = '#737373',
71
+ ...props
72
+ }) {
73
+ return /*#__PURE__*/_jsx(Svg, {
74
+ width: size,
75
+ height: size,
76
+ viewBox: "0 0 24 24",
77
+ fill: "none",
78
+ ...props,
79
+ children: /*#__PURE__*/_jsx(Path, {
80
+ d: "m15 18-6-6 6-6",
81
+ stroke: color,
82
+ strokeWidth: 2,
83
+ strokeLinecap: "round",
84
+ strokeLinejoin: "round"
85
+ })
86
+ });
87
+ }
88
+ export function ChevronRightIcon({
89
+ size = 16,
90
+ color = '#737373',
91
+ ...props
92
+ }) {
93
+ return /*#__PURE__*/_jsx(Svg, {
94
+ width: size,
95
+ height: size,
96
+ viewBox: "0 0 24 24",
97
+ fill: "none",
98
+ ...props,
99
+ children: /*#__PURE__*/_jsx(Path, {
100
+ d: "m9 18 6-6-6-6",
101
+ stroke: color,
102
+ strokeWidth: 2,
103
+ strokeLinecap: "round",
104
+ strokeLinejoin: "round"
105
+ })
106
+ });
107
+ }
45
108
  export function XIcon({
46
109
  size = 16,
47
110
  color = '#737373',
@@ -62,4 +125,162 @@ export function XIcon({
62
125
  })
63
126
  });
64
127
  }
128
+ export function SearchIcon({
129
+ size = 16,
130
+ color = '#737373',
131
+ ...props
132
+ }) {
133
+ return /*#__PURE__*/_jsxs(Svg, {
134
+ width: size,
135
+ height: size,
136
+ viewBox: "0 0 24 24",
137
+ fill: "none",
138
+ ...props,
139
+ children: [/*#__PURE__*/_jsx(Circle, {
140
+ cx: 11,
141
+ cy: 11,
142
+ r: 8,
143
+ stroke: color,
144
+ strokeWidth: 2
145
+ }), /*#__PURE__*/_jsx(Path, {
146
+ d: "m21 21-4.3-4.3",
147
+ stroke: color,
148
+ strokeWidth: 2,
149
+ strokeLinecap: "round",
150
+ strokeLinejoin: "round"
151
+ })]
152
+ });
153
+ }
154
+ export function ArrowUpRightIcon({
155
+ size = 20,
156
+ color = '#fff',
157
+ ...props
158
+ }) {
159
+ return /*#__PURE__*/_jsx(Svg, {
160
+ width: size,
161
+ height: size,
162
+ viewBox: "0 0 24 24",
163
+ fill: "none",
164
+ ...props,
165
+ children: /*#__PURE__*/_jsx(Path, {
166
+ d: "M7 17 17 7M8 7h9v9",
167
+ stroke: color,
168
+ strokeWidth: 2,
169
+ strokeLinecap: "round",
170
+ strokeLinejoin: "round"
171
+ })
172
+ });
173
+ }
174
+ export function SunIcon({
175
+ size = 18,
176
+ color = '#f5f5f5',
177
+ ...props
178
+ }) {
179
+ return /*#__PURE__*/_jsxs(Svg, {
180
+ width: size,
181
+ height: size,
182
+ viewBox: "0 0 24 24",
183
+ fill: "none",
184
+ ...props,
185
+ children: [/*#__PURE__*/_jsx(Circle, {
186
+ cx: 12,
187
+ cy: 12,
188
+ r: 4,
189
+ stroke: color,
190
+ strokeWidth: 2
191
+ }), /*#__PURE__*/_jsx(Path, {
192
+ d: "M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32 1.41 1.41M2 12h2m16 0h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41",
193
+ stroke: color,
194
+ strokeWidth: 2,
195
+ strokeLinecap: "round"
196
+ })]
197
+ });
198
+ }
199
+ export function MoonIcon({
200
+ size = 18,
201
+ color = '#262626',
202
+ ...props
203
+ }) {
204
+ return /*#__PURE__*/_jsx(Svg, {
205
+ width: size,
206
+ height: size,
207
+ viewBox: "0 0 24 24",
208
+ fill: "none",
209
+ ...props,
210
+ children: /*#__PURE__*/_jsx(Path, {
211
+ d: "M21 12.79A9 9 0 1 1 11.21 3a7 7 0 0 0 9.79 9.79",
212
+ stroke: color,
213
+ strokeWidth: 2,
214
+ strokeLinecap: "round",
215
+ strokeLinejoin: "round"
216
+ })
217
+ });
218
+ }
219
+
220
+ /* -------------------------------------------------------------------------- */
221
+ /* Filled status icons (Alert / Toast indicators) */
222
+ /* -------------------------------------------------------------------------- */
223
+
224
+ /** Info circle. Used for `default`, `info` and `destructive` status. */
225
+ export function InfoIcon({
226
+ size = 20,
227
+ color,
228
+ ...props
229
+ }) {
230
+ return /*#__PURE__*/_jsx(Svg, {
231
+ width: size,
232
+ height: size,
233
+ viewBox: "0 0 16 16",
234
+ fill: color,
235
+ ...decorative,
236
+ ...props,
237
+ children: /*#__PURE__*/_jsx(Path, {
238
+ d: "M8 13.5a5.5 5.5 0 1 0 0-11a5.5 5.5 0 0 0 0 11M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14m1-9.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-.25 3a.75.75 0 0 0-1.5 0V11a.75.75 0 0 0 1.5 0z",
239
+ fillRule: "evenodd",
240
+ clipRule: "evenodd"
241
+ })
242
+ });
243
+ }
244
+
245
+ /** Check circle. Used for `success` status. */
246
+ export function CheckCircleIcon({
247
+ size = 20,
248
+ color,
249
+ ...props
250
+ }) {
251
+ return /*#__PURE__*/_jsx(Svg, {
252
+ width: size,
253
+ height: size,
254
+ viewBox: "0 0 16 16",
255
+ fill: color,
256
+ ...decorative,
257
+ ...props,
258
+ children: /*#__PURE__*/_jsx(Path, {
259
+ d: "M13.5 8a5.5 5.5 0 1 1-11 0a5.5 5.5 0 0 1 11 0M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0m-3.9-1.55a.75.75 0 1 0-1.2-.9L7.419 8.858L6.03 7.47a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.13-.08z",
260
+ fillRule: "evenodd",
261
+ clipRule: "evenodd"
262
+ })
263
+ });
264
+ }
265
+
266
+ /** Warning triangle. Used for `warning` status. */
267
+ export function AlertTriangleIcon({
268
+ size = 20,
269
+ color,
270
+ ...props
271
+ }) {
272
+ return /*#__PURE__*/_jsx(Svg, {
273
+ width: size,
274
+ height: size,
275
+ viewBox: "0 0 16 16",
276
+ fill: color,
277
+ ...decorative,
278
+ ...props,
279
+ children: /*#__PURE__*/_jsx(Path, {
280
+ d: "M7.134 2.994L2.217 11.5a1 1 0 0 0 .866 1.5h9.834a1 1 0 0 0 .866-1.5L8.866 2.993a1 1 0 0 0-1.732 0m3.03-.75c-.962-1.665-3.366-1.665-4.329 0L.918 10.749c-.963 1.666.24 3.751 2.165 3.751h9.834c1.925 0 3.128-2.085 2.164-3.751zM8 5a.75.75 0 0 1 .75.75v2a.75.75 0 0 1-1.5 0v-2A.75.75 0 0 1 8 5m1 5.75a1 1 0 1 1-2 0a1 1 0 0 1 2 0",
281
+ fillRule: "evenodd",
282
+ clipRule: "evenodd"
283
+ })
284
+ });
285
+ }
65
286
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Svg","Path","jsx","_jsx","CheckIcon","size","color","props","width","height","viewBox","fill","children","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ChevronDownIcon","XIcon"],"sourceRoot":"../../../src","sources":["icons/index.tsx"],"mappings":";;AAAA,OAAOA,GAAG,IAAIC,IAAI,QAAuB,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO5D,OAAO,SAASC,SAASA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,MAAM;EAAE,GAAGC;AAAiB,CAAC,EAAE;EAC5E,oBACEJ,IAAA,CAACH,GAAG;IAACQ,KAAK,EAAEH,IAAK;IAACI,MAAM,EAAEJ,IAAK;IAACK,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAA,GAAKJ,KAAK;IAAAK,QAAA,eACvET,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,iBAAiB;MACnBC,MAAM,EAAER,KAAM;MACdS,WAAW,EAAE,CAAE;MACfC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAC;IAAO,CACvB;EAAC,CACC,CAAC;AAEV;AAEA,OAAO,SAASC,eAAeA,CAAC;EAAEb,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,SAAS;EAAE,GAAGC;AAAiB,CAAC,EAAE;EACrF,oBACEJ,IAAA,CAACH,GAAG;IAACQ,KAAK,EAAEH,IAAK;IAACI,MAAM,EAAEJ,IAAK;IAACK,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAA,GAAKJ,KAAK;IAAAK,QAAA,eACvET,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,cAAc;MAChBC,MAAM,EAAER,KAAM;MACdS,WAAW,EAAE,CAAE;MACfC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAC;IAAO,CACvB;EAAC,CACC,CAAC;AAEV;AAEA,OAAO,SAASE,KAAKA,CAAC;EAAEd,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,SAAS;EAAE,GAAGC;AAAiB,CAAC,EAAE;EAC3E,oBACEJ,IAAA,CAACH,GAAG;IAACQ,KAAK,EAAEH,IAAK;IAACI,MAAM,EAAEJ,IAAK;IAACK,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAA,GAAKJ,KAAK;IAAAK,QAAA,eACvET,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,sBAAsB;MACxBC,MAAM,EAAER,KAAM;MACdS,WAAW,EAAE,CAAE;MACfC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAC;IAAO,CACvB;EAAC,CACC,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"names":["Svg","Circle","Path","jsx","_jsx","jsxs","_jsxs","decorative","accessibilityElementsHidden","importantForAccessibility","CheckIcon","size","color","props","width","height","viewBox","fill","children","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","XIcon","SearchIcon","cx","cy","r","ArrowUpRightIcon","SunIcon","MoonIcon","InfoIcon","fillRule","clipRule","CheckCircleIcon","AlertTriangleIcon"],"sourceRoot":"../../../src","sources":["icons/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@
4
4
  export { PanelUIProvider } from "./providers/panel-ui-provider.js";
5
5
 
6
6
  // Theme
7
- export { useTheme } from "./theme/use-theme.js";
7
+ export { useTheme, useThemeMode, PANEL_THEMES, PANEL_THEME_NAMES, PANEL_EXTRA_THEMES } from "./theme/use-theme.js";
8
8
 
9
9
  // Primitives
10
10
  export { Portal, PortalHost, PortalProvider } from "./primitives/portal.js";
@@ -24,14 +24,21 @@ export { Select } from "./components/select/index.js";
24
24
  export { Tabs } from "./components/tabs/index.js";
25
25
  export { Card } from "./components/card/index.js";
26
26
  export { Checkbox } from "./components/checkbox/index.js";
27
+ export { EmptyState } from "./components/empty-state/index.js";
27
28
  export { Input } from "./components/input/index.js";
29
+ export { InputGroup } from "./components/input-group/index.js";
30
+ export { Label } from "./components/label/index.js";
31
+ export { Progress } from "./components/progress/index.js";
28
32
  export { RadioGroup } from "./components/radio-group/index.js";
29
33
  export { Skeleton } from "./components/skeleton/index.js";
30
34
  export { Spinner } from "./components/spinner/index.js";
35
+ export { Steps } from "./components/steps/index.js";
31
36
  export { Switch } from "./components/switch/index.js";
37
+ export { Toast, ToastViewport, toast, useToast } from "./components/toast/index.js";
38
+ export { Typography } from "./components/typography/index.js";
32
39
 
33
40
  // Icons
34
- export { CheckIcon, ChevronDownIcon, XIcon } from "./icons/index.js";
41
+ export { AlertTriangleIcon, ArrowUpRightIcon, CheckCircleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, InfoIcon, MoonIcon, SearchIcon, SunIcon, XIcon } from "./icons/index.js";
35
42
 
36
43
  // Utils
37
44
  export { cn } from "./utils/cn.js";
@@ -1 +1 @@
1
- {"version":3,"names":["PanelUIProvider","useTheme","Portal","PortalHost","PortalProvider","Text","AnimatedPressable","Alert","Avatar","Badge","BottomSheet","Button","Dialog","Frame","InlineSelect","Select","Tabs","Card","Checkbox","Input","RadioGroup","Skeleton","Spinner","Switch","CheckIcon","ChevronDownIcon","XIcon","cn"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,eAAe,QAAmC,kCAA+B;;AAE1F;AACA,SAASC,QAAQ,QAAwB,sBAAmB;;AAE5D;AACA,SAASC,MAAM,EAAEC,UAAU,EAAEC,cAAc,QAAQ,wBAAqB;AACxE,SAASC,IAAI,QAAwB,sBAAmB;AACxD,SACEC,iBAAiB,QAEZ,oCAAiC;;AAExC;AACA,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SAASC,MAAM,QAA0B,8BAAqB;AAC9D,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SACEC,WAAW,QAGN,oCAA2B;AAClC,SAASC,MAAM,QAA0B,8BAAqB;AAC9D,SACEC,MAAM,QAGD,8BAAqB;AAC5B,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SACEC,YAAY,QAGP,qCAA4B;AACnC,SAASC,MAAM,QAAgD,8BAAqB;AACpF,SACEC,IAAI,QAKC,4BAAmB;AAC1B,SAASC,IAAI,QAAwB,4BAAmB;AACxD,SAASC,QAAQ,QAA4B,gCAAuB;AACpE,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SACEC,UAAU,QAGL,mCAA0B;AACjC,SAASC,QAAQ,QAA4B,gCAAuB;AACpE,SAASC,OAAO,QAA2B,+BAAsB;AACjE,SAASC,MAAM,QAA0B,8BAAqB;;AAE9D;AACA,SAASC,SAAS,EAAEC,eAAe,EAAEC,KAAK,QAAwB,kBAAS;;AAE3E;AACA,SAASC,EAAE,QAAQ,eAAY","ignoreList":[]}
1
+ {"version":3,"names":["PanelUIProvider","useTheme","useThemeMode","PANEL_THEMES","PANEL_THEME_NAMES","PANEL_EXTRA_THEMES","Portal","PortalHost","PortalProvider","Text","AnimatedPressable","Alert","Avatar","Badge","BottomSheet","Button","Dialog","Frame","InlineSelect","Select","Tabs","Card","Checkbox","EmptyState","Input","InputGroup","Label","Progress","RadioGroup","Skeleton","Spinner","Steps","Switch","Toast","ToastViewport","toast","useToast","Typography","AlertTriangleIcon","ArrowUpRightIcon","CheckCircleIcon","CheckIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","InfoIcon","MoonIcon","SearchIcon","SunIcon","XIcon","cn"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,eAAe,QAAmC,kCAA+B;;AAE1F;AACA,SACEC,QAAQ,EACRC,YAAY,EACZC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,QAKb,sBAAmB;;AAE1B;AACA,SAASC,MAAM,EAAEC,UAAU,EAAEC,cAAc,QAAQ,wBAAqB;AACxE,SAASC,IAAI,QAAwB,sBAAmB;AACxD,SACEC,iBAAiB,QAEZ,oCAAiC;;AAExC;AACA,SACEC,KAAK,QAGA,6BAAoB;AAC3B,SAASC,MAAM,QAA0B,8BAAqB;AAC9D,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SACEC,WAAW,QAGN,oCAA2B;AAClC,SAASC,MAAM,QAA0B,8BAAqB;AAC9D,SACEC,MAAM,QAGD,8BAAqB;AAC5B,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SACEC,YAAY,QAGP,qCAA4B;AACnC,SAASC,MAAM,QAAgD,8BAAqB;AACpF,SACEC,IAAI,QAKC,4BAAmB;AAC1B,SAASC,IAAI,QAAwB,4BAAmB;AACxD,SAASC,QAAQ,QAA4B,gCAAuB;AACpE,SACEC,UAAU,QAGL,mCAA0B;AACjC,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SACEC,UAAU,QAIL,mCAA0B;AACjC,SAASC,KAAK,QAA8C,6BAAoB;AAChF,SAASC,QAAQ,QAA4B,gCAAuB;AACpE,SACEC,UAAU,QAGL,mCAA0B;AACjC,SAASC,QAAQ,QAA4B,gCAAuB;AACpE,SAASC,OAAO,QAA2B,+BAAsB;AACjE,SACEC,KAAK,QAQA,6BAAoB;AAC3B,SAASC,MAAM,QAA0B,8BAAqB;AAC9D,SACEC,KAAK,EACLC,aAAa,EACbC,KAAK,EACLC,QAAQ,QASH,6BAAoB;AAC3B,SACEC,UAAU,QAML,kCAAyB;;AAEhC;AACA,SACEC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,EACfC,SAAS,EACTC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,KAAK,QAEA,kBAAS;;AAEhB;AACA,SAASC,EAAE,QAAQ,eAAY","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import { StyleSheet, View } from 'react-native';
4
4
  import { GestureHandlerRootView } from 'react-native-gesture-handler';
5
5
  import { PortalHost, PortalProvider } from "../primitives/portal.js";
6
+ import { ToastViewport } from "../components/toast/index.js";
6
7
  import { cn } from "../utils/cn.js";
7
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  /**
@@ -27,7 +28,7 @@ export function PanelUIProvider({
27
28
  children: /*#__PURE__*/_jsx(View, {
28
29
  className: cn('flex-1', background && 'bg-background', className),
29
30
  children: /*#__PURE__*/_jsxs(PortalProvider, {
30
- children: [children, /*#__PURE__*/_jsx(PortalHost, {})]
31
+ children: [children, /*#__PURE__*/_jsx(ToastViewport, {}), /*#__PURE__*/_jsx(PortalHost, {})]
31
32
  })
32
33
  })
33
34
  });
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","View","GestureHandlerRootView","PortalHost","PortalProvider","cn","jsx","_jsx","jsxs","_jsxs","PanelUIProvider","children","className","background","style","styles","root","create","flex"],"sourceRoot":"../../../src","sources":["providers/panel-ui-provider.tsx"],"mappings":";;AACA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,UAAU,EAAEC,cAAc,QAAQ,yBAAsB;AACjE,SAASC,EAAE,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAgBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAC;EAC9BC,QAAQ;EACRC,SAAS;EACTC,UAAU,GAAG;AACO,CAAC,EAAE;EACvB,oBACEN,IAAA,CAACL,sBAAsB;IAACY,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAL,QAAA,eACzCJ,IAAA,CAACN,IAAI;MAACW,SAAS,EAAEP,EAAE,CAAC,QAAQ,EAAEQ,UAAU,IAAI,eAAe,EAAED,SAAS,CAAE;MAAAD,QAAA,eACtEF,KAAA,CAACL,cAAc;QAAAO,QAAA,GACZA,QAAQ,eACTJ,IAAA,CAACJ,UAAU,IAAE,CAAC;MAAA,CACA;IAAC,CACb;EAAC,CACe,CAAC;AAE7B;AAEA,MAAMY,MAAM,GAAGf,UAAU,CAACiB,MAAM,CAAC;EAC/BD,IAAI,EAAE;IAAEE,IAAI,EAAE;EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","View","GestureHandlerRootView","PortalHost","PortalProvider","ToastViewport","cn","jsx","_jsx","jsxs","_jsxs","PanelUIProvider","children","className","background","style","styles","root","create","flex"],"sourceRoot":"../../../src","sources":["providers/panel-ui-provider.tsx"],"mappings":";;AACA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,UAAU,EAAEC,cAAc,QAAQ,yBAAsB;AACjE,SAASC,aAAa,QAAQ,8BAAqB;AACnD,SAASC,EAAE,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAgBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAC;EAC9BC,QAAQ;EACRC,SAAS;EACTC,UAAU,GAAG;AACO,CAAC,EAAE;EACvB,oBACEN,IAAA,CAACN,sBAAsB;IAACa,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAL,QAAA,eACzCJ,IAAA,CAACP,IAAI;MAACY,SAAS,EAAEP,EAAE,CAAC,QAAQ,EAAEQ,UAAU,IAAI,eAAe,EAAED,SAAS,CAAE;MAAAD,QAAA,eACtEF,KAAA,CAACN,cAAc;QAAAQ,QAAA,GACZA,QAAQ,eAETJ,IAAA,CAACH,aAAa,IAAE,CAAC,eACjBG,IAAA,CAACL,UAAU,IAAE,CAAC;MAAA,CACA;IAAC,CACb;EAAC,CACe,CAAC;AAE7B;AAEA,MAAMa,MAAM,GAAGhB,UAAU,CAACkB,MAAM,CAAC;EAC/BD,IAAI,EAAE;IAAEE,IAAI,EAAE;EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,58 @@
1
1
  "use strict";
2
2
 
3
3
  import { Uniwind, useUniwind } from 'uniwind';
4
+
5
+ /** Themes shipped in `panelui-native/theme.css`. */
6
+
7
+ /** Light/dark mode within a theme family. */
8
+
9
+ /** A theme family — one look, in its light and dark form. */
10
+
11
+ /**
12
+ * The theme families PanelUI ships. Each sets its own palette *and* its own
13
+ * radius scale, so switching family changes the shape of the UI as well as
14
+ * its colour — Panel is the Coss default, Moon is sharp and monochrome,
15
+ * Grass is soft and green.
16
+ *
17
+ * Everything beyond `panel` must be registered in your metro config, or
18
+ * `setTheme` throws "it was not registered":
19
+ *
20
+ * ```js
21
+ * withUniwindConfig(config, {
22
+ * cssEntryFile: './global.css',
23
+ * extraThemes: ['moon', 'moon-dark', 'grass', 'grass-dark'],
24
+ * });
25
+ * ```
26
+ */
27
+ export const PANEL_THEMES = [{
28
+ id: 'panel',
29
+ name: 'Panel',
30
+ light: 'light',
31
+ dark: 'dark',
32
+ swatch: ['#262626', '#f5f5f5']
33
+ }, {
34
+ id: 'moon',
35
+ name: 'Moon',
36
+ light: 'moon',
37
+ dark: 'moon-dark',
38
+ swatch: ['#0070f3', '#0070f3']
39
+ }, {
40
+ id: 'grass',
41
+ name: 'Grass',
42
+ light: 'grass',
43
+ dark: 'grass-dark',
44
+ swatch: ['#24b47e', '#3ecf8e']
45
+ }];
46
+
47
+ /** Every concrete theme name, in registration order. */
48
+ export const PANEL_THEME_NAMES = PANEL_THEMES.flatMap(family => [family.light, family.dark]);
49
+
50
+ /** The names to pass as `extraThemes` in your metro config. */
51
+ export const PANEL_EXTRA_THEMES = PANEL_THEME_NAMES.filter(name => name !== 'light' && name !== 'dark');
52
+ function findFamily(theme) {
53
+ return PANEL_THEMES.find(family => family.light === theme || family.dark === theme) ?? PANEL_THEMES[0];
54
+ }
55
+
4
56
  /**
5
57
  * Reactive access to the current Uniwind theme plus a setter.
6
58
  * Theme changes are applied natively by Uniwind without re-rendering the tree.
@@ -10,10 +62,45 @@ export function useTheme() {
10
62
  theme
11
63
  } = useUniwind();
12
64
  return {
13
- /** Currently resolved theme ('light' or 'dark'). */
14
- theme,
15
- /** Switch theme: 'light', 'dark', or 'system' (follows device). */
65
+ /** The active theme name, e.g. `'dark'` or `'moon-dark'`. */
66
+ theme: theme,
67
+ /** Switch theme by name, or `'system'` to follow the device. */
16
68
  setTheme: name => Uniwind.setTheme(name)
17
69
  };
18
70
  }
71
+
72
+ /**
73
+ * Theme family and light/dark mode as two separate axes — what a picker like
74
+ * "choose a brand, then toggle the sun" actually needs.
75
+ *
76
+ * Named themes are not adaptive in Uniwind, so each brand ships as a
77
+ * light/dark pair. Toggling the mode keeps the current family, so a user in
78
+ * Moon dark lands in Moon light rather than the default theme.
79
+ *
80
+ * ```tsx
81
+ * const { family, mode, setFamily, toggleMode } = useThemeMode();
82
+ * ```
83
+ */
84
+ export function useThemeMode() {
85
+ const {
86
+ theme
87
+ } = useUniwind();
88
+ const family = findFamily(theme);
89
+ const mode = theme === family.dark ? 'dark' : 'light';
90
+ return {
91
+ /** The active theme family. */
92
+ family,
93
+ /** `'light'` or `'dark'` within that family. */
94
+ mode,
95
+ /** Switch brand, staying in the current light/dark mode. */
96
+ setFamily: id => {
97
+ const next = PANEL_THEMES.find(candidate => candidate.id === id);
98
+ if (next) Uniwind.setTheme(next[mode]);
99
+ },
100
+ /** Set the mode, staying in the current family. */
101
+ setMode: next => Uniwind.setTheme(family[next]),
102
+ /** Flip light ↔ dark within the current family. */
103
+ toggleMode: () => Uniwind.setTheme(mode === 'dark' ? family.light : family.dark)
104
+ };
105
+ }
19
106
  //# sourceMappingURL=use-theme.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Uniwind","useUniwind","useTheme","theme","setTheme","name"],"sourceRoot":"../../../src","sources":["theme/use-theme.ts"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,UAAU,QAAQ,SAAS;AAI7C;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAA,EAAG;EACzB,MAAM;IAAEC;EAAM,CAAC,GAAGF,UAAU,CAAC,CAAC;EAE9B,OAAO;IACL;IACAE,KAAK;IACL;IACAC,QAAQ,EAAGC,IAAe,IAAKL,OAAO,CAACI,QAAQ,CAACC,IAAI;EACtD,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["Uniwind","useUniwind","PANEL_THEMES","id","name","light","dark","swatch","PANEL_THEME_NAMES","flatMap","family","PANEL_EXTRA_THEMES","filter","findFamily","theme","find","useTheme","setTheme","useThemeMode","mode","setFamily","next","candidate","setMode","toggleMode"],"sourceRoot":"../../../src","sources":["theme/use-theme.ts"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,UAAU,QAAQ,SAAS;;AAE7C;;AAWA;;AAGA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAyC,GAAG,CACvD;EACEC,EAAE,EAAE,OAAO;EACXC,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS;AAC/B,CAAC,EACD;EACEJ,EAAE,EAAE,MAAM;EACVC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,WAAW;EACjBC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS;AAC/B,CAAC,EACD;EACEJ,EAAE,EAAE,OAAO;EACXC,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS;AAC/B,CAAC,CACF;;AAED;AACA,OAAO,MAAMC,iBAAwC,GAAGN,YAAY,CAACO,OAAO,CACzEC,MAAM,IAAK,CAACA,MAAM,CAACL,KAAK,EAAEK,MAAM,CAACJ,IAAI,CACxC,CAAC;;AAED;AACA,OAAO,MAAMK,kBAAqC,GAAGH,iBAAiB,CAACI,MAAM,CAC1ER,IAAI,IAAKA,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,MACzC,CAAC;AAED,SAASS,UAAUA,CAACC,KAAa,EAAoB;EACnD,OACEZ,YAAY,CAACa,IAAI,CAAEL,MAAM,IAAKA,MAAM,CAACL,KAAK,KAAKS,KAAK,IAAIJ,MAAM,CAACJ,IAAI,KAAKQ,KAAK,CAAC,IAC9EZ,YAAY,CAAC,CAAC,CAAE;AAEpB;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASc,QAAQA,CAAA,EAAG;EACzB,MAAM;IAAEF;EAAM,CAAC,GAAGb,UAAU,CAAC,CAAC;EAE9B,OAAO;IACL;IACAa,KAAK,EAAEA,KAAmB;IAC1B;IACAG,QAAQ,EAAGb,IAAe,IAAKJ,OAAO,CAACiB,QAAQ,CAACb,IAAI;EACtD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASc,YAAYA,CAAA,EAAG;EAC7B,MAAM;IAAEJ;EAAM,CAAC,GAAGb,UAAU,CAAC,CAAC;EAC9B,MAAMS,MAAM,GAAGG,UAAU,CAACC,KAAK,CAAC;EAChC,MAAMK,IAAe,GAAGL,KAAK,KAAKJ,MAAM,CAACJ,IAAI,GAAG,MAAM,GAAG,OAAO;EAEhE,OAAO;IACL;IACAI,MAAM;IACN;IACAS,IAAI;IACJ;IACAC,SAAS,EAAGjB,EAAU,IAAK;MACzB,MAAMkB,IAAI,GAAGnB,YAAY,CAACa,IAAI,CAAEO,SAAS,IAAKA,SAAS,CAACnB,EAAE,KAAKA,EAAE,CAAC;MAClE,IAAIkB,IAAI,EAAErB,OAAO,CAACiB,QAAQ,CAACI,IAAI,CAACF,IAAI,CAAC,CAAC;IACxC,CAAC;IACD;IACAI,OAAO,EAAGF,IAAe,IAAKrB,OAAO,CAACiB,QAAQ,CAACP,MAAM,CAACW,IAAI,CAAC,CAAC;IAC5D;IACAG,UAAU,EAAEA,CAAA,KAAMxB,OAAO,CAACiB,QAAQ,CAACE,IAAI,KAAK,MAAM,GAAGT,MAAM,CAACL,KAAK,GAAGK,MAAM,CAACJ,IAAI;EACjF,CAAC;AACH","ignoreList":[]}