@medway-ui/native 1.11.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +1 -0
  2. package/lib/commonjs/components/TextMarker.js +485 -0
  3. package/lib/commonjs/components/TextMarker.js.map +1 -0
  4. package/lib/commonjs/editor/NoteEditor.js +29 -152
  5. package/lib/commonjs/editor/NoteEditor.js.map +1 -1
  6. package/lib/commonjs/editor/editorHtml.generated.js +1 -1
  7. package/lib/commonjs/editor/editorHtml.generated.js.map +1 -1
  8. package/lib/commonjs/editor/protocol.js +2 -3
  9. package/lib/commonjs/editor/protocol.js.map +1 -1
  10. package/lib/commonjs/index.js +19 -0
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/module/components/TextMarker.js +479 -0
  13. package/lib/module/components/TextMarker.js.map +1 -0
  14. package/lib/module/editor/NoteEditor.js +32 -155
  15. package/lib/module/editor/NoteEditor.js.map +1 -1
  16. package/lib/module/editor/editorHtml.generated.js +1 -1
  17. package/lib/module/editor/editorHtml.generated.js.map +1 -1
  18. package/lib/module/editor/protocol.js +2 -3
  19. package/lib/module/editor/protocol.js.map +1 -1
  20. package/lib/module/index.js +2 -0
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/typescript/components/TextMarker.d.ts +94 -0
  23. package/lib/typescript/components/TextMarker.d.ts.map +1 -0
  24. package/lib/typescript/editor/NoteEditor.d.ts +1 -1
  25. package/lib/typescript/editor/NoteEditor.d.ts.map +1 -1
  26. package/lib/typescript/editor/editorHtml.generated.d.ts.map +1 -1
  27. package/lib/typescript/editor/protocol.d.ts +2 -10
  28. package/lib/typescript/editor/protocol.d.ts.map +1 -1
  29. package/lib/typescript/index.d.ts +2 -0
  30. package/lib/typescript/index.d.ts.map +1 -1
  31. package/package.json +2 -2
  32. package/src/components/TextMarker.tsx +696 -0
  33. package/src/editor/NoteEditor.tsx +10 -192
  34. package/src/editor/editorHtml.generated.ts +1 -1
  35. package/src/editor/protocol.ts +2 -8
  36. package/src/index.ts +14 -0
package/README.md CHANGED
@@ -369,6 +369,7 @@ import { Check, CloseMd } from "@medway-ui/icons/native";
369
369
  | Tag | ✅ | 16+ variantes |
370
370
  | Toast | ✅ | useToast + toast(); variantes com gradiente + inset de safe area |
371
371
  | Tooltip | ✅ | @rn-primitives/tooltip |
372
+ | TextMarker | ✅ | Toolbar do marca-texto ancorada a um retângulo da janela; `textMarkerMarkVariants` para o `<Text>` |
372
373
  | Popover | ✅ | @rn-primitives/popover |
373
374
  | Skeleton | ✅ | Shimmer |
374
375
  | Avatar | ✅ | @rn-primitives/avatar |
