panelui-native 0.7.0 → 0.12.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 (161) hide show
  1. package/README.md +5 -3
  2. package/lib/module/components/attachment/index.js +219 -0
  3. package/lib/module/components/attachment/index.js.map +1 -0
  4. package/lib/module/components/bottom-sheet/index.js +53 -3
  5. package/lib/module/components/bottom-sheet/index.js.map +1 -1
  6. package/lib/module/components/button/index.js +19 -1
  7. package/lib/module/components/button/index.js.map +1 -1
  8. package/lib/module/components/dialog/index.js +6 -2
  9. package/lib/module/components/dialog/index.js.map +1 -1
  10. package/lib/module/components/empty-state/index.js +94 -17
  11. package/lib/module/components/empty-state/index.js.map +1 -1
  12. package/lib/module/components/frame/index.js +128 -15
  13. package/lib/module/components/frame/index.js.map +1 -1
  14. package/lib/module/components/input/index.js +107 -15
  15. package/lib/module/components/input/index.js.map +1 -1
  16. package/lib/module/components/line-chart/index.js +1024 -0
  17. package/lib/module/components/line-chart/index.js.map +1 -0
  18. package/lib/module/components/marker/index.js +190 -0
  19. package/lib/module/components/marker/index.js.map +1 -0
  20. package/lib/module/components/message/index.js +24 -8
  21. package/lib/module/components/message/index.js.map +1 -1
  22. package/lib/module/components/message-scroller/index.js +451 -0
  23. package/lib/module/components/message-scroller/index.js.map +1 -0
  24. package/lib/module/components/popover/index.js +511 -0
  25. package/lib/module/components/popover/index.js.map +1 -0
  26. package/lib/module/components/progress/index.js +52 -2
  27. package/lib/module/components/progress/index.js.map +1 -1
  28. package/lib/module/components/radio-group/index.js +132 -17
  29. package/lib/module/components/radio-group/index.js.map +1 -1
  30. package/lib/module/components/section-rail/index.js +355 -0
  31. package/lib/module/components/section-rail/index.js.map +1 -0
  32. package/lib/module/components/select/index.js +245 -56
  33. package/lib/module/components/select/index.js.map +1 -1
  34. package/lib/module/components/separator/index.js +91 -0
  35. package/lib/module/components/separator/index.js.map +1 -0
  36. package/lib/module/components/slider/index.js +355 -0
  37. package/lib/module/components/slider/index.js.map +1 -0
  38. package/lib/module/components/surface/index.js +21 -2
  39. package/lib/module/components/surface/index.js.map +1 -1
  40. package/lib/module/components/switch/index.js +10 -1
  41. package/lib/module/components/switch/index.js.map +1 -1
  42. package/lib/module/components/tabs/index.js +186 -16
  43. package/lib/module/components/tabs/index.js.map +1 -1
  44. package/lib/module/components/toggle-button/index.js +297 -0
  45. package/lib/module/components/toggle-button/index.js.map +1 -0
  46. package/lib/module/hooks/index.js +1 -0
  47. package/lib/module/hooks/index.js.map +1 -1
  48. package/lib/module/hooks/use-keyboard-avoidance.js +57 -8
  49. package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
  50. package/lib/module/hooks/use-scroll-sections.js +89 -0
  51. package/lib/module/hooks/use-scroll-sections.js.map +1 -0
  52. package/lib/module/icons/index.js +69 -0
  53. package/lib/module/icons/index.js.map +1 -1
  54. package/lib/module/index.js +11 -2
  55. package/lib/module/index.js.map +1 -1
  56. package/lib/module/native/index.js.map +1 -1
  57. package/lib/module/primitives/keyboard-avoider.js +2 -0
  58. package/lib/module/primitives/keyboard-avoider.js.map +1 -1
  59. package/lib/module/primitives/scrim.js +72 -0
  60. package/lib/module/primitives/scrim.js.map +1 -0
  61. package/lib/module/utils/haptics.js +57 -0
  62. package/lib/module/utils/haptics.js.map +1 -0
  63. package/lib/typescript/src/components/attachment/index.d.ts +93 -0
  64. package/lib/typescript/src/components/attachment/index.d.ts.map +1 -0
  65. package/lib/typescript/src/components/bottom-sheet/index.d.ts +6 -1
  66. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
  67. package/lib/typescript/src/components/button/index.d.ts +9 -4
  68. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  69. package/lib/typescript/src/components/dialog/index.d.ts +7 -1
  70. package/lib/typescript/src/components/dialog/index.d.ts.map +1 -1
  71. package/lib/typescript/src/components/empty-state/index.d.ts +152 -2
  72. package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -1
  73. package/lib/typescript/src/components/frame/index.d.ts +47 -7
  74. package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
  75. package/lib/typescript/src/components/input/index.d.ts +113 -2
  76. package/lib/typescript/src/components/input/index.d.ts.map +1 -1
  77. package/lib/typescript/src/components/line-chart/index.d.ts +247 -0
  78. package/lib/typescript/src/components/line-chart/index.d.ts.map +1 -0
  79. package/lib/typescript/src/components/marker/index.d.ts +137 -0
  80. package/lib/typescript/src/components/marker/index.d.ts.map +1 -0
  81. package/lib/typescript/src/components/message/index.d.ts +8 -1
  82. package/lib/typescript/src/components/message/index.d.ts.map +1 -1
  83. package/lib/typescript/src/components/message-scroller/index.d.ts +150 -0
  84. package/lib/typescript/src/components/message-scroller/index.d.ts.map +1 -0
  85. package/lib/typescript/src/components/popover/index.d.ts +136 -0
  86. package/lib/typescript/src/components/popover/index.d.ts.map +1 -0
  87. package/lib/typescript/src/components/progress/index.d.ts +33 -0
  88. package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
  89. package/lib/typescript/src/components/radio-group/index.d.ts +39 -0
  90. package/lib/typescript/src/components/radio-group/index.d.ts.map +1 -1
  91. package/lib/typescript/src/components/section-rail/index.d.ts +115 -0
  92. package/lib/typescript/src/components/section-rail/index.d.ts.map +1 -0
  93. package/lib/typescript/src/components/select/index.d.ts +46 -7
  94. package/lib/typescript/src/components/select/index.d.ts.map +1 -1
  95. package/lib/typescript/src/components/separator/index.d.ts +47 -0
  96. package/lib/typescript/src/components/separator/index.d.ts.map +1 -0
  97. package/lib/typescript/src/components/slider/index.d.ts +203 -0
  98. package/lib/typescript/src/components/slider/index.d.ts.map +1 -0
  99. package/lib/typescript/src/components/surface/index.d.ts +51 -2
  100. package/lib/typescript/src/components/surface/index.d.ts.map +1 -1
  101. package/lib/typescript/src/components/switch/index.d.ts.map +1 -1
  102. package/lib/typescript/src/components/tabs/index.d.ts +46 -4
  103. package/lib/typescript/src/components/tabs/index.d.ts.map +1 -1
  104. package/lib/typescript/src/components/toggle-button/index.d.ts +244 -0
  105. package/lib/typescript/src/components/toggle-button/index.d.ts.map +1 -0
  106. package/lib/typescript/src/hooks/index.d.ts +1 -0
  107. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  108. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts +10 -1
  109. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
  110. package/lib/typescript/src/hooks/use-scroll-sections.d.ts +31 -0
  111. package/lib/typescript/src/hooks/use-scroll-sections.d.ts.map +1 -0
  112. package/lib/typescript/src/icons/index.d.ts +6 -0
  113. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  114. package/lib/typescript/src/index.d.ts +13 -4
  115. package/lib/typescript/src/index.d.ts.map +1 -1
  116. package/lib/typescript/src/native/index.d.ts +16 -1
  117. package/lib/typescript/src/native/index.d.ts.map +1 -1
  118. package/lib/typescript/src/primitives/keyboard-avoider.d.ts +8 -1
  119. package/lib/typescript/src/primitives/keyboard-avoider.d.ts.map +1 -1
  120. package/lib/typescript/src/primitives/scrim.d.ts +21 -0
  121. package/lib/typescript/src/primitives/scrim.d.ts.map +1 -0
  122. package/lib/typescript/src/utils/haptics.d.ts +12 -0
  123. package/lib/typescript/src/utils/haptics.d.ts.map +1 -0
  124. package/package.json +9 -1
  125. package/src/components/attachment/index.tsx +279 -0
  126. package/src/components/bottom-sheet/index.tsx +58 -2
  127. package/src/components/button/index.tsx +26 -5
  128. package/src/components/dialog/index.tsx +10 -1
  129. package/src/components/empty-state/index.tsx +60 -14
  130. package/src/components/frame/index.tsx +175 -29
  131. package/src/components/input/index.tsx +122 -16
  132. package/src/components/line-chart/index.tsx +1224 -0
  133. package/src/components/marker/index.tsx +194 -0
  134. package/src/components/message/index.tsx +29 -5
  135. package/src/components/message-scroller/index.tsx +574 -0
  136. package/src/components/popover/index.tsx +624 -0
  137. package/src/components/progress/index.tsx +81 -1
  138. package/src/components/radio-group/index.tsx +156 -18
  139. package/src/components/section-rail/index.tsx +459 -0
  140. package/src/components/select/index.tsx +265 -52
  141. package/src/components/separator/index.tsx +97 -0
  142. package/src/components/slider/index.tsx +371 -0
  143. package/src/components/surface/index.tsx +29 -3
  144. package/src/components/switch/index.tsx +8 -1
  145. package/src/components/tabs/index.tsx +208 -28
  146. package/src/components/toggle-button/index.tsx +374 -0
  147. package/src/hooks/index.ts +5 -0
  148. package/src/hooks/use-keyboard-avoidance.ts +73 -7
  149. package/src/hooks/use-scroll-sections.ts +127 -0
  150. package/src/icons/index.tsx +48 -0
  151. package/src/index.ts +97 -6
  152. package/src/native/index.ts +13 -1
  153. package/src/primitives/keyboard-avoider.tsx +9 -1
  154. package/src/primitives/scrim.tsx +95 -0
  155. package/src/utils/haptics.ts +63 -0
  156. package/theme.css +64 -2
  157. package/lib/module/components/inline-select/index.js +0 -284
  158. package/lib/module/components/inline-select/index.js.map +0 -1
  159. package/lib/typescript/src/components/inline-select/index.d.ts +0 -48
  160. package/lib/typescript/src/components/inline-select/index.d.ts.map +0 -1
  161. package/src/components/inline-select/index.tsx +0 -332
