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
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Attachment — a file, with its upload life.
3
+ *
4
+ * A file in a chat composer or an upload list is the same row shape `Item`
5
+ * already draws — media, a name, a size, a remove button — so this is that row,
6
+ * not a second one. What it adds is the part `Item` has no opinion on: the
7
+ * file's *state*. A file is picked, then uploading, then processing, then done
8
+ * (or failed), and each of those has to look different or the user cannot tell
9
+ * a stuck upload from a finished one.
10
+ *
11
+ * ```tsx
12
+ * <Attachment state="uploading">
13
+ * <Attachment.Media><FileIcon /></Attachment.Media>
14
+ * <Attachment.Content>
15
+ * <Attachment.Title>report.pdf</Attachment.Title>
16
+ * <Attachment.Description>PDF · 2.4 MB</Attachment.Description>
17
+ * </Attachment.Content>
18
+ * <Attachment.Actions>
19
+ * <Attachment.Action aria-label="Cancel"><XIcon size={14} /></Attachment.Action>
20
+ * </Attachment.Actions>
21
+ * </Attachment>
22
+ * ```
23
+ *
24
+ * While uploading or processing the title shimmers — the same sweep the rest of
25
+ * the library uses for "in progress" — and an optional bar tracks `progress`.
26
+ * A failed file tints its name and description in the destructive colour, which
27
+ * carries the state without relying on an icon nobody reads.
28
+ */
29
+ import { type ReactNode } from 'react';
30
+ import { View, type ViewProps } from 'react-native';
31
+ import { type AnimatedPressableProps } from '../../primitives/animated-pressable.js';
32
+ import { type TextProps } from '../../primitives/text.js';
33
+ export type AttachmentState = 'idle' | 'uploading' | 'processing' | 'error' | 'done';
34
+ type AttachmentSize = 'default' | 'sm' | 'xs';
35
+ export interface AttachmentProps extends Omit<AnimatedPressableProps, 'children' | 'disabled'> {
36
+ className?: string;
37
+ /**
38
+ * Where the file is in its life. `uploading`/`processing` shimmer the name;
39
+ * `error` tints the row destructive. Default `done`.
40
+ */
41
+ state?: AttachmentState;
42
+ /** Row density, passed through to the underlying Item. */
43
+ size?: AttachmentSize;
44
+ /** Stack the row into a card — for a horizontal group of thumbnails. */
45
+ orientation?: 'horizontal' | 'vertical';
46
+ /** Upload progress 0–1. Draws a thin bar along the bottom while busy. */
47
+ progress?: number;
48
+ disabled?: boolean;
49
+ children?: ReactNode;
50
+ }
51
+ export interface AttachmentGroupProps extends ViewProps {
52
+ className?: string;
53
+ orientation?: 'horizontal' | 'vertical';
54
+ children?: ReactNode;
55
+ }
56
+ export interface AttachmentMediaProps extends ViewProps {
57
+ className?: string;
58
+ /** `icon` frames it in a tile; `image` clips it for a thumbnail. */
59
+ variant?: 'default' | 'icon' | 'image';
60
+ children?: ReactNode;
61
+ }
62
+ export interface AttachmentContentProps extends ViewProps {
63
+ className?: string;
64
+ children?: ReactNode;
65
+ }
66
+ export interface AttachmentTitleProps extends TextProps {
67
+ className?: string;
68
+ children?: ReactNode;
69
+ }
70
+ export interface AttachmentDescriptionProps extends TextProps {
71
+ className?: string;
72
+ children?: ReactNode;
73
+ }
74
+ export interface AttachmentActionsProps extends ViewProps {
75
+ className?: string;
76
+ children?: ReactNode;
77
+ }
78
+ export interface AttachmentActionProps extends Omit<AnimatedPressableProps, 'children'> {
79
+ className?: string;
80
+ accessibilityLabel: string;
81
+ children?: ReactNode;
82
+ }
83
+ export declare const Attachment: import("react").ForwardRefExoticComponent<AttachmentProps & import("react").RefAttributes<View>> & {
84
+ Group: import("react").ForwardRefExoticComponent<AttachmentGroupProps & import("react").RefAttributes<View>>;
85
+ Media: import("react").ForwardRefExoticComponent<AttachmentMediaProps & import("react").RefAttributes<View>>;
86
+ Content: import("react").ForwardRefExoticComponent<AttachmentContentProps & import("react").RefAttributes<View>>;
87
+ Title: import("react").ForwardRefExoticComponent<AttachmentTitleProps & import("react").RefAttributes<import("react-native").Text>>;
88
+ Description: import("react").ForwardRefExoticComponent<AttachmentDescriptionProps & import("react").RefAttributes<import("react-native").Text>>;
89
+ Actions: import("react").ForwardRefExoticComponent<AttachmentActionsProps & import("react").RefAttributes<View>>;
90
+ Action: import("react").ForwardRefExoticComponent<AttachmentActionProps & import("react").RefAttributes<View>>;
91
+ };
92
+ export {};
93
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/attachment/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,wCAAqC,CAAC;AACrG,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAK7D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AACrF,KAAK,cAAc,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AA+B9C,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,wEAAwE;IACxE,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAyCD,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAYD,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAYD,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAWD,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAyBD,MAAM,WAAW,0BAA2B,SAAQ,SAAS;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAqBD,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAWD,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAyBD,eAAO,MAAM,UAAU;;;;;;;;CAQrB,CAAC"}
@@ -39,9 +39,14 @@ export interface BottomSheetContentProps extends ViewProps {
39
39
  className?: string;
40
40
  /** Tap on the backdrop closes the sheet. Default true. */
41
41
  dismissible?: boolean;
42
+ /**
43
+ * Show a close button in the top-right corner. On by default for the styled
44
+ * sheet; ignored by the native sheet, which has its own dismiss affordances.
45
+ */
46
+ showClose?: boolean;
42
47
  children?: ReactNode;
43
48
  }