@@ -0,0 +1,485 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TEXT_MARKER_COLORS = void 0;
7
+ exports.TextMarker = TextMarker;
8
+ exports.textMarkerMarkVariants = void 0;
9
+ var _native = require("@medway-ui/icons/native");
10
+ var _classVarianceAuthority = require("class-variance-authority");
11
+ var _react = require("react");
12
+ var _reactNative = require("react-native");
13
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
14
+ var _reactNativeSvg = _interopRequireWildcard(require("react-native-svg"));
15
+ var _Button = require("./Button.js");
16
+ var _Separator = require("./Separator.js");
17
+ var _ThemedIcon = require("./ThemedIcon.js");
18
+ var _useThemeColor = require("../hooks/useThemeColor.js");
19
+ var _overlayHost = require("../lib/overlay-host.js");
20
+ var _touchTarget = require("../lib/touch-target.js");
21
+ var _utils = require("../lib/utils.js");
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
24
+ /**
25
+ * Retângulo do trecho em coordenadas da janela, como o `measureInWindow`
26
+ * devolve (`x` → `left`, `y` → `top`).
27
+ */
28
+
29
+ const TEXT_MARKER_COLORS = exports.TEXT_MARKER_COLORS = Object.freeze(["cm", "go", "cir", "ped", "prev"]);
30
+ const COLOR_NAMES = {
31
+ cm: "Azul",
32
+ go: "Rosa",
33
+ cir: "Verde",
34
+ ped: "Amarelo",
35
+ prev: "Roxo"
36
+ };
37
+ const DEFAULT_LABELS = {
38
+ toolbar: "Marcação da seleção",
39
+ color: "Cor",
40
+ close: "Fechar marcação",
41
+ strikethrough: "Riscar",
42
+ strikethroughHint: "Riscar: passa um traço sobre o trecho para destacar o que não importa",
43
+ underline: "Sublinhar",
44
+ underlineHint: "Sublinhar: passa um traço sob o trecho para destacar o que importa",
45
+ annotate: "Anotar",
46
+ annotateHint: "Anotar: abre a nota com o trecho selecionado",
47
+ pin: "Fixar",
48
+ pinHint: "Fixar: escolha uma cor e as próximas seleções já saem marcadas com ela",
49
+ pinArmedHint: "Escolha a cor que vai ficar fixada",
50
+ unpinHint: "Desafixar: as próximas seleções voltam a abrir esta ferramenta",
51
+ remove: "Remover marcação",
52
+ removeHint: "Remover a marcação deste trecho",
53
+ colorName: color => COLOR_NAMES[color]
54
+ };
55
+ const SWATCH_CLASS = {
56
+ cm: "bg-cm-background-fill",
57
+ go: "bg-go-background-fill",
58
+ cir: "bg-cir-background-fill",
59
+ ped: "bg-ped-background-fill",
60
+ prev: "bg-prev-background-fill"
61
+ };
62
+ const SWATCH_SELECTED_CLASS = {
63
+ cm: "border-cm-background-fill",
64
+ go: "border-go-background-fill",
65
+ cir: "border-cir-background-fill",
66
+ ped: "border-ped-background-fill",
67
+ prev: "border-prev-background-fill"
68
+ };
69
+ const MARK_COLOR_CLASS = {
70
+ cm: "bg-cm-16 dark:bg-cm-48",
71
+ go: "bg-go-16 dark:bg-go-48",
72
+ cir: "bg-cir-16 dark:bg-cir-24",
73
+ ped: "bg-ped-24 dark:bg-ped-48",
74
+ prev: "bg-prev-16 dark:bg-prev-48"
75
+ };
76
+ const textMarkerMarkVariants = exports.textMarkerMarkVariants = (0, _classVarianceAuthority.cva)("", {
77
+ variants: {
78
+ color: {
79
+ ...MARK_COLOR_CLASS,
80
+ none: "bg-transparent"
81
+ },
82
+ strikethrough: {
83
+ true: "text-gray-foreground-muted line-through",
84
+ false: ""
85
+ },
86
+ underline: {
87
+ true: "underline",
88
+ false: ""
89
+ }
90
+ },
91
+ defaultVariants: {
92
+ color: "none",
93
+ strikethrough: false,
94
+ underline: false
95
+ }
96
+ });
97
+ const EDGE_GAP = 16;
98
+ const SIDE_OFFSET = 4;
99
+ const ARROW_WIDTH = 16;
100
+ const ARROW_HEIGHT = 10;
101
+ const ARROW_INSET = 24;
102
+ const SWATCH_SIZE = 32;
103
+ const NO_INSETS = {
104
+ top: 0,
105
+ right: 0,
106
+ bottom: 0,
107
+ left: 0
108
+ };
109
+ function availableWidth(windowWidth, insets) {
110
+ return windowWidth - insets.left - insets.right - 2 * EDGE_GAP;
111
+ }
112
+ function computePlacement({
113
+ anchor,
114
+ hostOrigin,
115
+ window,
116
+ insets,
117
+ size
118
+ }) {
119
+ const gap = SIDE_OFFSET + ARROW_HEIGHT;
120
+ const anchorTop = anchor.top - hostOrigin.y;
121
+ const anchorBottom = anchorTop + anchor.height;
122
+ const anchorCenter = anchor.left + anchor.width / 2 - hostOrigin.x;
123
+ const minTop = Math.max(insets.top - hostOrigin.y, 0) + EDGE_GAP;
124
+ const maxBottom = Math.min(hostOrigin.height, window.height - insets.bottom - hostOrigin.y) - EDGE_GAP;
125
+ const above = anchorTop - gap - size.height;
126
+ const below = anchorBottom + gap;
127
+ const side = above >= minTop ? "top" : below + size.height <= maxBottom ? "bottom" : "over";
128
+ const top = side === "top" ? above : side === "bottom" ? below : Math.max(minTop, Math.min(below, maxBottom - size.height));
129
+ const minLeft = Math.max(insets.left - hostOrigin.x, 0) + EDGE_GAP;
130
+ const maxLeft = window.width - hostOrigin.x - insets.right - EDGE_GAP - size.width;
131
+ const left = Math.max(minLeft, Math.min(anchorCenter - size.width / 2, maxLeft));
132
+ const arrowLeft = Math.max(ARROW_INSET - ARROW_WIDTH / 2, Math.min(anchorCenter - left - ARROW_WIDTH / 2, size.width - ARROW_INSET - ARROW_WIDTH / 2));
133
+ return {
134
+ side,
135
+ top,
136
+ left,
137
+ arrowLeft
138
+ };
139
+ }
140
+ function createPropsStore(initial) {
141
+ let current = initial;
142
+ const listeners = new Set();
143
+ return {
144
+ get: () => current,
145
+ set: props => {
146
+ if (props === current) return;
147
+ current = props;
148
+ listeners.forEach(listener => listener());
149
+ },
150
+ subscribe: listener => {
151
+ listeners.add(listener);
152
+ return () => {
153
+ listeners.delete(listener);
154
+ };
155
+ }
156
+ };
157
+ }
158
+ function Arrow({
159
+ side,
160
+ left
161
+ }) {
162
+ const fill = (0, _useThemeColor.useThemeColor)("surface-elevated");
163
+ const stroke = (0, _useThemeColor.useThemeColor)("gray-stroke-muted");
164
+ const pointsDown = side === "top";
165
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
166
+ pointerEvents: "none",
167
+ style: [styles.arrow, {
168
+ left
169
+ }, pointsDown ? {
170
+ bottom: -ARROW_HEIGHT + 1
171
+ } : {
172
+ top: -ARROW_HEIGHT + 1,
173
+ transform: [{
174
+ rotate: "180deg"
175
+ }]
176
+ }],
177
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.default, {
178
+ width: ARROW_WIDTH,
179
+ height: ARROW_HEIGHT,
180
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
181
+ d: `M0 0 L${ARROW_WIDTH / 2} ${ARROW_HEIGHT} L${ARROW_WIDTH} 0 Z`,
182
+ fill: fill
183
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
184
+ d: `M0 0 L${ARROW_WIDTH / 2} ${ARROW_HEIGHT} L${ARROW_WIDTH} 0`,
185
+ fill: "none",
186
+ stroke: stroke,
187
+ strokeWidth: 1
188
+ })]
189
+ })
190
+ });
191
+ }
192
+ function ColorSwatch({
193
+ color,
194
+ selected,
195
+ name,
196
+ hint,
197
+ disabled,
198
+ onSelect
199
+ }) {
200
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
201
+ accessibilityRole: "button",
202
+ accessibilityLabel: name,
203
+ accessibilityHint: hint,
204
+ accessibilityState: {
205
+ selected,
206
+ disabled
207
+ },
208
+ disabled: disabled,
209
+ hitSlop: (0, _touchTarget.getMinTouchHitSlop)(SWATCH_SIZE),
210
+ onPress: () => onSelect(color),
211
+ className: (0, _utils.cn)("size-8 shrink-0 items-center justify-center rounded-circular border border-transparent p-1", selected && SWATCH_SELECTED_CLASS[color], disabled && "opacity-50"),
212
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
213
+ pointerEvents: "none",
214
+ className: (0, _utils.cn)("size-6 shrink-0 rounded-circular", SWATCH_CLASS[color])
215
+ })
216
+ });
217
+ }
218
+ function ActionButton({
219
+ icon,
220
+ label,
221
+ hint,
222
+ selected,
223
+ selectedClassName,
224
+ selectedIconToken,
225
+ iconToken = "primary-foreground",
226
+ variant = "regular-basic",
227
+ disabled,
228
+ onPress
229
+ }) {
230
+ const token = disabled ? "gray-foreground-muted" : selected && selectedIconToken ? selectedIconToken : iconToken;
231
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, {
232
+ variant: variant,
233
+ size: "sm",
234
+ accessibilityLabel: label,
235
+ accessibilityHint: hint,
236
+ accessibilityState: selected === undefined ? {
237
+ disabled
238
+ } : {
239
+ selected,
240
+ disabled
241
+ },
242
+ disabled: disabled,
243
+ hitSlop: (0, _touchTarget.getMinTouchHitSlop)(SWATCH_SIZE),
244
+ className: (0, _utils.cn)(selected && selectedClassName),
245
+ iconLeft: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ThemedIcon.ThemedIcon, {
246
+ icon: icon,
247
+ size: 16,
248
+ colorToken: token
249
+ }),
250
+ onPress: onPress
251
+ });
252
+ }
253
+ function ChromeSeparator() {
254
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Separator.Separator, {
255
+ orientation: "vertical",
256
+ className: "h-7 self-center"
257
+ });
258
+ }
259
+ function TextMarkerLayer({
260
+ store
261
+ }) {
262
+ const {
263
+ anchor = null,
264
+ mode = "create",
265
+ selectedText,
266
+ color,
267
+ colors = TEXT_MARKER_COLORS,
268
+ strikethrough = false,
269
+ underline = false,
270
+ pinnedColor = null,
271
+ disabled = false,
272
+ className,
273
+ labels: labelsProp,
274
+ onHighlight,
275
+ onStrikethrough,
276
+ onUnderline,
277
+ onPinnedColorChange,
278
+ onNote,
279
+ onRemove,
280
+ onClose
281
+ } = (0, _react.useSyncExternalStore)(store.subscribe, store.get, store.get);
282
+ const overlay = (0, _overlayHost.useOverlayHost)();
283
+ const window = (0, _reactNative.useWindowDimensions)();
284
+ const insets = (0, _react.useContext)(_reactNativeSafeAreaContext.SafeAreaInsetsContext) ?? NO_INSETS;
285
+ const layerA = (0, _useThemeColor.useThemeColor)("drop-shadow-layer-a");
286
+ const layerB = (0, _useThemeColor.useThemeColor)("drop-shadow-layer-b");
287
+ const labels = {
288
+ ...DEFAULT_LABELS,
289
+ ...labelsProp
290
+ };
291
+ const [hostOrigin, setHostOrigin] = (0, _react.useState)(null);
292
+ const [size, setSize] = (0, _react.useState)(null);
293
+ const [rowCheck, setRowCheck] = (0, _react.useState)(null);
294
+ const rowY = (0, _react.useRef)({});
295
+ const [pinArmed, setPinArmed] = (0, _react.useState)(false);
296
+ const maxWidth = availableWidth(window.width, insets);
297
+ const compact = rowCheck?.width === maxWidth ? rowCheck.compact : null;
298
+ const pinSelected = Boolean(pinnedColor) || pinArmed;
299
+ const pinHint = pinnedColor ? labels.unpinHint : pinArmed ? labels.pinArmedHint : labels.pinHint;
300
+ const placement = anchor && hostOrigin && size && compact !== null ? computePlacement({
301
+ anchor,
302
+ hostOrigin,
303
+ window,
304
+ insets,
305
+ size
306
+ }) : null;
307
+ const selectColor = next => {
308
+ if (next === color && !pinArmed) {
309
+ onRemove?.();
310
+ return;
311
+ }
312
+ if (pinArmed) {
313
+ setPinArmed(false);
314
+ onPinnedColorChange?.(next);
315
+ }
316
+ onHighlight?.(next);
317
+ };
318
+ const togglePin = () => {
319
+ if (pinnedColor) {
320
+ onPinnedColorChange?.(null);
321
+ return;
322
+ }
323
+ setPinArmed(!pinArmed);
324
+ };
325
+ const measureRow = key => event => {
326
+ if (compact !== null) return;
327
+ if (rowY.current.width !== maxWidth) rowY.current = {
328
+ width: maxWidth
329
+ };
330
+ const {
331
+ y,
332
+ height
333
+ } = event.nativeEvent.layout;
334
+ rowY.current[key] = key === "colors" ? y + height : y;
335
+ const {
336
+ colors: colorsBottom,
337
+ actions: actionsTop
338
+ } = rowY.current;
339
+ if (colorsBottom === undefined || actionsTop === undefined) return;
340
+ setRowCheck({
341
+ width: maxWidth,
342
+ compact: actionsTop >= colorsBottom
343
+ });
344
+ };
345
+ const colorGroup = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
346
+ className: "flex-row items-center gap-2",
347
+ onLayout: measureRow("colors"),
348
+ children: colors.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(ColorSwatch, {
349
+ color: item,
350
+ name: `${labels.color} ${labels.colorName(item)}`,
351
+ hint: pinArmed ? labels.pinArmedHint : undefined,
352
+ selected: color === item,
353
+ disabled: disabled,
354
+ onSelect: selectColor
355
+ }, item))
356
+ });
357
+ const actionGroup = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
358
+ className: "flex-row items-center gap-2",
359
+ onLayout: measureRow("actions"),
360
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
361
+ icon: _native.Strikethrough,
362
+ label: labels.strikethrough,
363
+ hint: labels.strikethroughHint,
364
+ selected: strikethrough,
365
+ selectedClassName: "bg-primary-background-soft-emphasis",
366
+ selectedIconToken: "primary-foreground-emphasis",
367
+ disabled: disabled,
368
+ onPress: () => strikethrough ? onRemove?.() : onStrikethrough?.()
369
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
370
+ icon: _native.Underline,
371
+ label: labels.underline,
372
+ hint: labels.underlineHint,
373
+ selected: underline,
374
+ selectedClassName: "bg-primary-background-soft-emphasis",
375
+ selectedIconToken: "primary-foreground-emphasis",
376
+ disabled: disabled,
377
+ onPress: () => underline ? onRemove?.() : onUnderline?.()
378
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
379
+ icon: _native.Note,
380
+ label: labels.annotate,
381
+ hint: labels.annotateHint,
382
+ disabled: disabled,
383
+ onPress: () => onNote?.(selectedText ?? "")
384
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ChromeSeparator, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
385
+ icon: _native.MapPin,
386
+ label: labels.pin,
387
+ hint: pinHint,
388
+ selected: pinSelected,
389
+ selectedClassName: "bg-primary-background-fill active:bg-primary-background-fill-emphasis",
390
+ selectedIconToken: "primary-foreground-onfill",
391
+ disabled: disabled,
392
+ onPress: togglePin
393
+ }), mode === "edit" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
394
+ icon: _native.CloseSm,
395
+ label: labels.remove,
396
+ hint: labels.removeHint,
397
+ variant: "error-soft",
398
+ iconToken: "feedback-error-foreground",
399
+ disabled: disabled,
400
+ onPress: () => onRemove?.()
401
+ }) : null]
402
+ });
403
+ (0, _react.useEffect)(() => {
404
+ let cancelled = false;
405
+ overlay.measureHostOrigin(origin => {
406
+ if (!cancelled) setHostOrigin(origin);
407
+ });
408
+ return () => {
409
+ cancelled = true;
410
+ };
411
+ }, [overlay, window.width, window.height]);
412
+ (0, _react.useEffect)(() => {
413
+ const subscription = _reactNative.BackHandler.addEventListener("hardwareBackPress", () => {
414
+ const close = store.get().onClose;
415
+ close?.();
416
+ return Boolean(close);
417
+ });
418
+ return () => subscription.remove();
419
+ }, [store]);
420
+ if (!anchor || !hostOrigin) return null;
421
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
422
+ style: _reactNative.StyleSheet.absoluteFill,
423
+ pointerEvents: "box-none",
424
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
425
+ accessibilityLabel: labels.close,
426
+ style: _reactNative.StyleSheet.absoluteFill,
427
+ onPress: () => onClose?.()
428
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
429
+ accessibilityRole: "toolbar",
430
+ accessibilityLabel: labels.toolbar,
431
+ pointerEvents: placement ? "auto" : "none",
432
+ className: (0, _utils.cn)("border border-gray-stroke-muted bg-surface-elevated", compact ? "items-center gap-2 rounded-lg p-2" : "flex-row flex-wrap items-center gap-2 rounded-pill py-2 pl-3 pr-2", className),
433
+ style: [styles.toolbar, {
434
+ maxWidth,
435
+ top: placement?.top ?? 0,
436
+ left: placement?.left ?? 0,
437
+ opacity: placement ? 1 : 0,
438
+ boxShadow: `0 0 2px 0 ${layerA}, 0 2px 4px 0 ${layerB}`
439
+ }],
440
+ onLayout: event => {
441
+ const {
442
+ width,
443
+ height
444
+ } = event.nativeEvent.layout;
445
+ setSize(current => current?.width === width && current.height === height ? current : {
446
+ width,
447
+ height
448
+ });
449
+ },
450
+ children: [colorGroup, compact ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(ChromeSeparator, {}), actionGroup, placement && placement.side !== "over" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Arrow, {
451
+ side: placement.side,
452
+ left: placement.arrowLeft
453
+ }) : null]
454
+ }, maxWidth)]
455
+ });
456
+ }
457
+ function TextMarker(props) {
458
+ const id = (0, _react.useId)();
459
+ const overlay = (0, _overlayHost.useOverlayHost)();
460
+ const [store] = (0, _react.useState)(() => createPropsStore(props));
461
+ const visible = Boolean(props.open && props.anchor);
462
+ (0, _react.useEffect)(() => {
463
+ store.set(props);
464
+ });
465
+ (0, _react.useEffect)(() => {
466
+ if (!visible) return;
467
+ overlay.mount(id, /*#__PURE__*/(0, _jsxRuntime.jsx)(TextMarkerLayer, {
468
+ store: store
469
+ }));
470
+ return () => overlay.unmount(id);
471
+ }, [id, overlay, store, visible]);
472
+ return null;
473
+ }
474
+ const styles = _reactNative.StyleSheet.create({
475
+ toolbar: {
476
+ position: "absolute",
477
+ zIndex: 2
478
+ },
479
+ arrow: {
480
+ position: "absolute",
481
+ width: ARROW_WIDTH,
482
+ height: ARROW_HEIGHT
483
+ }
484
+ });
485
+ //# sourceMappingURL=TextMarker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_native","require","_classVarianceAuthority","_react","_reactNative","_reactNativeSafeAreaContext","_reactNativeSvg","_interopRequireWildcard","_Button","_Separator","_ThemedIcon","_useThemeColor","_overlayHost","_touchTarget","_utils","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TEXT_MARKER_COLORS","exports","freeze","COLOR_NAMES","cm","go","cir","ped","prev","DEFAULT_LABELS","toolbar","color","close","strikethrough","strikethroughHint","underline","underlineHint","annotate","annotateHint","pin","pinHint","pinArmedHint","unpinHint","remove","removeHint","colorName","SWATCH_CLASS","SWATCH_SELECTED_CLASS","MARK_COLOR_CLASS","textMarkerMarkVariants","cva","variants","none","true","false","defaultVariants","EDGE_GAP","SIDE_OFFSET","ARROW_WIDTH","ARROW_HEIGHT","ARROW_INSET","SWATCH_SIZE","NO_INSETS","top","right","bottom","left","availableWidth","windowWidth","insets","computePlacement","anchor","hostOrigin","window","size","gap","anchorTop","y","anchorBottom","height","anchorCenter","width","x","minTop","Math","max","maxBottom","min","above","below","side","minLeft","maxLeft","arrowLeft","createPropsStore","initial","current","listeners","Set","props","forEach","listener","subscribe","add","delete","Arrow","fill","useThemeColor","stroke","pointsDown","jsx","View","pointerEvents","style","styles","arrow","transform","rotate","children","jsxs","Path","d","strokeWidth","ColorSwatch","selected","name","hint","disabled","onSelect","Pressable","accessibilityRole","accessibilityLabel","accessibilityHint","accessibilityState","hitSlop","getMinTouchHitSlop","onPress","className","cn","ActionButton","icon","label","selectedClassName","selectedIconToken","iconToken","variant","token","Button","undefined","iconLeft","ThemedIcon","colorToken","ChromeSeparator","Separator","orientation","TextMarkerLayer","store","mode","selectedText","colors","pinnedColor","labels","labelsProp","onHighlight","onStrikethrough","onUnderline","onPinnedColorChange","onNote","onRemove","onClose","useSyncExternalStore","overlay","useOverlayHost","useWindowDimensions","useContext","SafeAreaInsetsContext","layerA","layerB","setHostOrigin","useState","setSize","rowCheck","setRowCheck","rowY","useRef","pinArmed","setPinArmed","maxWidth","compact","pinSelected","Boolean","placement","selectColor","next","togglePin","measureRow","key","event","nativeEvent","layout","colorsBottom","actions","actionsTop","colorGroup","onLayout","map","item","actionGroup","Strikethrough","Underline","Note","MapPin","CloseSm","useEffect","cancelled","measureHostOrigin","origin","subscription","BackHandler","addEventListener","StyleSheet","absoluteFill","opacity","boxShadow","TextMarker","id","useId","visible","open","mount","unmount","create","position","zIndex"],"sourceRoot":"../../../src","sources":["components/TextMarker.tsx"],"mappings":"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","ignoreList":[]}