react-native-richify 1.0.5 → 1.0.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.
Files changed (41) hide show
  1. package/README.md +328 -134
  2. package/lib/commonjs/components/RichTextInput.js +0 -4
  3. package/lib/commonjs/components/RichTextInput.js.map +1 -1
  4. package/lib/commonjs/components/Toolbar.js +1 -0
  5. package/lib/commonjs/components/Toolbar.js.map +1 -1
  6. package/lib/commonjs/components/ToolbarButton.js +37 -9
  7. package/lib/commonjs/components/ToolbarButton.js.map +1 -1
  8. package/lib/commonjs/constants/defaultStyles.js +59 -34
  9. package/lib/commonjs/constants/defaultStyles.js.map +1 -1
  10. package/lib/commonjs/hooks/useFormatting.js +9 -5
  11. package/lib/commonjs/hooks/useFormatting.js.map +1 -1
  12. package/lib/commonjs/utils/formatter.js.map +1 -1
  13. package/lib/module/components/RichTextInput.js +0 -4
  14. package/lib/module/components/RichTextInput.js.map +1 -1
  15. package/lib/module/components/Toolbar.js +1 -0
  16. package/lib/module/components/Toolbar.js.map +1 -1
  17. package/lib/module/components/ToolbarButton.js +38 -10
  18. package/lib/module/components/ToolbarButton.js.map +1 -1
  19. package/lib/module/constants/defaultStyles.js +58 -34
  20. package/lib/module/constants/defaultStyles.js.map +1 -1
  21. package/lib/module/hooks/useFormatting.js +9 -5
  22. package/lib/module/hooks/useFormatting.js.map +1 -1
  23. package/lib/module/utils/formatter.js.map +1 -1
  24. package/lib/typescript/src/components/RichTextInput.d.ts.map +1 -1
  25. package/lib/typescript/src/components/Toolbar.d.ts.map +1 -1
  26. package/lib/typescript/src/components/ToolbarButton.d.ts.map +1 -1
  27. package/lib/typescript/src/constants/defaultStyles.d.ts.map +1 -1
  28. package/lib/typescript/src/hooks/useFormatting.d.ts.map +1 -1
  29. package/lib/typescript/src/types/index.d.ts +11 -5
  30. package/lib/typescript/src/types/index.d.ts.map +1 -1
  31. package/lib/typescript/src/utils/formatter.d.ts +1 -1
  32. package/lib/typescript/src/utils/formatter.d.ts.map +1 -1
  33. package/package.json +10 -4
  34. package/src/components/RichTextInput.tsx +0 -4
  35. package/src/components/Toolbar.tsx +1 -0
  36. package/src/components/ToolbarButton.tsx +68 -16
  37. package/src/constants/defaultStyles.ts +47 -19
  38. package/src/hooks/useFormatting.ts +30 -5
  39. package/src/types/index.d.ts +13 -7
  40. package/src/types/index.ts +11 -5
  41. package/src/utils/formatter.ts +1 -1
package/README.md CHANGED
@@ -1,32 +1,46 @@
1
1
  # react-native-richify
2
2
 