44
- declare function BottomSheetContent({ className, dismissible, children, ...props }: BottomSheetContentProps): import("react").JSX.Element | null;
49
+ declare function BottomSheetContent({ className, dismissible, showClose, children, ...props }: BottomSheetContentProps): import("react").JSX.Element | null;
45
50
  export declare const BottomSheet: typeof BottomSheetRoot & {
46
51
  Trigger: typeof BottomSheetTrigger;
47
52
  Content: typeof BottomSheetContent;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/bottom-sheet/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAqCpF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;CAC9E;AAWD,iBAAS,eAAe,CAAC,EACvB,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAmB,EACnB,MAAM,EACN,UAAU,GACX,EAAE,gBAAgB,+BA+BlB;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,YAAY,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,iBAAS,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB;cAH5B,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;wDAahE;AAED,MAAM,WAAW,uBAAwB,SAAQ,SAAS;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,WAAkB,EAClB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,uBAAuB,sCAqHzB;AAED,eAAO,MAAM,WAAW;;;CAGtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/bottom-sheet/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAuCpF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;CAC9E;AA4CD,iBAAS,eAAe,CAAC,EACvB,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAmB,EACnB,MAAM,EACN,UAAU,GACX,EAAE,gBAAgB,+BA+BlB;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,YAAY,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,iBAAS,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB;cAH5B,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;wDAahE;AAED,MAAM,WAAW,uBAAwB,SAAQ,SAAS;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,WAAkB,EAClB,SAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,uBAAuB,sCAoIzB;AAED,eAAO,MAAM,WAAW;;;CAGtB,CAAC"}
@@ -215,10 +215,15 @@ export interface ButtonProps extends Omit<AnimatedPressableProps, 'children' | '
215
215
  * optional `@expo/ui` package; without it this prop does nothing.
216
216
  *
217
217
  * **Theme tokens do not apply** — the platform draws the button, so
218
- * `className`, `size`, `fullWidth`, `startContent`, `endContent` and
219
- * `loading` are all ignored. `variant` maps onto the nearest platform
220
- * style: `primary`/`destructive` → filled, `outline` → outlined, everything
221
- * else → text.
218
+ * `className`, `fullWidth`, `startContent`, `endContent` and `loading` are
219
+ * all ignored. `variant` maps onto the nearest platform style:
220
+ * `primary`/`destructive` → filled, `outline` → outlined, everything else
221
+ * → text; `size` sets the height.
222
+ *
223
+ * A native button **fills the width it is given**, because the host is told
224
+ * its size rather than left to measure the platform's content — which is
225
+ * what made it collapse and then jump on first press. Put it in a row to
226
+ * share the width, or in a narrower parent to shrink it.
222
227
  */
223
228
  native?: boolean;
224
229
  }
