panelui-native 0.34.0 → 0.36.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 (50) hide show
  1. package/README.md +2 -1
  2. package/lib/module/components/input/index.js +135 -32
  3. package/lib/module/components/input/index.js.map +1 -1
  4. package/lib/module/components/otp-input/index.js +4 -1
  5. package/lib/module/components/otp-input/index.js.map +1 -1
  6. package/lib/module/components/panelside/index.js +1 -1
  7. package/lib/module/components/panelside/index.js.map +1 -1
  8. package/lib/module/components/progress/index.js +64 -24
  9. package/lib/module/components/progress/index.js.map +1 -1
  10. package/lib/module/components/swipe/index.js +537 -0
  11. package/lib/module/components/swipe/index.js.map +1 -0
  12. package/lib/module/components/textarea/index.js +3 -1
  13. package/lib/module/components/textarea/index.js.map +1 -1
  14. package/lib/module/components/time-picker/index.js +801 -0
  15. package/lib/module/components/time-picker/index.js.map +1 -0
  16. package/lib/module/icons/index.js +59 -0
  17. package/lib/module/icons/index.js.map +1 -1
  18. package/lib/module/index.js +4 -1
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/module/utils/time.js +180 -0
  21. package/lib/module/utils/time.js.map +1 -0
  22. package/lib/typescript/src/components/input/index.d.ts +92 -0
  23. package/lib/typescript/src/components/input/index.d.ts.map +1 -1
  24. package/lib/typescript/src/components/otp-input/index.d.ts.map +1 -1
  25. package/lib/typescript/src/components/progress/index.d.ts +25 -4
  26. package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
  27. package/lib/typescript/src/components/swipe/index.d.ts +206 -0
  28. package/lib/typescript/src/components/swipe/index.d.ts.map +1 -0
  29. package/lib/typescript/src/components/textarea/index.d.ts.map +1 -1
  30. package/lib/typescript/src/components/time-picker/index.d.ts +104 -0
  31. package/lib/typescript/src/components/time-picker/index.d.ts.map +1 -0
  32. package/lib/typescript/src/icons/index.d.ts +4 -0
  33. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  34. package/lib/typescript/src/index.d.ts +4 -1
  35. package/lib/typescript/src/index.d.ts.map +1 -1
  36. package/lib/typescript/src/utils/time.d.ts +88 -0
  37. package/lib/typescript/src/utils/time.d.ts.map +1 -0
  38. package/package.json +1 -1
  39. package/src/components/input/index.tsx +171 -29
  40. package/src/components/otp-input/index.tsx +4 -1
  41. package/src/components/panelside/index.tsx +1 -1
  42. package/src/components/progress/index.tsx +93 -25
  43. package/src/components/swipe/index.tsx +687 -0
  44. package/src/components/textarea/index.tsx +3 -1
  45. package/src/components/time-picker/index.tsx +971 -0
  46. package/src/icons/index.tsx +47 -0
  47. package/src/index.ts +34 -0
  48. package/src/theme/use-theme.ts +1 -1
  49. package/src/utils/time.ts +192 -0
  50. package/theme.css +32 -0
@@ -79,12 +79,15 @@ export { Slider, type SliderProps } from './components/slider/index.js';
79
79
  export { Spinner, type SpinnerProps } from './components/spinner/index.js';
80
80
  export { Steps, type StepsProps, type StepsItemProps, type StepsTriggerProps, type StepsIndicatorProps, type StepsSeparatorProps, type StepState, type StepsOrientation, } from './components/steps/index.js';
81
81
  export { Surface, type SurfaceProps } from './components/surface/index.js';
82
+ export { Swipe, type SwipeProps, type SwipePanelProps, type SwipeActionProps, type SwipeActionColor, type SwipeOpenSide, type SwipeHandle, } from './components/swipe/index.js';
82
83
  export { Switch, type SwitchProps } from './components/switch/index.js';
