panelui-native 0.78.0 → 0.79.1

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 (64) hide show
  1. package/lib/module/components/accordion/index.js +13 -1
  2. package/lib/module/components/accordion/index.js.map +1 -1
  3. package/lib/module/components/map/index.js +63 -39
  4. package/lib/module/components/map/index.js.map +1 -1
  5. package/lib/module/components/map/map-children.js +54 -0
  6. package/lib/module/components/map/map-children.js.map +1 -0
  7. package/lib/module/components/map/maplibre.js +31 -3
  8. package/lib/module/components/map/maplibre.js.map +1 -1
  9. package/lib/module/components/markdown-editor/index.js +288 -34
  10. package/lib/module/components/markdown-editor/index.js.map +1 -1
  11. package/lib/module/components/markdown-editor/markdown-transforms.js +272 -9
  12. package/lib/module/components/markdown-editor/markdown-transforms.js.map +1 -1
  13. package/lib/module/components/marquee/index.js +119 -46
  14. package/lib/module/components/marquee/index.js.map +1 -1
  15. package/lib/module/components/panelside/index.js +162 -34
  16. package/lib/module/components/panelside/index.js.map +1 -1
  17. package/lib/module/components/progress-button/index.js +279 -52
  18. package/lib/module/components/progress-button/index.js.map +1 -1
  19. package/lib/module/components/progress-button/progress-button-hold.js +40 -6
  20. package/lib/module/components/progress-button/progress-button-hold.js.map +1 -1
  21. package/lib/module/components/theme-selector/index.js +239 -0
  22. package/lib/module/components/theme-selector/index.js.map +1 -0
  23. package/lib/module/components/theme-selector/theme-preview.js +320 -0
  24. package/lib/module/components/theme-selector/theme-preview.js.map +1 -0
  25. package/lib/module/index.js +1 -0
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/typescript/src/components/accordion/index.d.ts.map +1 -1
  28. package/lib/typescript/src/components/map/index.d.ts +8 -4
  29. package/lib/typescript/src/components/map/index.d.ts.map +1 -1
  30. package/lib/typescript/src/components/map/map-children.d.ts +41 -0
  31. package/lib/typescript/src/components/map/map-children.d.ts.map +1 -0
  32. package/lib/typescript/src/components/map/maplibre.d.ts +8 -4
  33. package/lib/typescript/src/components/map/maplibre.d.ts.map +1 -1
  34. package/lib/typescript/src/components/markdown-editor/index.d.ts +64 -5
  35. package/lib/typescript/src/components/markdown-editor/index.d.ts.map +1 -1
  36. package/lib/typescript/src/components/markdown-editor/markdown-transforms.d.ts +33 -5
  37. package/lib/typescript/src/components/markdown-editor/markdown-transforms.d.ts.map +1 -1
  38. package/lib/typescript/src/components/marquee/index.d.ts.map +1 -1
  39. package/lib/typescript/src/components/panelside/index.d.ts +79 -4
  40. package/lib/typescript/src/components/panelside/index.d.ts.map +1 -1
  41. package/lib/typescript/src/components/progress-button/index.d.ts +29 -13
  42. package/lib/typescript/src/components/progress-button/index.d.ts.map +1 -1
  43. package/lib/typescript/src/components/progress-button/progress-button-hold.d.ts +26 -6
  44. package/lib/typescript/src/components/progress-button/progress-button-hold.d.ts.map +1 -1
  45. package/lib/typescript/src/components/theme-selector/index.d.ts +107 -0
  46. package/lib/typescript/src/components/theme-selector/index.d.ts.map +1 -0
  47. package/lib/typescript/src/components/theme-selector/theme-preview.d.ts +32 -0
  48. package/lib/typescript/src/components/theme-selector/theme-preview.d.ts.map +1 -0
  49. package/lib/typescript/src/index.d.ts +4 -3
  50. package/lib/typescript/src/index.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/src/components/accordion/index.tsx +13 -0
  53. package/src/components/map/index.tsx +63 -36
  54. package/src/components/map/map-children.ts +66 -0
  55. package/src/components/map/maplibre.ts +32 -4
  56. package/src/components/markdown-editor/index.tsx +413 -35
  57. package/src/components/markdown-editor/markdown-transforms.ts +274 -10
  58. package/src/components/marquee/index.tsx +128 -55
  59. package/src/components/panelside/index.tsx +179 -40
  60. package/src/components/progress-button/index.tsx +264 -45
  61. package/src/components/progress-button/progress-button-hold.ts +37 -6
  62. package/src/components/theme-selector/index.tsx +281 -0
  63. package/src/components/theme-selector/theme-preview.tsx +205 -0
  64. package/src/index.ts +15 -0
@@ -43,17 +43,17 @@
43
43
  *
44
44
  * Works controlled (`value` + `onValueChange`) or uncontrolled (`defaultValue`).
45
45
  */
46
- import { createContext, forwardRef, useCallback, useContext, useMemo, useRef, useState } from 'react';
47
- import { View } from 'react-native';
46
+ import { Fragment, createContext, forwardRef, useCallback, useContext, useImperativeHandle, useMemo, useRef, useState } from 'react';
47
+ import { Pressable, ScrollView, View } from 'react-native';
48
48
  import { tv } from 'tailwind-variants';
49
- import { BoldIcon, CodeIcon, EyeIcon, HeadingIcon, ItalicIcon, LinkIcon, ListIcon, ListOrderedIcon, PencilIcon, QuoteIcon } from "../../icons/index.js";
49
+ import { BoldIcon, CodeIcon, EyeIcon, HeadingIcon, ImageIcon, ItalicIcon, LinkIcon, ListIcon, ListOrderedIcon, PencilIcon, QuoteIcon } from "../../icons/index.js";
50
50
  import { Text } from "../../primitives/text.js";
51
51
  import { cn } from "../../utils/cn.js";
52
52
  import { Button } from "../button/index.js";
53
53
  import { ButtonGroup } from "../button-group/index.js";
54
54
  import { Response } from "../response/index.js";
55
55
  import { Textarea } from "../textarea/index.js";
56
- import { insertLink, toggleFence, toggleLinePrefix, toggleOrderedList, toggleWrap } from "./markdown-transforms.js";
56
+ import { continueList, hasFence, hasLinePrefix, hasOrderedList, hasWrap, insertImage, insertLink, toggleFence, toggleLinePrefix, toggleOrderedList, toggleWrap } from "./markdown-transforms.js";
57
57
 