@@ -1 +1 @@
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;AAM7C,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;IACxB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAeD,eAAO,MAAM,MAAM,8FA4FlB,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;AAM7C,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;IACxB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA+BD,eAAO,MAAM,MAAM,8FA4FlB,CAAC"}
@@ -23,9 +23,15 @@ export interface DialogContentProps extends ViewProps {
23
23
  className?: string;
24
24
  /** Tap on the backdrop closes the dialog. Default true. */
25
25
  dismissible?: boolean;
26
+ /**
27
+ * Frost the screen behind the dialog instead of dimming it. Uses `expo-blur`
28
+ * when installed and falls back to the dim when it is not, so it is safe to
29
+ * pass either way.
30
+ */
31
+ blur?: boolean;
26
32
  children?: ReactNode;
27
33
  }
28
- declare function DialogContent({ className, dismissible, children, ...props }: DialogContentProps): import("react").JSX.Element | null;
34
+ declare function DialogContent({ className, dismissible, blur, children, ...props }: DialogContentProps): import("react").JSX.Element | null;
29
35
  declare function DialogFooter({ className, ...props }: ViewProps & {
30
36
  className?: string;
31
37
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialog/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAkB7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,WAAmB,EAAE,EAAE,WAAW,+BAmBrF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,YAAY,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,qDAAqD;AACrD,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB;cAJlB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;wDAchE;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,WAAkB,EAClB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,sCAqCpB;AAsBD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAOhF;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,YAAY,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,sDAAsD;AACtD,iBAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB;cAJd,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;wDAchE;AAED,eAAO,MAAM,MAAM;;;;;;;CAOjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialog/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAkB7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,WAAmB,EAAE,EAAE,WAAW,+BAmBrF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,YAAY,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,qDAAqD;AACrD,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB;cAJlB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;wDAchE;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,WAAkB,EAClB,IAAY,EACZ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,sCAsCpB;AAsBD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAOhF;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,YAAY,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,sDAAsD;AACtD,iBAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB;cAJd,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;wDAchE;AAED,eAAO,MAAM,MAAM;;;;;;;CAOjB,CAAC"}
@@ -10,6 +10,104 @@ import { type ReactNode } from 'react';
10
10
  import { View, type Text as RNText, type ViewProps } from 'react-native';
11
11
  import { type VariantProps } from 'tailwind-variants';
12
12
  import { type TextProps } from '../../primitives/text.js';
13
+ type EmptyStateSize = 'sm' | 'default' | 'lg';
14
+ declare const emptyStateVariants: import("tailwind-variants").TVReturnType<{
15
+ variant: {
16
+ default: {
17
+ root: string;
18
+ };
19
+ card: {
20
+ root: string;
21
+ };
22
+ };
23
+ size: {
24
+ sm: {
25
+ root: string;
26
+ title: string;
27
+ description: string;
28
+ };
29
+ default: {
30
+ root: string;
31
+ title: string;
32
+ description: string;
33
+ };
34
+ lg: {
35
+ root: string;
36
+ title: string;
37
+ description: string;
38
+ };
39
+ };
40
+ }, {
41
+ root: string;
42
+ header: string;
43
+ title: string;
44
+ description: string;
45
+ content: string;
46
+ }, undefined, {
47
+ variant: {
48
+ default: {
49
+ root: string;
50
+ };
51
+ card: {
52
+ root: string;
53
+ };
54
+ };
55
+ size: {
56
+ sm: {
57
+ root: string;
58
+ title: string;
59
+ description: string;
60
+ };
61
+ default: {
62
+ root: string;
63
+ title: string;
64
+ description: string;
65
+ };
66
+ lg: {
67
+ root: string;
68
+ title: string;
69
+ description: string;
70
+ };
71
+ };
72
+ }, {
73
+ root: string;
74
+ header: string;
75
+ title: string;
76
+ description: string;
77
+ content: string;
78
+ }, import("tailwind-variants").TVReturnType<{
79
+ variant: {
80
+ default: {
81
+ root: string;
82
+ };
83
+ card: {
84
+ root: string;
85
+ };
86
+ };
87
+ size: {
88
+ sm: {
89
+ root: string;
90
+ title: string;
91
+ description: string;
92
+ };
93
+ default: {
94
+ root: string;
95
+ title: string;
96
+ description: string;
97
+ };
98
+ lg: {
99
+ root: string;
100
+ title: string;
101
+ description: string;
102
+ };
103
+ };
104
+ }, {
105
+ root: string;
106
+ header: string;
107
+ title: string;
108
+ description: string;
109
+ content: string;
110
+ }, undefined, unknown, unknown, undefined>>;
13
111
  declare const mediaVariants: import("tailwind-variants").TVReturnType<{
14
112
  variant: {
15
113
  default: {
@@ -20,6 +118,20 @@ declare const mediaVariants: import("tailwind-variants").TVReturnType<{
20
118
  card: string;
21
119
  };
22
120
  };
121
+ size: {
122
+ sm: {
123
+ card: string;
124
+ ghost: string;
125
+ };
126
+ default: {
127
+ card: string;
128
+ ghost: string;
129
+ };
130
+ lg: {
131
+ card: string;
132
+ ghost: string;
133
+ };
134
+ };
23
135
  }, {
24
136
  wrapper: string;
25
137
  card: string;
@@ -34,6 +146,20 @@ declare const mediaVariants: import("tailwind-variants").TVReturnType<{
34
146
  card: string;
35
147
  };
36
148
  };
149
+ size: {
150
+ sm: {
151
+ card: string;
152
+ ghost: string;
153
+ };
154
+ default: {
155
+ card: string;
156
+ ghost: string;
157
+ };
158
+ lg: {
159
+ card: string;
160
+ ghost: string;
161
+ };
162
+ };
37
163
  }, {
38
164
  wrapper: string;
39
165
  card: string;
@@ -48,13 +174,35 @@ declare const mediaVariants: import("tailwind-variants").TVReturnType<{
48
174
  card: string;
49
175
  };
50
176
  };
177
+ size: {
178
+ sm: {
179
+ card: string;
180
+ ghost: string;
181
+ };
182
+ default: {
183
+ card: string;
184
+ ghost: string;
185
+ };
186
+ lg: {
187
+ card: string;
188
+ ghost: string;
189
+ };
190
+ };
51
191
  }, {
52
192
  wrapper: string;
53
193
  card: string;
54
194
  ghost: string;
55
195
  }, undefined, unknown, unknown, undefined>>;
56
- export interface EmptyStateProps extends ViewProps {
196
+ export interface EmptyStateProps extends ViewProps, VariantProps<typeof emptyStateVariants> {
57
197
  className?: string;
198
+ /**
199
+ * `default` fills its parent — a whole screen, or a flex slot. `card` is a
200
+ * self-contained bordered block for an empty state that sits inside content
201
+ * rather than owning the screen.
202
+ */
203
+ variant?: 'default' | 'card';
204
+ /** Scales the padding, media, title and description together. */
205
+ size?: EmptyStateSize;
58
206
  children?: ReactNode;
59
207
  }
60
208
  export interface EmptyStateMediaProps extends ViewProps, VariantProps<typeof mediaVariants> {
@@ -66,7 +214,9 @@ export declare const EmptyState: import("react").ForwardRefExoticComponent<Empty
66
214
  Media: import("react").ForwardRefExoticComponent<EmptyStateMediaProps & import("react").RefAttributes<View>>;
67
215
  Title: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
68
216
  Description: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
69
- Content: import("react").ForwardRefExoticComponent<EmptyStateProps & import("react").RefAttributes<View>>;
217
+ Content: import("react").ForwardRefExoticComponent<ViewProps & {
218
+ className?: string;
219
+ } & import("react").RefAttributes<View>>;
70
220
  };
71
221
  export {};
72
222
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/empty-state/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/empty-state/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,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;AAE7D,KAAK,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAK9C,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA0BtB,CAAC;AAEH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA0BjB,CAAC;AAEH,MAAM,WAAW,eACf,SAAQ,SAAS,EACf,YAAY,CAAC,OAAO,kBAAkB,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,iEAAiE;IACjE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAuBD,MAAM,WAAW,oBACf,SAAQ,SAAS,EACf,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA2DD,eAAO,MAAM,UAAU;;;;;;oBAR8C,MAAM;;CAczE,CAAC"}
@@ -15,18 +15,30 @@
15
15
  * </Frame.Header>
16
16
  * <Frame.Panel>
17
17
  * <Frame.Row>…</Frame.Row>
18
- * <Frame.Row divided>…</Frame.Row>
18
+ * <Frame.Row>…</Frame.Row>
19
19
  * </Frame.Panel>
20
20
  * <Frame.Footer>Updated 2 minutes ago</Frame.Footer>
21
21
  * </Frame>
22
22
  * ```
23
+ *
24
+ * The panel draws the hairlines between its own rows. React Native has no
25
+ * `:first-child`, so the alternative is every caller writing
26
+ * `divided={index > 0}` on every row and getting it wrong once.
23
27
  */
24
28
  import { type ReactNode } from 'react';
25
- import { View, type Text as RNText, type ViewProps } from 'react-native';
29
+ import { View, type PressableProps, type Text as RNText, type ViewProps } from 'react-native';
26
30
  import { type TextProps } from '../../primitives/text.js';
31
+ export type FrameVariant = 'default' | 'plain';
27
32
  export interface FrameProps extends ViewProps {
28
33
  className?: string;
29
34
  }
35
+ export interface FrameRootProps extends FrameProps {
36
+ /**
37
+ * `plain` drops the outer shell so the panel is the widget — for a Frame
38
+ * inside a container that already draws its own border.
39
+ */
40
+ variant?: FrameVariant;
41
+ }
30
42
  export interface FrameHeaderProps extends FrameProps {
31
43
  children?: ReactNode;
32
44
  }
@@ -34,22 +46,50 @@ export interface FrameActionProps extends FrameProps {
34
46
  children?: ReactNode;
35
47
  }
36
48
  /**
37
- * A row inside a Frame.Panel. Pass `divided` on every row after the first to
38
- * draw a hairline separator above it (React Native has no :first-child).
49
+ * Marks the parts that take part in the panel's own divider bookkeeping —
50
+ * a Row draws a line above itself, a Section draws one above its heading.
51
+ * Anything else the panel is given is left alone.
39
52
  */
40
- export interface FrameRowProps extends FrameProps {
53
+ interface Dividable {
54
+ divided?: boolean;
55
+ }
56
+ export interface FramePanelProps extends FrameProps {
57
+ /**
58
+ * Set false to place the hairlines by hand instead — for a panel whose rows
59
+ * are generated somewhere the divider order is not obvious.
60
+ */
61
+ dividers?: boolean;
62
+ children?: ReactNode;
63
+ }
64
+ export interface FrameRowProps extends Omit<PressableProps, 'children'>, Dividable {
65
+ className?: string;
66
+ /**
67
+ * Draw a hairline above this row. `Frame.Panel` sets it for you; pass it
68
+ * explicitly to override the panel's decision either way.
69
+ */
70
+ divided?: boolean;
71
+ /** Trailing chevron marking the row as leading somewhere. */
72
+ chevron?: boolean;
73
+ children?: ReactNode;
74
+ }
75
+ export interface FrameSectionProps extends FrameProps, Dividable {
76
+ /** Heading above the rows. Strings are wrapped for you. */
77
+ title?: ReactNode;
41
78
  divided?: boolean;
79
+ children?: ReactNode;
42
80
  }
43
81
  export interface FrameFooterProps extends FrameProps {
44
82
  children?: ReactNode;
45
83
  }
46
- export declare const Frame: import("react").ForwardRefExoticComponent<FrameProps & import("react").RefAttributes<View>> & {
84
+ export declare const Frame: import("react").ForwardRefExoticComponent<FrameRootProps & import("react").RefAttributes<View>> & {
47
85
  Header: import("react").ForwardRefExoticComponent<FrameHeaderProps & import("react").RefAttributes<View>>;
48
86
  Title: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
49
87
  Action: import("react").ForwardRefExoticComponent<FrameActionProps & import("react").RefAttributes<View>>;
50
88
  Description: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<RNText>>;
51
- Panel: import("react").ForwardRefExoticComponent<FrameProps & import("react").RefAttributes<View>>;
89
+ Panel: import("react").ForwardRefExoticComponent<FramePanelProps & import("react").RefAttributes<View>>;
90
+ Section: import("react").ForwardRefExoticComponent<FrameSectionProps & import("react").RefAttributes<View>>;
52
91
  Row: import("react").ForwardRefExoticComponent<FrameRowProps & import("react").RefAttributes<View>>;
53
92
  Footer: import("react").ForwardRefExoticComponent<FrameFooterProps & import("react").RefAttributes<View>>;
54
93
  };
94
+ export {};
55
95
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/frame/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3F,OAAO,EAEL,IAAI,EACJ,KAAK,cAAc,EACnB,KAAK,IAAI,IAAI,MAAM,EACnB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,0BAAuB,CAAC;AAsB7D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AASD,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;AA6BD;;;;GAIG;AACH,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAeD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,SAAS;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA8CD,MAAM,WAAW,iBAAkB,SAAQ,UAAU,EAAE,SAAS;IAC9D,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAkCD,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAsBD,eAAO,MAAM,KAAK;;;;;;;;;CAShB,CAAC"}
@@ -1,16 +1,126 @@
1
1
  import { TextInput, type TextInputProps } from 'react-native';
2
- export interface InputProps extends TextInputProps {
2
+ import { type VariantProps } from 'tailwind-variants';
3
+ declare const inputVariants: import("tailwind-variants").TVReturnType<{
4
+ variant: {
5
+ outline: {
6
+ field: string;
7
+ };
8
+ filled: {
9
+ field: string;
10
+ };
11
+ };
12
+ size: {
13
+ sm: {
14
+ field: string;
15
+ };
16
+ md: {
17
+ field: string;
18
+ };
19
+ lg: {
20
+ field: string;
21
+ };
22
+ };
23
+ multiline: {
24
+ true: {
25
+ field: string;
26
+ };
27
+ };
28
+ disabled: {
29
+ true: {
30
+ field: string;
31
+ };
32
+ };
33
+ }, {
34
+ container: string;
35
+ field: string;
36
+ description: string;
37
+ error: string;
38
+ }, undefined, {
39
+ variant: {
40
+ outline: {
41
+ field: string;
42
+ };
43
+ filled: {
44
+ field: string;
45
+ };
46
+ };
47
+ size: {
48
+ sm: {
49
+ field: string;
50
+ };
51
+ md: {
52
+ field: string;
53
+ };
54
+ lg: {
55
+ field: string;
56
+ };
57
+ };
58
+ multiline: {
59
+ true: {
60
+ field: string;
61
+ };
62
+ };
63
+ disabled: {
64
+ true: {
65
+ field: string;
66
+ };
67
+ };
68
+ }, {
69
+ container: string;
70
+ field: string;
71
+ description: string;
72
+ error: string;
73
+ }, import("tailwind-variants").TVReturnType<{
74
+ variant: {
75
+ outline: {
76
+ field: string;
77
+ };
78
+ filled: {
79
+ field: string;
80
+ };
81
+ };
82
+ size: {
83
+ sm: {
84
+ field: string;
85
+ };
86
+ md: {
87
+ field: string;
88
+ };
89
+ lg: {
90
+ field: string;
91
+ };
92
+ };
93
+ multiline: {
94
+ true: {
95
+ field: string;
96
+ };
97
+ };
98
+ disabled: {
99
+ true: {
100
+ field: string;
101
+ };
102
+ };
103
+ }, {
104
+ container: string;
105
+ field: string;
106
+ description: string;
107
+ error: string;
108
+ }, undefined, unknown, unknown, undefined>>;
109
+ type InputVariantProps = VariantProps<typeof inputVariants>;
110
+ export interface InputProps extends TextInputProps, Omit<InputVariantProps, 'disabled' | 'multiline'> {
3
111
  className?: string;
4
112
  containerClassName?: string;
5
113
  label?: string;
6
114
  description?: string;
7
115
  /** Error message. When set, the field renders in its invalid state. */
8
116
  errorMessage?: string;
117
+ /** Marks the field required — an asterisk on the label, and the a11y state. */
118
+ isRequired?: boolean;
9
119
  disabled?: boolean;
10
120
  /**
11
121
  * Lift the field above the software keyboard when it would otherwise be
12
122
  * covered. Moves by exactly the overlap, and not at all when the field is
13
- * already clear.
123
+ * already clear — or when the keyboard belongs to a different field.
14
124
  *
15
125
  * Install `react-native-keyboard-controller` for this to behave on Android.
16
126
  *
@@ -22,4 +132,5 @@ export interface InputProps extends TextInputProps {
22
132
  keyboardOffset?: number;
23
133
  }
24
134
  export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<TextInput>>;
135
+ export {};
25
136
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/input/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAQ,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AA4BpE,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,KAAK,kGAqFjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/input/index.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,SAAS,EAAQ,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAOpE,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAS1D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAgCjB,CAAC;AAEH,KAAK,iBAAiB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAE5D,MAAM,WAAW,UACf,SAAQ,cAAc,EACpB,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,WAAW,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,eAAO,MAAM,KAAK,kGA4IjB,CAAC"}