84
+ export { TimePicker, type TimePickerProps, type TimePickerLayout, type TimePickerPresentation, } from './components/time-picker/index.js';
83
85
  export { Timeline, type TimelineProps, type TimelineItemProps, type TimelineIndicatorProps, type TimelineStatProps, type TimelineVariant, type TimelineTone, } from './components/timeline/index.js';
84
86
  export { Toast, ToastViewport, toast, useToast, type ToastProps, type ToastOptions, type ToastItem, type ToastVariant, type ToastPlacement, type ToastHandle, type ToastIndicatorProps, type ToastCloseProps, } from './components/toast/index.js';
85
87
  export { Tooltip, type TooltipProps, type TooltipTriggerProps, type TooltipContentProps, type TooltipArrowProps, type TooltipTitleProps, type TooltipDescriptionProps, type TooltipPlacement, type TooltipAlign, type TooltipOpenOn, type TooltipVariant, } from './components/tooltip/index.js';
86
88
  export { Typography, type TypographyProps, type TypographyType, type TypographyHeadingProps, type TypographyParagraphProps, type TypographyCodeProps, } from './components/typography/index.js';
87
- export { AlertTriangleIcon, AppleIcon, ArrowDownIcon, ArrowUpIcon, ArrowUpRightIcon, BadgeCheckIcon, BellIcon, BookmarkIcon, CalendarIcon, CardIcon, CheckCircleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CircleIcon, CompassIcon, CopyIcon, CrosshairIcon, DownloadIcon, EllipsisIcon, EyeIcon, FacebookIcon, FileIcon, GoogleIcon, HeartIcon, IconColorProvider, InfoIcon, ImageIcon, LinkIcon, ListChecksIcon, LockIcon, MaximizeIcon, MenuIcon, MessageCircleIcon, MicIcon, MinusIcon, MoonIcon, PackageIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, PlusSquareIcon, ReceiptIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, SearchIcon, SendIcon, ShareNodesIcon, ShieldAlertIcon, ShieldCheckIcon, SparklesIcon, StarIcon, SunIcon, TrashIcon, UnlockIcon, XIcon, useIconColor, type IconProps, type ToggleIconProps, type BadgeCheckIconProps, } from './icons/index.js';
89
+ export { AlertTriangleIcon, AppleIcon, ArrowDownIcon, ArrowUpIcon, ArrowUpRightIcon, BadgeCheckIcon, BellIcon, BookmarkIcon, CalendarIcon, CardIcon, CheckCircleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CircleIcon, ClockIcon, CompassIcon, CopyIcon, CrosshairIcon, DownloadIcon, EllipsisIcon, EyeIcon, FacebookIcon, FileIcon, GoogleIcon, HeartIcon, IconColorProvider, InfoIcon, ImageIcon, KeyboardIcon, LinkIcon, ListChecksIcon, LockIcon, MaximizeIcon, MenuIcon, MessageCircleIcon, MicIcon, MinusIcon, MoonIcon, PackageIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, PlusSquareIcon, ReceiptIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, SearchIcon, SendIcon, ShareNodesIcon, ShieldAlertIcon, ShieldCheckIcon, SparklesIcon, StarIcon, SunIcon, TrashIcon, UnlockIcon, XIcon, useIconColor, type IconProps, type ToggleIconProps, type BadgeCheckIconProps, } from './icons/index.js';
88
90
  export * from './hooks/index.js';
89
91
  export { cn } from './utils/cn.js';