58
58
  /** Which pane the editor is showing. */
59
59
 
@@ -62,6 +62,33 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
62
62
  /** The actions a toolbar shows when it is not told which to show. */
63
63
  const DEFAULT_ACTIONS = ['bold', 'italic', 'heading', 'bulletList', 'orderedList', 'quote', 'code', 'link'];
64
64
 
65
+ /**
66
+ * The same actions in the capsule, grouped.
67
+ *
68
+ * Eight rather than nine: the capsule is a fixed row of targets with hairlines
69
+ * between its groups, and `quote` is the one a writer reaches for least. It is
70
+ * still available — pass `actions` and it appears in whatever grouping the
71
+ * families below produce.
72
+ */
73
+ const DEFAULT_PILL_ACTIONS = ['bold', 'italic', 'heading', 'link', 'image', 'orderedList', 'bulletList', 'code'];
74
+
75
+ /**
76
+ * Which family each action belongs to, which is what the capsule's hairlines
77
+ * separate: what the words look like, what is being put into the document, and
78
+ * what shape the block is.
79
+ */
80
+ const FAMILY = {
81
+ bold: 'inline',
82
+ italic: 'inline',
83
+ heading: 'inline',
84
+ link: 'insert',
85
+ image: 'insert',
86
+ orderedList: 'insert',
87
+ bulletList: 'insert',
88
+ code: 'block',
89
+ quote: 'block'
90
+ };
91
+
65
92
  /**
66
93
  * What each action does, what it is called, and what it looks like.
67
94
  *
@@ -74,49 +101,56 @@ const ACTIONS = {
74
101
  icon: size => /*#__PURE__*/_jsx(BoldIcon, {
75
102
  size: size
76
103
  }),
77
- apply: (text, selection) => toggleWrap(text, selection, '**')
104
+ apply: (text, selection) => toggleWrap(text, selection, '**'),
105
+ isActive: (text, selection) => hasWrap(text, selection, '**')
78
106
  },
79
107
  italic: {
80
108
  label: 'Italic',
81
109
  icon: size => /*#__PURE__*/_jsx(ItalicIcon, {
82
110
  size: size
83
111
  }),
84
- apply: (text, selection) => toggleWrap(text, selection, '_')
112
+ apply: (text, selection) => toggleWrap(text, selection, '_'),
113
+ isActive: (text, selection) => hasWrap(text, selection, '_')
85
114
  },
86
115
  heading: {
87
116
  label: 'Heading',
88
117
  icon: size => /*#__PURE__*/_jsx(HeadingIcon, {
89
118
  size: size
90
119
  }),
91
- apply: (text, selection) => toggleLinePrefix(text, selection, '## ')
120
+ apply: (text, selection) => toggleLinePrefix(text, selection, '## '),
121
+ isActive: (text, selection) => hasLinePrefix(text, selection, '## ')
92
122
  },
93
123
  quote: {
94
124
  label: 'Quote',
95
125
  icon: size => /*#__PURE__*/_jsx(QuoteIcon, {
96
126
  size: size
97
127
  }),
98
- apply: (text, selection) => toggleLinePrefix(text, selection, '> ')
128
+ apply: (text, selection) => toggleLinePrefix(text, selection, '> '),
129
+ isActive: (text, selection) => hasLinePrefix(text, selection, '> ')
99
130
  },
100
131
  code: {
101
132
  label: 'Code block',
102
133
  icon: size => /*#__PURE__*/_jsx(CodeIcon, {
103
134
  size: size
104
135
  }),
105
- apply: toggleFence
136
+ apply: toggleFence,
137
+ isActive: hasFence
106
138
  },
107
139
  bulletList: {
108
140
  label: 'Bulleted list',
109
141
  icon: size => /*#__PURE__*/_jsx(ListIcon, {
110
142
  size: size
111
143
  }),
112
- apply: (text, selection) => toggleLinePrefix(text, selection, '- ')
144
+ apply: (text, selection) => toggleLinePrefix(text, selection, '- '),
145
+ isActive: (text, selection) => hasLinePrefix(text, selection, '- ')
113
146
  },
114
147
  orderedList: {
115
148
  label: 'Numbered list',
116
149
  icon: size => /*#__PURE__*/_jsx(ListOrderedIcon, {
117
150
  size: size
118
151
  }),
119
- apply: toggleOrderedList
152
+ apply: toggleOrderedList,
153
+ isActive: hasOrderedList
120
154
  },
121
155
  link: {
122
156
  label: 'Link',
@@ -124,17 +158,58 @@ const ACTIONS = {
124
158
  size: size
125
159
  }),
126
160
  apply: insertLink
161
+ },
162
+ image: {
163
+ label: 'Image',
164
+ icon: size => /*#__PURE__*/_jsx(ImageIcon, {
165
+ size: size
166
+ }),
167
+ apply: insertImage
127
168
  }
128
169
  };
129
170
  const markdownEditorVariants = tv({
130
171
  slots: {
131
172
  root: 'w-full gap-2',
132
173
  toolbar: 'flex-row items-center justify-between gap-2',
174
+ /**
175
+ * The capsule holding the formatting buttons in the `pill` toolbar.
176
+ *
177
+ * `shrink` and `overflow-hidden` are load-bearing. Eight 36pt targets, two
178
+ * hairlines and the round button beside them come to more than a phone is
179
+ * wide, and a row that cannot shrink does not wrap — it runs off the edge
180
+ * of the screen taking the last two actions with it. The capsule gives up
181
+ * width instead, and scrolls whatever no longer fits.
182
+ */
183
+ capsule: 'min-w-0 shrink flex-row items-center overflow-hidden rounded-full border border-input bg-popover px-1.5 shadow-lg',
184
+ /** One hairline between two groups of them. */
185
+ divider: 'mx-1 h-5 w-px bg-border',
186
+ /** The round button outside the capsule, which switches the pane. */
187
+ escape: 'h-11 w-11 shrink-0 items-center justify-center rounded-full border border-input bg-popover shadow-lg',
133
188
  // The preview stands in the field's place, so it takes the field's shape.
134
189
  // A rendered draft that sat on the page with no edge around it would not
135
190
  // read as the same object the writing was in.
136
191
  preview: 'w-full rounded-xl border border-input bg-popover px-3 py-2.5',
137
192
  empty: 'py-6 text-center'
193
+ },
194
+ variants: {
195
+ /**
196
+ * How the toolbar is drawn.
197
+ *
198
+ * `bar` is the row: formatting on one side, the write/preview switch on the
199
+ * other, and room between them for a word count or a submit. `pill` is the
200
+ * floating capsule — icon-only, grouped by hairlines, with the pane switch
201
+ * as a round button beside it. The capsule has no room for anything else,
202
+ * so a toolbar with children wants the bar.
203
+ */
204
+ variant: {
205
+ bar: {},
206
+ pill: {
207
+ toolbar: 'justify-center gap-2'
208
+ }
209
+ }
210
+ },
211
+ defaultVariants: {
212
+ variant: 'bar'
138
213
  }
139
214
  });