3
- A production-grade, fully customizable React Native Rich Text Input using the **Overlay Technique** no WebView required.
3
+ A React Native rich text input with a normal `TextInput` editing surface, a horizontally scrollable toolbar, and live Markdown or HTML output below the editor.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/react-native-richify.svg)](https://www.npmjs.com/package/react-native-richify)
6
6
  [![license](https://img.shields.io/npm/l/react-native-richify.svg)](https://github.com/soumya-99/react-native-richify/blob/main/LICENSE)
7
7
 
8
8
  ## Features
9
9
 
10
- - 🚀 **No WebView** — Pure React Native components (TextInput + Text overlay)
11
- - 📝 **Rich Formatting** Bold, italic, underline, strikethrough, code
12
- - 🎨 **Text & Background Colors** Full color customization
13
- - 📐 **Font Sizes & Headings** — H1, H2, H3 presets + custom sizes
14
- - 🔧 **Fully Customizable Toolbar** — Default toolbar + render props for full control
15
- - 🎭 **Theming** Complete theme system with plug-and-play defaults
16
- - 💾 **Serialization** Export/import as JSON
17
- - 📦 **TypeScript First** Full type definitions out of the box
18
- - 🪝 **Headless Hook** `useRichText` for building custom UIs
19
- - 🌐 **Context API** `RichTextProvider` for nested component access
10
+ - Native editing with no WebView
11
+ - Built-in toolbar uses Lucide React Native icons by default
12
+ - Inline formatting: bold, italic, underline, strikethrough, code
13
+ - Line formatting: H1, H2, H3, bullet list, ordered list, left, center, right
14
+ - Link formatting on selected text
15
+ - Image insertion through the built-in toolbar
16
+ - Output panel can show Markdown or HTML
17
+ - Output panel can show raw serialized text or rendered preview
18
+ - Auto-growing editor with configurable input and preview height limits
19
+ - Custom toolbar items accept text, emoji, or React elements
20
+ - Headless `useRichText` hook for fully custom editors
21
+ - Typed JSON import and export of editor content
20
22
 
21
23
  ## Installation
22
24
 
25
+ Install the package and `react-native-svg`:
26
+
27
+ ```bash
28
+ npm install react-native-richify react-native-svg
29
+ ```
30
+
31
+ or:
32
+
33
+ ```bash
34
+ yarn add react-native-richify react-native-svg
35
+ ```
36
+
37
+ `react-native-svg` is required because the built-in toolbar uses Lucide icons. If you want to use Lucide icons in your own custom toolbar items, install that in your app too:
38
+
23
39
  ```bash
24
- npm install react-native-richify
25
- # or
26
- yarn add react-native-richify
40
+ npm install lucide-react-native
27
41
  ```
28
42
 
29
- No native dependencies required. Works with Expo and bare React Native.
43
+ The package works in Expo and bare React Native apps. In Expo, `react-native-svg` is usually already available.
30
44
 
31
45
  ## Quick Start
32
46
 
@@ -39,165 +53,341 @@ export default function App() {
39
53
  return (
40
54
  <View style={{ flex: 1, padding: 16 }}>
41
55
  <RichTextInput
42
- placeholder="Start typing..."
56
+ placeholder="Write something..."
43
57
  showToolbar
58
+ showOutputPreview
59
+ defaultOutputFormat="markdown"
60
+ defaultOutputPreviewMode="rendered"
44
61
  onChangeText={(text) => console.log('Plain text:', text)}
45
- onChangeSegments={(segments) => console.log('Segments:', segments)}
62
+ onChangeOutput={(output, format) => {
63
+ console.log(format, output);
64
+ }}
46
65
  />
47
66
  </View>
48
67
  );
49
68
  }
50
69
  ```
51
70
 
52
- That's it! You get a fully functional rich text editor with default styling.
71
+ This gives you:
72
+
73
+ - a visible auto-growing `TextInput`
74
+ - the default Lucide-based toolbar
75
+ - live Markdown output by default
76
+ - a preview panel that opens below the input when content exists
77
+
78
+ ## How The Editor Works
79
+
80
+ The editing surface is always a normal `TextInput`. The library does not render styled text on top of the input.
81
+
82
+ Internally, content is stored as `StyledSegment[]`. Each segment contains plain text and formatting metadata. That lets the library:
83
+
84
+ - keep typing behavior predictable
85
+ - apply formatting to selected ranges or future input
86
+ - serialize the same content to Markdown or HTML
87
+ - export and re-import structured JSON safely
88
+
89
+ Formatting rules:
90
+
91
+ - If nothing is selected, pressing a format button affects the next characters you type.
92
+ - If text is selected, pressing a format button applies or removes that format immediately.
93
+ - Heading, list, and alignment controls work at line level.
94
+ - Every formatting button is toggleable except `MD`, `HTML`, `Raw`, and `View`.
53
95
 
54
- ## API Reference
96
+ ## Built-in Toolbar
55
97
 
56
- ### `<RichTextInput />`
98
+ The default toolbar is horizontally scrollable and ships with these controls:
57
99
 
58
- The main component. Drop it in and it works.
100
+ | Control | Behavior |
101
+ | --- | --- |
102
+ | Bold, Italic, Underline, Strikethrough, Code | Toggle inline formatting |
103
+ | Heading 1, Heading 2, Heading 3 | Toggle heading level on the current line |
104
+ | Bullet List, Ordered List | Toggle list type on the current line |
105
+ | Link | Apply or clear a hyperlink on the selection |
106
+ | Image | Insert an image through your app's image-picking flow |
107
+ | Align Left, Align Center, Align Right | Toggle paragraph alignment |
108
+ | MD, HTML | Switch serialization format |
109
+ | Raw, View | Switch between literal output and rendered preview |
59
110
 
60
- | Prop | Type | Default | Description |
61
- |------|------|---------|-------------|
62
- | `initialSegments` | `StyledSegment[]` | `[]` | Initial content |
63
- | `onChangeSegments` | `(segments: StyledSegment[]) => void` | — | Called when content changes |
64
- | `onChangeText` | `(text: string) => void` | — | Called with plain text |
65
- | `placeholder` | `string` | `"Start typing..."` | Placeholder text |
66
- | `editable` | `boolean` | `true` | Whether input is editable |
67
- | `maxLength` | `number` | — | Max character length |
68
- | `showToolbar` | `boolean` | `true` | Show formatting toolbar |
69
- | `toolbarPosition` | `'top' \| 'bottom'` | `'top'` | Toolbar position |
70
- | `toolbarItems` | `ToolbarItem[]` | Default items | Custom toolbar items |
71
- | `theme` | `RichTextTheme` | Default theme | Theme overrides |
72
- | `multiline` | `boolean` | `true` | Enable multiline |
73
- | `minHeight` | `number` | `120` | Minimum editor height |
74
- | `maxHeight` | `number` | — | Maximum editor height |
75
- | `autoFocus` | `boolean` | `false` | Auto-focus on mount |
76
- | `renderToolbar` | `(props) => ReactElement` | — | Custom toolbar renderer |
77
- | `onReady` | `(actions: RichTextActions) => void` | — | Called with action methods |
111
+ Notes:
78
112
 
79
- ### `useRichText(options?)`
113
+ - Pressing an active heading button again clears that heading.
114
+ - Pressing an active list or alignment button again clears it.
115
+ - Link clears when the current selection already has a link.
116
+ - Image is a callback-driven action. Your app decides how the URI is chosen.
80
117
 
81
- Headless hook for building custom UIs.
118
+ ## Output Panel
119
+
120
+ The preview panel below the editor is optional and controlled by `showOutputPreview`.
121
+
122
+ It supports two output formats:
123
+
124
+ - `markdown`
125
+ - `html`
126
+
127
+ It also supports two display modes:
128
+
129
+ - `literal`: show the raw Markdown or HTML text
130
+ - `rendered`: render the rich output visually
131
+
132
+ Useful props:
133
+
134
+ | Prop | Purpose |
135
+ | --- | --- |
136
+ | `outputFormat` | Controlled Markdown or HTML mode |
137
+ | `defaultOutputFormat` | Initial format for uncontrolled usage |
138
+ | `outputPreviewMode` | Controlled raw or rendered mode |
139
+ | `defaultOutputPreviewMode` | Initial preview mode |
140
+ | `maxOutputHeight` | Max preview height before the panel scrolls |
141
+ | `onChangeOutput` | Receives the serialized output on every change |
142
+ | `onChangeOutputFormat` | Called when toolbar format changes |
143
+ | `onChangeOutputPreviewMode` | Called when toolbar preview mode changes |
144
+
145
+ ## Links
146
+
147
+ Link formatting is selection-based. Select text, then press the link button.
148
+
149
+ You have two common approaches:
150
+
151
+ 1. Provide `onRequestLink` and open your own prompt, modal, or bottom sheet.
152
+ 2. Use the built-in fallback, which auto-links only when the selected text already looks like a URL, domain, or email address.
82
153
 
83
154
  ```tsx
84
- import { useRichText } from 'react-native-richify';
155
+ <RichTextInput
156
+ onRequestLink={({ selectedText, currentUrl, applyLink }) => {
157
+ console.log(selectedText, currentUrl);
158
+ applyLink('https://example.com');
159
+ }}
160
+ />
161
+ ```
85
162
 
86
- function MyEditor() {
87
- const { state, actions } = useRichText({
88
- onChangeText: (text) => console.log(text),
89
- });
163
+ If the current selection already contains a link, pressing the button clears it.
90
164
 
91
- return (
92
- <>
93
- <Button title="Bold" onPress={() => actions.toggleFormat('bold')} />
94
- <TextInput
95
- value={actions.getPlainText()}
96
- onChangeText={actions.handleTextChange}
97
- onSelectionChange={(e) =>
98
- actions.handleSelectionChange(e.nativeEvent.selection)
99
- }
100
- />
101
- </>
102
- );
103
- }
165
+ ## Images
166
+
167
+ The built-in toolbar includes an image button. It does not open the device picker itself. Instead, it calls `onRequestImage`, and your app decides how to produce the final image URI.
168
+
169
+ ```tsx
170
+ <RichTextInput
171
+ onRequestImage={async ({ insertImage }) => {
172
+ const result = await pickImageFromYourApp();
173
+ if (!result?.uri) {
174
+ return;
175
+ }
176
+
177
+ insertImage(result.uri, {
178
+ alt: result.fileName ?? 'Selected image',
179
+ placeholder: '[image]',
180
+ });
181
+ }}
182
+ />
104
183
  ```
105
184
 
106
- ### `<RichTextProvider>` & `useRichTextContext()`
185
+ Behavior notes:
107
186
 
108
- Share state across the component tree:
187
+ - The editor inserts a plain text placeholder into the input so typing remains stable.
188
+ - The segment also stores `imageSrc` and optional `imageAlt` metadata.
189
+ - `Raw` mode shows Markdown or HTML image output.
190
+ - `View` mode renders the image in the output panel.
191
+ - If you do not provide `onRequestImage`, the fallback only works when the selected text already looks like an image URL such as `https://site.com/photo.png`.
192
+
193
+ ## Sizing And Input Behavior
194
+
195
+ `RichTextInput` grows with the text by default.
196
+
197
+ - `minHeight` sets the minimum input height.
198
+ - `maxHeight` limits the input height before the `TextInput` itself scrolls.
199
+ - `maxOutputHeight` limits the preview panel height before it scrolls.
200
+ - `textInputProps` passes additional native `TextInput` props through to the editor.
109
201
 
110
202
  ```tsx
111
- import { RichTextProvider, useRichTextContext } from 'react-native-richify';
203
+ <RichTextInput
204
+ minHeight={140}
205
+ maxHeight={280}
206
+ maxOutputHeight={220}
207
+ textInputProps={{
208
+ autoCapitalize: 'sentences',
209
+ keyboardType: 'default',
210
+ }}
211
+ />
212
+ ```
112
213
 
113
- function CustomToolbar() {
114
- const { state, actions } = useRichTextContext();
115
- return <Button title="B" onPress={() => actions.toggleFormat('bold')} />;
116
- }
214
+ ## Customizing The Toolbar
117
215
 
118
- function App() {
119
- return (
120
- <RichTextProvider onChangeText={console.log}>
121
- <CustomToolbar />
122
- <RichTextInput showToolbar={false} />
123
- </RichTextProvider>
124
- );
125
- }
216
+ Use `toolbarItems` when you want to keep the built-in toolbar behavior but replace some or all buttons.
217
+
218
+ `ToolbarItem.label` accepts any React node, so you can use:
219
+
220
+ - plain text such as `'B'`
221
+ - emoji content
222
+ - a Lucide icon such as `<Bold />`
223
+ - any custom React element
224
+
225
+ When the label is not plain text, set `accessibilityLabel` so screen readers and tests can identify the button correctly.
226
+
227
+ Example:
228
+
229
+ ```tsx
230
+ import React from 'react';
231
+ import { Bold, ImagePlus, List } from 'lucide-react-native';
232
+ import { RichTextInput } from 'react-native-richify';
233
+
234
+ <RichTextInput
235
+ toolbarItems={[
236
+ {
237
+ id: 'bold',
238
+ label: <Bold />,
239
+ accessibilityLabel: 'Bold',
240
+ format: 'bold',
241
+ },
242
+ {
243
+ id: 'note',
244
+ label: 'Note',
245
+ onPress: () => console.log('Custom action'),
246
+ },
247
+ {
248
+ id: 'bullet',
249
+ label: <List />,
250
+ accessibilityLabel: 'Bullet list',
251
+ listType: 'bullet',
252
+ },
253
+ {
254
+ id: 'image',
255
+ label: <ImagePlus />,
256
+ accessibilityLabel: 'Insert image',
257
+ actionType: 'image',
258
+ },
259
+ { id: 'html', label: 'HTML', outputFormat: 'html' },
260
+ ]}
261
+ />
126
262
  ```
127
263
 
128
- ### Actions
129
-
130
- | Method | Description |
131
- |--------|-------------|
132
- | `toggleFormat(format)` | Toggle bold/italic/underline/strikethrough/code |
133
- | `setColor(color)` | Set text color |
134
- | `setBackgroundColor(color)` | Set highlight color |
135
- | `setFontSize(size)` | Set font size |
136
- | `setHeading(level)` | Set heading (h1/h2/h3/none) |
137
- | `handleTextChange(text)` | Process text input changes |
138
- | `handleSelectionChange(sel)` | Process selection changes |
139
- | `getPlainText()` | Get plain text content |
140
- | `exportJSON()` | Export segments as JSON |
141
- | `importJSON(segments)` | Import segments from JSON |
142
- | `clear()` | Clear all content |
264
+ Supported built-in item fields:
265
+
266
+ - `format`
267
+ - `heading`
268
+ - `listType`
269
+ - `textAlign`
270
+ - `outputFormat`
271
+ - `outputPreviewMode`
272
+ - `actionType: 'link' | 'image'`
273
+ - `onPress`
274
+ - `renderButton`
275
+
276
+ If you need a completely custom layout, use `renderToolbar`:
277
+
278
+ ```tsx
279
+ <RichTextInput
280
+ renderToolbar={({
281
+ actions,
282
+ outputFormat,
283
+ outputPreviewMode,
284
+ onOutputFormatChange,
285
+ onOutputPreviewModeChange,
286
+ onRequestImage,
287
+ }) => (
288
+ <>
289
+ <MyButton onPress={() => actions.toggleFormat('bold')} label="Bold" />
290
+ <MyButton onPress={() => actions.setHeading('h2')} label="Heading" />
291
+ <MyButton onPress={onRequestImage} label="Image" />
292
+ <MyButton
293
+ onPress={() => onOutputFormatChange('html')}
294
+ label={outputFormat === 'html' ? 'HTML on' : 'HTML'}
295
+ />
296
+ <MyButton
297
+ onPress={() => onOutputPreviewModeChange('rendered')}
298
+ label={outputPreviewMode === 'rendered' ? 'Preview on' : 'Preview'}
299
+ />
300
+ </>
301
+ )}
302
+ />
303
+ ```
143
304
 
144
305
  ## Theming
145
306
 
146
- Customize every aspect of the editor:
307
+ Use the `theme` prop to override container, toolbar, input, and output styles.
147
308
 
148
309
  ```tsx
149
310
  <RichTextInput
150
311
  theme={{
151
312
  colors: {
152
- primary: '#8B5CF6',
153
- background: '#1F2937',
154
- text: '#F9FAFB',
155
- placeholder: '#6B7280',
156
- toolbarBackground: '#374151',
157
- toolbarBorder: '#4B5563',
158
- cursor: '#8B5CF6',
313
+ primary: '#0F766E',
314
+ background: '#FFFFFF',
315
+ text: '#0F172A',
316
+ placeholder: '#94A3B8',
317
+ toolbarBackground: '#F8FAFC',
318
+ toolbarBorder: '#CBD5E1',
319
+ link: '#0EA5E9',
320
+ cursor: '#0F766E',
159
321
  },
160
322
  containerStyle: {
161
323
  borderRadius: 16,
162
- borderWidth: 2,
163
- borderColor: '#4B5563',
324
+ borderWidth: 1,
325
+ borderColor: '#CBD5E1',
164
326
  },
165
- toolbarButtonActiveStyle: {
166
- backgroundColor: '#4C1D95',
327
+ outputContainerStyle: {
328
+ margin: 12,
329
+ padding: 12,
330
+ borderRadius: 12,
331
+ backgroundColor: '#F8FAFC',
167
332
  },
168
333
  }}
169
334
  />
170
335
  ```
171
336
 
172
- ## Custom Toolbar
337
+ Common theme keys:
338
+
339
+ - `containerStyle`
340
+ - `inputStyle`
341
+ - `baseTextStyle`
342
+ - `toolbarStyle`
343
+ - `toolbarButtonStyle`
344
+ - `toolbarButtonActiveStyle`
345
+ - `toolbarButtonTextStyle`
346
+ - `toolbarButtonActiveTextStyle`
347
+ - `outputContainerStyle`
348
+ - `outputLabelStyle`
349
+ - `outputTextStyle`
350
+ - `renderedOutputStyle`
351
+ - `codeStyle`
352
+
353
+ ## Headless Usage
354
+
355
+ Use `useRichText` when you want to build your own editor shell instead of using `<RichTextInput />`.
173
356
 
174
357
  ```tsx
175
- <RichTextInput
176
- toolbarItems={[
177
- { id: 'bold', label: 'B', format: 'bold' },
178
- { id: 'italic', label: 'I', format: 'italic' },
179
- {
180
- id: 'custom',
181
- label: '🎨',
182
- onPress: () => showColorPicker(),
183
- },
184
- {
185
- id: 'render',
186
- label: 'Custom',
187
- renderButton: ({ active, onPress }) => (
188
- <MyCustomButton active={active} onPress={onPress} />
189
- ),
190
- },
191
- ]}
192
- />
358
+ import React from 'react';
359
+ import { Button, TextInput, View } from 'react-native';
360
+ import { useRichText } from 'react-native-richify';
361
+
362
+ export function HeadlessEditor() {
363
+ const { actions } = useRichText({
364
+ onChangeText: (text) => console.log(text),
365
+ });
366
+
367
+ return (
368
+ <View>
369
+ <Button title="Bold" onPress={() => actions.toggleFormat('bold')} />
370
+ <Button title="Bullet" onPress={() => actions.setListType('bullet')} />
371
+ <TextInput
372
+ multiline
373
+ value={actions.getPlainText()}
374
+ onChangeText={actions.handleTextChange}
375
+ onSelectionChange={(event) =>
376
+ actions.handleSelectionChange(event.nativeEvent.selection)
377
+ }
378
+ style={{ minHeight: 120, borderWidth: 1, padding: 12 }}
379
+ />
380
+ </View>
381
+ );
382
+ }
193
383
  ```
194
384
 
195
- ## Data Model
385
+ ## Data Model And Serialization
196
386
 
197
- Content is stored as an array of `StyledSegment` objects:
387
+ The editor stores content as typed segments:
198
388
 
199
- ```typescript
200
- interface StyledSegment {
389
+ ```ts
390
+ type StyledSegment = {
201
391
  text: string;
202
392
  styles: {
203
393
  bold?: boolean;
@@ -209,23 +399,27 @@ interface StyledSegment {
209
399
  backgroundColor?: string;
210
400
  fontSize?: number;
211
401
  heading?: 'h1' | 'h2' | 'h3' | 'none';
402
+ listType?: 'bullet' | 'ordered' | 'none';
403
+ textAlign?: 'left' | 'center' | 'right';
404
+ link?: string;
405
+ imageSrc?: string;
406
+ imageAlt?: string;
212
407
  };
213
- }
408
+ };
214
409
  ```
215
410
 
216
- ## How It Works
217
-
218
- The **Overlay Technique** layers two components:
219
-
220
- 1. **Bottom**: A `<Text>` component renders the styled/formatted text
221
- 2. **Top**: A transparent `<TextInput>` captures user input and selection
411
+ That makes it straightforward to:
222
412
 
223
- Both layers use identical font metrics so text aligns perfectly. The user sees the formatted text from the bottom layer while typing into the invisible top layer.
413
+ - save content with `exportJSON()`
414
+ - restore content with `importJSON()`
415
+ - read plain text with `getPlainText()`
416
+ - generate Markdown with `getOutput('markdown')`
417
+ - generate HTML with `getOutput('html')`
224
418
 
225
419
  ## Contributing
226
420
 
227
- See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
421
+ See [AGENTS.md](AGENTS.md) for contributor workflow notes.
228
422
 
229
423
  ## License
230
424
 
231
- MIT © react-native-richify contributors
425
+ MIT
@@ -177,10 +177,6 @@ const RichTextInput = ({
177
177
  inputRange: [0, 1],
178
178
  outputRange: [0, 12]
179
179
  }),
180
- marginBottom: previewProgress.interpolate({
181
- inputRange: [0, 1],
182
- outputRange: [0, 16]
183
- }),
184
180
  transform: [{
185
181
  translateY: previewProgress.interpolate({
186
182
  inputRange: [0, 1],
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","_useRichText","_parser","_serializer","_RenderedOutput","_Toolbar","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_OUTPUT_PANEL_MAX_HEIGHT","isJestRuntime","globalThis","process","env","JEST_WORKER_ID","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","showOutputPreview","outputFormat","defaultOutputFormat","outputPreviewMode","defaultOutputPreviewMode","maxOutputHeight","onChangeOutput","onChangeOutputFormat","onChangeOutputPreviewMode","onRequestLink","onRequestImage","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","DEFAULT_THEME","previewProgress","useRef","Animated","Value","current","internalOutputFormat","setInternalOutputFormat","useState","internalOutputPreviewMode","setInternalOutputPreviewMode","contentHeight","setContentHeight","state","actions","useRichText","useEffect","plainText","segmentsToPlainText","segments","resolvedOutputFormat","resolvedOutputPreviewMode","inputHeight","Math","max","min","shouldScrollInput","serializedOutput","useMemo","serializeSegments","shouldShowOutputPreview","length","normalizedSelection","start","selection","end","selectedText","slice","selectionStyle","getSelectionStyle","activeStyles","setValue","timing","toValue","duration","easing","Easing","out","cubic","useNativeDriver","onSelectionChange","useCallback","nativeEvent","handleSelectionChange","onContentSizeChange","ceil","contentSize","height","handleOutputFormatChange","format","undefined","handleOutputPreviewModeChange","mode","handleRequestLink","currentUrl","link","applyLink","setLink","detectedUrl","detectLinkTarget","handleRequestImage","insertImage","detectedSource","detectImageSource","alt","trim","outputLabel","formatLabel","containerStyle","inputAreaStyle","styles","inputArea","inputStyle","textInput","baseTextStyle","style","outputAnimatedStyle","interpolate","inputRange","outputRange","opacity","marginTop","marginBottom","transform","translateY","outputContainerStyle","outputLabelStyle","outputTextStyle","toolbarComponent","jsx","Toolbar","items","onOutputFormatChange","onOutputPreviewModeChange","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","jsxs","View","children","TextInput","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","Text","ScrollView","showsVerticalScrollIndicator","RenderedOutput","selectable","exports","displayName","StyleSheet","create","position","overflow","trimmed","test","normalized","candidate","replace"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","_useRichText","_parser","_serializer","_RenderedOutput","_Toolbar","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_OUTPUT_PANEL_MAX_HEIGHT","isJestRuntime","globalThis","process","env","JEST_WORKER_ID","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","showOutputPreview","outputFormat","defaultOutputFormat","outputPreviewMode","defaultOutputPreviewMode","maxOutputHeight","onChangeOutput","onChangeOutputFormat","onChangeOutputPreviewMode","onRequestLink","onRequestImage","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","DEFAULT_THEME","previewProgress","useRef","Animated","Value","current","internalOutputFormat","setInternalOutputFormat","useState","internalOutputPreviewMode","setInternalOutputPreviewMode","contentHeight","setContentHeight","state","actions","useRichText","useEffect","plainText","segmentsToPlainText","segments","resolvedOutputFormat","resolvedOutputPreviewMode","inputHeight","Math","max","min","shouldScrollInput","serializedOutput","useMemo","serializeSegments","shouldShowOutputPreview","length","normalizedSelection","start","selection","end","selectedText","slice","selectionStyle","getSelectionStyle","activeStyles","setValue","timing","toValue","duration","easing","Easing","out","cubic","useNativeDriver","onSelectionChange","useCallback","nativeEvent","handleSelectionChange","onContentSizeChange","ceil","contentSize","height","handleOutputFormatChange","format","undefined","handleOutputPreviewModeChange","mode","handleRequestLink","currentUrl","link","applyLink","setLink","detectedUrl","detectLinkTarget","handleRequestImage","insertImage","detectedSource","detectImageSource","alt","trim","outputLabel","formatLabel","containerStyle","inputAreaStyle","styles","inputArea","inputStyle","textInput","baseTextStyle","style","outputAnimatedStyle","interpolate","inputRange","outputRange","opacity","marginTop","transform","translateY","outputContainerStyle","outputLabelStyle","outputTextStyle","toolbarComponent","jsx","Toolbar","items","onOutputFormatChange","onOutputPreviewModeChange","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","jsxs","View","children","TextInput","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","Text","ScrollView","showsVerticalScrollIndicator","RenderedOutput","selectable","exports","displayName","StyleSheet","create","position","overflow","trimmed","test","normalized","candidate","replace"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAOA,IAAAC,YAAA,GAAAD,OAAA;AAaA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAAoC,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAD,wBAAAU,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAZ,uBAAA,YAAAA,CAAAU,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEpC,MAAMkB,+BAA+B,GAAG,GAAG;AAC3C,MAAMC,aAAa,GACjB,OACEC,UAAU,CAGVC,OAAO,EAAEC,GAAG,EAAEC,cAAc,KAAK,QAAQ;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,aAA2C,GAAGA,CAAC;EAC1DC,eAAe;EACfC,gBAAgB;EAChBC,YAAY;EACZC,WAAW,GAAG,iBAAiB;EAC/BC,QAAQ,GAAG,IAAI;EACfC,SAAS;EACTC,WAAW,GAAG,IAAI;EAClBC,eAAe,GAAG,KAAK;EACvBC,YAAY;EACZC,KAAK;EACLC,iBAAiB,GAAG,IAAI;EACxBC,YAAY;EACZC,mBAAmB,GAAG,UAAU;EAChCC,iBAAiB;EACjBC,wBAAwB,GAAG,SAAS;EACpCC,eAAe,GAAGtB,+BAA+B;EACjDuB,cAAc;EACdC,oBAAoB;EACpBC,yBAAyB;EACzBC,aAAa;EACbC,cAAc;EACdC,SAAS,GAAG,IAAI;EAChBC,SAAS,GAAG,GAAG;EACfC,SAAS;EACTC,SAAS,GAAG,KAAK;EACjBC,cAAc;EACdC,aAAa;EACbC;AACF,CAAC,KAAK;EACJ,MAAMC,aAAa,GAAGnB,KAAK,IAAIoB,4BAAa;EAC5C,MAAMC,eAAe,GAAG,IAAAC,aAAM,EAAC,IAAIC,qBAAQ,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAC7D,MAAM,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GACnD,IAAAC,eAAQ,EAACzB,mBAAmB,CAAC;EAC/B,MAAM,CAAC0B,yBAAyB,EAAEC,4BAA4B,CAAC,GAAG,IAAAF,eAAQ,EACxEvB,wBACF,CAAC;EACD,MAAM,CAAC0B,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAJ,eAAQ,EAACf,SAAS,CAAC;EAE7D,MAAM;IAAEoB,KAAK;IAAEC;EAAQ,CAAC,GAAG,IAAAC,wBAAW,EAAC;IACrC5C,eAAe;IACfC,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEF,IAAA2C,gBAAS,EAAC,MAAM;IACdlB,OAAO,GAAGgB,OAAO,CAAC;EACpB,CAAC,EAAE,CAACA,OAAO,EAAEhB,OAAO,CAAC,CAAC;EAEtB,MAAMmB,SAAS,GAAG,IAAAC,2BAAmB,EAACL,KAAK,CAACM,QAAQ,CAAC;EACrD,MAAMC,oBAAoB,GAAGtC,YAAY,IAAIwB,oBAAoB;EACjE,MAAMe,yBAAyB,GAC7BrC,iBAAiB,IAAIyB,yBAAyB;EAChD,MAAMa,WAAW,GAAGC,IAAI,CAACC,GAAG,CAC1B/B,SAAS,EACT,OAAOC,SAAS,KAAK,QAAQ,GACzB6B,IAAI,CAACE,GAAG,CAACd,aAAa,EAAEjB,SAAS,CAAC,GAClCiB,aACN,CAAC;EACD,MAAMe,iBAAiB,GACrB,OAAOhC,SAAS,KAAK,QAAQ,IAAIiB,aAAa,GAAGjB,SAAS;EAC5D,MAAMiC,gBAAgB,GAAG,IAAAC,cAAO,EAC9B,MAAM,IAAAC,6BAAiB,EAAChB,KAAK,CAACM,QAAQ,EAAEC,oBAAoB,CAAC,EAC7D,CAACA,oBAAoB,EAAEP,KAAK,CAACM,QAAQ,CACvC,CAAC;EACD,MAAMW,uBAAuB,GAAGjD,iBAAiB,IAAIoC,SAAS,CAACc,MAAM,GAAG,CAAC;EACzE,MAAMC,mBAAmB,GAAG,IAAAJ,cAAO,EACjC,OAAO;IACLK,KAAK,EAAEV,IAAI,CAACE,GAAG,CAACZ,KAAK,CAACqB,SAAS,CAACD,KAAK,EAAEpB,KAAK,CAACqB,SAAS,CAACC,GAAG,CAAC;IAC3DA,GAAG,EAAEZ,IAAI,CAACC,GAAG,CAACX,KAAK,CAACqB,SAAS,CAACD,KAAK,EAAEpB,KAAK,CAACqB,SAAS,CAACC,GAAG;EAC1D,CAAC,CAAC,EACF,CAACtB,KAAK,CAACqB,SAAS,CAACC,GAAG,EAAEtB,KAAK,CAACqB,SAAS,CAACD,KAAK,CAC7C,CAAC;EACD,MAAMG,YAAY,GAAG,IAAAR,cAAO,EAC1B,MAAMX,SAAS,CAACoB,KAAK,CAACL,mBAAmB,CAACC,KAAK,EAAED,mBAAmB,CAACG,GAAG,CAAC,EACzE,CAACH,mBAAmB,CAACG,GAAG,EAAEH,mBAAmB,CAACC,KAAK,EAAEhB,SAAS,CAChE,CAAC;EACD,MAAMqB,cAAc,GAAG,IAAAV,cAAO,EAC5B,MAAMd,OAAO,CAACyB,iBAAiB,CAAC,CAAC,EACjC,CAACzB,OAAO,EAAED,KAAK,CAAC2B,YAAY,EAAE3B,KAAK,CAACM,QAAQ,EAAEN,KAAK,CAACqB,SAAS,CAC/D,CAAC;EAED,IAAAlB,gBAAS,EAAC,MAAM;IACd7B,cAAc,GAAGwC,gBAAgB,EAAEP,oBAAoB,CAAC;EAC1D,CAAC,EAAE,CAACjC,cAAc,EAAEiC,oBAAoB,EAAEO,gBAAgB,CAAC,CAAC;EAE5D,IAAAX,gBAAS,EAAC,MAAM;IACd,IAAInD,aAAa,EAAE;MACjBoC,eAAe,CAACwC,QAAQ,CAACX,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC;MACzD;IACF;IAEA3B,qBAAQ,CAACuC,MAAM,CAACzC,eAAe,EAAE;MAC/B0C,OAAO,EAAEb,uBAAuB,GAAG,CAAC,GAAG,CAAC;MACxCc,QAAQ,EAAE,GAAG;MACbC,MAAM,EAAEC,mBAAM,CAACC,GAAG,CAACD,mBAAM,CAACE,KAAK,CAAC;MAChCC,eAAe,EAAE;IACnB,CAAC,CAAC,CAAChB,KAAK,CAAC,CAAC;EACZ,CAAC,EAAE,CAAChC,eAAe,EAAE6B,uBAAuB,CAAC,CAAC;EAE9C,MAAMoB,iBAAiB,GAAG,IAAAC,kBAAW,EAClC1G,CAA0D,IAAK;IAC9D,MAAM;MAAEwF,KAAK;MAAEE;IAAI,CAAC,GAAG1F,CAAC,CAAC2G,WAAW,CAAClB,SAAS;IAC9CpB,OAAO,CAACuC,qBAAqB,CAAC;MAAEpB,KAAK;MAAEE;IAAI,CAAC,CAAC;EAC/C,CAAC,EACD,CAACrB,OAAO,CACV,CAAC;EAED,MAAMwC,mBAAmB,GAAG,IAAAH,kBAAW,EACpC1G,CAA4D,IAAK;IAChEmE,gBAAgB,CAACW,IAAI,CAACgC,IAAI,CAAC9G,CAAC,CAAC2G,WAAW,CAACI,WAAW,CAACC,MAAM,CAAC,CAAC;IAC7D7D,cAAc,EAAE0D,mBAAmB,GAAG7G,CAAC,CAAC;EAC1C,CAAC,EACD,CAACmD,cAAc,CACjB,CAAC;EAED,MAAM8D,wBAAwB,GAAG,IAAAP,kBAAW,EACzCQ,MAA2B,IAAK;IAC/B,IAAI7E,YAAY,KAAK8E,SAAS,EAAE;MAC9BrD,uBAAuB,CAACoD,MAAM,CAAC;IACjC;IAEAvE,oBAAoB,GAAGuE,MAAM,CAAC;EAChC,CAAC,EACD,CAACvE,oBAAoB,EAAEN,YAAY,CACrC,CAAC;EAED,MAAM+E,6BAA6B,GAAG,IAAAV,kBAAW,EAC9CW,IAA4B,IAAK;IAChC,IAAI9E,iBAAiB,KAAK4E,SAAS,EAAE;MACnClD,4BAA4B,CAACoD,IAAI,CAAC;IACpC;IAEAzE,yBAAyB,GAAGyE,IAAI,CAAC;EACnC,CAAC,EACD,CAACzE,yBAAyB,EAAEL,iBAAiB,CAC/C,CAAC;EAED,MAAM+E,iBAAiB,GAAG,IAAAZ,kBAAW,EAAC,MAAM;IAC1C,IAAI7D,aAAa,EAAE;MACjBA,aAAa,CAAC;QACZ8C,YAAY;QACZ4B,UAAU,EAAE1B,cAAc,CAAC2B,IAAI;QAC/BC,SAAS,EAAEpD,OAAO,CAACqD;MACrB,CAAC,CAAC;MACF;IACF;IAEA,IAAI7B,cAAc,CAAC2B,IAAI,EAAE;MACvBnD,OAAO,CAACqD,OAAO,CAACP,SAAS,CAAC;MAC1B;IACF;IAEA,MAAMQ,WAAW,GAAGC,gBAAgB,CAACjC,YAAY,CAAC;IAClD,IAAIgC,WAAW,EAAE;MACftD,OAAO,CAACqD,OAAO,CAACC,WAAW,CAAC;IAC9B;EACF,CAAC,EAAE,CAACtD,OAAO,EAAExB,aAAa,EAAE8C,YAAY,EAAEE,cAAc,CAAC2B,IAAI,CAAC,CAAC;EAE/D,MAAMK,kBAAkB,GAAG,IAAAnB,kBAAW,EAAC,MAAM;IAC3C,IAAI5D,cAAc,EAAE;MAClBA,cAAc,CAAC;QACbgF,WAAW,EAAEzD,OAAO,CAACyD;MACvB,CAAC,CAAC;MACF;IACF;IAEA,MAAMC,cAAc,GAAGC,iBAAiB,CAACrC,YAAY,CAAC;IACtD,IAAIoC,cAAc,EAAE;MAClB1D,OAAO,CAACyD,WAAW,CAACC,cAAc,EAAE;QAClCE,GAAG,EAAEtC,YAAY,CAACuC,IAAI,CAAC,CAAC,IAAIf;MAC9B,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAAC9C,OAAO,EAAEvB,cAAc,EAAE6C,YAAY,CAAC,CAAC;EAE3C,MAAMwC,WAAW,GAAG,IAAAhD,cAAO,EAAC,MAAM;IAChC,MAAMiD,WAAW,GAAGzD,oBAAoB,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU;IAEzE,IAAIC,yBAAyB,KAAK,UAAU,EAAE;MAC5C,OAAO,GAAGwD,WAAW,UAAU;IACjC;IAEA,OAAO,GAAGA,WAAW,SAAS;EAChC,CAAC,EAAE,CAACzD,oBAAoB,EAAEC,yBAAyB,CAAC,CAAC;EAErD,MAAMyD,cAAc,GAAG,CACrB/E,aAAa,CAAC+E,cAAc,IAAI9E,4BAAa,CAAC8E,cAAc,CAC7D;EACD,MAAMC,cAAc,GAAG,CAACC,MAAM,CAACC,SAAS,CAAC;EACzC,MAAMC,UAAU,GAAG,CACjBF,MAAM,CAACG,SAAS,EAChBpF,aAAa,CAACqF,aAAa,IAAIpF,4BAAa,CAACoF,aAAa,EAC1DrF,aAAa,CAACmF,UAAU,IAAIlF,4BAAa,CAACkF,UAAU,EACpD;IAAEzB,MAAM,EAAEnC;EAAY,CAAC,EACvB1B,cAAc,EAAEyF,KAAK,CACtB;EACD,MAAMC,mBAAmB,GAAG;IAC1B5F,SAAS,EAAEO,eAAe,CAACsF,WAAW,CAAC;MACrCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MAClBC,WAAW,EAAE,CAAC,CAAC,EAAEvG,eAAe,GAAG,EAAE;IACvC,CAAC,CAAC;IACFwG,OAAO,EAAEzF,eAAe;IACxB0F,SAAS,EAAE1F,eAAe,CAACsF,WAAW,CAAC;MACrCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;IACrB,CAAC,CAAC;IACFG,SAAS,EAAE,CACT;MACEC,UAAU,EAAE5F,eAAe,CAACsF,WAAW,CAAC;QACtCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClBC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;MACrB,CAAC;IACH,CAAC;EAEL,CAAC;EACD,MAAMK,oBAAoB,GAAG,CAC3B/F,aAAa,CAAC+F,oBAAoB,IAAI9F,4BAAa,CAAC8F,oBAAoB,CACzE;EACD,MAAMC,gBAAgB,GAAG,CACvBhG,aAAa,CAACgG,gBAAgB,IAAI/F,4BAAa,CAAC+F,gBAAgB,CACjE;EACD,MAAMC,eAAe,GAAG,CACtBjG,aAAa,CAACiG,eAAe,IAAIhG,4BAAa,CAACgG,eAAe,CAC/D;EAED,MAAMC,gBAAgB,GAAGxH,WAAW,gBAClC,IAAAjC,WAAA,CAAA0J,GAAA,EAAC3J,QAAA,CAAA4J,OAAO;IACNrF,OAAO,EAAEA,OAAQ;IACjBD,KAAK,EAAEA,KAAM;IACbuF,KAAK,EAAEzH,YAAa;IACpBC,KAAK,EAAEmB,aAAc;IACrBjB,YAAY,EAAEsC,oBAAqB;IACnCpC,iBAAiB,EAAEqC,yBAA0B;IAC7CgF,oBAAoB,EAAE3C,wBAAyB;IAC/C4C,yBAAyB,EAAEzC,6BAA8B;IACzDvE,aAAa,EAAEyE,iBAAkB;IACjCxE,cAAc,EAAE+E,kBAAmB;IACnCzE,aAAa,EAAEA;EAAc,CAC9B,CAAC,GACA,IAAI;EAER,MAAM0G,kBAAkB,GACtB7H,eAAe,KAAK,KAAK,GACrB;IACE8H,iBAAiB,EAAE,CAAC;IACpBC,iBAAiB,EACf1G,aAAa,CAAC2G,MAAM,EAAEC,aAAa,IACnC3G,4BAAa,CAAC0G,MAAM,EAAEC;EAC1B,CAAC,GACD;IACEC,cAAc,EAAE,CAAC;IACjBC,cAAc,EACZ9G,aAAa,CAAC2G,MAAM,EAAEC,aAAa,IACnC3G,4BAAa,CAAC0G,MAAM,EAAEC;EAC1B,CAAC;EAEP,oBACE,IAAAnK,WAAA,CAAAsK,IAAA,EAAC7K,YAAA,CAAA8K,IAAI;IAAC1B,KAAK,EAAEP,cAAe;IAAAkC,QAAA,GACzBtI,eAAe,KAAK,KAAK,IAAIuH,gBAAgB,iBAC5C,IAAAzJ,WAAA,CAAA0J,GAAA,EAACjK,YAAA,CAAA8K,IAAI;MAAC1B,KAAK,EAAEkB,kBAAmB;MAAAS,QAAA,EAAEf;IAAgB,CAAO,CAC1D,eAED,IAAAzJ,WAAA,CAAAsK,IAAA,EAAC7K,YAAA,CAAA8K,IAAI;MAAC1B,KAAK,EAAEN,cAAe;MAAAiC,QAAA,gBAC1B,IAAAxK,WAAA,CAAA0J,GAAA,EAACjK,YAAA,CAAAgL,SAAS;QAAA,GACJrH,cAAc;QAClByF,KAAK,EAAEH,UAAW;QAClBgC,KAAK,EAAEjG,SAAU;QACjB5C,YAAY,EAAEyC,OAAO,CAACqG,gBAAiB;QACvCjE,iBAAiB,EAAEA,iBAAkB;QACrCI,mBAAmB,EAAEA,mBAAoB;QACzC9D,SAAS,EAAEA,SAAU;QACrBlB,WAAW,EAAEA,WAAY;QACzB8I,oBAAoB,EAClBrH,aAAa,CAAC2G,MAAM,EAAEpI,WAAW,IACjC0B,4BAAa,CAAC0G,MAAM,EAAEpI,WACvB;QACDC,QAAQ,EAAEA,QAAS;QACnBC,SAAS,EAAEA,SAAU;QACrBmB,SAAS,EAAEA,SAAU;QACrB0H,cAAc,EACZtH,aAAa,CAAC2G,MAAM,EAAEY,MAAM,IAAItH,4BAAa,CAAC0G,MAAM,EAAEY,MACvD;QACDC,iBAAiB,EAAC,KAAK;QACvBC,aAAa,EAAE9F;MAAkB,CAClC,CAAC,EAED7C,iBAAiB,iBAChB,IAAArC,WAAA,CAAA0J,GAAA,EAACjK,YAAA,CAAAkE,QAAQ,CAAC4G,IAAI;QACZU,aAAa,EAAE3F,uBAAuB,GAAG,MAAM,GAAG,MAAO;QACzDuD,KAAK,EAAE,CAACL,MAAM,CAAC0C,qBAAqB,EAAEpC,mBAAmB,CAAE;QAAA0B,QAAA,eAE3D,IAAAxK,WAAA,CAAAsK,IAAA,EAAC7K,YAAA,CAAA8K,IAAI;UAAC1B,KAAK,EAAES,oBAAqB;UAAAkB,QAAA,gBAChC,IAAAxK,WAAA,CAAA0J,GAAA,EAACjK,YAAA,CAAA0L,IAAI;YAACtC,KAAK,EAAEU,gBAAiB;YAAAiB,QAAA,EAC3BpC;UAAW,CACR,CAAC,eACP,IAAApI,WAAA,CAAA0J,GAAA,EAACjK,YAAA,CAAA2L,UAAU;YACTvC,KAAK,EAAE;cAAE3F,SAAS,EAAER;YAAgB,CAAE;YACtC2I,4BAA4B,EAAE,KAAM;YAAAb,QAAA,EAEnC3F,yBAAyB,KAAK,UAAU,gBACvC,IAAA7E,WAAA,CAAA0J,GAAA,EAAC5J,eAAA,CAAAwL,cAAc;cACb3G,QAAQ,EAAEN,KAAK,CAACM,QAAS;cACzBvC,KAAK,EAAEmB;YAAc,CACtB,CAAC,gBAEF,IAAAvD,WAAA,CAAA0J,GAAA,EAACjK,YAAA,CAAA0L,IAAI;cAACI,UAAU;cAAC1C,KAAK,EAAEW,eAAgB;cAAAgB,QAAA,EACrCrF;YAAgB,CACb;UACP,CACS,CAAC;QAAA,CACT;MAAC,CACM,CAChB;IAAA,CACG,CAAC,EAENjD,eAAe,KAAK,QAAQ,IAAIuH,gBAAgB,iBAC/C,IAAAzJ,WAAA,CAAA0J,GAAA,EAACjK,YAAA,CAAA8K,IAAI;MAAC1B,KAAK,EAAEkB,kBAAmB;MAAAS,QAAA,EAAEf;IAAgB,CAAO,CAC1D;EAAA,CACG,CAAC;AAEX,CAAC;AAAC+B,OAAA,CAAA9J,aAAA,GAAAA,aAAA;AAEFA,aAAa,CAAC+J,WAAW,GAAG,eAAe;AAE3C,MAAMjD,MAAM,GAAGkD,uBAAU,CAACC,MAAM,CAAC;EAC/BlD,SAAS,EAAE;IACTmD,QAAQ,EAAE;EACZ,CAAC;EACDjD,SAAS,EAAE;IACTiD,QAAQ,EAAE;EACZ,CAAC;EACDV,qBAAqB,EAAE;IACrBW,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF,SAAShE,gBAAgBA,CAAC6C,KAAa,EAAsB;EAC3D,MAAMoB,OAAO,GAAGpB,KAAK,CAACvC,IAAI,CAAC,CAAC;EAC5B,IAAI2D,OAAO,CAACvG,MAAM,KAAK,CAAC,EAAE;IACxB,OAAO6B,SAAS;EAClB;EAEA,IAAI,eAAe,CAAC2E,IAAI,CAACD,OAAO,CAAC,IAAI,WAAW,CAACC,IAAI,CAACD,OAAO,CAAC,EAAE;IAC9D,OAAOA,OAAO;EAChB;EAEA,IAAI,4BAA4B,CAACC,IAAI,CAACD,OAAO,CAAC,EAAE;IAC9C,OAAO,UAAUA,OAAO,EAAE;EAC5B;EAEA,IAAI,kBAAkB,CAACC,IAAI,CAACD,OAAO,CAAC,EAAE;IACpC,OAAO,WAAWA,OAAO,EAAE;EAC7B;EAEA,OAAO1E,SAAS;AAClB;AAEA,SAASa,iBAAiBA,CAACyC,KAAa,EAAsB;EAC5D,MAAMsB,UAAU,GAAGnE,gBAAgB,CAAC6C,KAAK,CAAC;EAC1C,IAAI,CAACsB,UAAU,EAAE;IACf,OAAO5E,SAAS;EAClB;EAEA,MAAM6E,SAAS,GAAGD,UAAU,CAACE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;EACrD,IAAI,qCAAqC,CAACH,IAAI,CAACE,SAAS,CAAC,EAAE;IACzD,OAAOD,UAAU;EACnB;EAEA,OAAO5E,SAAS;AAClB","ignoreList":[]}
@@ -96,6 +96,7 @@ const Toolbar = exports.Toolbar = /*#__PURE__*/_react.default.memo(({
96
96
  contentContainerStyle: styles.scrollContent,
97
97
  children: enrichedItems.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarButton.ToolbarButton, {
98
98
  label: item.label,
99
+ accessibilityLabel: item.accessibilityLabel,
99
100
  active: !!item.active,
100
101
  theme: resolvedTheme,
101
102
  renderButton: item.renderButton,