@thewhileloop/whileui 0.2.5 → 0.2.7
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 +109 -48
- package/dist/blocks/chat/chat.d.ts +49 -0
- package/dist/blocks/chat/chat.d.ts.map +1 -0
- package/dist/blocks/chat/chat.js +57 -0
- package/dist/blocks/chat/chat.js.map +1 -0
- package/dist/blocks/chat/index.d.ts +2 -0
- package/dist/blocks/chat/index.d.ts.map +1 -0
- package/dist/blocks/chat/index.js +2 -0
- package/dist/blocks/chat/index.js.map +1 -0
- package/dist/blocks/layout/index.d.ts +1 -0
- package/dist/blocks/layout/index.d.ts.map +1 -1
- package/dist/blocks/layout/index.js +1 -0
- package/dist/blocks/layout/index.js.map +1 -1
- package/dist/blocks/layout/smart-input.d.ts +22 -0
- package/dist/blocks/layout/smart-input.d.ts.map +1 -0
- package/dist/blocks/layout/smart-input.js +11 -0
- package/dist/blocks/layout/smart-input.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,27 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
Beautiful, accessible, themeable components built with [Uniwind](https://uniwind.dev) + Tailwind CSS v4.
|
|
6
6
|
|
|
7
|
+
**Requirements:** React 19+, React Native 0.81+, Expo 52+ (if using Expo). Supports React Native Web.
|
|
8
|
+
|
|
7
9
|
## Installation
|
|
8
10
|
|
|
9
11
|
```bash
|
|
10
|
-
npm install @thewhileloop/whileui
|
|
11
|
-
# or
|
|
12
12
|
bun add @thewhileloop/whileui
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
### Required Peer Dependencies
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
bun add react@^19.0.0 react-native@^0.81.0 uniwind@^1.0.0 tailwindcss@^4.0.0
|
|
19
|
-
bun add react-native-reanimated react-native-safe-area-context react-native-screens
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Portal Dependencies (Select, Popover, Tooltip, HoverCard)
|
|
23
|
-
|
|
24
|
-
```bash
|
|
13
|
+
bun add react@^19.0.0 react-native@^0.81.0 uniwind@^1.0.0 tailwindcss@^4.0.0 react-native-reanimated react-native-safe-area-context react-native-screens
|
|
14
|
+
# Only if you use Select, Popover, Tooltip, or HoverCard:
|
|
25
15
|
bun add @rn-primitives/portal @rn-primitives/hooks @rn-primitives/slot @rn-primitives/select @rn-primitives/popover @rn-primitives/tooltip @rn-primitives/hover-card
|
|
26
16
|
```
|
|
27
17
|
|
|
18
|
+
Use `npm install` instead of `bun add` if you prefer npm.
|
|
19
|
+
|
|
28
20
|
### Setup Uniwind (required)
|
|
29
21
|
|
|
30
22
|
1. **metro.config.js** (wrap with withUniwindConfig):
|
|
@@ -122,7 +114,7 @@ export default function App() {
|
|
|
122
114
|
}
|
|
123
115
|
```
|
|
124
116
|
|
|
125
|
-
> **Note:** `<PortalHost />`
|
|
117
|
+
> **Note:** If you use Select, Popover, Tooltip, or HoverCard, add `<PortalHost />` at the root of your app (as the last child).
|
|
126
118
|
|
|
127
119
|
## Usage
|
|
128
120
|
|
|
@@ -274,18 +266,27 @@ function MyScreen() {
|
|
|
274
266
|
|
|
275
267
|
### Layout
|
|
276
268
|
|
|
277
|
-
| Block | Description
|
|
278
|
-
| ---------------------- |
|
|
279
|
-
| **ActionBar** | Sticky bottom action row with safe-area padding
|
|
280
|
-
| **ConfirmActionSheet** | Reusable destructive confirmation sheet
|
|
281
|
-
| **FormModalScreen** | Modal scaffold for forms with loading states
|
|
282
|
-
| **EmptyState** | Empty content placeholder
|
|
283
|
-
| **ErrorState** | Error display with retry
|
|
284
|
-
| **LoadingScreen** | Full-screen loading indicator
|
|
285
|
-
| **
|
|
286
|
-
| **
|
|
287
|
-
| **
|
|
288
|
-
| **
|
|
269
|
+
| Block | Description |
|
|
270
|
+
| ---------------------- | ----------------------------------------------------------------------- |
|
|
271
|
+
| **ActionBar** | Sticky bottom action row with safe-area padding |
|
|
272
|
+
| **ConfirmActionSheet** | Reusable destructive confirmation sheet |
|
|
273
|
+
| **FormModalScreen** | Modal scaffold for forms with loading states |
|
|
274
|
+
| **EmptyState** | Empty content placeholder |
|
|
275
|
+
| **ErrorState** | Error display with retry |
|
|
276
|
+
| **LoadingScreen** | Full-screen loading indicator |
|
|
277
|
+
| **SmartInput** | Keyboard-aware compose input: left/center/right slots, bar/card variant |
|
|
278
|
+
| **OnboardingScreen** | Onboarding flow screen |
|
|
279
|
+
| **SplashScreen** | Branded splash (fade/scale/slide variants) |
|
|
280
|
+
| **MinimalSplash** | Minimal monochrome splash |
|
|
281
|
+
| **BrandedSplash** | Splash with brand imagery |
|
|
282
|
+
|
|
283
|
+
### Chat
|
|
284
|
+
|
|
285
|
+
| Block | Description |
|
|
286
|
+
| --------------------- | ------------------------------------------------ |
|
|
287
|
+
| **Chat** | AI-style chat: messages, suggestions, SmartInput |
|
|
288
|
+
| **ChatMessageBubble** | Message bubble (user/assistant, big/small text) |
|
|
289
|
+
| **ChatSuggestions** | Suggestion chips when empty |
|
|
289
290
|
|
|
290
291
|
### Profile & Settings
|
|
291
292
|
|
|
@@ -314,7 +315,6 @@ function MyScreen() {
|
|
|
314
315
|
| **CheckoutSummary** | Cart summary with line items |
|
|
315
316
|
| **MetricCard** | Stats/progress card for dashboards |
|
|
316
317
|
|
|
317
|
-
|
|
318
318
|
### Media
|
|
319
319
|
|
|
320
320
|
| Block | Description |
|
|
@@ -374,12 +374,13 @@ import { AppShell, Header, BottomNav, ScrollView } from '@thewhileloop/whileui';
|
|
|
374
374
|
|
|
375
375
|
### Flow Patterns
|
|
376
376
|
|
|
377
|
-
| Flow | Blocks
|
|
378
|
-
| ---------- |
|
|
377
|
+
| Flow | Blocks |
|
|
378
|
+
| ---------- | ---------------------------------------------------------------------------------- |
|
|
379
379
|
| Auth | SignInForm → SignUpForm → ForgotPasswordForm → VerifyEmailForm → ResetPasswordForm |
|
|
380
|
-
| Settings | ProfileHeader + SettingsSection + SettingsItem (+ FormModalScreen for edits)
|
|
381
|
-
| E-commerce | ProductCard list → CheckoutSummary + ActionBar
|
|
382
|
-
|
|
|
380
|
+
| Settings | ProfileHeader + SettingsSection + SettingsItem (+ FormModalScreen for edits) |
|
|
381
|
+
| E-commerce | ProductCard list → CheckoutSummary + ActionBar |
|
|
382
|
+
| Chat | Chat + ChatSuggestions + SmartInput (attach, send). Extensible for images/tags |
|
|
383
|
+
| App shell | AppShell + Header + BottomNav + content |
|
|
383
384
|
|
|
384
385
|
Block props: see TypeScript interfaces in `packages/ui/src/blocks`.
|
|
385
386
|
|
|
@@ -508,7 +509,6 @@ const adapter: ThemeBridgeAdapter = {
|
|
|
508
509
|
const { mode, resolvedTheme, setMode, cycleMode } = useThemeBridge({ adapter });
|
|
509
510
|
```
|
|
510
511
|
|
|
511
|
-
|
|
512
512
|
## Tech Stack
|
|
513
513
|
|
|
514
514
|
- **Styling**: [Uniwind](https://uniwind.dev) (free tier) + Tailwind CSS v4
|
|
@@ -517,12 +517,6 @@ const { mode, resolvedTheme, setMode, cycleMode } = useThemeBridge({ adapter });
|
|
|
517
517
|
- **Expo**: SDK 54
|
|
518
518
|
- **Monorepo**: bun + Turborepo
|
|
519
519
|
|
|
520
|
-
## License
|
|
521
|
-
|
|
522
|
-
MIT
|
|
523
|
-
|
|
524
|
-
---
|
|
525
|
-
|
|
526
520
|
# API Reference
|
|
527
521
|
|
|
528
522
|
## Button
|
|
@@ -556,12 +550,12 @@ import { Input } from '@thewhileloop/whileui';
|
|
|
556
550
|
<Input placeholder="Email" variant="default" value={value} onChangeText={setValue} />;
|
|
557
551
|
```
|
|
558
552
|
|
|
559
|
-
| Prop | Type | Default | Description
|
|
560
|
-
| -------------------- | ---------------------- | ----------- |
|
|
561
|
-
| variant | `'default' \| 'error'` | `'default'` | Input style variant
|
|
562
|
-
| placeholder | `string` | — | Placeholder text
|
|
563
|
-
| placeholderTextColor | `string` | — | Hex for placeholder (theme-aware when provided)
|
|
564
|
-
| editable | `boolean` | `true` | Whether input is editable
|
|
553
|
+
| Prop | Type | Default | Description |
|
|
554
|
+
| -------------------- | ---------------------- | ----------- | ----------------------------------------------- |
|
|
555
|
+
| variant | `'default' \| 'error'` | `'default'` | Input style variant |
|
|
556
|
+
| placeholder | `string` | — | Placeholder text |
|
|
557
|
+
| placeholderTextColor | `string` | — | Hex for placeholder (theme-aware when provided) |
|
|
558
|
+
| editable | `boolean` | `true` | Whether input is editable |
|
|
565
559
|
|
|
566
560
|
## NumericInput
|
|
567
561
|
|
|
@@ -585,10 +579,10 @@ import { NumericInput } from '@thewhileloop/whileui';
|
|
|
585
579
|
| variant | `'default' \| 'error'` | `'default'` | Input style |
|
|
586
580
|
| size | `'default' \| 'compact'` | `'default'` | Density size |
|
|
587
581
|
| value | `number \| null` | — | Controlled numeric value |
|
|
588
|
-
| onValueChange
|
|
582
|
+
| onValueChange | `(value: number \| null) => void` | — | Numeric value change callback |
|
|
589
583
|
| placeholderTextColor | `string` | — | Hex for placeholder |
|
|
590
584
|
| prefix / suffix | `ReactNode` | — | Left/right slots |
|
|
591
|
-
| showSteppers
|
|
585
|
+
| showSteppers | `boolean` | `false` | Show decrement/increment controls |
|
|
592
586
|
|
|
593
587
|
## FormField
|
|
594
588
|
|
|
@@ -1096,6 +1090,69 @@ import { ActionBar, Button, ButtonText } from '@thewhileloop/whileui';
|
|
|
1096
1090
|
</ActionBar>;
|
|
1097
1091
|
```
|
|
1098
1092
|
|
|
1093
|
+
## SmartInput
|
|
1094
|
+
|
|
1095
|
+
Keyboard-aware compose input. `variant`: "bar" (sticky bottom) or "card" (floating). Slots: `leftSlot`, `centerSlot` (intent selector), `rightSlot`. `submitBehavior`: "newline" (default) or "submit"/"blurAndSubmit". Forwards ref to `TextInput`.
|
|
1096
|
+
|
|
1097
|
+
```tsx
|
|
1098
|
+
import { SmartInput, Button, ButtonText } from '@thewhileloop/whileui';
|
|
1099
|
+
|
|
1100
|
+
<SmartInput
|
|
1101
|
+
value={message}
|
|
1102
|
+
onChangeText={setMessage}
|
|
1103
|
+
placeholder="Type a message..."
|
|
1104
|
+
leftSlot={
|
|
1105
|
+
<Button variant="ghost" size="icon">
|
|
1106
|
+
<Icon name="add" />
|
|
1107
|
+
</Button>
|
|
1108
|
+
}
|
|
1109
|
+
rightSlot={
|
|
1110
|
+
<Button size="icon" onPress={handleSend}>
|
|
1111
|
+
<ButtonText>Send</ButtonText>
|
|
1112
|
+
</Button>
|
|
1113
|
+
}
|
|
1114
|
+
/>;
|
|
1115
|
+
```
|
|
1116
|
+
|
|
1117
|
+
## Chat
|
|
1118
|
+
|
|
1119
|
+
AI-style chat: message list, suggestion chips when empty, SmartInput with attach/send slots. Uses semantic tokens; theme via `global.css`. Copy-paste block — edit directly. `renderMessage` for markdown/code, `loadingIndicator` for typing state.
|
|
1120
|
+
|
|
1121
|
+
```tsx
|
|
1122
|
+
import { Chat, type ChatMessage } from '@thewhileloop/whileui';
|
|
1123
|
+
|
|
1124
|
+
const [messages, setMessages] = useState<ChatMessage[]>([...]);
|
|
1125
|
+
const [value, setValue] = useState('');
|
|
1126
|
+
|
|
1127
|
+
<Chat
|
|
1128
|
+
messages={messages}
|
|
1129
|
+
value={value}
|
|
1130
|
+
onChangeText={setValue}
|
|
1131
|
+
onSend={() => { /* append user msg, clear input */ }}
|
|
1132
|
+
placeholder="Message..."
|
|
1133
|
+
suggestions={['Summarize this', 'Explain simply', 'Translate']}
|
|
1134
|
+
onSuggestionPress={(text) => setValue(text)}
|
|
1135
|
+
emptyTitle="How can I help?"
|
|
1136
|
+
emptyDescription="Ask anything."
|
|
1137
|
+
leftSlot={<Button variant="ghost" size="icon"><Icon name="paperclip" /></Button>}
|
|
1138
|
+
rightSlot={<Button size="icon" onPress={handleSend}><Icon name="send" /></Button>}
|
|
1139
|
+
/>;
|
|
1140
|
+
```
|
|
1141
|
+
|
|
1142
|
+
| Prop | Type | Description |
|
|
1143
|
+
| ------------------------ | -------------------- | ------------------------------------------------- |
|
|
1144
|
+
| `messages` | `ChatMessage[]` | `{ id, role, content, secondary?, contentSize? }` |
|
|
1145
|
+
| `value` | `string` | Input value |
|
|
1146
|
+
| `onChangeText` | `(text) => void` | Input change |
|
|
1147
|
+
| `onSend` | `() => void` | Send handler |
|
|
1148
|
+
| `suggestions` | `string[]` | Chips when empty |
|
|
1149
|
+
| `leftSlot` / `rightSlot` | `ReactNode` | Attach, send, etc. |
|
|
1150
|
+
| `exampleMessage` | `ChatMessage` | Shown in empty state |
|
|
1151
|
+
| `renderMessage` | `(msg) => ReactNode` | Custom message (markdown, code, images) |
|
|
1152
|
+
| `loadingIndicator` | `ReactNode` | Shown when loading (typing dots) |
|
|
1153
|
+
| `inputSafeArea` | `boolean` | SmartInput safe-area (default `true`) |
|
|
1154
|
+
| `keyboardVerticalOffset` | `number` | For header offset when keyboard opens |
|
|
1155
|
+
|
|
1099
1156
|
## ConfirmActionSheet
|
|
1100
1157
|
|
|
1101
1158
|
```tsx
|
|
@@ -1285,3 +1342,7 @@ import { DrawerMenu } from '@thewhileloop/whileui';
|
|
|
1285
1342
|
footer={<Text>v1.0</Text>}
|
|
1286
1343
|
/>;
|
|
1287
1344
|
```
|
|
1345
|
+
|
|
1346
|
+
## License
|
|
1347
|
+
|
|
1348
|
+
MIT — [Source](https://github.com/whileloop-app/whileui)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ChatMessage {
|
|
3
|
+
id: string;
|
|
4
|
+
role: 'user' | 'assistant' | 'system';
|
|
5
|
+
content: string;
|
|
6
|
+
/** Secondary text (small, muted) — timestamps, meta. */
|
|
7
|
+
secondary?: string;
|
|
8
|
+
/** Main content size: sm (small), default, lg (big). */
|
|
9
|
+
contentSize?: 'sm' | 'default' | 'lg';
|
|
10
|
+
}
|
|
11
|
+
export interface ChatSuggestionsProps {
|
|
12
|
+
suggestions: string[];
|
|
13
|
+
onSelect: (text: string) => void;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ChatProps {
|
|
17
|
+
messages: ChatMessage[];
|
|
18
|
+
value: string;
|
|
19
|
+
onChangeText: (text: string) => void;
|
|
20
|
+
onSend: () => void;
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
suggestions?: string[];
|
|
23
|
+
onSuggestionPress?: (text: string) => void;
|
|
24
|
+
leftSlot?: React.ReactNode;
|
|
25
|
+
rightSlot?: React.ReactNode;
|
|
26
|
+
loading?: boolean;
|
|
27
|
+
header?: React.ReactNode;
|
|
28
|
+
emptyTitle?: string;
|
|
29
|
+
emptyDescription?: string;
|
|
30
|
+
/** Example message shown in empty state so users see the bubble UI. */
|
|
31
|
+
exampleMessage?: ChatMessage;
|
|
32
|
+
/** Custom message renderer (markdown, code, images). Falls back to ChatMessageBubble. */
|
|
33
|
+
renderMessage?: (message: ChatMessage) => React.ReactNode;
|
|
34
|
+
/** Shown at bottom when loading (typing indicator). */
|
|
35
|
+
loadingIndicator?: React.ReactNode;
|
|
36
|
+
/** Passed to SmartInput. Use false when Chat is in a contained demo. */
|
|
37
|
+
inputSafeArea?: boolean;
|
|
38
|
+
/** Offset for KeyboardAvoidingView when Chat has a header (e.g. StatusBar + header height). */
|
|
39
|
+
keyboardVerticalOffset?: number;
|
|
40
|
+
className?: string;
|
|
41
|
+
messagesClassName?: string;
|
|
42
|
+
}
|
|
43
|
+
export declare function ChatMessageBubble({ message, contentClassName, }: {
|
|
44
|
+
message: ChatMessage;
|
|
45
|
+
contentClassName?: string;
|
|
46
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export declare function ChatSuggestions({ suggestions, onSelect, className }: ChatSuggestionsProps): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
export declare function Chat({ messages, value, onChangeText, onSend, placeholder, suggestions, onSuggestionPress, leftSlot, rightSlot, loading, header, emptyTitle, emptyDescription, exampleMessage, renderMessage, loadingIndicator, inputSafeArea, keyboardVerticalOffset, className, messagesClassName, }: ChatProps): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/blocks/chat/chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AASjD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;CAEvC;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,yFAAyF;IACzF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+FAA+F;IAC/F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAwBD,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,gBAAgB,GACjB,EAAE;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,2CAoCA;AAID,wBAAgB,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CAgBzF;AAID,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,MAAM,EACN,WAA0B,EAC1B,WAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,OAAe,EACf,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAoB,EACpB,sBAA0B,EAC1B,SAAS,EACT,iBAAiB,GAClB,EAAE,SAAS,2CAgFX"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useRef, useEffect } from 'react';
|
|
3
|
+
import { View, ScrollView, Pressable, KeyboardAvoidingView, Platform } from 'react-native';
|
|
4
|
+
import { Text } from '../../components/text';
|
|
5
|
+
import { SmartInput } from '../layout/smart-input';
|
|
6
|
+
import { cn } from '../../lib/cn';
|
|
7
|
+
import { tv } from '../../lib/tv';
|
|
8
|
+
// ─── ChatMessage Variants ────────────────────────────────────
|
|
9
|
+
const contentSizeClasses = {
|
|
10
|
+
sm: 'text-sm',
|
|
11
|
+
default: 'text-base',
|
|
12
|
+
lg: 'text-lg',
|
|
13
|
+
};
|
|
14
|
+
const chatMessageBubbleVariants = tv({
|
|
15
|
+
base: 'max-w-[85%] rounded-2xl px-4 py-3',
|
|
16
|
+
variants: {
|
|
17
|
+
role: {
|
|
18
|
+
user: 'self-end bg-primary',
|
|
19
|
+
assistant: 'self-start bg-muted',
|
|
20
|
+
system: 'self-center bg-muted/50 max-w-[90%]',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
defaultVariants: { role: 'assistant' },
|
|
24
|
+
});
|
|
25
|
+
// ─── ChatMessage ─────────────────────────────────────────────
|
|
26
|
+
export function ChatMessageBubble({ message, contentClassName, }) {
|
|
27
|
+
const role = message.role === 'system' ? 'system' : message.role;
|
|
28
|
+
const isUser = message.role === 'user';
|
|
29
|
+
const sizeClass = contentSizeClasses[message.contentSize ?? 'default'];
|
|
30
|
+
return (_jsxs(View, { accessible: true, accessibilityRole: "none", accessibilityLabel: isUser ? 'Your message' : message.role === 'system' ? 'System message' : 'Assistant message', className: chatMessageBubbleVariants({ role }), children: [_jsx(Text, { className: cn('leading-relaxed', sizeClass, isUser ? 'text-primary-foreground' : 'text-foreground', contentClassName), children: message.content }), message.secondary && (_jsx(Text, { className: cn('mt-1 text-xs', isUser ? 'text-primary-foreground/70' : 'text-muted-foreground'), children: message.secondary }))] }));
|
|
31
|
+
}
|
|
32
|
+
// ─── ChatSuggestions ──────────────────────────────────────────
|
|
33
|
+
export function ChatSuggestions({ suggestions, onSelect, className }) {
|
|
34
|
+
return (_jsx(View, { className: cn('flex-row flex-wrap justify-center gap-2 px-4 py-6', className), children: suggestions.map((text, i) => (_jsx(Pressable, { onPress: () => onSelect(text), accessibilityRole: "button", accessibilityLabel: `Suggestion: ${text}`, className: "rounded-full border border-input bg-background px-4 py-2 active:bg-muted", children: _jsx(Text, { className: "text-sm text-foreground", children: text }) }, `${text}-${i}`))) }));
|
|
35
|
+
}
|
|
36
|
+
// ─── Chat ────────────────────────────────────────────────────
|
|
37
|
+
export function Chat({ messages, value, onChangeText, onSend, placeholder = 'Message...', suggestions = [], onSuggestionPress, leftSlot, rightSlot, loading = false, header, emptyTitle, emptyDescription, exampleMessage, renderMessage, loadingIndicator, inputSafeArea = true, keyboardVerticalOffset = 0, className, messagesClassName, }) {
|
|
38
|
+
const scrollRef = useRef(null);
|
|
39
|
+
const isEmpty = messages.length === 0;
|
|
40
|
+
const showSuggestions = isEmpty && suggestions.length > 0;
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (!showSuggestions && messages.length > 0) {
|
|
43
|
+
scrollRef.current?.scrollToEnd({ animated: true });
|
|
44
|
+
}
|
|
45
|
+
}, [messages.length, showSuggestions]);
|
|
46
|
+
const defaultRightSlot = rightSlot ?? (_jsx(ChatSendButton, { onPress: onSend, disabled: loading || !value.trim() }));
|
|
47
|
+
return (_jsxs(KeyboardAvoidingView, { behavior: Platform.OS === 'ios' ? 'padding' : undefined, keyboardVerticalOffset: keyboardVerticalOffset, style: { flex: 1 }, className: className, children: [header, _jsx(ScrollView, { ref: scrollRef, className: cn('flex-1', messagesClassName), contentContainerStyle: {
|
|
48
|
+
flexGrow: 1,
|
|
49
|
+
paddingBottom: 8,
|
|
50
|
+
justifyContent: showSuggestions ? 'center' : 'flex-end',
|
|
51
|
+
}, keyboardShouldPersistTaps: "handled", children: showSuggestions ? (_jsxs(View, { className: "flex-1 justify-center", children: [exampleMessage && (_jsx(View, { className: "mb-6 px-4", children: renderMessage ? (renderMessage(exampleMessage)) : (_jsx(ChatMessageBubble, { message: exampleMessage })) })), emptyTitle && (_jsx(Text, { className: "mb-1 text-center text-lg font-medium text-foreground", children: emptyTitle })), emptyDescription && (_jsx(Text, { className: "mb-4 text-center text-sm text-muted-foreground", children: emptyDescription })), _jsx(ChatSuggestions, { suggestions: suggestions, onSelect: onSuggestionPress ?? (() => { }) })] })) : (_jsxs(View, { className: "gap-3 px-4 pt-4", children: [messages.map((msg) => renderMessage ? (_jsx(React.Fragment, { children: renderMessage(msg) }, msg.id)) : (_jsx(ChatMessageBubble, { message: msg }, msg.id))), loading && loadingIndicator && _jsx(View, { className: "px-4", children: loadingIndicator })] })) }), _jsx(SmartInput, { value: value, onChangeText: onChangeText, placeholder: placeholder, leftSlot: leftSlot, rightSlot: defaultRightSlot, editable: !loading, safeArea: inputSafeArea })] }));
|
|
52
|
+
}
|
|
53
|
+
// ─── ChatSendButton ───────────────────────────────────────────
|
|
54
|
+
function ChatSendButton({ onPress, disabled }) {
|
|
55
|
+
return (_jsx(Pressable, { onPress: onPress, disabled: disabled, accessibilityRole: "button", accessibilityLabel: disabled ? 'Send (disabled)' : 'Send message', className: cn('h-11 w-11 items-center justify-center rounded-full', disabled ? 'bg-muted opacity-50' : 'bg-primary active:opacity-90'), children: _jsx(Text, { className: "text-lg text-primary-foreground", children: "\u2191" }) }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/blocks/chat/chat.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAiDlC,gEAAgE;AAEhE,MAAM,kBAAkB,GAAG;IACzB,EAAE,EAAE,SAAS;IACb,OAAO,EAAE,WAAW;IACpB,EAAE,EAAE,SAAS;CACL,CAAC;AAEX,MAAM,yBAAyB,GAAG,EAAE,CAAC;IACnC,IAAI,EAAE,mCAAmC;IACzC,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,qBAAqB;YAChC,MAAM,EAAE,qCAAqC;SAC9C;KACF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;CACvC,CAAC,CAAC;AAEH,gEAAgE;AAEhE,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,EACP,gBAAgB,GAIjB;IACC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;IACvC,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;IAEvE,OAAO,CACL,MAAC,IAAI,IACH,UAAU,QACV,iBAAiB,EAAC,MAAM,EACxB,kBAAkB,EAChB,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,EAE9F,SAAS,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,aAE9C,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,iBAAiB,EACjB,SAAS,EACT,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,iBAAiB,EACtD,gBAAgB,CACjB,YAEA,OAAO,CAAC,OAAO,GACX,EACN,OAAO,CAAC,SAAS,IAAI,CACpB,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,cAAc,EACd,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,uBAAuB,CAChE,YAEA,OAAO,CAAC,SAAS,GACb,CACR,IACI,CACR,CAAC;AACJ,CAAC;AAED,iEAAiE;AAEjE,MAAM,UAAU,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAwB;IACxF,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,YAChF,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,SAAS,IAER,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7B,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,eAAe,IAAI,EAAE,EACzC,SAAS,EAAC,0EAA0E,YAEpF,KAAC,IAAI,IAAC,SAAS,EAAC,yBAAyB,YAAE,IAAI,GAAQ,IANlD,GAAG,IAAI,IAAI,CAAC,EAAE,CAOT,CACb,CAAC,GACG,CACR,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,IAAI,CAAC,EACnB,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,MAAM,EACN,WAAW,GAAG,YAAY,EAC1B,WAAW,GAAG,EAAE,EAChB,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,OAAO,GAAG,KAAK,EACf,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,GAAG,IAAI,EACpB,sBAAsB,GAAG,CAAC,EAC1B,SAAS,EACT,iBAAiB,GACP;IACV,MAAM,SAAS,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,OAAO,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAEvC,MAAM,gBAAgB,GAAG,SAAS,IAAI,CACpC,KAAC,cAAc,IAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAI,CACxE,CAAC;IAEF,OAAO,CACL,MAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACvD,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAClB,SAAS,EAAE,SAAS,aAEnB,MAAM,EACP,KAAC,UAAU,IACT,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAC1C,qBAAqB,EAAE;oBACrB,QAAQ,EAAE,CAAC;oBACX,aAAa,EAAE,CAAC;oBAChB,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;iBACxD,EACD,yBAAyB,EAAC,SAAS,YAElC,eAAe,CAAC,CAAC,CAAC,CACjB,MAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,aACpC,cAAc,IAAI,CACjB,KAAC,IAAI,IAAC,SAAS,EAAC,WAAW,YACxB,aAAa,CAAC,CAAC,CAAC,CACf,aAAa,CAAC,cAAc,CAAC,CAC9B,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,IAAC,OAAO,EAAE,cAAc,GAAI,CAC/C,GACI,CACR,EACA,UAAU,IAAI,CACb,KAAC,IAAI,IAAC,SAAS,EAAC,sDAAsD,YACnE,UAAU,GACN,CACR,EACA,gBAAgB,IAAI,CACnB,KAAC,IAAI,IAAC,SAAS,EAAC,gDAAgD,YAC7D,gBAAgB,GACZ,CACR,EACD,KAAC,eAAe,IAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,GAAI,IACnF,CACR,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,SAAS,EAAC,iBAAiB,aAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACpB,aAAa,CAAC,CAAC,CAAC,CACd,KAAC,KAAK,CAAC,QAAQ,cAAe,aAAa,CAAC,GAAG,CAAC,IAA3B,GAAG,CAAC,EAAE,CAAuC,CACnE,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,IAAc,OAAO,EAAE,GAAG,IAApB,GAAG,CAAC,EAAE,CAAkB,CACjD,CACF,EACA,OAAO,IAAI,gBAAgB,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,MAAM,YAAE,gBAAgB,GAAQ,IAC3E,CACR,GACU,EACb,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,CAAC,OAAO,EAClB,QAAQ,EAAE,aAAa,GACvB,IACmB,CACxB,CAAC;AACJ,CAAC;AAED,iEAAiE;AAEjE,SAAS,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAA+C;IACxF,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,EACjE,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,8BAA8B,CAClE,YAED,KAAC,IAAI,IAAC,SAAS,EAAC,iCAAiC,uBAAS,GAChD,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,eAAe,GAIhB,MAAM,QAAQ,CAAC"}
|
|
@@ -5,5 +5,6 @@ export { EmptyState, type EmptyStateProps } from './empty-state';
|
|
|
5
5
|
export { ErrorState, type ErrorStateProps } from './error-state';
|
|
6
6
|
export { FormModalScreen, type FormModalScreenProps } from './form-modal-screen';
|
|
7
7
|
export { LoadingScreen, type LoadingScreenProps } from './loading-screen';
|
|
8
|
+
export { SmartInput, type SmartInputProps } from './smart-input';
|
|
8
9
|
export { OnboardingScreen, type OnboardingScreenProps, type OnboardingSlide, } from './onboarding-screen';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC"}
|
|
@@ -5,5 +5,6 @@ export { EmptyState } from './empty-state';
|
|
|
5
5
|
export { ErrorState } from './error-state';
|
|
6
6
|
export { FormModalScreen } from './form-modal-screen';
|
|
7
7
|
export { LoadingScreen } from './loading-screen';
|
|
8
|
+
export { SmartInput } from './smart-input';
|
|
8
9
|
export { OnboardingScreen, } from './onboarding-screen';
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,GAInB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAA6B,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAA2B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,gBAAgB,GAGjB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,GAInB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAA6B,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAA2B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,gBAAgB,GAGjB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TextInput, type TextInputProps } from 'react-native';
|
|
3
|
+
export interface SmartInputProps extends TextInputProps {
|
|
4
|
+
/** Left slot: emoji, attach, etc. */
|
|
5
|
+
leftSlot?: React.ReactNode;
|
|
6
|
+
/** Center slot: intent selector, model picker, etc. */
|
|
7
|
+
centerSlot?: React.ReactNode;
|
|
8
|
+
/** Right slot: send button, etc. */
|
|
9
|
+
rightSlot?: React.ReactNode;
|
|
10
|
+
/** Bar = sticky bottom with border-t. Card = floating, no top border, rounded. */
|
|
11
|
+
variant?: 'bar' | 'card';
|
|
12
|
+
/** Container className */
|
|
13
|
+
className?: string;
|
|
14
|
+
/** Input field className */
|
|
15
|
+
inputClassName?: string;
|
|
16
|
+
/** 'newline' = Enter adds newline. 'submit' = Enter triggers onSubmitEditing. Default 'newline'. */
|
|
17
|
+
submitBehavior?: 'newline' | 'submit' | 'blurAndSubmit';
|
|
18
|
+
/** Use safe area insets for bottom padding */
|
|
19
|
+
safeArea?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare const SmartInput: React.ForwardRefExoticComponent<SmartInputProps & React.RefAttributes<TextInput>>;
|
|
22
|
+
//# sourceMappingURL=smart-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-input.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/smart-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAQ,SAAS,EAAkC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAIpG,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uDAAuD;IACvD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,oCAAoC;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,kFAAkF;IAClF,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACzB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oGAAoG;IACpG,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,eAAe,CAAC;IACxD,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,mFAqDrB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { View, TextInput, KeyboardAvoidingView, Platform } from 'react-native';
|
|
4
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
5
|
+
import { cn } from '../../lib/cn';
|
|
6
|
+
export const SmartInput = forwardRef(function SmartInput({ leftSlot, centerSlot, rightSlot, variant = 'bar', className, inputClassName, submitBehavior = 'newline', safeArea = true, placeholderTextColor, editable = true, ...props }, ref) {
|
|
7
|
+
const insets = useSafeAreaInsets();
|
|
8
|
+
const bottomPadding = safeArea ? Math.max(insets.bottom, 12) : 12;
|
|
9
|
+
return (_jsx(KeyboardAvoidingView, { behavior: Platform.OS === 'ios' ? 'padding' : undefined, className: "w-full", children: _jsxs(View, { className: cn('w-full flex-row items-center gap-2 px-3 py-2 bg-background', variant === 'bar' && 'border-t border-border', variant === 'card' && 'rounded-2xl border border-border shadow-md', className), style: { paddingBottom: bottomPadding }, children: [leftSlot && _jsx(View, { className: "shrink-0", children: leftSlot }), centerSlot && _jsx(View, { className: "shrink-0", children: centerSlot }), _jsx(TextInput, { ref: ref, className: cn('flex-1 min-h-11 max-h-[120px] rounded-xl border border-input bg-background px-4 py-3 text-sm text-foreground placeholder:text-muted-foreground', !editable && 'opacity-50', inputClassName), multiline: true, submitBehavior: submitBehavior, textAlignVertical: "top", placeholderTextColor: placeholderTextColor, editable: editable, ...props }), rightSlot && _jsx(View, { className: "shrink-0", children: rightSlot })] }) }));
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=smart-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-input.js","sourceRoot":"","sources":["../../../src/blocks/layout/smart-input.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAuB,MAAM,cAAc,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAqBlC,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAA6B,SAAS,UAAU,CAClF,EACE,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,GAAG,KAAK,EACf,SAAS,EACT,cAAc,EACd,cAAc,GAAG,SAAS,EAC1B,QAAQ,GAAG,IAAI,EACf,oBAAoB,EACpB,QAAQ,GAAG,IAAI,EACf,GAAG,KAAK,EACT,EACD,GAAG;IAEH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,OAAO,CACL,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACvD,SAAS,EAAC,QAAQ,YAElB,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,4DAA4D,EAC5D,OAAO,KAAK,KAAK,IAAI,wBAAwB,EAC7C,OAAO,KAAK,MAAM,IAAI,4CAA4C,EAClE,SAAS,CACV,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,aAEtC,QAAQ,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,YAAE,QAAQ,GAAQ,EACxD,UAAU,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,YAAE,UAAU,GAAQ,EAC7D,KAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,gJAAgJ,EAChJ,CAAC,QAAQ,IAAI,YAAY,EACzB,cAAc,CACf,EACD,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAC,KAAK,EACvB,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,QAAQ,KACd,KAAK,GACT,EACD,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,YAAE,SAAS,GAAQ,IACtD,GACc,CACxB,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ export { HoverCard, HoverCardTrigger, HoverCardContent, type HoverCardProps, typ
|
|
|
46
46
|
export { Menubar, MenubarMenu, MenubarTrigger, MenubarContent, MenubarItem, MenubarLabel, MenubarSeparator, type MenubarProps, type MenubarMenuProps, type MenubarTriggerProps, type MenubarContentProps, type MenubarItemProps, type MenubarLabelProps, type MenubarSeparatorProps, } from './components/menubar';
|
|
47
47
|
export { Toast, ToastContainer, ToastProvider, toastVariants, useToast, type ToastContainerProps, type ToastData, type ToastProps, type ToastProviderProps, } from './components/toast';
|
|
48
48
|
export * from './blocks/auth';
|
|
49
|
+
export * from './blocks/chat';
|
|
49
50
|
export * from './blocks/navigation';
|
|
50
51
|
export * from './blocks/layout';
|
|
51
52
|
export * from './blocks/profile';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/index.js
CHANGED
|
@@ -50,6 +50,7 @@ export { Menubar, MenubarMenu, MenubarTrigger, MenubarContent, MenubarItem, Menu
|
|
|
50
50
|
export { Toast, ToastContainer, ToastProvider, toastVariants, useToast, } from './components/toast';
|
|
51
51
|
// ─── Blocks ──────────────────────────────────────────────────
|
|
52
52
|
export * from './blocks/auth';
|
|
53
|
+
export * from './blocks/chat';
|
|
53
54
|
export * from './blocks/navigation';
|
|
54
55
|
export * from './blocks/layout';
|
|
55
56
|
export * from './blocks/profile';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|