92
+ export { clampTime, compareTime, displayHour, formatTime, isSameTime, isTimeInRange, meridiemLabels, minutesToTime, roundToStep, timeFromDate, timeToDate, timeToMinutes, timesOfDay, type HourCycle, type TimeValue, } from './utils/time.js';
90
93
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Time-of-day helpers for TimePicker.
3
+ *
4
+ * A time here is `{ hour, minute }` on a 24-hour clock, not a `Date`. A `Date`
5
+ * cannot hold a time without also holding a day, so every caller with only a
6
+ * time has to invent a date to carry it and strip it off again afterwards —
7
+ * and the two conversions are where the daylight-saving bugs live. The pair of
8
+ * numbers is the whole value, and `timeFromDate` / `timeToDate` are here for
9
+ * the boundaries where a `Date` is genuinely what you have.
10
+ *
11
+ * Three rules hold throughout:
12
+ *
13
+ * - **`hour` is always 0–23**, whatever the picker is displaying. A 12-hour
14
+ * face is a rendering choice; storing 7pm as `{ hour: 7 }` with a separate
15
+ * meridiem flag means every comparison has to know about the flag.
16
+ * - **Minutes wrap into hours, and hours wrap into the day.** Stepping forward
17
+ * from 23:45 gives 00:00, not 24:00, so arithmetic can never produce a time
18
+ * that does not exist.
19
+ * - **Formatting goes through `Intl`, never through string concatenation.**
20
+ * Whether the meridiem is "PM", "pm" or absent entirely, and whether it
21
+ * leads or trails, belongs to the locale.
22
+ */
23
+ /** A time of day. `hour` is 0–23 regardless of how it is displayed. */
24
+ export interface TimeValue {
25
+ hour: number;
26
+ minute: number;
27
+ }
28
+ /** Which face a time is written on. `24` drops the meridiem entirely. */
29
+ export type HourCycle = 12 | 24;
30
+ /** Minutes since midnight — the form every comparison here works in. */
31
+ export declare function timeToMinutes(value: TimeValue): number;
32
+ /** The inverse, wrapping into the day so the result is always a real time. */
33
+ export declare function minutesToTime(minutes: number): TimeValue;
34
+ /** Negative if `a` is earlier, positive if later, `0` if the same time. */
35
+ export declare function compareTime(a: TimeValue, b: TimeValue): number;
36
+ export declare function isSameTime(a: TimeValue | null | undefined, b: TimeValue | null | undefined): boolean;
37
+ /**
38
+ * Holds a time inside a span, both ends inclusive and either one optional.
39
+ *
40
+ * Clamping rather than wrapping: a value outside the span is a value the
41
+ * caller has been refused, and the nearest allowed time is the useful answer.
42
+ */
43
+ export declare function clampTime(value: TimeValue, min?: TimeValue, max?: TimeValue): TimeValue;
44
+ export declare function isTimeInRange(value: TimeValue, min?: TimeValue, max?: TimeValue): boolean;
45
+ /**
46
+ * Rounds a time to the nearest multiple of `step` minutes.
47
+ *
48
+ * Rounding, not flooring: at a 30-minute step, 7:29 is a finger that stopped
49
+ * just short of half past rather than someone asking for seven o'clock.
50
+ */
51
+ export declare function roundToStep(value: TimeValue, step: number): TimeValue;
52
+ /** Every time in the day at `step`-minute intervals, from midnight. */
53
+ export declare function timesOfDay(step: number): TimeValue[];
54
+ /** The hour as it is written on the face: 1–12, or 0–23. */
55
+ export declare function displayHour(hour: number, hourCycle: HourCycle): number;
56
+ /** Rebuilds a 0–23 hour from what the face shows and which half of the day. */
57
+ export declare function hourFromDisplay(displayed: number, meridiem: 'am' | 'pm', hourCycle: HourCycle): number;
58
+ export declare function meridiemOf(hour: number): 'am' | 'pm';
59
+ /**
60
+ * The meridiem labels in the caller's locale, as `[am, pm]`.
61
+ *
62
+ * Read out of `Intl` rather than hardcoded, because "AM" is not universal —
63
+ * and taken from the *parts* rather than from the formatted string, since
64
+ * pulling it back out of "7:00 PM" means knowing where the locale puts it.
65
+ */
66
+ export declare function meridiemLabels(locale?: string): [string, string];
67
+ /** Two digits, so a column of minutes is a column and not a ragged edge. */
68
+ export declare function padTwo(value: number): string;
69
+ export interface FormatTimeOptions {
70
+ hourCycle?: HourCycle;
71
+ locale?: string;
72
+ }
73
+ /**
74
+ * One time as one line of text, in the caller's locale.
75
+ *
76
+ * Falls back to `H:MM` shapes if `Intl` is unavailable or throws on the tag —
77
+ * a picker that renders nothing is worse than one that renders plainly.
78
+ */
79
+ export declare function formatTime(value: TimeValue, { hourCycle, locale }?: FormatTimeOptions): string;
80
+ /** The time part of a `Date`, for callers whose value arrives as one. */
81
+ export declare function timeFromDate(date: Date): TimeValue;
82
+ /**
83
+ * A time put back onto a day. Defaults to today, and seconds are zeroed —
84
+ * a picker with no seconds column has no opinion about them, and carrying the
85
+ * ones that happened to be on the clock makes two equal times unequal.
86
+ */
87
+ export declare function timeToDate(value: TimeValue, day?: Date): Date;
88
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../../src/utils/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yEAAyE;AACzE,MAAM,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC;AAIhC,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEtD;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAGxD;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAE9D;AAED,wBAAgB,UAAU,CACxB,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EAC/B,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAC9B,OAAO,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,CAKvF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAKzF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAGrE;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAOpD;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAItE;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,GAAG,IAAI,EACrB,SAAS,EAAE,SAAS,GACnB,MAAM,CAIR;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAahE;AAED,4EAA4E;AAC5E,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,EAChB,EAAE,SAAc,EAAE,MAAM,EAAE,GAAE,iBAAsB,GACjD,MAAM,CAaR;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAElD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,IAAI,CAIzE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "panelui-native",
3
- "version": "0.34.0",
3
+ "version": "0.36.0",
4
4
  "description": "High-performance React Native UI components for Expo. Semantic design tokens, powered by Uniwind (Tailwind v4) and Reanimated.",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -14,13 +14,31 @@
