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.
- package/README.md +5 -3
- package/lib/module/components/attachment/index.js +219 -0
- package/lib/module/components/attachment/index.js.map +1 -0
- package/lib/module/components/bottom-sheet/index.js +53 -3
- package/lib/module/components/bottom-sheet/index.js.map +1 -1
- package/lib/module/components/button/index.js +19 -1
- package/lib/module/components/button/index.js.map +1 -1
- package/lib/module/components/dialog/index.js +6 -2
- package/lib/module/components/dialog/index.js.map +1 -1
- package/lib/module/components/empty-state/index.js +94 -17
- package/lib/module/components/empty-state/index.js.map +1 -1
- package/lib/module/components/frame/index.js +128 -15
- package/lib/module/components/frame/index.js.map +1 -1
- package/lib/module/components/input/index.js +107 -15
- package/lib/module/components/input/index.js.map +1 -1
- package/lib/module/components/line-chart/index.js +1024 -0
- package/lib/module/components/line-chart/index.js.map +1 -0
- package/lib/module/components/marker/index.js +190 -0
- package/lib/module/components/marker/index.js.map +1 -0
- package/lib/module/components/message/index.js +24 -8
- package/lib/module/components/message/index.js.map +1 -1
- package/lib/module/components/message-scroller/index.js +451 -0
- package/lib/module/components/message-scroller/index.js.map +1 -0
- package/lib/module/components/popover/index.js +511 -0
- package/lib/module/components/popover/index.js.map +1 -0
- package/lib/module/components/progress/index.js +52 -2
- package/lib/module/components/progress/index.js.map +1 -1
- package/lib/module/components/radio-group/index.js +132 -17
- package/lib/module/components/radio-group/index.js.map +1 -1
- package/lib/module/components/section-rail/index.js +355 -0
- package/lib/module/components/section-rail/index.js.map +1 -0
- package/lib/module/components/select/index.js +245 -56
- package/lib/module/components/select/index.js.map +1 -1
- package/lib/module/components/separator/index.js +91 -0
- package/lib/module/components/separator/index.js.map +1 -0
- package/lib/module/components/slider/index.js +355 -0
- package/lib/module/components/slider/index.js.map +1 -0
- package/lib/module/components/surface/index.js +21 -2
- package/lib/module/components/surface/index.js.map +1 -1
- package/lib/module/components/switch/index.js +10 -1
- package/lib/module/components/switch/index.js.map +1 -1
- package/lib/module/components/tabs/index.js +186 -16
- package/lib/module/components/tabs/index.js.map +1 -1
- package/lib/module/components/toggle-button/index.js +297 -0
- package/lib/module/components/toggle-button/index.js.map +1 -0
- package/lib/module/hooks/index.js +1 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/use-keyboard-avoidance.js +57 -8
- package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
- package/lib/module/hooks/use-scroll-sections.js +89 -0
- package/lib/module/hooks/use-scroll-sections.js.map +1 -0
- package/lib/module/icons/index.js +69 -0
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/index.js +11 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/native/index.js.map +1 -1
- package/lib/module/primitives/keyboard-avoider.js +2 -0
- package/lib/module/primitives/keyboard-avoider.js.map +1 -1
- package/lib/module/primitives/scrim.js +72 -0
- package/lib/module/primitives/scrim.js.map +1 -0
- package/lib/module/utils/haptics.js +57 -0
- package/lib/module/utils/haptics.js.map +1 -0
- package/lib/typescript/src/components/attachment/index.d.ts +93 -0
- package/lib/typescript/src/components/attachment/index.d.ts.map +1 -0
- package/lib/typescript/src/components/bottom-sheet/index.d.ts +6 -1
- package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
- package/lib/typescript/src/components/button/index.d.ts +9 -4
- package/lib/typescript/src/components/button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/dialog/index.d.ts +7 -1
- package/lib/typescript/src/components/dialog/index.d.ts.map +1 -1
- package/lib/typescript/src/components/empty-state/index.d.ts +152 -2
- package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -1
- package/lib/typescript/src/components/frame/index.d.ts +47 -7
- package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
- package/lib/typescript/src/components/input/index.d.ts +113 -2
- package/lib/typescript/src/components/input/index.d.ts.map +1 -1
- package/lib/typescript/src/components/line-chart/index.d.ts +247 -0
- package/lib/typescript/src/components/line-chart/index.d.ts.map +1 -0
- package/lib/typescript/src/components/marker/index.d.ts +137 -0
- package/lib/typescript/src/components/marker/index.d.ts.map +1 -0
- package/lib/typescript/src/components/message/index.d.ts +8 -1
- package/lib/typescript/src/components/message/index.d.ts.map +1 -1
- package/lib/typescript/src/components/message-scroller/index.d.ts +150 -0
- package/lib/typescript/src/components/message-scroller/index.d.ts.map +1 -0
- package/lib/typescript/src/components/popover/index.d.ts +136 -0
- package/lib/typescript/src/components/popover/index.d.ts.map +1 -0
- package/lib/typescript/src/components/progress/index.d.ts +33 -0
- package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
- package/lib/typescript/src/components/radio-group/index.d.ts +39 -0
- package/lib/typescript/src/components/radio-group/index.d.ts.map +1 -1
- package/lib/typescript/src/components/section-rail/index.d.ts +115 -0
- package/lib/typescript/src/components/section-rail/index.d.ts.map +1 -0
- package/lib/typescript/src/components/select/index.d.ts +46 -7
- package/lib/typescript/src/components/select/index.d.ts.map +1 -1
- package/lib/typescript/src/components/separator/index.d.ts +47 -0
- package/lib/typescript/src/components/separator/index.d.ts.map +1 -0
- package/lib/typescript/src/components/slider/index.d.ts +203 -0
- package/lib/typescript/src/components/slider/index.d.ts.map +1 -0
- package/lib/typescript/src/components/surface/index.d.ts +51 -2
- package/lib/typescript/src/components/surface/index.d.ts.map +1 -1
- package/lib/typescript/src/components/switch/index.d.ts.map +1 -1
- package/lib/typescript/src/components/tabs/index.d.ts +46 -4
- package/lib/typescript/src/components/tabs/index.d.ts.map +1 -1
- package/lib/typescript/src/components/toggle-button/index.d.ts +244 -0
- package/lib/typescript/src/components/toggle-button/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +1 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts +10 -1
- package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
- package/lib/typescript/src/hooks/use-scroll-sections.d.ts +31 -0
- package/lib/typescript/src/hooks/use-scroll-sections.d.ts.map +1 -0
- package/lib/typescript/src/icons/index.d.ts +6 -0
- package/lib/typescript/src/icons/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +13 -4
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/native/index.d.ts +16 -1
- package/lib/typescript/src/native/index.d.ts.map +1 -1
- package/lib/typescript/src/primitives/keyboard-avoider.d.ts +8 -1
- package/lib/typescript/src/primitives/keyboard-avoider.d.ts.map +1 -1
- package/lib/typescript/src/primitives/scrim.d.ts +21 -0
- package/lib/typescript/src/primitives/scrim.d.ts.map +1 -0
- package/lib/typescript/src/utils/haptics.d.ts +12 -0
- package/lib/typescript/src/utils/haptics.d.ts.map +1 -0
- package/package.json +9 -1
- package/src/components/attachment/index.tsx +279 -0
- package/src/components/bottom-sheet/index.tsx +58 -2
- package/src/components/button/index.tsx +26 -5
- package/src/components/dialog/index.tsx +10 -1
- package/src/components/empty-state/index.tsx +60 -14
- package/src/components/frame/index.tsx +175 -29
- package/src/components/input/index.tsx +122 -16
- package/src/components/line-chart/index.tsx +1224 -0
- package/src/components/marker/index.tsx +194 -0
- package/src/components/message/index.tsx +29 -5
- package/src/components/message-scroller/index.tsx +574 -0
- package/src/components/popover/index.tsx +624 -0
- package/src/components/progress/index.tsx +81 -1
- package/src/components/radio-group/index.tsx +156 -18
- package/src/components/section-rail/index.tsx +459 -0
- package/src/components/select/index.tsx +265 -52
- package/src/components/separator/index.tsx +97 -0
- package/src/components/slider/index.tsx +371 -0
- package/src/components/surface/index.tsx +29 -3
- package/src/components/switch/index.tsx +8 -1
- package/src/components/tabs/index.tsx +208 -28
- package/src/components/toggle-button/index.tsx +374 -0
- package/src/hooks/index.ts +5 -0
- package/src/hooks/use-keyboard-avoidance.ts +73 -7
- package/src/hooks/use-scroll-sections.ts +127 -0
- package/src/icons/index.tsx +48 -0
- package/src/index.ts +97 -6
- package/src/native/index.ts +13 -1
- package/src/primitives/keyboard-avoider.tsx +9 -1
- package/src/primitives/scrim.tsx +95 -0
- package/src/utils/haptics.ts +63 -0
- package/theme.css +64 -2
- package/lib/module/components/inline-select/index.js +0 -284
- package/lib/module/components/inline-select/index.js.map +0 -1
- package/lib/typescript/src/components/inline-select/index.d.ts +0 -48
- package/lib/typescript/src/components/inline-select/index.d.ts.map +0 -1
- package/src/components/inline-select/index.tsx +0 -332
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Popover — a panel anchored to the thing that opened it.
|
|
3
|
+
*
|
|
4
|
+
* A dialog takes the screen and asks to be dealt with; a popover stays next to
|
|
5
|
+
* its trigger and keeps the context around it visible. That difference is the
|
|
6
|
+
* whole reason both exist, and it is why this one is positioned rather than
|
|
7
|
+
* centred.
|
|
8
|
+
*
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <Popover>
|
|
11
|
+
* <Popover.Trigger>
|
|
12
|
+
* <Button variant="outline">Options</Button>
|
|
13
|
+
* </Popover.Trigger>
|
|
14
|
+
* <Popover.Content placement="bottom" align="end">
|
|
15
|
+
* <Popover.Title>Export</Popover.Title>
|
|
16
|
+
* <Popover.Description>Choose a format.</Popover.Description>
|
|
17
|
+
* </Popover.Content>
|
|
18
|
+
* </Popover>
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Placement is a preference, not a promise. The trigger is measured in window
|
|
22
|
+
* coordinates when it is pressed, the panel measures itself on its first
|
|
23
|
+
* layout, and the two are reconciled against the safe area: a panel that would
|
|
24
|
+
* run off the bottom flips above the trigger, and one that would run off the
|
|
25
|
+
* side slides back inside. So `placement="bottom"` means *below, if below
|
|
26
|
+
* fits* — which is the only behaviour that survives a trigger near an edge.
|
|
27
|
+
*
|
|
28
|
+
* The first frame is rendered transparent, because the panel's own size is not
|
|
29
|
+
* known until it has laid out once. Without that it would appear at the origin
|
|
30
|
+
* and jump into place.
|
|
31
|
+
*/
|
|
32
|
+
import { type ReactElement, type ReactNode } from 'react';
|
|
33
|
+
import { type ViewProps } from 'react-native';
|
|
34
|
+
import { type TextProps } from '../../primitives/text.js';
|
|
35
|
+
export type PopoverPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
36
|
+
export type PopoverAlign = 'start' | 'center' | 'end';
|
|
37
|
+
export type PopoverPresentation = 'popover' | 'bottom-sheet';
|
|
38
|
+
export interface PopoverProps {
|
|
39
|
+
children: ReactNode;
|
|
40
|
+
/** Controlled open state. */
|
|
41
|
+
open?: boolean;
|
|
42
|
+
onOpenChange?: (open: boolean) => void;
|
|
43
|
+
/** Initial state when uncontrolled. */
|
|
44
|
+
defaultOpen?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* `popover` is the anchored panel. `bottom-sheet` presents the content in a
|
|
47
|
+
* draggable sheet instead — better on a small screen, or when the content is
|
|
48
|
+
* a form rather than a menu. Placement, align and the arrow do not apply to a
|
|
49
|
+
* sheet.
|
|
50
|
+
*/
|
|
51
|
+
presentation?: PopoverPresentation;
|
|
52
|
+
}
|
|
53
|
+
declare function PopoverRoot({ children, open, onOpenChange, defaultOpen, presentation, }: PopoverProps): import("react").JSX.Element;
|
|
54
|
+
export interface PopoverTriggerProps {
|
|
55
|
+
children: ReactElement<{
|
|
56
|
+
onPress?: (...args: unknown[]) => void;
|
|
57
|
+
}>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Wraps its child and toggles the popover on press.
|
|
61
|
+
*
|
|
62
|
+
* The child is wrapped in a view rather than given a ref directly: the ref has
|
|
63
|
+
* to survive whatever the child is — a Button, a plain Pressable, an icon —
|
|
64
|
+
* and only a wrapper we own is guaranteed to be measurable.
|
|
65
|
+
*/
|
|
66
|
+
declare function PopoverTrigger({ children }: PopoverTriggerProps): import("react").JSX.Element;
|
|
67
|
+
export interface PopoverContentProps extends ViewProps {
|
|
68
|
+
className?: string;
|
|
69
|
+
/** Preferred side of the trigger. Flipped when that side does not fit. */
|
|
70
|
+
placement?: PopoverPlacement;
|
|
71
|
+
/** Where the panel sits along the trigger's other axis. */
|
|
72
|
+
align?: PopoverAlign;
|
|
73
|
+
/** Gap between the trigger and the panel, in pixels. */
|
|
74
|
+
offset?: number;
|
|
75
|
+
/** Nudge along the alignment axis, in pixels. */
|
|
76
|
+
alignOffset?: number;
|
|
77
|
+
/**
|
|
78
|
+
* `content-fit` sizes to the content, `trigger` matches the trigger's width,
|
|
79
|
+
* `full` spans the safe area, and a number is that many pixels.
|
|
80
|
+
*/
|
|
81
|
+
width?: number | 'trigger' | 'full' | 'content-fit';
|
|
82
|
+
/**
|
|
83
|
+
* Floor for the panel's width, in pixels. Worth setting with
|
|
84
|
+
* `width="trigger"`, where a narrow trigger would otherwise squeeze the
|
|
85
|
+
* content into a column.
|
|
86
|
+
*/
|
|
87
|
+
minWidth?: number;
|
|
88
|
+
/** Tap outside the panel closes it. Default true. */
|
|
89
|
+
dismissible?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Frost the background behind the panel instead of dimming it. Uses
|
|
92
|
+
* `expo-blur` when installed and falls back to the dimmed scrim when it is
|
|
93
|
+
* not, so it is safe to pass either way.
|
|
94
|
+
*/
|
|
95
|
+
blur?: boolean;
|
|
96
|
+
children?: ReactNode;
|
|
97
|
+
}
|
|
98
|
+
declare function PopoverContent({ className, placement, align, offset, alignOffset, width, minWidth, dismissible, blur, children, onLayout: onLayoutProp, style, ...props }: PopoverContentProps): import("react").JSX.Element | null;
|
|
99
|
+
export interface PopoverArrowProps extends ViewProps {
|
|
100
|
+
className?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* A small square rotated into a diamond, half-buried under the panel so only
|
|
104
|
+
* the point shows. It needs the panel to have a border for its own two visible
|
|
105
|
+
* edges to line up with — without one it reads as a floating lozenge.
|
|
106
|
+
*
|
|
107
|
+
* It points at the trigger's centre, which the panel resolves and publishes:
|
|
108
|
+
* when `align` shifts the panel off-centre, or a clamp slides it back on
|
|
109
|
+
* screen, the arrow stays over the trigger rather than over the panel's middle.
|
|
110
|
+
*/
|
|
111
|
+
declare function PopoverArrow({ className, style, ...props }: PopoverArrowProps): import("react").JSX.Element | null;
|
|
112
|
+
export interface PopoverCloseProps {
|
|
113
|
+
children: ReactElement<{
|
|
114
|
+
onPress?: (...args: unknown[]) => void;
|
|
115
|
+
}>;
|
|
116
|
+
}
|
|
117
|
+
/** Wraps its child and closes the popover on press. */
|
|
118
|
+
declare function PopoverClose({ children }: PopoverCloseProps): ReactElement<{
|
|
119
|
+
onPress?: (...args: unknown[]) => void;
|
|
120
|
+
}, string | import("react").JSXElementConstructor<any>>;
|
|
121
|
+
export declare const Popover: typeof PopoverRoot & {
|
|
122
|
+
Trigger: typeof PopoverTrigger;
|
|
123
|
+
Content: typeof PopoverContent;
|
|
124
|
+
Arrow: typeof PopoverArrow;
|
|
125
|
+
Title: {
|
|
126
|
+
({ className, ...props }: TextProps): import("react").JSX.Element;
|
|
127
|
+
displayName: string;
|
|
128
|
+
};
|
|
129
|
+
Description: {
|
|
130
|
+
({ className, ...props }: TextProps): import("react").JSX.Element;
|
|
131
|
+
displayName: string;
|
|
132
|
+
};
|
|
133
|
+
Close: typeof PopoverClose;
|
|
134
|
+
};
|
|
135
|
+
export {};
|
|
136
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/popover/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,8 @@ declare const progressVariants: import("tailwind-variants").TVReturnType<{
|
|
|
35
35
|
};
|
|
36
36
|
};
|
|
37
37
|
}, {
|
|
38
|
+
root: string;
|
|
39
|
+
header: string;
|
|
38
40
|
track: string;
|
|
39
41
|
indicator: string;
|
|
40
42
|
}, undefined, {
|
|
@@ -72,6 +74,8 @@ declare const progressVariants: import("tailwind-variants").TVReturnType<{
|
|
|
72
74
|
};
|
|
73
75
|
};
|
|
74
76
|
}, {
|
|
77
|
+
root: string;
|
|
78
|
+
header: string;
|
|
75
79
|
track: string;
|
|
76
80
|
indicator: string;
|
|
77
81
|
}, import("tailwind-variants").TVReturnType<{
|
|
@@ -109,6 +113,8 @@ declare const progressVariants: import("tailwind-variants").TVReturnType<{
|
|
|
109
113
|
};
|
|
110
114
|
};
|
|
111
115
|
}, {
|
|
116
|
+
root: string;
|
|
117
|
+
header: string;
|
|
112
118
|
track: string;
|
|
113
119
|
indicator: string;
|
|
114
120
|
}, undefined, unknown, unknown, undefined>>;
|
|
@@ -121,11 +127,38 @@ export interface ProgressProps extends Omit<ViewProps, 'children'>, ProgressVari
|
|
|
121
127
|
indeterminate?: boolean;
|
|
122
128
|
/** Extra classes for the moving indicator. */
|
|
123
129
|
indicatorClassName?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Caption drawn above the track, on the left. Supplying it (or
|
|
132
|
+
* `showValueLabel`) wraps the bar in a header row; the track alone renders
|
|
133
|
+
* otherwise.
|
|
134
|
+
*/
|
|
135
|
+
label?: string;
|
|
136
|
+
/**
|
|
137
|
+
* Draw the percentage above the track, on the right. Hidden while
|
|
138
|
+
* `indeterminate` — there is nothing meaningful to show.
|
|
139
|
+
*/
|
|
140
|
+
showValueLabel?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Text for the value label. Overrides the formatted percentage — use it for
|
|
143
|
+
* a byte count, a step tally, anything that is not a bare percent.
|
|
144
|
+
*/
|
|
145
|
+
valueLabel?: string;
|
|
146
|
+
/**
|
|
147
|
+
* Format the value label as a fraction of the whole with `Intl.NumberFormat`
|
|
148
|
+
* — e.g. `{ style: 'currency', currency: 'USD' }`. Falls back to a rounded
|
|
149
|
+
* percent when omitted.
|
|
150
|
+
*/
|
|
151
|
+
formatOptions?: Intl.NumberFormatOptions;
|
|
152
|
+
/** Extra classes for the label + value-label row. */
|
|
153
|
+
headerClassName?: string;
|
|
124
154
|
}
|
|
125
155
|
/**
|
|
126
156
|
* Determinate or indeterminate progress bar. The fill width (determinate) and
|
|
127
157
|
* the sliding bar (indeterminate) are both driven on the UI thread, so updates
|
|
128
158
|
* never re-render past the value change itself.
|
|
159
|
+
*
|
|
160
|
+
* Pass `label` or `showValueLabel` to caption the bar with a header row; the
|
|
161
|
+
* bare track renders when neither is set, so existing call sites are untouched.
|
|
129
162
|
*/
|
|
130
163
|
export declare const Progress: import("react").ForwardRefExoticComponent<ProgressProps & import("react").RefAttributes<View>>;
|
|
131
164
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/progress/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA0B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAW5E,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/progress/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA0B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAW5E,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAyBpB,CAAC;AAEH,KAAK,oBAAoB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAElE,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACjC,oBAAoB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC;IACzC,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA0BD;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,gGA2GpB,CAAC"}
|
|
@@ -1,20 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RadioGroup — one choice from a set.
|
|
3
|
+
*
|
|
4
|
+
* The group owns the value and hands each item its selected state through
|
|
5
|
+
* context, so an item is a thin pressable that reports its own value up and
|
|
6
|
+
* reads selection back down.
|
|
7
|
+
*
|
|
8
|
+
* Two shapes, chosen on the group and inherited by every item: `dot` is the
|
|
9
|
+
* classic label-beside-a-disc row; `card` turns the whole surface into the
|
|
10
|
+
* target — for pickable options where the disc is a confirmation rather than
|
|
11
|
+
* the thing you aim at. The card is the same treatment `Checkbox` offers, so a
|
|
12
|
+
* form mixing single- and multi-select choices reads as one family.
|
|
13
|
+
*
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <RadioGroup value={plan} onValueChange={setPlan} variant="card">
|
|
16
|
+
* <RadioGroup.Item value="pro" label="Pro" description="For growing teams" />
|
|
17
|
+
* <RadioGroup.Item value="max" label="Max" description="Everything, uncapped" />
|
|
18
|
+
* </RadioGroup>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
1
21
|
import { type ReactNode } from 'react';
|
|
2
22
|
import { View, type ViewProps } from 'react-native';
|
|
23
|
+
type RadioVariant = 'dot' | 'card';
|
|
24
|
+
type RadioOrientation = 'vertical' | 'horizontal';
|
|
3
25
|
export interface RadioGroupProps extends ViewProps {
|
|
4
26
|
className?: string;
|
|
5
27
|
value?: string;
|
|
6
28
|
onValueChange: (value: string) => void;
|
|
7
29
|
disabled?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* `dot` is the label-beside-a-disc row. `card` makes the whole surface the
|
|
32
|
+
* target and highlights the selected option — for a plan picker or a
|
|
33
|
+
* settings choice where each option carries a description.
|
|
34
|
+
*/
|
|
35
|
+
variant?: RadioVariant;
|
|
36
|
+
/**
|
|
37
|
+
* `horizontal` lays the options out along a row that wraps — for two or
|
|
38
|
+
* three short choices, where a stacked list wastes the width and reads as
|
|
39
|
+
* longer than it is.
|
|
40
|
+
*/
|
|
41
|
+
orientation?: RadioOrientation;
|
|
8
42
|
children: ReactNode;
|
|
9
43
|
}
|
|
10
44
|
export interface RadioGroupItemProps {
|
|
11
45
|
className?: string;
|
|
12
46
|
value: string;
|
|
13
47
|
label?: string;
|
|
48
|
+
/** Secondary line under the label. Most at home in the `card` variant. */
|
|
49
|
+
description?: string;
|
|
14
50
|
disabled?: boolean;
|
|
51
|
+
/** Hide the disc entirely — for a card whose selected fill is enough. */
|
|
52
|
+
hideIndicator?: boolean;
|
|
15
53
|
children?: ReactNode;
|
|
16
54
|
}
|
|
17
55
|
export declare const RadioGroup: import("react").ForwardRefExoticComponent<RadioGroupProps & import("react").RefAttributes<View>> & {
|
|
18
56
|
Item: import("react").ForwardRefExoticComponent<RadioGroupItemProps & import("react").RefAttributes<View>>;
|
|
19
57
|
};
|
|
58
|
+
export type { RadioVariant };
|
|
20
59
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/radio-group/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAa,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/radio-group/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAa,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAW/D,KAAK,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;AACnC,KAAK,gBAAgB,GAAG,UAAU,GAAG,YAAY,CAAC;AA2DlD,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AA6CD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA+ED,eAAO,MAAM,UAAU;;CAErB,CAAC;AAEH,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SectionRail — a floating navigator for a long screen.
|
|
3
|
+
*
|
|
4
|
+
* A stack of short bars pinned to one edge, one per section, that expands into
|
|
5
|
+
* a labelled panel when you touch it. Collapsed it is a position indicator you
|
|
6
|
+
* can read at a glance without giving up any content width; expanded it is a
|
|
7
|
+
* list you can jump from.
|
|
8
|
+
*
|
|
9
|
+
* The bars are deliberately unlabelled. A permanent list of section titles
|
|
10
|
+
* down the side of a phone screen is either too small to read or too wide to
|
|
11
|
+
* keep — the bars carry only the two things that survive at that size, which
|
|
12
|
+
* section you are in and roughly how deep it sits.
|
|
13
|
+
*
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <SectionRail value={active} onValueChange={scrollTo}>
|
|
16
|
+
* <SectionRail.Trigger>
|
|
17
|
+
* <SectionRail.Bar value="intro" />
|
|
18
|
+
* <SectionRail.Bar value="setup" level={1} />
|
|
19
|
+
* </SectionRail.Trigger>
|
|
20
|
+
* <SectionRail.Content>
|
|
21
|
+
* <SectionRail.Item value="intro">Introduction</SectionRail.Item>
|
|
22
|
+
* <SectionRail.Item value="setup" level={1}>Setup</SectionRail.Item>
|
|
23
|
+
* </SectionRail.Content>
|
|
24
|
+
* </SectionRail>
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* It floats: the root is absolutely positioned and lets touches through
|
|
28
|
+
* everywhere it is not drawing, so the content underneath still scrolls.
|
|
29
|
+
*/
|
|
30
|
+
import { type ReactNode } from 'react';
|
|
31
|
+
import { type ViewProps } from 'react-native';
|
|
32
|
+
export type SectionRailPlacement = 'left' | 'right';
|
|
33
|
+
export type SectionRailAlign = 'center' | 'top' | 'bottom';
|
|
34
|
+
export interface SectionRailProps extends ViewProps {
|
|
35
|
+
className?: string;
|
|
36
|
+
/** Which edge the rail sits against. */
|
|
37
|
+
placement?: SectionRailPlacement;
|
|
38
|
+
/**
|
|
39
|
+
* Where along that edge it sits. `bottom` puts it in a corner, out of the
|
|
40
|
+
* way of the text — the panel then opens upward from the rail rather than
|
|
41
|
+
* centred on the screen.
|
|
42
|
+
*/
|
|
43
|
+
align?: SectionRailAlign;
|
|
44
|
+
/**
|
|
45
|
+
* Tick under the finger on every change of section, however it was made —
|
|
46
|
+
* tapped in the panel, or scrolled past. Needs the optional `expo-haptics`
|
|
47
|
+
* package; without it this does nothing.
|
|
48
|
+
*/
|
|
49
|
+
haptics?: boolean;
|
|
50
|
+
/** Active section id. Controlled — usually driven by a scroll handler. */
|
|
51
|
+
value?: string;
|
|
52
|
+
/** Starting section when uncontrolled. */
|
|
53
|
+
defaultValue?: string;
|
|
54
|
+
/** Fires when a section is chosen from the expanded panel. */
|
|
55
|
+
onValueChange?: (value: string) => void;
|
|
56
|
+
/** Controlled expansion. */
|
|
57
|
+
open?: boolean;
|
|
58
|
+
defaultOpen?: boolean;
|
|
59
|
+
onOpenChange?: (open: boolean) => void;
|
|
60
|
+
/**
|
|
61
|
+
* How long the panel stays up after a choice, so a mis-tap can be corrected
|
|
62
|
+
* without opening it again. Set 0 to close immediately.
|
|
63
|
+
*/
|
|
64
|
+
closeDelay?: number;
|
|
65
|
+
/** Gap between the rail and the edge of the safe area. */
|
|
66
|
+
offset?: number;
|
|
67
|
+
children: ReactNode;
|
|
68
|
+
}
|
|
69
|
+
declare function SectionRailRoot({ className, placement, align, haptics, value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, closeDelay, offset, children, ...props }: SectionRailProps): import("react").JSX.Element;
|
|
70
|
+
export interface SectionRailTriggerProps extends ViewProps {
|
|
71
|
+
className?: string;
|
|
72
|
+
children: ReactNode;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The collapsed rail. Wraps the bars and opens the panel on press — one target
|
|
76
|
+
* over the whole stack rather than one per bar, because a 3px bar is not
|
|
77
|
+
* something anyone can hit.
|
|
78
|
+
*/
|
|
79
|
+
declare function SectionRailTrigger({ className, children, ...props }: SectionRailTriggerProps): import("react").JSX.Element;
|
|
80
|
+
export interface SectionRailBarProps {
|
|
81
|
+
className?: string;
|
|
82
|
+
/** Section this bar stands for. Matches the root's `value`. */
|
|
83
|
+
value: string;
|
|
84
|
+
/** Nesting depth. Deeper levels draw a shorter bar. */
|
|
85
|
+
level?: number;
|
|
86
|
+
}
|
|
87
|
+
/** One section, drawn as a bar. Widens and brightens when it is the active one. */
|
|
88
|
+
declare function SectionRailBar({ className, value, level }: SectionRailBarProps): import("react").JSX.Element;
|
|
89
|
+
export interface SectionRailContentProps extends ViewProps {
|
|
90
|
+
className?: string;
|
|
91
|
+
children: ReactNode;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The expanded panel. Mounted through a portal so it floats over everything,
|
|
95
|
+
* and unmounted after it fades out rather than left behind hidden.
|
|
96
|
+
*/
|
|
97
|
+
declare function SectionRailContent({ className, children, ...props }: SectionRailContentProps): import("react").JSX.Element | null;
|
|
98
|
+
export interface SectionRailItemProps {
|
|
99
|
+
className?: string;
|
|
100
|
+
/** Section this row jumps to. Matches the root's `value`. */
|
|
101
|
+
value: string;
|
|
102
|
+
/** Nesting depth. Indents the row to match its bar. */
|
|
103
|
+
level?: number;
|
|
104
|
+
children: ReactNode;
|
|
105
|
+
}
|
|
106
|
+
/** A labelled row in the expanded panel. */
|
|
107
|
+
declare function SectionRailItem({ className, value, level, children }: SectionRailItemProps): import("react").JSX.Element;
|
|
108
|
+
export declare const SectionRail: typeof SectionRailRoot & {
|
|
109
|
+
Trigger: typeof SectionRailTrigger;
|
|
110
|
+
Bar: typeof SectionRailBar;
|
|
111
|
+
Content: typeof SectionRailContent;
|
|
112
|
+
Item: typeof SectionRailItem;
|
|
113
|
+
};
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/section-rail/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AA0B3E,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AA6B3D,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,SAAmB,EACnB,KAAgB,EAChB,OAAe,EACf,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,aAAa,EACb,IAAI,EAAE,QAAQ,EACd,WAAmB,EACnB,YAAY,EACZ,UAAgB,EAChB,MAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAsGlB;AAED,MAAM,WAAW,uBAAwB,SAAQ,SAAS;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,+BAqBrF;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,mFAAmF;AACnF,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAS,EAAE,EAAE,mBAAmB,+BAiC3E;AAED,MAAM,WAAW,uBAAwB,SAAQ,SAAS;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,sCAuCrF;AAwCD,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,4CAA4C;AAC5C,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAS,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BA0BvF;AAED,eAAO,MAAM,WAAW;;;;;CAKtB,CAAC"}
|
|
@@ -1,26 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Select — a picker with one trigger and three ways of showing its options.
|
|
3
|
+
*
|
|
4
|
+
* Which one is right depends on what surrounds the trigger, not on what the
|
|
5
|
+
* options are, which is why it is a prop rather than three components:
|
|
6
|
+
*
|
|
7
|
+
* - `sheet` (default) takes the bottom of the screen. Best for a long list, or
|
|
8
|
+
* on a small screen where an anchored panel would cover the thing you are
|
|
9
|
+
* choosing for.
|
|
10
|
+
* - `inline` expands the list in normal layout flow. Everything below moves
|
|
11
|
+
* down. Right inside a settings list, where that reads as the row growing;
|
|
12
|
+
* wrong anywhere the shift is jarring.
|
|
13
|
+
* - `overlay` floats the list above the page through a portal, anchored to the
|
|
14
|
+
* trigger and flipped above it when there is no room below. Nothing else on
|
|
15
|
+
* the screen moves.
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <Select value={region} onValueChange={setRegion} presentation="overlay">
|
|
19
|
+
* <Select.Item value="us" label="United States" />
|
|
20
|
+
* <Select.Item value="eu" label="Europe" />
|
|
21
|
+
* </Select>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
1
24
|
import { type ReactNode } from 'react';
|
|
25
|
+
export type SelectPresentation = 'sheet' | 'inline' | 'overlay';
|
|
2
26
|
export interface SelectItemProps {
|
|
3
27
|
value: string;
|
|
4
28
|
label: string;
|
|
5
29
|
}
|
|
6
|
-
/** Declarative option. Rendered inside
|
|
30
|
+
/** Declarative option. Rendered inside whichever surface is presenting. */
|
|
7
31
|
declare function SelectItem({ value, label }: SelectItemProps): import("react").JSX.Element;
|
|
8
32
|
export interface SelectProps {
|
|
9
33
|
className?: string;
|
|
10
34
|
value?: string;
|
|
11
35
|
onValueChange: (value: string) => void;
|
|
12
36
|
placeholder?: string;
|
|
13
|
-
/** Sheet title shown above the options. */
|
|
14
|
-
title?: string;
|
|
15
37
|
disabled?: boolean;
|
|
16
38
|
/**
|
|
17
|
-
*
|
|
39
|
+
* Where the options appear. `sheet` takes the bottom of the screen, `inline`
|
|
40
|
+
* expands the list in layout flow, `overlay` floats it above the page
|
|
41
|
+
* anchored to the trigger.
|
|
42
|
+
*/
|
|
43
|
+
presentation?: SelectPresentation;
|
|
44
|
+
/** Sheet title shown above the options. `sheet` presentation only. */
|
|
45
|
+
title?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Width of the floating list. `trigger` matches the trigger, `content` sizes
|
|
48
|
+
* to the longest option, or pass a pixel value. `overlay` only.
|
|
49
|
+
*/
|
|
50
|
+
contentWidth?: 'trigger' | 'content' | number;
|
|
51
|
+
/** Gap between the trigger and the floating list. `overlay` only. */
|
|
52
|
+
offset?: number;
|
|
53
|
+
/** Called when the options open or close. */
|
|
54
|
+
onOpenChange?: (open: boolean) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Render the platform's own picker instead of the trigger-and-list pair.
|
|
18
57
|
* Requires the optional `@expo/ui` package; without it this prop does
|
|
19
58
|
* nothing.
|
|
20
59
|
*
|
|
21
60
|
* **Theme tokens do not apply** — the platform draws the picker, so
|
|
22
|
-
* `className` and `
|
|
23
|
-
* the options.
|
|
61
|
+
* `className`, `title` and `presentation` are ignored. `Select.Item`
|
|
62
|
+
* children still declare the options.
|
|
24
63
|
*/
|
|
25
64
|
native?: boolean;
|
|
26
65
|
/**
|
|
@@ -30,7 +69,7 @@ export interface SelectProps {
|
|
|
30
69
|
nativeAppearance?: 'menu' | 'wheel';
|
|
31
70
|
children: ReactNode;
|
|
32
71
|
}
|
|
33
|
-
declare function SelectRoot({ className, value, onValueChange, placeholder, title,
|
|
72
|
+
declare function SelectRoot({ className, value, onValueChange, placeholder, disabled, presentation, title, contentWidth, offset, onOpenChange, native, nativeAppearance, children, }: SelectProps): import("react").JSX.Element;
|
|
34
73
|
export declare const Select: typeof SelectRoot & {
|
|
35
74
|
Item: typeof SelectItem;
|
|
36
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/select/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/select/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAsDf,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAiBhE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,2EAA2E;AAC3E,iBAAS,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,eAAe,+BA4BpD;AAUD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9C,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,KAAK,EACL,aAAa,EACb,WAAgC,EAChC,QAAQ,EACR,YAAsB,EACtB,KAAK,EACL,YAAwB,EACxB,MAAU,EACV,YAAY,EACZ,MAAM,EACN,gBAAyB,EACzB,QAAQ,GACT,EAAE,WAAW,+BA8Nb;AAED,eAAO,MAAM,MAAM;;CAEjB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { View, type ViewProps } from 'react-native';
|
|
2
|
+
import { type VariantProps } from 'tailwind-variants';
|
|
3
|
+
declare const separatorVariants: import("tailwind-variants").TVReturnType<{
|
|
4
|
+
orientation: {
|
|
5
|
+
horizontal: string;
|
|
6
|
+
vertical: string;
|
|
7
|
+
};
|
|
8
|
+
variant: {
|
|
9
|
+
thin: string;
|
|
10
|
+
thick: string;
|
|
11
|
+
};
|
|
12
|
+
}, undefined, "bg-border", {
|
|
13
|
+
orientation: {
|
|
14
|
+
horizontal: string;
|
|
15
|
+
vertical: string;
|
|
16
|
+
};
|
|
17
|
+
variant: {
|
|
18
|
+
thin: string;
|
|
19
|
+
thick: string;
|
|
20
|
+
};
|
|
21
|
+
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
22
|
+
orientation: {
|
|
23
|
+
horizontal: string;
|
|
24
|
+
vertical: string;
|
|
25
|
+
};
|
|
26
|
+
variant: {
|
|
27
|
+
thin: string;
|
|
28
|
+
thick: string;
|
|
29
|
+
};
|
|
30
|
+
}, undefined, "bg-border", unknown, unknown, undefined>>;
|
|
31
|
+
export interface SeparatorProps extends ViewProps, VariantProps<typeof separatorVariants> {
|
|
32
|
+
className?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Thickness in pixels, overriding the variant. Sets the height of a
|
|
35
|
+
* horizontal separator and the width of a vertical one.
|
|
36
|
+
*/
|
|
37
|
+
thickness?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the separator is only visual. A decorative separator is skipped by
|
|
40
|
+
* screen readers; set false when the split itself carries meaning — between
|
|
41
|
+
* two groups of menu items, say — and it is announced instead.
|
|
42
|
+
*/
|
|
43
|
+
decorative?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export declare const Separator: import("react").ForwardRefExoticComponent<SeparatorProps & import("react").RefAttributes<View>>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/separator/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAwBrB,CAAC;AAEH,MAAM,WAAW,cACf,SAAQ,SAAS,EACf,YAAY,CAAC,OAAO,iBAAiB,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,SAAS,iGA6BrB,CAAC"}
|