@@ -8,25 +8,63 @@
8
8
  * is a pair of CSS pseudo-elements; React Native has none, so it is two
9
9
  * absolutely positioned siblings with static rotate transforms.
10
10
  */
11
- import { forwardRef } from 'react';
11
+ import { createContext, forwardRef, useContext } from 'react';
12
12
  import { View } from 'react-native';
13
13
  import { tv } from 'tailwind-variants';
14
14
  import { Text } from "../../primitives/text.js";
15
15
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
16
+ /** Sub-components read the size so the title, description and media scale with the root. */
17
+ const EmptyStateContext = /*#__PURE__*/createContext({
18
+ size: 'default'
19
+ });
16
20
  const emptyStateVariants = tv({
17
21
  slots: {
18
- root: 'w-full flex-1 items-center justify-center gap-6 px-6 py-12',
22
+ root: 'w-full items-center justify-center',
19
23
  header: 'w-full max-w-sm items-center gap-1',
20
- title: 'text-center text-xl font-semibold text-foreground',
21
- description: 'text-center text-sm text-muted-foreground',
24
+ title: 'text-center font-semibold text-foreground',
25
+ description: 'text-center text-muted-foreground',
22
26
  content: 'w-full max-w-sm items-center gap-3'
27
+ },
28
+ variants: {
29
+ variant: {
30
+ // Fills whatever space it is given — a whole screen, or a flex parent.
31
+ default: {
32
+ root: 'flex-1'
33
+ },
34
+ // A self-contained block that sits inside content rather than filling a
35
+ // screen: bordered, on the card fill, sized to its contents.
36
+ card: {
37
+ root: 'rounded-2xl border border-border bg-card'
38
+ }
39
+ },
40
+ size: {
41
+ sm: {
42
+ root: 'gap-4 px-4 py-8',
43
+ title: 'text-base',
44
+ description: 'text-sm'
45
+ },
46
+ default: {
47
+ root: 'gap-6 px-6 py-12',
48
+ title: 'text-xl',
49
+ description: 'text-sm'
50
+ },
51
+ lg: {
52
+ root: 'gap-6 px-6 py-16',
53
+ title: 'text-2xl',
54
+ description: 'text-base'
55
+ }
56
+ }
57
+ },
58
+ defaultVariants: {
59
+ variant: 'default',
60
+ size: 'default'
23
61
  }
24
62
  });