140
215
  const MarkdownEditorContext = /*#__PURE__*/createContext(null);
@@ -143,6 +218,16 @@ function useMarkdownEditor(part) {
143
218
  if (!ctx) throw new Error(`${part} must be used inside <MarkdownEditor>.`);
144
219
  return ctx;
145
220
  }
221
+
222
+ /**
223
+ * What a `ref` on the editor gives you.
224
+ *
225
+ * The same transforms the toolbar runs, so a caller drawing their own controls
226
+ * — a keyboard accessory, a context menu, a single Bold button somewhere else
227
+ * on the screen — does not have to reimplement any of them. Every one applies
228
+ * to the live selection and leaves the caret where the toolbar would.
229
+ */
230
+
146
231
  const MarkdownEditorRoot = /*#__PURE__*/forwardRef(({
147
232
  className,
148
233
  value: valueProp,
@@ -155,9 +240,13 @@ const MarkdownEditorRoot = /*#__PURE__*/forwardRef(({
155
240
  children,
156
241
  placeholder,
157
242
  rows,
243
+ avoidKeyboard,
244
+ continueLists = true,
158
245
  ...props
159
246
  }, ref) => {
160
247
  const slots = markdownEditorVariants();
248
+ const viewRef = useRef(null);
249
+ const fieldRef = useRef(null);
161
250
  const [internalValue, setInternalValue] = useState(defaultValue);
162
251
  const value = valueProp ?? internalValue;
163
252
  const [internalMode, setInternalMode] = useState(defaultMode);
@@ -195,6 +284,25 @@ const MarkdownEditorRoot = /*#__PURE__*/forwardRef(({
195
284
  if (modeProp === undefined) setInternalMode(next);
196
285
  onModeChange?.(next);
197
286
  }, [modeProp, onModeChange]);
287
+
288
+ /*
289
+ * Which actions are already in effect, held in state because the toolbar
290
+ * draws from it.
291
+ *
292
+ * Recomputed when the caret moves or the text changes through an edit, not
293
+ * on every keystroke: eight predicates over the whole document on every
294
+ * character typed is work nobody asked for, and typing a letter cannot
295
+ * change what is applied at the caret. Toggling a marker can, which is why
296
+ * `run` recomputes it too.
297
+ */
298
+ const [active, setActive] = useState(() => new Set());
299
+ const readActive = useCallback((text, selection) => {
300
+ const next = new Set();
301
+ for (const key of Object.keys(ACTIONS)) {
302
+ if (ACTIONS[key].isActive?.(text, selection)) next.add(key);
303
+ }
304
+ setActive(current => current.size === next.size && [...next].every(key => current.has(key)) ? current : next);
305
+ }, []);
198
306
  const run = useCallback(action => {
199
307
  const result = ACTIONS[action].apply(valueRef.current, selectionRef.current);
200
308
  // Kept locally too: the parent may be slow to hand the new text back,
@@ -203,27 +311,93 @@ const MarkdownEditorRoot = /*#__PURE__*/forwardRef(({
203
311
  selectionRef.current = result.selection;
204
312
  commit(result.text);
205
313
  setPending(result.selection);
206
- }, [commit]);
314
+ readActive(result.text, result.selection);
315
+ }, [commit, readActive]);
316
+
317
+ /*
318
+ * A list continues itself when Return lands inside one.
319
+ *
320
+ * Read off the text change rather than off `onKeyPress`, because a key
321
+ * event here cannot be prevented — the field applies the newline whatever
322
+ * the handler does, so acting on the key would insert the marker *and* a
323
+ * second line break. Watching the change instead means the newline is
324
+ * already in the string, and what happens is a rewrite of it: the marker
325
+ * goes in behind it, or, on an item with nothing in it, the marker comes
326
+ * off and the list ends.
327
+ *
328
+ * One inserted character only. A paste that happens to contain a newline
329
+ * is not somebody pressing Return.
330
+ */
331
+ const applyChange = useCallback(next => {
332
+ const previous = valueRef.current;
333
+ if (continueLists && next.length === previous.length + 1) {
334
+ let at = 0;
335
+ while (at < previous.length && previous[at] === next[at]) at += 1;
336
+ if (next[at] === '\n') {
337
+ const result = continueList(previous, {
338
+ start: at,
339
+ end: at
340
+ });
341
+ if (result) {
342
+ valueRef.current = result.text;
343
+ selectionRef.current = result.selection;
344
+ commit(result.text);
345
+ setPending(result.selection);
346
+ readActive(result.text, result.selection);
347
+ return;
348
+ }
349
+ }
350
+ }
351
+ valueRef.current = next;
352
+ commit(next);
353
+ }, [continueLists, commit, readActive]);
354
+ const registerField = useCallback(field => {
355
+ fieldRef.current = field;
356
+ }, []);
357
+ useImperativeHandle(ref, () => ({
358
+ get view() {
359
+ return viewRef.current;
360
+ },
361
+ apply: run,
362
+ getActive: () => [...active],
363
+ getSelection: () => ({
364
+ ...selectionRef.current
365
+ }),
366
+ setSelection: selection => {
367
+ selectionRef.current = selection;
368
+ setPending(selection);
369
+ readActive(valueRef.current, selection);
370
+ },
371
+ focus: () => {
372
+ // The field is unmounted while the preview is up, so focusing it has
373
+ // to bring it back first — otherwise this is a silent no-op that
374
+ // looks like a broken ref.
375
+ setMode('write');
376
+ fieldRef.current?.focus();
377
+ },
378
+ blur: () => fieldRef.current?.blur(),
379
+ setMode
380
+ }), [run, active, readActive, setMode]);
207
381
  const context = useMemo(() => ({
208
382
  value,
209
383
  mode,
210
384
  setMode,
211
385
  run,
386
+ active,
212
387
  pending,
213
388
  setSelection: selection => {
214
389
  selectionRef.current = selection;
390
+ readActive(valueRef.current, selection);
215
391
  },
216
392
  clearPending: () => setPending(undefined),
217
- onChangeText: next => {
218
- valueRef.current = next;
219
- commit(next);
220
- },
393
+ onChangeText: applyChange,
394
+ registerField,
221
395
  disabled
222
- }), [value, mode, setMode, run, pending, commit, disabled]);
396
+ }), [value, mode, setMode, run, active, pending, applyChange, readActive, registerField, disabled]);
223
397
  return /*#__PURE__*/_jsx(MarkdownEditorContext.Provider, {
224
398
  value: context,
225
399
  children: /*#__PURE__*/_jsx(View, {
226
- ref: ref,
400
+ ref: viewRef,
227
401
  className: slots.root({
228
402
  className
229
403
  }),
@@ -231,7 +405,8 @@ const MarkdownEditorRoot = /*#__PURE__*/forwardRef(({
231
405
  children: children ?? /*#__PURE__*/_jsxs(_Fragment, {
232
406
  children: [/*#__PURE__*/_jsx(MarkdownEditorToolbar, {}), /*#__PURE__*/_jsx(MarkdownEditorInput, {
233
407
  placeholder: placeholder,
234
- rows: rows
408
+ rows: rows,
409
+ avoidKeyboard: avoidKeyboard
235
410
  }), /*#__PURE__*/_jsx(MarkdownEditorPreview, {})]
236
411
  })
237
412
  })
@@ -250,10 +425,15 @@ MarkdownEditorRoot.displayName = 'MarkdownEditor';
250
425
  * buttons act on a selection, and in the preview there is no selection for them
251
426
  * to act on — a row of controls that are present but inert is a row that has to
252
427
  * be tried before it can be understood.
428
+ *
429
+ * An action already in effect where the caret is draws as pressed. Every button
430
+ * here is a toggle, and a toggle that looks the same in both states is a toggle
431
+ * nobody discovers is one.
253
432
  */
254
433
  const MarkdownEditorToolbar = /*#__PURE__*/forwardRef(({
255
434
  className,
256
- actions = DEFAULT_ACTIONS,
435
+ variant = 'bar',
436
+ actions,
257
437
  showModeSwitch = true,
258
438
  children,
259
439
  ...props
@@ -262,9 +442,67 @@ const MarkdownEditorToolbar = /*#__PURE__*/forwardRef(({
262
442
  mode,
263
443
  setMode,
264
444
  run,
445
+ active,
265
446
  disabled
266
447
  } = useMarkdownEditor('MarkdownEditor.Toolbar');
267
- const slots = markdownEditorVariants();
448
+ const slots = markdownEditorVariants({
449
+ variant
450
+ });
451
+ const pill = variant === 'pill';
452
+ const shown = actions ?? (pill ? DEFAULT_PILL_ACTIONS : DEFAULT_ACTIONS);
453
+ const button = (action, size) => /*#__PURE__*/_jsx(Button, {
454
+ accessibilityLabel: ACTIONS[action].label,
455
+ accessibilityState: {
456
+ selected: active.has(action)
457
+ },
458
+ variant: active.has(action) ? 'secondary' : 'ghost',
459
+ disabled: disabled,
460
+ onPress: () => run(action),
461
+ className: pill ? 'h-9 w-9 rounded-full px-0' : 'px-2',
462
+ children: ACTIONS[action].icon(size)
463
+ }, action);
464
+ if (pill) {
465
+ return /*#__PURE__*/_jsxs(View, {
466
+ ref: ref,
467
+ className: slots.toolbar({
468
+ className
469
+ }),
470
+ ...props,
471
+ children: [mode === 'write' ? /*#__PURE__*/_jsx(View, {
472
+ className: slots.capsule(),
473
+ children: /*#__PURE__*/_jsx(ScrollView, {
474
+ horizontal: true,
475
+ showsHorizontalScrollIndicator: false,
476
+ keyboardShouldPersistTaps: "always",
477
+ contentContainerClassName: "flex-row items-center",
478
+ children: shown.map((action, index) => /*#__PURE__*/_jsxs(Fragment, {
479
+ children: [index > 0 && FAMILY[action] !== FAMILY[shown[index - 1]] ? /*#__PURE__*/_jsx(View, {
480
+ className: slots.divider()
481
+ }) : null, button(action, 18)]
482
+ }, action))
483
+ })
484
+ }) : null, showModeSwitch ?
485
+ /*#__PURE__*/
486
+ /* Outside the capsule, and round rather than a segment of it. The
487
+ capsule is what the writing is done with; this is the way out of
488
+ it, and a control that leaves somewhere should not look like one
489
+ of the things you do while you are there. */
490
+ _jsx(Pressable, {
491
+ accessibilityRole: "button",
492
+ accessibilityLabel: mode === 'write' ? 'Preview' : 'Write',
493
+ accessibilityState: {
494
+ selected: mode === 'preview'
495
+ },
496
+ className: slots.escape(),
497
+ onPress: () => setMode(mode === 'write' ? 'preview' : 'write'),
498
+ children: mode === 'write' ? /*#__PURE__*/_jsx(EyeIcon, {
499
+ size: 18
500
+ }) : /*#__PURE__*/_jsx(PencilIcon, {
501
+ size: 18
502
+ })
503
+ }) : null]
504
+ });
505
+ }
268
506
  return /*#__PURE__*/_jsxs(View, {
269
507
  ref: ref,
270
508
  className: slots.toolbar({
@@ -275,13 +513,7 @@ const MarkdownEditorToolbar = /*#__PURE__*/forwardRef(({
275
513
  variant: "ghost",
276
514
  size: "sm",
277
515
  className: "shrink",
278
- children: actions.map(action => /*#__PURE__*/_jsx(Button, {
279
- accessibilityLabel: ACTIONS[action].label,
280
- disabled: disabled,
281
- onPress: () => run(action),
282
- className: "px-2",
283
- children: ACTIONS[action].icon(16)
284
- }, action))
516
+ children: shown.map(action => button(action, 16))
285
517
  }) : /*#__PURE__*/_jsx(View, {
286
518
  className: "shrink"
287
519
  }), /*#__PURE__*/_jsxs(View, {
@@ -331,17 +563,39 @@ const MarkdownEditorInput = /*#__PURE__*/forwardRef(({
331
563
  setSelection,
332
564
  clearPending,
333
565
  onChangeText,
566
+ registerField,
334
567
  disabled
335
568
  } = useMarkdownEditor('MarkdownEditor.Input');
569
+
570
+ /*
571
+ * The field is registered so the editor's own ref can focus it, and
572
+ * forwarded so a caller's ref still works. Both, rather than either.
573
+ */
574
+ const attach = useCallback(field => {
575
+ registerField(field);
576
+ if (typeof ref === 'function') ref(field);else if (ref) ref.current = field;
577
+ }, [ref, registerField]);
578
+
579
+ /*
580
+ * The forced selection is cleared only once it has actually arrived.
581
+ *
582
+ * Clearing on the first selection change of any kind was the bug: the new
583
+ * `value` landing produces one of its own, and it fires first — so the
584
+ * caret was released before it had been put anywhere, and ended up at the
585
+ * end of the document instead of between the markers just inserted.
586
+ */
336
587
  const handleSelectionChange = useCallback(event => {
337
- setSelection(event.nativeEvent.selection);
338
- // The edit's own selection has now landed, so stop forcing it and give
339
- // the caret back to whoever is holding the phone.
340
- clearPending();
341
- }, [setSelection, clearPending]);
588
+ const {
589
+ selection
590
+ } = event.nativeEvent;
591
+ setSelection(selection);
592
+ if (pending && selection.start === pending.start && selection.end === pending.end) {
593
+ clearPending();
594
+ }
595
+ }, [setSelection, clearPending, pending]);
342
596
  if (mode !== 'write') return null;
343
597
  return /*#__PURE__*/_jsx(Textarea, {
344
- ref: ref,
598
+ ref: attach,
345
599
  value: value,
346
600
  onChangeText: onChangeText,
347
601
  selection: pending,
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","forwardRef","useCallback","useContext","useMemo","useRef","useState","View","tv","BoldIcon","CodeIcon","EyeIcon","HeadingIcon","ItalicIcon","LinkIcon","ListIcon","ListOrderedIcon","PencilIcon","QuoteIcon","Text","cn","Button","ButtonGroup","Response","Textarea","insertLink","toggleFence","toggleLinePrefix","toggleOrderedList","toggleWrap","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_ACTIONS","ACTIONS","bold","label","icon","size","apply","text","selection","italic","heading","quote","code","bulletList","orderedList","link","markdownEditorVariants","slots","root","toolbar","preview","empty","MarkdownEditorContext","useMarkdownEditor","part","ctx","Error","MarkdownEditorRoot","className","value","valueProp","defaultValue","onValueChange","mode","modeProp","defaultMode","onModeChange","disabled","children","placeholder","rows","props","ref","internalValue","setInternalValue","internalMode","setInternalMode","selectionRef","start","end","pending","setPending","undefined","valueRef","current","commit","next","setMode","run","action","result","context","setSelection","clearPending","onChangeText","Provider","MarkdownEditorToolbar","MarkdownEditorInput","MarkdownEditorPreview","displayName","actions","showModeSwitch","variant","map","accessibilityLabel","onPress","startContent","handleSelectionChange","event","nativeEvent","onSelectionChange","autoCapitalize","autoCorrect","emptyText","trim","muted","MarkdownEditor","Object","assign","Toolbar","Input","Preview"],"sourceRoot":"../../../../src","sources":["components/markdown-editor/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACEA,aAAa,EACbC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAEH,OAAO;AACd,SACEC,IAAI,QAKC,cAAc;AACrB,SAASC,EAAE,QAAQ,mBAAmB;AACtC,SACEC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,WAAW,EACXC,UAAU,EACVC,QAAQ,EACRC,QAAQ,EACRC,eAAe,EACfC,UAAU,EACVC,SAAS,QACJ,sBAAa;AACpB,SAASC,IAAI,QAAQ,0BAAuB;AAC5C,SAASC,EAAE,QAAQ,mBAAgB;AACnC,SAASC,MAAM,QAAQ,oBAAW;AAClC,SAASC,WAAW,QAAQ,0BAAiB;AAC7C,SAASC,QAAQ,QAAQ,sBAAa;AACtC,SAASC,QAAQ,QAA4B,sBAAa;AAC1D,SACEC,UAAU,EACVC,WAAW,EACXC,gBAAgB,EAChBC,iBAAiB,EACjBC,UAAU,QAGL,0BAAuB;;AAI9B;;AAGA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAWA;AACA,MAAMC,eAAuC,GAAG,CAC9C,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,OAAO,EACP,MAAM,EACN,MAAM,CACP;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,OAOL,GAAG;EACFC,IAAI,EAAE;IACJC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAGC,IAAI,iBAAKV,IAAA,CAACtB,QAAQ;MAACgC,IAAI,EAAEA;IAAK,CAAE,CAAC;IACxCC,KAAK,EAAEA,CAACC,IAAI,EAAEC,SAAS,KAAKf,UAAU,CAACc,IAAI,EAAEC,SAAS,EAAE,IAAI;EAC9D,CAAC;EACDC,MAAM,EAAE;IACNN,KAAK,EAAE,QAAQ;IACfC,IAAI,EAAGC,IAAI,iBAAKV,IAAA,CAAClB,UAAU;MAAC4B,IAAI,EAAEA;IAAK,CAAE,CAAC;IAC1CC,KAAK,EAAEA,CAACC,IAAI,EAAEC,SAAS,KAAKf,UAAU,CAACc,IAAI,EAAEC,SAAS,EAAE,GAAG;EAC7D,CAAC;EACDE,OAAO,EAAE;IACPP,KAAK,EAAE,SAAS;IAChBC,IAAI,EAAGC,IAAI,iBAAKV,IAAA,CAACnB,WAAW;MAAC6B,IAAI,EAAEA;IAAK,CAAE,CAAC;IAC3CC,KAAK,EAAEA,CAACC,IAAI,EAAEC,SAAS,KAAKjB,gBAAgB,CAACgB,IAAI,EAAEC,SAAS,EAAE,KAAK;EACrE,CAAC;EACDG,KAAK,EAAE;IACLR,KAAK,EAAE,OAAO;IACdC,IAAI,EAAGC,IAAI,iBAAKV,IAAA,CAACb,SAAS;MAACuB,IAAI,EAAEA;IAAK,CAAE,CAAC;IACzCC,KAAK,EAAEA,CAACC,IAAI,EAAEC,SAAS,KAAKjB,gBAAgB,CAACgB,IAAI,EAAEC,SAAS,EAAE,IAAI;EACpE,CAAC;EACDI,IAAI,EAAE;IACJT,KAAK,EAAE,YAAY;IACnBC,IAAI,EAAGC,IAAI,iBAAKV,IAAA,CAACrB,QAAQ;MAAC+B,IAAI,EAAEA;IAAK,CAAE,CAAC;IACxCC,KAAK,EAAEhB;EACT,CAAC;EACDuB,UAAU,EAAE;IACVV,KAAK,EAAE,eAAe;IACtBC,IAAI,EAAGC,IAAI,iBAAKV,IAAA,CAAChB,QAAQ;MAAC0B,IAAI,EAAEA;IAAK,CAAE,CAAC;IACxCC,KAAK,EAAEA,CAACC,IAAI,EAAEC,SAAS,KAAKjB,gBAAgB,CAACgB,IAAI,EAAEC,SAAS,EAAE,IAAI;EACpE,CAAC;EACDM,WAAW,EAAE;IACXX,KAAK,EAAE,eAAe;IACtBC,IAAI,EAAGC,IAAI,iBAAKV,IAAA,CAACf,eAAe;MAACyB,IAAI,EAAEA;IAAK,CAAE,CAAC;IAC/CC,KAAK,EAAEd;EACT,CAAC;EACDuB,IAAI,EAAE;IACJZ,KAAK,EAAE,MAAM;IACbC,IAAI,EAAGC,IAAI,iBAAKV,IAAA,CAACjB,QAAQ;MAAC2B,IAAI,EAAEA;IAAK,CAAE,CAAC;IACxCC,KAAK,EAAEjB;EACT;AACF,CAAC;AAED,MAAM2B,sBAAsB,GAAG5C,EAAE,CAAC;EAChC6C,KAAK,EAAE;IACLC,IAAI,EAAE,cAAc;IACpBC,OAAO,EAAE,6CAA6C;IACtD;IACA;IACA;IACAC,OAAO,EAAE,8DAA8D;IACvEC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAgBF,MAAMC,qBAAqB,gBAAG1D,aAAa,CAAoC,IAAI,CAAC;AAEpF,SAAS2D,iBAAiBA,CAACC,IAAY,EAA8B;EACnE,MAAMC,GAAG,GAAG1D,UAAU,CAACuD,qBAAqB,CAAC;EAC7C,IAAI,CAACG,GAAG,EAAE,MAAM,IAAIC,KAAK,CAAC,GAAGF,IAAI,wCAAwC,CAAC;EAC1E,OAAOC,GAAG;AACZ;AA4BA,MAAME,kBAAkB,gBAAG9D,UAAU,CACnC,CACE;EACE+D,SAAS;EACTC,KAAK,EAAEC,SAAS;EAChBC,YAAY,GAAG,EAAE;EACjBC,aAAa;EACbC,IAAI,EAAEC,QAAQ;EACdC,WAAW,GAAG,OAAO;EACrBC,YAAY;EACZC,QAAQ,GAAG,KAAK;EAChBC,QAAQ;EACRC,WAAW;EACXC,IAAI;EACJ,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMzB,KAAK,GAAGD,sBAAsB,CAAC,CAAC;EAEtC,MAAM,CAAC2B,aAAa,EAAEC,gBAAgB,CAAC,GAAG1E,QAAQ,CAAC6D,YAAY,CAAC;EAChE,MAAMF,KAAK,GAAGC,SAAS,IAAIa,aAAa;EAExC,MAAM,CAACE,YAAY,EAAEC,eAAe,CAAC,GAAG5E,QAAQ,CAAqBiE,WAAW,CAAC;EACjF,MAAMF,IAAI,GAAGC,QAAQ,IAAIW,YAAY;;EAErC;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,MAAME,YAAY,GAAG9E,MAAM,CAAkB;IAAE+E,KAAK,EAAE,CAAC;IAAEC,GAAG,EAAE;EAAE,CAAC,CAAC;;EAElE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGjF,QAAQ,CAA8BkF,SAAS,CAAC;EAE9E,MAAMC,QAAQ,GAAGpF,MAAM,CAAC4D,KAAK,CAAC;EAC9BwB,QAAQ,CAACC,OAAO,GAAGzB,KAAK;EAExB,MAAM0B,MAAM,GAAGzF,WAAW,CACvB0F,IAAY,IAAK;IAChB,IAAI1B,SAAS,KAAKsB,SAAS,EAAER,gBAAgB,CAACY,IAAI,CAAC;IACnDxB,aAAa,GAAGwB,IAAI,CAAC;EACvB,CAAC,EACD,CAAC1B,SAAS,EAAEE,aAAa,CAC3B,CAAC;EAED,MAAMyB,OAAO,GAAG3F,WAAW,CACxB0F,IAAwB,IAAK;IAC5B,IAAItB,QAAQ,KAAKkB,SAAS,EAAEN,eAAe,CAACU,IAAI,CAAC;IACjDpB,YAAY,GAAGoB,IAAI,CAAC;EACtB,CAAC,EACD,CAACtB,QAAQ,EAAEE,YAAY,CACzB,CAAC;EAED,MAAMsB,GAAG,GAAG5F,WAAW,CACpB6F,MAA4B,IAAK;IAChC,MAAMC,MAAM,GAAG3D,OAAO,CAAC0D,MAAM,CAAC,CAACrD,KAAK,CAAC+C,QAAQ,CAACC,OAAO,EAAEP,YAAY,CAACO,OAAO,CAAC;IAC5E;IACA;IACAD,QAAQ,CAACC,OAAO,GAAGM,MAAM,CAACrD,IAAI;IAC9BwC,YAAY,CAACO,OAAO,GAAGM,MAAM,CAACpD,SAAS;IACvC+C,MAAM,CAACK,MAAM,CAACrD,IAAI,CAAC;IACnB4C,UAAU,CAACS,MAAM,CAACpD,SAAS,CAAC;EAC9B,CAAC,EACD,CAAC+C,MAAM,CACT,CAAC;EAED,MAAMM,OAAO,GAAG7F,OAAO,CACrB,OAAO;IACL6D,KAAK;IACLI,IAAI;IACJwB,OAAO;IACPC,GAAG;IACHR,OAAO;IACPY,YAAY,EAAGtD,SAAS,IAAK;MAC3BuC,YAAY,CAACO,OAAO,GAAG9C,SAAS;IAClC,CAAC;IACDuD,YAAY,EAAEA,CAAA,KAAMZ,UAAU,CAACC,SAAS,CAAC;IACzCY,YAAY,EAAGR,IAAI,IAAK;MACtBH,QAAQ,CAACC,OAAO,GAAGE,IAAI;MACvBD,MAAM,CAACC,IAAI,CAAC;IACd,CAAC;IACDnB;EACF,CAAC,CAAC,EACF,CAACR,KAAK,EAAEI,IAAI,EAAEwB,OAAO,EAAEC,GAAG,EAAER,OAAO,EAAEK,MAAM,EAAElB,QAAQ,CACvD,CAAC;EAED,oBACE1C,IAAA,CAAC2B,qBAAqB,CAAC2C,QAAQ;IAACpC,KAAK,EAAEgC,OAAQ;IAAAvB,QAAA,eAC7C3C,IAAA,CAACxB,IAAI;MAACuE,GAAG,EAAEA,GAAI;MAACd,SAAS,EAAEX,KAAK,CAACC,IAAI,CAAC;QAAEU;MAAU,CAAC,CAAE;MAAA,GAAKa,KAAK;MAAAH,QAAA,EAC5DA,QAAQ,iBACPvC,KAAA,CAAAF,SAAA;QAAAyC,QAAA,gBACE3C,IAAA,CAACuE,qBAAqB,IAAE,CAAC,eACzBvE,IAAA,CAACwE,mBAAmB;UAAC5B,WAAW,EAAEA,WAAY;UAACC,IAAI,EAAEA;QAAK,CAAE,CAAC,eAC7D7C,IAAA,CAACyE,qBAAqB,IAAE,CAAC;MAAA,CACzB;IACH,CACG;EAAC,CACuB,CAAC;AAErC,CACF,CAAC;AAEDzC,kBAAkB,CAAC0C,WAAW,GAAG,gBAAgB;;AAEjD;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMH,qBAAqB,gBAAGrG,UAAU,CACtC,CAAC;EAAE+D,SAAS;EAAE0C,OAAO,GAAGtE,eAAe;EAAEuE,cAAc,GAAG,IAAI;EAAEjC,QAAQ;EAAE,GAAGG;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC5F,MAAM;IAAET,IAAI;IAAEwB,OAAO;IAAEC,GAAG;IAAErB;EAAS,CAAC,GAAGd,iBAAiB,CAAC,wBAAwB,CAAC;EACpF,MAAMN,KAAK,GAAGD,sBAAsB,CAAC,CAAC;EAEtC,oBACEjB,KAAA,CAAC5B,IAAI;IAACuE,GAAG,EAAEA,GAAI;IAACd,SAAS,EAAEX,KAAK,CAACE,OAAO,CAAC;MAAES;IAAU,CAAC,CAAE;IAAA,GAAKa,KAAK;IAAAH,QAAA,GAC/DL,IAAI,KAAK,OAAO,gBACftC,IAAA,CAACT,WAAW;MAACsF,OAAO,EAAC,OAAO;MAACnE,IAAI,EAAC,IAAI;MAACuB,SAAS,EAAC,QAAQ;MAAAU,QAAA,EACtDgC,OAAO,CAACG,GAAG,CAAEd,MAAM,iBAClBhE,IAAA,CAACV,MAAM;QAELyF,kBAAkB,EAAEzE,OAAO,CAAC0D,MAAM,CAAC,CAACxD,KAAM;QAC1CkC,QAAQ,EAAEA,QAAS;QACnBsC,OAAO,EAAEA,CAAA,KAAMjB,GAAG,CAACC,MAAM,CAAE;QAC3B/B,SAAS,EAAC,MAAM;QAAAU,QAAA,EAEfrC,OAAO,CAAC0D,MAAM,CAAC,CAACvD,IAAI,CAAC,EAAE;MAAC,GANpBuD,MAOC,CACT;IAAC,CACS,CAAC,gBAEdhE,IAAA,CAACxB,IAAI;MAACyD,SAAS,EAAC;IAAQ,CAAE,CAC3B,eAED7B,KAAA,CAAC5B,IAAI;MAACyD,SAAS,EAAC,6BAA6B;MAAAU,QAAA,GAC1CA,QAAQ,EACRiC,cAAc,gBACbxE,KAAA,CAACb,WAAW;QAACmB,IAAI,EAAC,IAAI;QAAAiC,QAAA,gBACpB3C,IAAA,CAACV,MAAM;UACLuF,OAAO,EAAEvC,IAAI,KAAK,OAAO,GAAG,WAAW,GAAG,OAAQ;UAClD2C,YAAY,eAAEjF,IAAA,CAACd,UAAU;YAACwB,IAAI,EAAE;UAAG,CAAE,CAAE;UACvCsE,OAAO,EAAEA,CAAA,KAAMlB,OAAO,CAAC,OAAO,CAAE;UAAAnB,QAAA,EACjC;QAED,CAAQ,CAAC,eACT3C,IAAA,CAACV,MAAM;UACLuF,OAAO,EAAEvC,IAAI,KAAK,SAAS,GAAG,WAAW,GAAG,OAAQ;UACpD2C,YAAY,eAAEjF,IAAA,CAACpB,OAAO;YAAC8B,IAAI,EAAE;UAAG,CAAE,CAAE;UACpCsE,OAAO,EAAEA,CAAA,KAAMlB,OAAO,CAAC,SAAS,CAAE;UAAAnB,QAAA,EACnC;QAED,CAAQ,CAAC;MAAA,CACE,CAAC,GACZ,IAAI;IAAA,CACJ,CAAC;EAAA,CACH,CAAC;AAEX,CACF,CAAC;AAED4B,qBAAqB,CAACG,WAAW,GAAG,wBAAwB;;AAE5D;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMF,mBAAmB,gBAAGtG,UAAU,CACpC,CAAC;EAAE+D,SAAS;EAAEY,IAAI,GAAG,CAAC;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC1C,MAAM;IAAEb,KAAK;IAAEI,IAAI;IAAEiB,OAAO;IAAEY,YAAY;IAAEC,YAAY;IAAEC,YAAY;IAAE3B;EAAS,CAAC,GAChFd,iBAAiB,CAAC,sBAAsB,CAAC;EAE3C,MAAMsD,qBAAqB,GAAG/G,WAAW,CACtCgH,KAA8D,IAAK;IAClEhB,YAAY,CAACgB,KAAK,CAACC,WAAW,CAACvE,SAAS,CAAC;IACzC;IACA;IACAuD,YAAY,CAAC,CAAC;EAChB,CAAC,EACD,CAACD,YAAY,EAAEC,YAAY,CAC7B,CAAC;EAED,IAAI9B,IAAI,KAAK,OAAO,EAAE,OAAO,IAAI;EAEjC,oBACEtC,IAAA,CAACP,QAAQ;IACPsD,GAAG,EAAEA,GAAI;IACTb,KAAK,EAAEA,KAAM;IACbmC,YAAY,EAAEA,YAAa;IAC3BxD,SAAS,EAAE0C,OAAQ;IACnB8B,iBAAiB,EAAEH,qBAAsB;IACzCxC,QAAQ,EAAEA,QAAS;IACnBG,IAAI,EAAEA,IAAK;IACXyC,cAAc,EAAC,MAAM;IACrBC,WAAW,EAAE;IACb;IACA;IACA;IAAA;IACAtD,SAAS,EAAE5C,EAAE,CAAC,WAAW,EAAE4C,SAAS,CAAE;IAAA,GAClCa;EAAK,CACV,CAAC;AAEN,CACF,CAAC;AAED0B,mBAAmB,CAACE,WAAW,GAAG,sBAAsB;;AAExD;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMD,qBAAqB,gBAAGvG,UAAU,CACtC,CAAC;EAAE+D,SAAS;EAAEuD,SAAS,GAAG,yBAAyB;EAAE,GAAG1C;AAAM,CAAC,EAAEC,GAAG,KAAK;EACvE,MAAM;IAAEb,KAAK;IAAEI;EAAK,CAAC,GAAGV,iBAAiB,CAAC,wBAAwB,CAAC;EACnE,MAAMN,KAAK,GAAGD,sBAAsB,CAAC,CAAC;EAEtC,IAAIiB,IAAI,KAAK,SAAS,EAAE,OAAO,IAAI;EAEnC,oBACEtC,IAAA,CAACxB,IAAI;IAACuE,GAAG,EAAEA,GAAI;IAACd,SAAS,EAAEX,KAAK,CAACG,OAAO,CAAC;MAAEQ;IAAU,CAAC,CAAE;IAAA,GAAKa,KAAK;IAAAH,QAAA,EAC/DT,KAAK,CAACuD,IAAI,CAAC,CAAC,gBACXzF,IAAA,CAACR,QAAQ;MAAAmD,QAAA,EAAET;IAAK,CAAW,CAAC,gBAE5BlC,IAAA,CAACZ,IAAI;MAACsB,IAAI,EAAC,IAAI;MAACgF,KAAK;MAACzD,SAAS,EAAEX,KAAK,CAACI,KAAK,CAAC,CAAE;MAAAiB,QAAA,EAC5C6C;IAAS,CACN;EACP,CACG,CAAC;AAEX,CACF,CAAC;AAEDf,qBAAqB,CAACC,WAAW,GAAG,wBAAwB;AAE5D,OAAO,MAAMiB,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC7D,kBAAkB,EAAE;EAC9D8D,OAAO,EAAEvB,qBAAqB;EAC9BwB,KAAK,EAAEvB,mBAAmB;EAC1BwB,OAAO,EAAEvB;AACX,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Fragment","createContext","forwardRef","useCallback","useContext","useImperativeHandle","useMemo","useRef","useState","Pressable","ScrollView","View","tv","BoldIcon","CodeIcon","EyeIcon","HeadingIcon","ImageIcon","ItalicIcon","LinkIcon","ListIcon","ListOrderedIcon","PencilIcon","QuoteIcon","Text","cn","Button","ButtonGroup","Response","Textarea","continueList","hasFence","hasLinePrefix","hasOrderedList","hasWrap","insertImage","insertLink","toggleFence","toggleLinePrefix","toggleOrderedList","toggleWrap","jsx","_jsx","_Fragment","jsxs","_jsxs","DEFAULT_ACTIONS","DEFAULT_PILL_ACTIONS","FAMILY","bold","italic","heading","link","image","orderedList","bulletList","code","quote","ACTIONS","label","icon","size","apply","text","selection","isActive","markdownEditorVariants","slots","root","toolbar","capsule","divider","escape","preview","empty","variants","variant","bar","pill","defaultVariants","MarkdownEditorContext","useMarkdownEditor","part","ctx","Error","MarkdownEditorRoot","className","value","valueProp","defaultValue","onValueChange","mode","modeProp","defaultMode","onModeChange","disabled","children","placeholder","rows","avoidKeyboard","continueLists","props","ref","viewRef","fieldRef","internalValue","setInternalValue","internalMode","setInternalMode","selectionRef","start","end","pending","setPending","undefined","valueRef","current","commit","next","setMode","active","setActive","Set","readActive","key","Object","keys","add","every","has","run","action","result","applyChange","previous","length","at","registerField","field","view","getActive","getSelection","setSelection","focus","blur","context","clearPending","onChangeText","Provider","MarkdownEditorToolbar","MarkdownEditorInput","MarkdownEditorPreview","displayName","actions","showModeSwitch","shown","button","accessibilityLabel","accessibilityState","selected","onPress","horizontal","showsHorizontalScrollIndicator","keyboardShouldPersistTaps","contentContainerClassName","map","index","accessibilityRole","startContent","attach","handleSelectionChange","event","nativeEvent","onSelectionChange","autoCapitalize","autoCorrect","emptyText","trim","muted","MarkdownEditor","assign","Toolbar","Input","Preview"],"sourceRoot":"../../../../src","sources":["components/markdown-editor/index.tsx"],"mappings":"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","ignoreList":[]}