14
14
  * ```tsx
15
15
  * <Input label="Email" placeholder="you@example.com" />
16
16
  * <Input variant="filled" size="lg" label="Name" isRequired />
17
+ * <Input label="Note" startContent={<PencilIcon size={18} />} />
17
18
  * ```
18
19
  *
19
- * For a field with an icon or a button attached, reach for `InputGroup` — it
20
- * measures its decorators and pads this field around them.
20
+ * ## An icon inside the field, and why it lives here
21
+ *
22
+ * `startContent` and `endContent` are measured and turned into padding on the
23
+ * text, so a value never runs underneath them however wide they turn out to
24
+ * be. They are positioned against the *field box* rather than against the
25
+ * component, which is the whole reason they are a prop rather than something
26
+ * you compose: a label and a description are laid out above and below the
27
+ * field, so anything centred on the component as a whole drifts upward the
28
+ * moment a label is added.
29
+ *
30
+ * `InputGroup` is still the right answer for a decorator that is not part of
31
+ * the field — a button attached to its end, a select bolted to its start, an
32
+ * addon with its own background. It measures the same way; it just spans a
33
+ * different box.
21
34
  */
22
- import { forwardRef, useCallback, useEffect, useState } from 'react';
23
- import { TextInput, View, type TextInputProps } from 'react-native';
35
+ import { forwardRef, useCallback, useEffect, useState, type ReactNode } from 'react';
36
+ import {
37
+ TextInput,
38
+ View,
39
+ type LayoutChangeEvent,
40
+ type TextInputProps,
41
+ } from 'react-native';
24
42
  import Animated, {
25
43
  interpolateColor,
26
44
  useAnimatedStyle,
@@ -30,8 +48,9 @@ import Animated, {
30
48
  import { tv, type VariantProps } from 'tailwind-variants';
31
49
  import { useCSSVariable } from 'uniwind';
32
50
  import type { KeyboardAvoidanceMode } from '../../hooks/use-keyboard-avoidance';
51
+ import { IconColorProvider } from '../../icons';
33
52
  import { KeyboardAvoider } from '../../primitives/keyboard-avoider';
34
- import { Text } from '../../primitives/text';
53
+ import { Text, textChildren } from '../../primitives/text';
35
54
  import { Label } from '../label';
36
55
 
37
56
  /** Long enough to read as a transition, short enough not to lag a fast tab. */
@@ -40,9 +59,25 @@ const FOCUS_DURATION = 150;
40
59
  const inputVariants = tv({
41
60
  slots: {
42
61
  container: 'w-full gap-1.5',
43
- field: 'w-full rounded-lg border text-foreground',
62
+ /*
63
+ * `font-normal` on a field that is not bold: this is a TextInput, so it
64
+ * does not go through the Text primitive and inherits nothing. The class
65
+ * is what an app's `--font-normal` token attaches to, and without it a
66
+ * custom font would stop at the edge of every field in the library.
67
+ */
68
+ field: 'w-full rounded-lg border font-normal text-foreground',
44
69
  description: 'text-sm text-muted-foreground',
45
70
  error: 'text-sm text-destructive',
71
+ /*
72
+ * The box the content is positioned against, and the reason this works
73
+ * where wrapping the whole component does not: it is the field alone, so
74
+ * a label above it and a description below it cannot move what is inside.
75
+ */
76
+ fieldBox: 'relative w-full',
77
+ startContent:
78
+ 'absolute bottom-0 start-0 top-0 z-10 flex-row items-center justify-center gap-2',
79
+ endContent:
80
+ 'absolute bottom-0 end-0 top-0 z-10 flex-row items-center justify-center gap-2',
46
81
  },
47
82
  variants: {
48
83
  variant: {
@@ -60,19 +95,33 @@ const inputVariants = tv({
60
95
  * below the middle of the box, a few pixels off whatever is beside them.
61
96
  * A length sets the size alone and leaves the line box the font's own.
62
97
  */
63
- sm: { field: 'h-10 px-3 text-[14px]' },
64
- md: { field: 'h-12 px-3.5 text-[16px]' },
65
- lg: { field: 'h-14 px-4 text-[16px]' },
98
+ // The content boxes take the field's own horizontal padding, so an icon
99
+ // sits at exactly the inset the text would have started at.
100
+ sm: { field: 'h-10 px-3 text-[14px]', startContent: 'px-3', endContent: 'px-3' },
101
+ md: { field: 'h-12 px-3.5 text-[16px]', startContent: 'px-3.5', endContent: 'px-3.5' },
102
+ lg: { field: 'h-14 px-4 text-[16px]', startContent: 'px-4', endContent: 'px-4' },
66
103
  },
67
104
  multiline: {
68
105
  // A multiline field grows, so a fixed height would crop it. Text starts
69
106
  // at the top rather than floating in the middle of an empty box — and
70
107
  // once there are several lines the leading is wanted back, since here it
71
108
  // separates the lines instead of pushing one off centre.
72
- true: { field: 'h-auto min-h-24 py-3 leading-normal' },
109
+ //
110
+ // The content follows the text to the top for the same reason: centred
111
+ // in a box that grows, an icon slides further from the line it belongs
112
+ // to with every line typed.
113
+ true: {
114
+ field: 'h-auto min-h-24 py-3 leading-normal',
115
+ startContent: 'bottom-auto py-3',
116
+ endContent: 'bottom-auto py-3',
117
+ },
73
118
  },
74
119
  disabled: {
75
- true: { field: 'opacity-[0.64]' },
120
+ true: {
121
+ field: 'opacity-[0.64]',
122
+ startContent: 'opacity-[0.64]',
123
+ endContent: 'opacity-[0.64]',
124
+ },
76
125
  },
77
126
  },
78
127
  defaultVariants: {
@@ -95,6 +144,24 @@ export interface InputProps
95
144
  /** Marks the field required — an asterisk on the label, and the a11y state. */
96
145
  isRequired?: boolean;
97
146
  disabled?: boolean;
147
+ /**
148
+ * Content inside the field, before the text — usually an icon. Measured, so
149
+ * the text is padded clear of it however wide it is.
150
+ *
151
+ * `start`, not `left`: it follows the reading direction, and swaps sides
152
+ * under `Direction dir="rtl"` along with the text it introduces.
153
+ */
154
+ startContent?: ReactNode;
155
+ /** Content inside the field, after the text — an icon, a unit, a count. */
156
+ endContent?: ReactNode;
157
+ /**
158
+ * Let touches reach the content instead of falling through to the field.
159
+ *
160
+ * Off by default: an icon is decoration, and a tap anywhere on a field
161
+ * should put the caret in it rather than hitting a dead spot. Turn it on for
162
+ * content that does something — a clear button, a show-password toggle.
163
+ */
164
+ interactiveContent?: boolean;
98
165
  /**
99
166
  * Keep the field clear of the software keyboard. Moves by exactly the
100
167
  * overlap, and not at all when the field is already clear — or when the
@@ -136,6 +203,9 @@ export const Input = forwardRef<TextInput, InputProps>(
136
203
  errorMessage,
137
204
  isRequired,
138
205
  disabled,
206
+ startContent,
207
+ endContent,
208
+ interactiveContent = false,
139
209
  variant,
140
210
  size,
141
211
  avoidKeyboard = false,
@@ -151,6 +221,10 @@ export const Input = forwardRef<TextInput, InputProps>(
151
221
  ) => {
152
222
  const [focused, setFocused] = useState(false);
153
223
  const invalid = !!errorMessage;
224
+ // Measured so the text can be padded clear of the content, whatever it
225
+ // turns out to be — an icon, a unit, a two-word label.
226
+ const [startWidth, setStartWidth] = useState(0);
227
+ const [endWidth, setEndWidth] = useState(0);
154
228
 
155
229
  const placeholderColor = useCSSVariable('--color-muted-foreground');
156
230
  const restColor = useCSSVariable('--color-input');
@@ -207,6 +281,49 @@ export const Input = forwardRef<TextInput, InputProps>(
207
281
  [onBlur]
208
282
  );
209
283
 
284
+ const handleStartLayout = useCallback((event: LayoutChangeEvent) => {
285
+ setStartWidth(event.nativeEvent.layout.width);
286
+ }, []);
287
+
288
+ const handleEndLayout = useCallback((event: LayoutChangeEvent) => {
289
+ setEndWidth(event.nativeEvent.layout.width);
290
+ }, []);
291
+
292
+ /*
293
+ * The content is quieter than the value. An icon at the same weight as the
294
+ * text reads as part of what was typed, and the placeholder colour is
295
+ * already the field's own word for "not the value".
296
+ */
297
+ const iconColor = typeof placeholderColor === 'string' ? placeholderColor : undefined;
298
+
299
+ const field = (
300
+ <AnimatedTextInput
301
+ ref={ref}
302
+ editable={!disabled}
303
+ onFocus={handleFocus}
304
+ onBlur={handleBlur}
305
+ accessibilityLabel={label}
306
+ accessibilityState={{ disabled: !!disabled }}
307
+ aria-required={isRequired}
308
+ aria-invalid={invalid}
309
+ className={slots.field({ className })}
310
+ style={[
311
+ borderStyle,
312
+ // Only the side that has content, and only once it has been
313
+ // measured — a 0 here would wipe out the field's own padding.
314
+ startWidth ? { paddingStart: startWidth } : null,
315
+ endWidth ? { paddingEnd: endWidth } : null,
316
+ // Caller styles come last so InputGroup can pad the field around its
317
+ // decorators, but never last enough to drop the animated border.
318
+ style,
319
+ ]}
320
+ placeholderTextColor={
321
+ typeof placeholderColor === 'string' ? placeholderColor : undefined
322
+ }
323
+ {...props}
324
+ />
325
+ );
326
+
210
327
  const body = (
211
328
  <>
212
329
  {label ? (
@@ -214,24 +331,49 @@ export const Input = forwardRef<TextInput, InputProps>(
214
331
  {label}
215
332
  </Label>
216
333
  ) : null}
217
- <AnimatedTextInput
218
- ref={ref}
219
- editable={!disabled}
220
- onFocus={handleFocus}
221
- onBlur={handleBlur}
222
- accessibilityLabel={label}
223
- accessibilityState={{ disabled: !!disabled }}
224
- aria-required={isRequired}
225
- aria-invalid={invalid}
226
- className={slots.field({ className })}
227
- // Caller styles come last so InputGroup can pad the field around its
228
- // decorators, but never last enough to drop the animated border.
229
- style={[borderStyle, style]}
230
- placeholderTextColor={
231
- typeof placeholderColor === 'string' ? placeholderColor : undefined
232
- }
233
- {...props}
234
- />
334
+ {startContent || endContent ? (
335
+ /*
336
+ * Only wrapped when there is something to position. An extra view
337
+ * around every field in an app is a real cost in a long form, and
338
+ * the field is `w-full` either way so the wrapper changes nothing
339
+ * else about the layout.
340
+ */
341
+ <View className={slots.fieldBox()}>
342
+ {startContent ? (
343
+ <View
344
+ onLayout={handleStartLayout}
345
+ pointerEvents={interactiveContent ? 'auto' : 'none'}
346
+ accessibilityElementsHidden={!interactiveContent}
347
+ importantForAccessibility={
348
+ interactiveContent ? 'auto' : 'no-hide-descendants'
349
+ }
350
+ className={slots.startContent()}
351
+ >
352
+ <IconColorProvider color={iconColor}>
353
+ {textChildren(startContent)}
354
+ </IconColorProvider>
355
+ </View>
356
+ ) : null}
357
+ {field}
358
+ {endContent ? (
359
+ <View
360
+ onLayout={handleEndLayout}
361
+ pointerEvents={interactiveContent ? 'auto' : 'none'}
362
+ accessibilityElementsHidden={!interactiveContent}
363
+ importantForAccessibility={
364
+ interactiveContent ? 'auto' : 'no-hide-descendants'
365
+ }
366
+ className={slots.endContent()}
367
+ >
368
+ <IconColorProvider color={iconColor}>
369
+ {textChildren(endContent)}
370
+ </IconColorProvider>
371
+ </View>
372
+ ) : null}
373
+ </View>
374
+ ) : (
375
+ field
376
+ )}
235
377
  {errorMessage ? (
236
378
  <Text className={slots.error()}>{errorMessage}</Text>
237
379
  ) : description ? (
@@ -49,7 +49,10 @@ const otpVariants = tv({
49
49
  container: 'gap-1.5',
50
50
  row: 'flex-row items-center',
51
51
  cell: 'items-center justify-center rounded-lg border border-input bg-background',
52
- char: 'text-foreground',
52
+ /* The typed character is drawn by an Animated.Text rather than the Text
53
+ primitive, so its weight class has to be written here for an app's
54
+ --font-normal token to reach it. */
55
+ char: 'font-normal text-foreground',
53
56
  caret: 'w-0.5 rounded-full bg-foreground',
54
57
  separator: 'h-0.5 rounded-full bg-border',
55
58
  error: 'text-sm text-destructive',
@@ -740,7 +740,7 @@ function PanelsideSearch({
740
740
  * text and the placeholder sit below the middle of the row. A length
741
741
  * sets the size alone and leaves the line box the font's own.
742
742
  */
743
- className={cn('h-full flex-1 text-[16px] text-foreground', className)}
743
+ className={cn('h-full flex-1 font-normal text-[16px] text-foreground', className)}
744
744
  style={typeof textTint === 'string' ? { color: textTint } : undefined}
745
745
  accessibilityRole="search"
746
746
  returnKeyType="search"