25
63
  const mediaVariants = tv({
26
64
  slots: {
27
65
  wrapper: 'items-center justify-center',
28
- card: 'h-9 w-9 shrink-0 items-center justify-center',
29
- ghost: 'absolute h-9 w-9 rounded-md border border-border bg-card'
66
+ card: 'shrink-0 items-center justify-center',
67
+ ghost: 'absolute rounded-md border border-border bg-card'
30
68
  },
31
69
  variants: {
32
70
  variant: {
@@ -37,25 +75,50 @@ const mediaVariants = tv({
37
75
  icon: {
38
76
  card: 'rounded-md border border-border bg-card'
39
77
  }
78
+ },
79
+ size: {
80
+ sm: {
81
+ card: 'h-8 w-8',
82
+ ghost: 'h-8 w-8'
83
+ },
84
+ default: {
85
+ card: 'h-9 w-9',
86
+ ghost: 'h-9 w-9'
87
+ },
88
+ lg: {
89
+ card: 'h-11 w-11',
90
+ ghost: 'h-11 w-11'
91
+ }
40
92
  }
41
93
  },
42
94
  defaultVariants: {
43
- variant: 'default'
95
+ variant: 'default',
96
+ size: 'default'
44
97
  }
45
98
  });
46
99
  const EmptyStateRoot = /*#__PURE__*/forwardRef(({
47
100
  className,
101
+ variant,
102
+ size = 'default',
48
103
  ...props
49
104
  }, ref) => {
50
105
  const {
51
106
  root
52
- } = emptyStateVariants();
53
- return /*#__PURE__*/_jsx(View, {
54
- ref: ref,
55
- className: root({
56
- className
57
- }),
58
- ...props
107
+ } = emptyStateVariants({
108
+ variant,
109
+ size
110
+ });
111
+ return /*#__PURE__*/_jsx(EmptyStateContext.Provider, {
112
+ value: {
113
+ size
114
+ },
115
+ children: /*#__PURE__*/_jsx(View, {
116
+ ref: ref,
117
+ className: root({
118
+ className
119
+ }),
120
+ ...props
121
+ })
59
122
  });
60
123
  });
61
124
  EmptyStateRoot.displayName = 'EmptyState';
@@ -87,12 +150,16 @@ const EmptyStateMedia = /*#__PURE__*/forwardRef(({
87
150
  children,
88
151
  ...props
89
152
  }, ref) => {
153
+ const {
154
+ size
155
+ } = useContext(EmptyStateContext);
90
156
  const {
91
157
  wrapper,
92
158
  card,
93
159
  ghost
94
160
  } = mediaVariants({
95
- variant
161
+ variant,
162
+ size
96
163
  });
97
164
  return /*#__PURE__*/_jsxs(View, {
98
165
  ref: ref,
@@ -121,9 +188,14 @@ const EmptyStateTitle = /*#__PURE__*/forwardRef(({
121
188
  className,
122
189
  ...props
123
190
  }, ref) => {
191
+ const {
192
+ size
193
+ } = useContext(EmptyStateContext);
124
194
  const {
125
195
  title
126
- } = emptyStateVariants();
196
+ } = emptyStateVariants({
197
+ size
198
+ });
127
199
  return /*#__PURE__*/_jsx(Text, {
128
200
  ref: ref,
129
201
  className: title({
@@ -137,9 +209,14 @@ const EmptyStateDescription = /*#__PURE__*/forwardRef(({
137
209
  className,
138
210
  ...props
139
211
  }, ref) => {
212
+ const {
213
+ size
214
+ } = useContext(EmptyStateContext);
140
215
  const {
141
216
  description
142
- } = emptyStateVariants();
217
+ } = emptyStateVariants({
218
+ size
219
+ });
143
220
  return /*#__PURE__*/_jsx(Text, {
144
221
  ref: ref,
145
222
  className: description({
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","View","tv","Text","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","emptyStateVariants","slots","root","header","title","description","content","mediaVariants","wrapper","card","ghost","variants","variant","default","icon","defaultVariants","EmptyStateRoot","className","props","ref","displayName","EmptyStateHeader","EmptyStateMedia","children","accessibilityElementsHidden","importantForAccessibility","EmptyStateTitle","EmptyStateDescription","EmptyStateContent","EmptyState","Object","assign","Header","Media","Title","Description","Content"],"sourceRoot":"../../../../src","sources":["components/empty-state/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","forwardRef","useContext","View","tv","Text","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","EmptyStateContext","size","emptyStateVariants","slots","root","header","title","description","content","variants","variant","default","card","sm","lg","defaultVariants","mediaVariants","wrapper","ghost","icon","EmptyStateRoot","className","props","ref","Provider","value","children","displayName","EmptyStateHeader","EmptyStateMedia","accessibilityElementsHidden","importantForAccessibility","EmptyStateTitle","EmptyStateDescription","EmptyStateContent","EmptyState","Object","assign","Header","Media","Title","Description","Content"],"sourceRoot":"../../../../src","sources":["components/empty-state/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa,EAAEC,UAAU,EAAEC,UAAU,QAAwB,OAAO;AAC7E,SAASC,IAAI,QAA6C,cAAc;AACxE,SAASC,EAAE,QAA2B,mBAAmB;AACzD,SAASC,IAAI,QAAwB,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAI7D;AACA,MAAMC,iBAAiB,gBAAGZ,aAAa,CAA2B;EAAEa,IAAI,EAAE;AAAU,CAAC,CAAC;AAEtF,MAAMC,kBAAkB,GAAGV,EAAE,CAAC;EAC5BW,KAAK,EAAE;IACLC,IAAI,EAAE,oCAAoC;IAC1CC,MAAM,EAAE,oCAAoC;IAC5CC,KAAK,EAAE,2CAA2C;IAClDC,WAAW,EAAE,mCAAmC;IAChDC,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRC,OAAO,EAAE;MACP;MACAC,OAAO,EAAE;QAAEP,IAAI,EAAE;MAAS,CAAC;MAC3B;MACA;MACAQ,IAAI,EAAE;QAAER,IAAI,EAAE;MAA2C;IAC3D,CAAC;IACDH,IAAI,EAAE;MACJY,EAAE,EAAE;QAAET,IAAI,EAAE,iBAAiB;QAAEE,KAAK,EAAE,WAAW;QAAEC,WAAW,EAAE;MAAU,CAAC;MAC3EI,OAAO,EAAE;QAAEP,IAAI,EAAE,kBAAkB;QAAEE,KAAK,EAAE,SAAS;QAAEC,WAAW,EAAE;MAAU,CAAC;MAC/EO,EAAE,EAAE;QAAEV,IAAI,EAAE,kBAAkB;QAAEE,KAAK,EAAE,UAAU;QAAEC,WAAW,EAAE;MAAY;IAC9E;EACF,CAAC;EACDQ,eAAe,EAAE;IACfL,OAAO,EAAE,SAAS;IAClBT,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,MAAMe,aAAa,GAAGxB,EAAE,CAAC;EACvBW,KAAK,EAAE;IACLc,OAAO,EAAE,6BAA6B;IACtCL,IAAI,EAAE,sCAAsC;IAC5CM,KAAK,EAAE;EACT,CAAC;EACDT,QAAQ,EAAE;IACRC,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,IAAI,EAAE,gBAAgB;QACtBM,KAAK,EAAE;MACT,CAAC;MACDC,IAAI,EAAE;QACJP,IAAI,EAAE;MACR;IACF,CAAC;IACDX,IAAI,EAAE;MACJY,EAAE,EAAE;QAAED,IAAI,EAAE,SAAS;QAAEM,KAAK,EAAE;MAAU,CAAC;MACzCP,OAAO,EAAE;QAAEC,IAAI,EAAE,SAAS;QAAEM,KAAK,EAAE;MAAU,CAAC;MAC9CJ,EAAE,EAAE;QAAEF,IAAI,EAAE,WAAW;QAAEM,KAAK,EAAE;MAAY;IAC9C;EACF,CAAC;EACDH,eAAe,EAAE;IACfL,OAAO,EAAE,SAAS;IAClBT,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAiBF,MAAMmB,cAAc,gBAAG/B,UAAU,CAC/B,CAAC;EAAEgC,SAAS;EAAEX,OAAO;EAAET,IAAI,GAAG,SAAS;EAAE,GAAGqB;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC3D,MAAM;IAAEnB;EAAK,CAAC,GAAGF,kBAAkB,CAAC;IAAEQ,OAAO;IAAET;EAAK,CAAC,CAAC;EACtD,oBACEN,IAAA,CAACK,iBAAiB,CAACwB,QAAQ;IAACC,KAAK,EAAE;MAAExB;IAAK,CAAE;IAAAyB,QAAA,eAC1C/B,IAAA,CAACJ,IAAI;MAACgC,GAAG,EAAEA,GAAI;MAACF,SAAS,EAAEjB,IAAI,CAAC;QAAEiB;MAAU,CAAC,CAAE;MAAA,GAAKC;IAAK,CAAG;EAAC,CACnC,CAAC;AAEjC,CACF,CAAC;AACDF,cAAc,CAACO,WAAW,GAAG,YAAY;;AAEzC;AACA,MAAMC,gBAAgB,gBAAGvC,UAAU,CACjC,CAAC;EAAEgC,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAChC,MAAM;IAAElB;EAAO,CAAC,GAAGH,kBAAkB,CAAC,CAAC;EACvC,oBAAOP,IAAA,CAACJ,IAAI;IAACgC,GAAG,EAAEA,GAAI;IAACF,SAAS,EAAEhB,MAAM,CAAC;MAAEgB;IAAU,CAAC,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AACxE,CACF,CAAC;AACDM,gBAAgB,CAACD,WAAW,GAAG,mBAAmB;AASlD;AACA;AACA;AACA;AACA,MAAME,eAAe,gBAAGxC,UAAU,CAChC,CAAC;EAAEgC,SAAS;EAAEX,OAAO,GAAG,SAAS;EAAEgB,QAAQ;EAAE,GAAGJ;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC/D,MAAM;IAAEtB;EAAK,CAAC,GAAGX,UAAU,CAACU,iBAAiB,CAAC;EAC9C,MAAM;IAAEiB,OAAO;IAAEL,IAAI;IAAEM;EAAM,CAAC,GAAGF,aAAa,CAAC;IAAEN,OAAO;IAAET;EAAK,CAAC,CAAC;EAEjE,oBACEF,KAAA,CAACR,IAAI;IAACgC,GAAG,EAAEA,GAAI;IAACF,SAAS,EAAEJ,OAAO,CAAC;MAAEI,SAAS,EAAE,QAAQA,SAAS,IAAI,EAAE;IAAG,CAAC,CAAE;IAAA,GAAKC,KAAK;IAAAI,QAAA,GACpFhB,OAAO,KAAK,MAAM,gBACjBX,KAAA,CAAAF,SAAA;MAAA6B,QAAA,gBACE/B,IAAA,CAACJ,IAAI;QACHuC,2BAA2B;QAC3BC,yBAAyB,EAAC,qBAAqB;QAC/CV,SAAS,EAAE,GAAGH,KAAK,CAAC,CAAC;MAA2C,CACjE,CAAC,eACFvB,IAAA,CAACJ,IAAI;QACHuC,2BAA2B;QAC3BC,yBAAyB,EAAC,qBAAqB;QAC/CV,SAAS,EAAE,GAAGH,KAAK,CAAC,CAAC;MAAyC,CAC/D,CAAC;IAAA,CACF,CAAC,GACD,IAAI,eACRvB,IAAA,CAACJ,IAAI;MAAC8B,SAAS,EAAET,IAAI,CAAC,CAAE;MAAAc,QAAA,EAAEA;IAAQ,CAAO,CAAC;EAAA,CACtC,CAAC;AAEX,CACF,CAAC;AACDG,eAAe,CAACF,WAAW,GAAG,kBAAkB;AAEhD,MAAMK,eAAe,gBAAG3C,UAAU,CAAoB,CAAC;EAAEgC,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACtF,MAAM;IAAEtB;EAAK,CAAC,GAAGX,UAAU,CAACU,iBAAiB,CAAC;EAC9C,MAAM;IAAEM;EAAM,CAAC,GAAGJ,kBAAkB,CAAC;IAAED;EAAK,CAAC,CAAC;EAC9C,oBAAON,IAAA,CAACF,IAAI;IAAC8B,GAAG,EAAEA,GAAI;IAACF,SAAS,EAAEf,KAAK,CAAC;MAAEe;IAAU,CAAC,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AACvE,CAAC,CAAC;AACFU,eAAe,CAACL,WAAW,GAAG,kBAAkB;AAEhD,MAAMM,qBAAqB,gBAAG5C,UAAU,CACtC,CAAC;EAAEgC,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAChC,MAAM;IAAEtB;EAAK,CAAC,GAAGX,UAAU,CAACU,iBAAiB,CAAC;EAC9C,MAAM;IAAEO;EAAY,CAAC,GAAGL,kBAAkB,CAAC;IAAED;EAAK,CAAC,CAAC;EACpD,oBAAON,IAAA,CAACF,IAAI;IAAC8B,GAAG,EAAEA,GAAI;IAACF,SAAS,EAAEd,WAAW,CAAC;MAAEc;IAAU,CAAC,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AAC7E,CACF,CAAC;AACDW,qBAAqB,CAACN,WAAW,GAAG,wBAAwB;;AAE5D;AACA,MAAMO,iBAAiB,gBAAG7C,UAAU,CAClC,CAAC;EAAEgC,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAChC,MAAM;IAAEf;EAAQ,CAAC,GAAGN,kBAAkB,CAAC,CAAC;EACxC,oBAAOP,IAAA,CAACJ,IAAI;IAACgC,GAAG,EAAEA,GAAI;IAACF,SAAS,EAAEb,OAAO,CAAC;MAAEa;IAAU,CAAC,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AACzE,CACF,CAAC;AACDY,iBAAiB,CAACP,WAAW,GAAG,oBAAoB;AAEpD,OAAO,MAAMQ,UAAU,GAAGC,MAAM,CAACC,MAAM,CAACjB,cAAc,EAAE;EACtDkB,MAAM,EAAEV,gBAAgB;EACxBW,KAAK,EAAEV,eAAe;EACtBW,KAAK,EAAER,eAAe;EACtBS,WAAW,EAAER,qBAAqB;EAClCS,OAAO,EAAER;AACX,CAAC,CAAC","ignoreList":[]}
@@ -17,23 +17,57 @@
17
17
  * </Frame.Header>
18
18
  * <Frame.Panel>
19
19
  * <Frame.Row>…</Frame.Row>
20
- * <Frame.Row divided>…</Frame.Row>
20
+ * <Frame.Row>…</Frame.Row>
21
21
  * </Frame.Panel>
22
22
  * <Frame.Footer>Updated 2 minutes ago</Frame.Footer>
23
23
  * </Frame>
24
24
  * ```
25
+ *
26
+ * The panel draws the hairlines between its own rows. React Native has no
27
+ * `:first-child`, so the alternative is every caller writing
28
+ * `divided={index > 0}` on every row and getting it wrong once.
25
29
  */
26
- import { forwardRef } from 'react';
27
- import { View } from 'react-native';
30
+ import { Children, cloneElement, forwardRef, isValidElement } from 'react';
31
+ import { Pressable, View } from 'react-native';
32
+ import { tv } from 'tailwind-variants';
33
+ import { ChevronRightIcon } from "../../icons/index.js";
28
34
  import { Text } from "../../primitives/text.js";
29
35
  import { cn } from "../../utils/cn.js";
30
- import { jsx as _jsx } from "react/jsx-runtime";
36
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
37
+ const frameVariants = tv({
38
+ slots: {
39
+ root: '',
40
+ panel: 'overflow-hidden rounded-xl border border-border bg-card'
41
+ },
42
+ variants: {
43
+ variant: {
44
+ default: {
45
+ root: 'rounded-2xl border border-border bg-surface p-1.5'
46
+ },
47
+ // No shell: the panel is the whole widget. For a Frame nested inside a
48
+ // card that already draws a border, where the shell's own edge sitting
49
+ // just inside it reads as a double line.
50
+ plain: {
51
+ root: '',
52
+ panel: 'rounded-2xl'
53
+ }
54
+ }
55
+ },
56
+ defaultVariants: {
57
+ variant: 'default'
58
+ }
59
+ });
31
60
  const FrameRoot = /*#__PURE__*/forwardRef(({
32
61
  className,
62
+ variant,
33
63
  ...props
34
64
  }, ref) => /*#__PURE__*/_jsx(View, {
35
65
  ref: ref,
36
- className: cn('rounded-2xl border border-border bg-surface p-1.5', className),
66
+ className: frameVariants({
67
+ variant
68
+ }).root({
69
+ className
70
+ }),
37
71
  ...props
38
72
  }));
39
73
  FrameRoot.displayName = 'Frame';
@@ -94,35 +128,113 @@ const FrameDescription = /*#__PURE__*/forwardRef(({
94
128
  }));
95
129
  FrameDescription.displayName = 'Frame.Description';
96
130
 
131
+ /**
132
+ * Marks the parts that take part in the panel's own divider bookkeeping —
133
+ * a Row draws a line above itself, a Section draws one above its heading.
134
+ * Anything else the panel is given is left alone.
135
+ */
136
+
137
+ /**
138
+ * Draws the hairline above every child but the first. An explicit `divided`
139
+ * on a child wins, so a row can still opt out or force one.
140
+ */
141
+ function divideChildren(children) {
142
+ let seen = 0;
143
+ return Children.map(children, child => {
144
+ if (! /*#__PURE__*/isValidElement(child)) return child;
145
+ if (!DIVIDABLE.has(child.type)) return child;
146
+ const index = seen++;
147
+ if (child.props.divided !== undefined) return child;
148
+ return /*#__PURE__*/cloneElement(child, {
149
+ divided: index > 0
150
+ });
151
+ });
152
+ }
97
153
  /**
98
154
  * The inset card holding the frame's content — the raised surface sitting in
99
155
  * from the shell's edges, with its own smaller radius.
100
156
  */
101
157
  const FramePanel = /*#__PURE__*/forwardRef(({
102
158
  className,
159
+ dividers = true,
160
+ children,
103
161
  ...props
104
162
  }, ref) => /*#__PURE__*/_jsx(View, {
105
163
  ref: ref,
106
- className: cn('overflow-hidden rounded-xl border border-border bg-card', className),
107
- ...props
164
+ className: frameVariants().panel({
165
+ className
166
+ }),
167
+ ...props,
168
+ children: dividers ? divideChildren(children) : children
108
169
  }));
109
170
  FramePanel.displayName = 'Frame.Panel';
110
-
111
171
  /**
112
- * A row inside a Frame.Panel. Pass `divided` on every row after the first to
113
- * draw a hairline separator above it (React Native has no :first-child).
172
+ * A row inside a Frame.Panel. Give it an `onPress` and it becomes a real
173
+ * pressable — press feedback, a button role — rather than a View with a
174
+ * handler bolted on.
114
175
  */
115
-
116
176
  const FrameRow = /*#__PURE__*/forwardRef(({
117
177
  className,
118
178
  divided,
179
+ chevron,
180
+ children,
181
+ onPress,
119
182
  ...props
120
- }, ref) => /*#__PURE__*/_jsx(View, {
121
- ref: ref,
122
- className: cn('flex-row items-center gap-3 px-4 py-3.5', divided && 'border-t border-border', className),
183
+ }, ref) => {
184
+ const classes = cn('flex-row items-center gap-3 px-4 py-3.5', divided && 'border-t border-border', onPress && 'active:bg-muted', className);
185
+ const body = /*#__PURE__*/_jsxs(_Fragment, {
186
+ children: [children, chevron ? /*#__PURE__*/_jsx(ChevronRightIcon, {
187
+ size: 16
188
+ }) : null]
189
+ });
190
+ if (!onPress) {
191
+ return /*#__PURE__*/_jsx(View, {
192
+ ref: ref,
193
+ className: classes,
194
+ ...props,
195
+ children: body
196
+ });
197
+ }
198
+ return /*#__PURE__*/_jsx(Pressable, {
199
+ ref: ref,
200
+ accessibilityRole: "button",
201
+ onPress: onPress,
202
+ className: classes,
203
+ ...props,
204
+ children: body
205
+ });
206
+ });
207
+ FrameRow.displayName = 'Frame.Row';
208
+ /**
209
+ * A labelled cluster of rows inside a Panel, for a widget holding more than
210
+ * one group. It divides its own rows the way the panel does, so the two nest
211
+ * without either having to know about the other.
212
+ */
213
+ const FrameSection = /*#__PURE__*/forwardRef(({
214
+ className,
215
+ title,
216
+ divided,
217
+ children,
123
218
  ...props
219
+ }, ref) => /*#__PURE__*/_jsxs(View, {
220
+ ref: ref,
221
+ className: cn(divided && 'border-t border-border', className),
222
+ ...props,
223
+ children: [title ? /*#__PURE__*/_jsx(View, {
224
+ className: "bg-muted/40 px-4 pb-1.5 pt-2.5",
225
+ children: typeof title === 'string' ? /*#__PURE__*/_jsx(Text, {
226
+ size: "xs",
227
+ weight: "medium",
228
+ muted: true,
229
+ className: "uppercase tracking-wider",
230
+ children: title
231
+ }) : title
232
+ }) : null, divideChildren(children)]
124
233
  }));
125
- FrameRow.displayName = 'Frame.Row';
234
+ FrameSection.displayName = 'Frame.Section';
235
+
236
+ /** Parts the panel divides. Declared after them, since it holds references. */
237
+ const DIVIDABLE = new Set([FrameRow, FrameSection]);
126
238
  /** Muted caption under the panel. Strings are wrapped for you. */
127
239
  const FrameFooter = /*#__PURE__*/forwardRef(({
128
240
  className,
@@ -145,6 +257,7 @@ export const Frame = Object.assign(FrameRoot, {
145
257
  Action: FrameAction,
146
258
  Description: FrameDescription,
147
259
  Panel: FramePanel,
260
+ Section: FrameSection,
148
261
  Row: FrameRow,
149
262
  Footer: FrameFooter
150
263
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","View","Text","cn","jsx","_jsx","FrameRoot","className","props","ref","displayName","FrameHeader","FrameTitle","size","weight","FrameAction","children","muted","FrameDescription","FramePanel","FrameRow","divided","FrameFooter","Frame","Object","assign","Header","Title","Action","Description","Panel","Row","Footer"],"sourceRoot":"../../../../src","sources":["components/frame/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Children","cloneElement","forwardRef","isValidElement","Pressable","View","tv","ChevronRightIcon","Text","cn","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","frameVariants","slots","root","panel","variants","variant","default","plain","defaultVariants","FrameRoot","className","props","ref","displayName","FrameHeader","FrameTitle","size","weight","FrameAction","children","muted","FrameDescription","divideChildren","seen","map","child","DIVIDABLE","has","type","index","divided","undefined","FramePanel","dividers","FrameRow","chevron","onPress","classes","body","accessibilityRole","FrameSection","title","Set","FrameFooter","Frame","Object","assign","Header","Title","Action","Description","Panel","Section","Row","Footer"],"sourceRoot":"../../../../src","sources":["components/frame/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,YAAY,EAAEC,UAAU,EAAEC,cAAc,QAAwB,OAAO;AAC1F,SACEC,SAAS,EACTC,IAAI,QAIC,cAAc;AACrB,SAASC,EAAE,QAAQ,mBAAmB;AACtC,SAASC,gBAAgB,QAAQ,sBAAa;AAC9C,SAASC,IAAI,QAAwB,0BAAuB;AAC5D,SAASC,EAAE,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpC,MAAMC,aAAa,GAAGV,EAAE,CAAC;EACvBW,KAAK,EAAE;IACLC,IAAI,EAAE,EAAE;IACRC,KAAK,EAAE;EACT,CAAC;EACDC,QAAQ,EAAE;IACRC,OAAO,EAAE;MACPC,OAAO,EAAE;QAAEJ,IAAI,EAAE;MAAoD,CAAC;MACtE;MACA;MACA;MACAK,KAAK,EAAE;QAAEL,IAAI,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAc;IAC1C;EACF,CAAC;EACDK,eAAe,EAAE;IACfH,OAAO,EAAE;EACX;AACF,CAAC,CAAC;AAgBF,MAAMI,SAAS,gBAAGvB,UAAU,CAC1B,CAAC;EAAEwB,SAAS;EAAEL,OAAO;EAAE,GAAGM;AAAM,CAAC,EAAEC,GAAG,kBACpCjB,IAAA,CAACN,IAAI;EAACuB,GAAG,EAAEA,GAAI;EAACF,SAAS,EAAEV,aAAa,CAAC;IAAEK;EAAQ,CAAC,CAAC,CAACH,IAAI,CAAC;IAAEQ;EAAU,CAAC,CAAE;EAAA,GAAKC;AAAK,CAAG,CAE3F,CAAC;AACDF,SAAS,CAACI,WAAW,GAAG,OAAO;AAM/B;AACA;AACA;AACA;AACA,MAAMC,WAAW,gBAAG5B,UAAU,CAC5B,CAAC;EAAEwB,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,kBAC3BjB,IAAA,CAACN,IAAI;EACHuB,GAAG,EAAEA,GAAI;EACTF,SAAS,EAAEjB,EAAE,CACX,8DAA8D,EAC9DiB,SACF,CAAE;EAAA,GACEC;AAAK,CACV,CAEL,CAAC;AACDG,WAAW,CAACD,WAAW,GAAG,cAAc;AAExC,MAAME,UAAU,gBAAG7B,UAAU,CAAoB,CAAC;EAAEwB,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,kBAC5EjB,IAAA,CAACH,IAAI;EACHoB,GAAG,EAAEA,GAAI;EACTI,IAAI,EAAC,MAAM;EACXC,MAAM,EAAC,QAAQ;EACfP,SAAS,EAAEjB,EAAE,CAAC,iBAAiB,EAAEiB,SAAS,CAAE;EAAA,GACxCC;AAAK,CACV,CACF,CAAC;AACFI,UAAU,CAACF,WAAW,GAAG,aAAa;AAMtC;AACA;AACA;AACA;AACA,MAAMK,WAAW,gBAAGhC,UAAU,CAC5B,CAAC;EAAEwB,SAAS;EAAES,QAAQ;EAAE,GAAGR;AAAM,CAAC,EAAEC,GAAG,kBACrCjB,IAAA,CAACN,IAAI;EAACuB,GAAG,EAAEA,GAAI;EAACF,SAAS,EAAEjB,EAAE,CAAC,6BAA6B,EAAEiB,SAAS,CAAE;EAAA,GAAKC,KAAK;EAAAQ,QAAA,EAC/E,OAAOA,QAAQ,KAAK,QAAQ,gBAC3BxB,IAAA,CAACH,IAAI;IAACwB,IAAI,EAAC,MAAM;IAACI,KAAK;IAAAD,QAAA,EACpBA;EAAQ,CACL,CAAC,GAEPA;AACD,CACG,CAEV,CAAC;AACDD,WAAW,CAACL,WAAW,GAAG,cAAc;;AAExC;AACA,MAAMQ,gBAAgB,gBAAGnC,UAAU,CACjC,CAAC;EAAEwB,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,kBAC3BjB,IAAA,CAACH,IAAI;EAACoB,GAAG,EAAEA,GAAI;EAACI,IAAI,EAAC,IAAI;EAACI,KAAK;EAACV,SAAS,EAAEA,SAAU;EAAA,GAAKC;AAAK,CAAG,CAEtE,CAAC;AACDU,gBAAgB,CAACR,WAAW,GAAG,mBAAmB;;AAElD;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,SAASS,cAAcA,CAACH,QAAmB,EAAE;EAC3C,IAAII,IAAI,GAAG,CAAC;EACZ,OAAOvC,QAAQ,CAACwC,GAAG,CAACL,QAAQ,EAAGM,KAAK,IAAK;IACvC,IAAI,eAACtC,cAAc,CAAYsC,KAAK,CAAC,EAAE,OAAOA,KAAK;IACnD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE,OAAOH,KAAK;IAE5C,MAAMI,KAAK,GAAGN,IAAI,EAAE;IACpB,IAAIE,KAAK,CAACd,KAAK,CAACmB,OAAO,KAAKC,SAAS,EAAE,OAAON,KAAK;IACnD,oBAAOxC,YAAY,CAACwC,KAAK,EAAE;MAAEK,OAAO,EAAED,KAAK,GAAG;IAAE,CAAC,CAAC;EACpD,CAAC,CAAC;AACJ;AAWA;AACA;AACA;AACA;AACA,MAAMG,UAAU,gBAAG9C,UAAU,CAC3B,CAAC;EAAEwB,SAAS;EAAEuB,QAAQ,GAAG,IAAI;EAAEd,QAAQ;EAAE,GAAGR;AAAM,CAAC,EAAEC,GAAG,kBACtDjB,IAAA,CAACN,IAAI;EAACuB,GAAG,EAAEA,GAAI;EAACF,SAAS,EAAEV,aAAa,CAAC,CAAC,CAACG,KAAK,CAAC;IAAEO;EAAU,CAAC,CAAE;EAAA,GAAKC,KAAK;EAAAQ,QAAA,EACvEc,QAAQ,GAAGX,cAAc,CAACH,QAAQ,CAAC,GAAGA;AAAQ,CAC3C,CAEV,CAAC;AACDa,UAAU,CAACnB,WAAW,GAAG,aAAa;AActC;AACA;AACA;AACA;AACA;AACA,MAAMqB,QAAQ,gBAAGhD,UAAU,CACzB,CAAC;EAAEwB,SAAS;EAAEoB,OAAO;EAAEK,OAAO;EAAEhB,QAAQ;EAAEiB,OAAO;EAAE,GAAGzB;AAAM,CAAC,EAAEC,GAAG,KAAK;EACrE,MAAMyB,OAAO,GAAG5C,EAAE,CAChB,yCAAyC,EACzCqC,OAAO,IAAI,wBAAwB,EACnCM,OAAO,IAAI,iBAAiB,EAC5B1B,SACF,CAAC;EAED,MAAM4B,IAAI,gBACRvC,KAAA,CAAAF,SAAA;IAAAsB,QAAA,GACGA,QAAQ,EACRgB,OAAO,gBAAGxC,IAAA,CAACJ,gBAAgB;MAACyB,IAAI,EAAE;IAAG,CAAE,CAAC,GAAG,IAAI;EAAA,CAChD,CACH;EAED,IAAI,CAACoB,OAAO,EAAE;IACZ,oBACEzC,IAAA,CAACN,IAAI;MAACuB,GAAG,EAAEA,GAAI;MAACF,SAAS,EAAE2B,OAAQ;MAAA,GAAM1B,KAAK;MAAAQ,QAAA,EAC3CmB;IAAI,CACD,CAAC;EAEX;EAEA,oBACE3C,IAAA,CAACP,SAAS;IACRwB,GAAG,EAAEA,GAAI;IACT2B,iBAAiB,EAAC,QAAQ;IAC1BH,OAAO,EAAEA,OAAQ;IACjB1B,SAAS,EAAE2B,OAAQ;IAAA,GACf1B,KAAK;IAAAQ,QAAA,EAERmB;EAAI,CACI,CAAC;AAEhB,CACF,CAAC;AACDJ,QAAQ,CAACrB,WAAW,GAAG,WAAW;AASlC;AACA;AACA;AACA;AACA;AACA,MAAM2B,YAAY,gBAAGtD,UAAU,CAC7B,CAAC;EAAEwB,SAAS;EAAE+B,KAAK;EAAEX,OAAO;EAAEX,QAAQ;EAAE,GAAGR;AAAM,CAAC,EAAEC,GAAG,kBACrDb,KAAA,CAACV,IAAI;EACHuB,GAAG,EAAEA,GAAI;EACTF,SAAS,EAAEjB,EAAE,CAACqC,OAAO,IAAI,wBAAwB,EAAEpB,SAAS,CAAE;EAAA,GAC1DC,KAAK;EAAAQ,QAAA,GAERsB,KAAK,gBACJ9C,IAAA,CAACN,IAAI;IAACqB,SAAS,EAAC,gCAAgC;IAAAS,QAAA,EAC7C,OAAOsB,KAAK,KAAK,QAAQ,gBACxB9C,IAAA,CAACH,IAAI;MAACwB,IAAI,EAAC,IAAI;MAACC,MAAM,EAAC,QAAQ;MAACG,KAAK;MAACV,SAAS,EAAC,0BAA0B;MAAAS,QAAA,EACvEsB;IAAK,CACF,CAAC,GAEPA;EACD,CACG,CAAC,GACL,IAAI,EACPnB,cAAc,CAACH,QAAQ,CAAC;AAAA,CACrB,CAEV,CAAC;AACDqB,YAAY,CAAC3B,WAAW,GAAG,eAAe;;AAE1C;AACA,MAAMa,SAAS,GAAG,IAAIgB,GAAG,CAAU,CAACR,QAAQ,EAAEM,YAAY,CAAC,CAAC;AAM5D;AACA,MAAMG,WAAW,gBAAGzD,UAAU,CAC5B,CAAC;EAAEwB,SAAS;EAAES,QAAQ;EAAE,GAAGR;AAAM,CAAC,EAAEC,GAAG,kBACrCjB,IAAA,CAACN,IAAI;EACHuB,GAAG,EAAEA,GAAI;EACTF,SAAS,EAAEjB,EAAE,CAAC,gDAAgD,EAAEiB,SAAS,CAAE;EAAA,GACvEC,KAAK;EAAAQ,QAAA,EAER,OAAOA,QAAQ,KAAK,QAAQ,gBAC3BxB,IAAA,CAACH,IAAI;IAACwB,IAAI,EAAC,IAAI;IAACI,KAAK;IAAAD,QAAA,EAClBA;EAAQ,CACL,CAAC,GAEPA;AACD,CACG,CAEV,CAAC;AACDwB,WAAW,CAAC9B,WAAW,GAAG,cAAc;AAExC,OAAO,MAAM+B,KAAK,GAAGC,MAAM,CAACC,MAAM,CAACrC,SAAS,EAAE;EAC5CsC,MAAM,EAAEjC,WAAW;EACnBkC,KAAK,EAAEjC,UAAU;EACjBkC,MAAM,EAAE/B,WAAW;EACnBgC,WAAW,EAAE7B,gBAAgB;EAC7B8B,KAAK,EAAEnB,UAAU;EACjBoB,OAAO,EAAEZ,YAAY;EACrBa,GAAG,EAAEnB,QAAQ;EACboB,MAAM,EAAEX;AACV,CAAC,CAAC","ignoreList":[]}
@@ -1,29 +1,72 @@
1
1
  "use strict";
2
2
 
3
- import { forwardRef, useCallback, useState } from 'react';
3
+ /**
4
+ * Input — a text field with a label, a description and an error line.
5
+ *
6
+ * The field's focus state is animated rather than switched. A border that
7
+ * snaps between two colours reads as a redraw; one that crosses over in
8
+ * 150ms reads as the field responding to you. The interpolation runs on the
9
+ * UI thread, so it costs nothing and keeps up with a fast tab through a form.
10
+ *
11
+ * Two backgrounds, because a field's job changes with what surrounds it:
12
+ * `outline` sits on the page and draws its own edge; `filled` sits inside a
13
+ * card or a sheet, where a second border next to the container's own reads as
14
+ * a seam.
15
+ *
16
+ * ```tsx
17
+ * <Input label="Email" placeholder="you@example.com" />
18
+ * <Input variant="filled" size="lg" label="Name" isRequired />
19
+ * ```
20
+ *
21
+ * For a field with an icon or a button attached, reach for `InputGroup` — it
22
+ * measures its decorators and pads this field around them.
23
+ */
24
+ import { forwardRef, useCallback, useEffect, useState } from 'react';
4
25
  import { TextInput, View } from 'react-native';
26
+ import Animated, { interpolateColor, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
5
27
  import { tv } from 'tailwind-variants';
6
28
  import { useCSSVariable } from 'uniwind';
7
29
  import { KeyboardAvoider } from "../../primitives/keyboard-avoider.js";
8
30
  import { Text } from "../../primitives/text.js";
31
+ import { Label } from "../label/index.js";
32
+
33
+ /** Long enough to read as a transition, short enough not to lag a fast tab. */
9
34
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
35
+ const FOCUS_DURATION = 150;
10
36
  const inputVariants = tv({
11
37
  slots: {
12
38
  container: 'w-full gap-1.5',
13
- field: 'h-11 w-full rounded-lg border border-input bg-background px-3 text-base text-foreground',
14
- label: 'text-sm font-medium text-foreground',
39
+ field: 'w-full rounded-lg border text-foreground',
15
40
  description: 'text-sm text-muted-foreground',
16
41
  error: 'text-sm text-destructive'
17
42
  },
18
43
  variants: {
19
- focused: {
20
- true: {
21
- field: 'border-ring'
44
+ variant: {
45
+ // The border colour is animated, so it is deliberately not set here —
46
+ // only the background and the resting border width belong to the class.
47
+ outline: {
48
+ field: 'bg-background'
49
+ },
50
+ filled: {
51
+ field: 'bg-muted'
52
+ }
53
+ },
54
+ size: {
55
+ sm: {
56
+ field: 'h-10 px-3 text-sm'
57
+ },
58
+ md: {
59
+ field: 'h-12 px-3.5 text-base'
60
+ },
61
+ lg: {
62
+ field: 'h-14 px-4 text-base'
22
63
  }
23
64
  },
24
- invalid: {
65
+ multiline: {
66
+ // A multiline field grows, so a fixed height would crop it. Text starts
67
+ // at the top rather than floating in the middle of an empty box.
25
68
  true: {
26
- field: 'border-destructive/40'
69
+ field: 'h-auto min-h-24 py-3'
27
70
  }
28
71
  },
29
72
  disabled: {
@@ -31,28 +74,63 @@ const inputVariants = tv({
31
74
  field: 'opacity-[0.64]'
32
75
  }
33
76
  }
77
+ },
78
+ defaultVariants: {
79
+ variant: 'outline',
80
+ size: 'md'
34
81
  }
35
82
  });
83
+ const AnimatedTextInput = Animated.createAnimatedComponent(TextInput);
36
84
  export const Input = /*#__PURE__*/forwardRef(({
37
85
  className,
38
86
  containerClassName,
39
87
  label,
40
88
  description,
41
89
  errorMessage,
90
+ isRequired,
42
91
  disabled,
92
+ variant,
93
+ size,
43
94
  avoidKeyboard = false,
44
95
  keyboardOffset = 16,
45
96
  onFocus,
46
97
  onBlur,
98
+ style,
47
99
  ...props
48
100
  }, ref) => {
49
101
  const [focused, setFocused] = useState(false);
102
+ const invalid = !!errorMessage;
50
103
  const placeholderColor = useCSSVariable('--color-muted-foreground');
104
+ const restColor = useCSSVariable('--color-input');
105
+ const focusColor = useCSSVariable('--color-ring');
106
+ const errorColor = useCSSVariable('--color-destructive');
51
107
  const slots = inputVariants({
52
- focused,
53
- invalid: !!errorMessage,
108
+ variant,
109
+ size,
110
+ multiline: !!props.multiline,
54
111
  disabled: !!disabled
55
112
  });
113
+
114
+ /*
115
+ * Border colour is driven by one 0..1 value rather than by a class per
116
+ * state. Uniwind can only swap a class wholesale, which is the snap this
117
+ * is here to avoid, and a shared value crosses between the two colours on
118
+ * the UI thread without a re-render.
119
+ */
120
+ const focus = useSharedValue(0);
121
+ useEffect(() => {
122
+ focus.value = withTiming(focused ? 1 : 0, {
123
+ duration: FOCUS_DURATION
124
+ });
125
+ }, [focused, focus]);
126
+ const resting = typeof restColor === 'string' ? restColor : '#e5e5e5';
127
+ const active = invalid ? typeof errorColor === 'string' ? errorColor : '#ef4444' : typeof focusColor === 'string' ? focusColor : '#a3a3a3';
128
+ // An invalid field is tinted even at rest — the error is a fact about the
129
+ // value, not about whether the field happens to be focused.
130
+ const idle = invalid ? active : resting;
131
+ const borderStyle = useAnimatedStyle(() => ({
132
+ borderColor: interpolateColor(focus.value, [0, 1], [idle, active])
133
+ }));
56
134
  const handleFocus = useCallback(event => {
57
135
  setFocused(true);
58
136
  onFocus?.(event);
@@ -62,10 +140,12 @@ export const Input = /*#__PURE__*/forwardRef(({
62
140
  onBlur?.(event);
63
141
  }, [onBlur]);
64
142
  const body = /*#__PURE__*/_jsxs(_Fragment, {
65
- children: [label ? /*#__PURE__*/_jsx(Text, {
66
- className: slots.label(),
143
+ children: [label ? /*#__PURE__*/_jsx(Label, {
144
+ isRequired: isRequired,
145
+ isInvalid: invalid,
146
+ isDisabled: !!disabled,
67
147
  children: label
68
- }) : null, /*#__PURE__*/_jsx(TextInput, {
148
+ }) : null, /*#__PURE__*/_jsx(AnimatedTextInput, {
69
149
  ref: ref,
70
150
  editable: !disabled,
71
151
  onFocus: handleFocus,
@@ -74,9 +154,15 @@ export const Input = /*#__PURE__*/forwardRef(({
74
154
  accessibilityState: {
75
155
  disabled: !!disabled
76
156
  },
157
+ "aria-required": isRequired,
158
+ "aria-invalid": invalid,
77
159
  className: slots.field({
78
160
  className
79
- }),
161
+ })
162
+ // Caller styles come last so InputGroup can pad the field around its
163
+ // decorators, but never last enough to drop the animated border.
164
+ ,
165
+ style: [borderStyle, style],
80
166
  placeholderTextColor: typeof placeholderColor === 'string' ? placeholderColor : undefined,
81
167
  ...props
82
168
  }), errorMessage ? /*#__PURE__*/_jsx(Text, {
@@ -100,7 +186,13 @@ export const Input = /*#__PURE__*/forwardRef(({
100
186
  * that to every other screen.
101
187
  */
102
188
  if (avoidKeyboard) {
103
- return /*#__PURE__*/_jsx(KeyboardAvoider, {
189
+ return /*#__PURE__*/_jsx(KeyboardAvoider
190
+ // Only while *this* field is the one being typed into. Without it
191
+ // every avoiding field on the screen lifts the moment any field
192
+ // anywhere is tapped, and since they all aim at the same gap above
193
+ // the keyboard, they arrive stacked on top of one another.
194
+ , {
195
+ active: focused,
104
196
  offset: keyboardOffset,
105
197
  className: containerClasses,
106
198
  children: body
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useCallback","useState","TextInput","View","tv","useCSSVariable","KeyboardAvoider","Text","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","inputVariants","slots","container","field","label","description","error","variants","focused","true","invalid","disabled","Input","className","containerClassName","errorMessage","avoidKeyboard","keyboardOffset","onFocus","onBlur","props","ref","setFocused","placeholderColor","handleFocus","event","handleBlur","body","children","editable","accessibilityLabel","accessibilityState","placeholderTextColor","undefined","containerClasses","offset","displayName"],"sourceRoot":"../../../../src","sources":["components/input/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useCallback","useEffect","useState","TextInput","View","Animated","interpolateColor","useAnimatedStyle","useSharedValue","withTiming","tv","useCSSVariable","KeyboardAvoider","Text","Label","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","FOCUS_DURATION","inputVariants","slots","container","field","description","error","variants","variant","outline","filled","size","sm","md","lg","multiline","true","disabled","defaultVariants","AnimatedTextInput","createAnimatedComponent","Input","className","containerClassName","label","errorMessage","isRequired","avoidKeyboard","keyboardOffset","onFocus","onBlur","style","props","ref","focused","setFocused","invalid","placeholderColor","restColor","focusColor","errorColor","focus","value","duration","resting","active","idle","borderStyle","borderColor","handleFocus","event","handleBlur","body","children","isInvalid","isDisabled","editable","accessibilityLabel","accessibilityState","placeholderTextColor","undefined","containerClasses","offset","displayName"],"sourceRoot":"../../../../src","sources":["components/input/index.tsx"],"mappings":"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","ignoreList":[]}