@hjmds/react-native 1.7.0 → 1.8.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 (100) hide show
  1. package/README.md +26 -2
  2. package/THIRD_PARTY_NOTICES.md +58 -0
  3. package/dist/actions.js +1 -1
  4. package/dist/actions.js.map +1 -1
  5. package/dist/calendar.d.ts.map +1 -1
  6. package/dist/calendar.js +6 -3
  7. package/dist/calendar.js.map +1 -1
  8. package/dist/context-menu-native.d.ts +17 -0
  9. package/dist/context-menu-native.d.ts.map +1 -0
  10. package/dist/context-menu-native.js +11 -0
  11. package/dist/context-menu-native.js.map +1 -0
  12. package/dist/data-display.d.ts.map +1 -1
  13. package/dist/data-display.js +8 -2
  14. package/dist/data-display.js.map +1 -1
  15. package/dist/date-picker.js +1 -1
  16. package/dist/date-picker.js.map +1 -1
  17. package/dist/evidence.d.ts +61 -2
  18. package/dist/evidence.d.ts.map +1 -1
  19. package/dist/evidence.js +104 -46
  20. package/dist/evidence.js.map +1 -1
  21. package/dist/feedback.d.ts +7 -2
  22. package/dist/feedback.d.ts.map +1 -1
  23. package/dist/feedback.js +104 -24
  24. package/dist/feedback.js.map +1 -1
  25. package/dist/forms.d.ts +8 -3
  26. package/dist/forms.d.ts.map +1 -1
  27. package/dist/forms.js +24 -7
  28. package/dist/forms.js.map +1 -1
  29. package/dist/image-viewer.d.ts +25 -0
  30. package/dist/image-viewer.d.ts.map +1 -0
  31. package/dist/image-viewer.js +47 -0
  32. package/dist/image-viewer.js.map +1 -0
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/inputs.d.ts.map +1 -1
  37. package/dist/inputs.js +29 -28
  38. package/dist/inputs.js.map +1 -1
  39. package/dist/internal/toast-presentation.d.ts +27 -0
  40. package/dist/internal/toast-presentation.d.ts.map +1 -0
  41. package/dist/internal/toast-presentation.js +2 -0
  42. package/dist/internal/toast-presentation.js.map +1 -0
  43. package/dist/keyboard-controller.d.ts +19 -0
  44. package/dist/keyboard-controller.d.ts.map +1 -0
  45. package/dist/keyboard-controller.js +18 -0
  46. package/dist/keyboard-controller.js.map +1 -0
  47. package/dist/masonry.d.ts +14 -0
  48. package/dist/masonry.d.ts.map +1 -0
  49. package/dist/masonry.js +16 -0
  50. package/dist/masonry.js.map +1 -0
  51. package/dist/mentions.d.ts.map +1 -1
  52. package/dist/mentions.js +15 -7
  53. package/dist/mentions.js.map +1 -1
  54. package/dist/navigation.d.ts.map +1 -1
  55. package/dist/navigation.js +6 -4
  56. package/dist/navigation.js.map +1 -1
  57. package/dist/number-field.js +3 -3
  58. package/dist/number-field.js.map +1 -1
  59. package/dist/overlays.d.ts.map +1 -1
  60. package/dist/overlays.js +7 -5
  61. package/dist/overlays.js.map +1 -1
  62. package/dist/primitives.d.ts.map +1 -1
  63. package/dist/primitives.js +2 -2
  64. package/dist/primitives.js.map +1 -1
  65. package/dist/qr-code.d.ts +11 -0
  66. package/dist/qr-code.d.ts.map +1 -0
  67. package/dist/qr-code.js +16 -0
  68. package/dist/qr-code.js.map +1 -0
  69. package/dist/sheet-gesture.d.ts +19 -0
  70. package/dist/sheet-gesture.d.ts.map +1 -0
  71. package/dist/sheet-gesture.js +49 -0
  72. package/dist/sheet-gesture.js.map +1 -0
  73. package/dist/steps.js +1 -1
  74. package/dist/steps.js.map +1 -1
  75. package/dist/tags-input.js +2 -1
  76. package/dist/tags-input.js.map +1 -1
  77. package/dist/thinking-orb.d.ts +9 -0
  78. package/dist/thinking-orb.d.ts.map +1 -0
  79. package/dist/thinking-orb.js +68 -0
  80. package/dist/thinking-orb.js.map +1 -0
  81. package/dist/toast-liquid.d.ts +8 -0
  82. package/dist/toast-liquid.d.ts.map +1 -0
  83. package/dist/toast-liquid.js +145 -0
  84. package/dist/toast-liquid.js.map +1 -0
  85. package/dist/transfer-list.d.ts.map +1 -1
  86. package/dist/transfer-list.js +2 -2
  87. package/dist/transfer-list.js.map +1 -1
  88. package/dist/upload-item.d.ts.map +1 -1
  89. package/dist/upload-item.js +4 -1
  90. package/dist/upload-item.js.map +1 -1
  91. package/dist/virtual-list.d.ts +14 -0
  92. package/dist/virtual-list.d.ts.map +1 -0
  93. package/dist/virtual-list.js +12 -0
  94. package/dist/virtual-list.js.map +1 -0
  95. package/docs/liquid-toast.md +96 -0
  96. package/docs/patches/@react-native-menu__menu.patch +43 -0
  97. package/docs/patches/README.md +27 -0
  98. package/docs/patches/react-native-ios-context-menu.patch +14 -0
  99. package/docs/patches/react-native-ios-utilities.patch +34 -0
  100. package/package.json +128 -5
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-list.js","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer-list.js","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-item.d.ts","sourceRoot":"","sources":["../src/upload-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAO/E,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,UAAU,EAAE,oBAAoB,CAAC;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,eAAe,+BAoCpG"}
1
+ {"version":3,"file":"upload-item.d.ts","sourceRoot":"","sources":["../src/upload-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAO/E,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,UAAU,EAAE,oBAAoB,CAAC;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,eAAe,+BAuCpG"}
@@ -20,6 +20,9 @@ export function UploadItem({ descriptor, labels, onCancel, onRetry, leading, sty
20
20
  : descriptor.state.status === "success" || descriptor.state.status === "uploading"
21
21
  ? colors.contentBrand
22
22
  : colors.textMuted;
23
- return (_jsxs(View, { accessibilityLabel: announcement.label, accessible: true, style: [{ alignItems: "center", borderColor: colors.border, borderRadius: 12, borderWidth: 1, direction: environment.direction, flexDirection: "row", gap: uploadItemRecipe.row.gap, minHeight: uploadItemRecipe.row.minHeight, paddingHorizontal: uploadItemRecipe.row.paddingHorizontal }, style], children: [leading === undefined ? null : _jsx(View, { accessible: false, children: leading }), _jsxs(View, { style: { flex: 1, gap: 2, minWidth: 0 }, children: [_jsx(Text, { children: descriptor.name }), descriptor.sizeLabel === undefined ? null : _jsx(Text, { tone: "muted", variant: "label", children: descriptor.sizeLabel }), _jsx(Text, { accessibilityLiveRegion: "polite", style: { color: statusColor }, variant: "label", children: announcement.description }), descriptor.state.status === "uploading" ? _jsx(Progress, { label: announcement.description, ...(descriptor.state.progress === null ? {} : { value: descriptor.state.progress }), valueText: announcement.description }) : null] }), action === null ? null : (_jsx(Pressable, { accessibilityLabel: action === "cancel" ? labels.cancel : labels.retry, accessibilityRole: "button", onPress: () => action === "cancel" ? onCancel?.(descriptor.id) : onRetry?.(descriptor.id), style: ({ pressed }) => [minimumTargetStyle, { alignItems: "center", justifyContent: "center", opacity: pressed ? 0.72 : 1 }], children: _jsx(Text, { emphasis: "strong", style: { color: action === "cancel" ? colors.danger : colors.contentBrand }, variant: "label", children: action === "cancel" ? labels.cancel : labels.retry }) }))] }));
23
+ return (
24
+ // Native exposes only a busy state for this lifecycle; success and error remain
25
+ // distinguishable through the live status sentence, as documented by the contract.
26
+ _jsxs(View, { accessibilityLabel: announcement.label, accessibilityState: { busy: descriptor.state.status === "uploading" }, accessible: true, style: [{ alignItems: "center", borderColor: colors.border, borderRadius: 12, borderWidth: 1, direction: environment.direction, flexDirection: "row", gap: uploadItemRecipe.row.gap, minHeight: uploadItemRecipe.row.minHeight, paddingHorizontal: uploadItemRecipe.row.paddingHorizontal, paddingVertical: 8 }, style], children: [leading === undefined ? null : _jsx(View, { accessible: false, children: leading }), _jsxs(View, { style: { flex: 1, gap: 2, minWidth: 0 }, children: [_jsx(Text, { children: descriptor.name }), descriptor.sizeLabel === undefined ? null : _jsx(Text, { tone: "muted", variant: "label", children: descriptor.sizeLabel }), _jsx(Text, { accessibilityLiveRegion: "polite", style: { color: statusColor }, variant: "label", children: announcement.description }), descriptor.state.status === "uploading" ? _jsx(Progress, { accessibilityLabel: announcement.description, ...(descriptor.state.progress === null ? {} : { value: descriptor.state.progress }), valueText: announcement.description }) : null] }), action === null ? null : (_jsx(Pressable, { accessibilityLabel: action === "cancel" ? labels.cancel : labels.retry, accessibilityRole: "button", onPress: () => action === "cancel" ? onCancel?.(descriptor.id) : onRetry?.(descriptor.id), style: ({ pressed }) => [minimumTargetStyle, { alignItems: "center", justifyContent: "center", opacity: pressed ? 0.72 : 1 }], children: _jsx(Text, { emphasis: "strong", style: { color: action === "cancel" ? colors.danger : colors.contentBrand }, variant: "label", children: action === "cancel" ? labels.cancel : labels.retry }) }))] }));
24
27
  }
25
28
  //# sourceMappingURL=upload-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-item.js","sourceRoot":"","sources":["../src/upload-item.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-item.js","sourceRoot":"","sources":["../src/upload-item.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ReactNode } from "react";
2
+ export type VirtualListProps<T> = {
3
+ items: readonly T[];
4
+ keyExtractor: (item: T) => string;
5
+ renderItem: (item: T, index: number) => ReactNode;
6
+ rowHeight: number;
7
+ height: number;
8
+ label: string;
9
+ empty?: ReactNode;
10
+ overscan?: number;
11
+ };
12
+ /** FlatList owns recycling and native assistive scrolling; rowHeight must fit the host's current text scale. */
13
+ export declare function VirtualList<T>({ items, keyExtractor, renderItem, rowHeight, height, label, empty, overscan }: VirtualListProps<T>): import("react").JSX.Element;
14
+ //# sourceMappingURL=virtual-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-list.d.ts","sourceRoot":"","sources":["../src/virtual-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAAC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACxO,gHAAgH;AAChH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAY,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,+BAQrI"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { FlatList, View } from "react-native";
3
+ import { resolveVirtualWindow, validateListKeys } from "@hjmds/design-contracts/components/virtual-list";
4
+ /** FlatList owns recycling and native assistive scrolling; rowHeight must fit the host's current text scale. */
5
+ export function VirtualList({ items, keyExtractor, renderItem, rowHeight, height, label, empty, overscan = 3 }) {
6
+ validateListKeys(items.map(keyExtractor), label);
7
+ resolveVirtualWindow(items.length, rowHeight, height, 0, overscan);
8
+ // ScrollView defaults to flexGrow: 1; disable it so the declared viewport
9
+ // remains fixed inside a tall host instead of expanding beyond `height`.
10
+ return _jsx(FlatList, { data: items, accessibilityLabel: label, keyExtractor: keyExtractor, style: { height, flexGrow: 0, flexShrink: 0 }, getItemLayout: (_data, index) => ({ length: rowHeight, offset: index * rowHeight, index }), initialNumToRender: Math.ceil(height / rowHeight) + overscan, ListEmptyComponent: _jsx(View, { children: empty }), renderItem: ({ item, index }) => _jsx(View, { style: { height: rowHeight }, children: renderItem(item, index) }) });
11
+ }
12
+ //# sourceMappingURL=virtual-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-list.js","sourceRoot":"","sources":["../src/virtual-list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAEzG,gHAAgH;AAChH,MAAM,UAAU,WAAW,CAAI,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAuB;IACpI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrH,0EAA0E;IAC1E,yEAAyE;IACzE,OAAO,KAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EACjF,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,EACzI,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,QAAQ,EAAE,kBAAkB,EAAE,KAAC,IAAI,cAAE,KAAK,GAAQ,EACtG,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAQ,GAAI,CAAC;AAC9G,CAAC"}
@@ -0,0 +1,96 @@
1
+ # Liquid Toast (beta, optional Native presentation)
2
+
3
+ Liquid Toast uses the existing Toast store with a capsule, connecting neck, droplet, card expansion
4
+ and reverse exit inspired by expo-dynamic-notifications. It is an in-app effect, not ActivityKit,
5
+ Live Activity or a background notification service. The upstream MIT notice ships with this package.
6
+
7
+ ## Installation and compatibility
8
+
9
+ Use the exact published HJM version train for contracts and renderer. This implementation is currently
10
+ an unpublished source change. The effect is imported from `@hjmds/react-native/toast-liquid`; the root
11
+ barrel intentionally does not re-export its factory.
12
+
13
+ Install the host-compatible versions of these optional peers before importing that subpath:
14
+
15
+ | Peer | Initial tested type/bundle fixture |
16
+ | --- | --- |
17
+ | @shopify/react-native-skia | 2.6.2 |
18
+ | react-native-reanimated | 4.5.1 |
19
+ | react-native-worklets | 0.10.1 |
20
+
21
+ The Native showcase uses Expo 57 / RN 0.86.2. Reanimated/Worklets in this lane declare RN 0.83–0.86;
22
+ this does not extend the effect to the base renderer's entire RN >=0.81 range. The base Metro fixture
23
+ remains RN 0.81.6 and actively rejects imports of the optional peers. Its development install reports
24
+ their peer mismatch because the optional effect is typechecked in the same package; that is not a
25
+ claim that RN 0.81 can run the effect. No framework upgrade is forced on standard Toast consumers.
26
+
27
+ Configure the Worklets Babel plugin in a bare RN app according to its version's setup. The Expo fixture
28
+ uses `babel-preset-expo`'s integration. A binary must already contain compatible native modules;
29
+ adding JS dependencies alone does not add them to an installed development client or OTA runtime.
30
+ No `expo-blur`, Expo symbols or remote avatar loader is required by HJM.
31
+
32
+ ## Usage
33
+
34
+ ```tsx
35
+ import { ToastRegion, useToastRegion } from '@hjmds/react-native/feedback';
36
+ import { createLiquidToastPresentation } from '@hjmds/react-native/toast-liquid';
37
+
38
+ // Create outside render, or memoize. Default anchor works without hardware identification.
39
+ const liquid = createLiquidToastPresentation({ anchor: { kind: 'capsule' } });
40
+
41
+ <ToastRegion placement="top" maxVisible={1} presentationAdapter={liquid}
42
+ safeAreaInsets={insets} occluded={modalIsOpen}>
43
+ {children}
44
+ </ToastRegion>
45
+
46
+ const toast = useToastRegion();
47
+ toast.publish({
48
+ id: `generation:${job.id}`,
49
+ presentation: 'liquid',
50
+ title: t('generation.completed.title'),
51
+ description: t('generation.completed.description'),
52
+ closeLabel: t('common.closeNotification'),
53
+ tone: 'success',
54
+ action: { label: t('generation.open'), onAction: openResult },
55
+ });
56
+ ```
57
+
58
+ The host must provide current safe-area insets and set `occluded` while its modal hides the region.
59
+ Mount a region covering the intended screen, outside clipping containers. Ordinary descriptors still
60
+ render standard Toasts. Liquid requires `placement="top"`, `maxVisible={1}`; other combinations throw.
61
+ Without the adapter, and on Web, the same descriptor uses the standard accessible surface.
62
+
63
+ An island anchor is explicitly `{ kind: 'island', frame: { x, y, width, height } }` in window points.
64
+ Only supply a frame verified by the application's device/window adapter. HJM never infers hardware
65
+ from safe-area height. Until the viewport origin is measured, or if the frame lies outside the current
66
+ width, the effect uses a capsule. Refresh the adapter's frame after a window geometry change; its
67
+ Surface identity remains stable, so this does not replace the store entry. Hardware alignment is
68
+ unverified until captured on that device. Omit it for Android, notched and older supported iPhones.
69
+
70
+ ## Lifecycle and accessibility
71
+
72
+ - One store owns FIFO, bounded overflow, stable ids, action revisions and exit completion. Updating
73
+ a visible id changes copy/tone without replaying the entry. Its initial presentation choice is
74
+ retained for that entry; publish a new id to request a different presentation.
75
+ - Readable duration starts after the entry springs settle. `presentation`, `window`, `occlusion`,
76
+ `focus`, `pointer`, and `gesture` pauses are independent. Do not use the first three reasons from
77
+ product code: they are renderer-owned. User-programmed pauses should use `programmatic`.
78
+ - Actionable messages persist by default; explicit finite durations have the existing 5-second floor.
79
+ Results remain accessible in product UI after the notification closes.
80
+ - Upward swipe, close and action use the existing dismiss reasons. Late animation completions are
81
+ ignored after interruption/unmount. Background recovery shows the final card without replay.
82
+ - Text and controls stay RN nodes; Skia paints only decoration. The effect does not bitmap text or
83
+ add a second live announcement. Screen readers or reduced motion use standard Toast chrome.
84
+ - Content height is measured, allowing long copy and large fonts. Insufficient viewport space falls
85
+ back to the standard surface. Dark mode, RTL and colors use the HJM provider.
86
+
87
+ ## Validation scope
88
+
89
+ `test/toast-liquid.test.tsx` tests lifecycle with controlled animation completions; it cannot measure
90
+ GPU performance or verify native accessibility behavior. The source geometry is covered in the
91
+ contracts package. `Patterns/Liquid Toast` provides capsule, long-copy, reduced-motion and burst
92
+ interaction cases; the Web `LiquidHintFallback` story preserves the same descriptor semantics.
93
+
94
+ Device Hub connection timed out on 2026-09-28. No new simulator was created or booted, and no native
95
+ binary was built. Real island positioning, OS versions, device frame times and VoiceOver/TalkBack
96
+ remain unverified. Release/adoption must not claim this evidence from typechecking or JS export.
@@ -0,0 +1,43 @@
1
+ diff --git a/android/src/main/java/com/reactnativemenu/MenuView.kt b/android/src/main/java/com/reactnativemenu/MenuView.kt
2
+ index 17ed7c6491b60e87fe829fb3f8841424617b4cfb..8abbe4b112a278bdce74de04c9d50f48db09e244 100644
3
+ --- a/android/src/main/java/com/reactnativemenu/MenuView.kt
4
+ +++ b/android/src/main/java/com/reactnativemenu/MenuView.kt
5
+ @@ -47,11 +47,15 @@ class MenuView(private val mContext: ReactContext) : ReactViewGroup(mContext) {
6
+ prepareMenu()
7
+ }
8
+
9
+ - override fun setHitSlopRect(rect: Rect?) {
10
+ - super.setHitSlopRect(rect)
11
+ - mHitSlopRect = rect
12
+ - updateTouchDelegate()
13
+ - }
14
+ + // RN 0.81+ exposes a Kotlin property rather than a callable Java setter.
15
+ + // Preserve both RN hit testing and the menu TouchDelegate when the prop changes.
16
+ + override var hitSlopRect: Rect?
17
+ + get() = super.hitSlopRect
18
+ + set(value) {
19
+ + super.hitSlopRect = value
20
+ + mHitSlopRect = value
21
+ + updateTouchDelegate()
22
+ + }
23
+
24
+ override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
25
+ return true
26
+ diff --git a/android/src/main/java/com/reactnativemenu/MenuViewManagerBase.kt b/android/src/main/java/com/reactnativemenu/MenuViewManagerBase.kt
27
+ index 0cd90f4741508a95a63198574228c244ad41afd8..77733af70c938b5e50fb89839f32de8fa04f4964 100644
28
+ --- a/android/src/main/java/com/reactnativemenu/MenuViewManagerBase.kt
29
+ +++ b/android/src/main/java/com/reactnativemenu/MenuViewManagerBase.kt
30
+ @@ -122,10 +122,10 @@ abstract class MenuViewManagerBase : ReactClippingViewManager<MenuView>() {
31
+ @ReactProp(name = "hitSlop")
32
+ fun setHitSlop(view: ReactViewGroup, @Nullable hitSlop: ReadableMap?) {
33
+ if (hitSlop == null) {
34
+ - // We should keep using setters as `Val cannot be reassigned`
35
+ - view.setHitSlopRect(null)
36
+ + // RN 0.81+ uses Kotlin property access; dispatches to MenuView hit testing.
37
+ + view.hitSlopRect = null
38
+ } else {
39
+ - view.setHitSlopRect(
40
+ + view.hitSlopRect = (
41
+ Rect(
42
+ if (hitSlop.hasKey("left"))
43
+ PixelUtil.toPixelFromDIP(hitSlop.getDouble("left")).toInt()
@@ -0,0 +1,27 @@
1
+ # RN 0.86 optional menu compatibility
2
+
3
+ Only hosts importing `@hjmds/react-native/context-menu-native` need these patches.
4
+ HJM's npm installation does not automatically apply them. Copy the three patch
5
+ files into your repository and configure your package manager. For pnpm, use:
6
+
7
+ ```yaml
8
+ overrides:
9
+ react-native-ios-context-menu: 3.2.1
10
+ react-native-ios-utilities: 5.2.0
11
+ patchedDependencies:
12
+ '@react-native-menu/menu@1.2.2': patches/@react-native-menu__menu.patch
13
+ react-native-ios-context-menu@3.2.1: patches/react-native-ios-context-menu.patch
14
+ react-native-ios-utilities@5.2.0: patches/react-native-ios-utilities.patch
15
+ ```
16
+
17
+ Install Zeego 3.0.6 and these exact native peers. Reinstall dependencies and iOS
18
+ Pods, then rebuild the native client; Fast Refresh cannot update native binaries.
19
+ The iOS overrides remain in the same major lane. The older pins force obsolete
20
+ Folly dependencies on RN's prebuilt framework. The Android patch adapts hitSlop to
21
+ the Kotlin property API while preserving TouchDelegate. The iOS patches correct
22
+ subtitle availability and exclude a removed legacy root-content class in Fabric.
23
+ Remove each patch when the pinned upstream package incorporates its fix.
24
+
25
+ The full showcase was built on iOS and its native menu save action was observed.
26
+ Android compilation passed with the Kotlin patch. These are specific host results,
27
+ not a guarantee for every Expo/RN version or an accessibility certification.
@@ -0,0 +1,14 @@
1
+ diff --git a/ios/RNIContextMenu/RNIMenuActionItem.swift b/ios/RNIContextMenu/RNIMenuActionItem.swift
2
+ index 63fae48aeb169f0ec81798adc60f53304be9afcb..5e25cedaae4629dc038755677251d597c9d68760 100644
3
+ --- a/ios/RNIContextMenu/RNIMenuActionItem.swift
4
+ +++ b/ios/RNIContextMenu/RNIMenuActionItem.swift
5
+ @@ -182,7 +182,8 @@ extension RNIMenuActionItem {
6
+ );
7
+
8
+ #if swift(>=5.5)
9
+ - if #available(iOS 15.0, *) {
10
+ + // Xcode 27 annotates UIAction.subtitle as iOS 16+; keep older hosts supported.
11
+ + if #available(iOS 16.0, *) {
12
+ action.subtitle =
13
+ self.actionSubtitle
14
+ ?? self.fallbackActionSubtitle;
@@ -0,0 +1,34 @@
1
+ diff --git a/ios/Sources/Extensions+Helpers/RCTView+Helpers.swift b/ios/Sources/Extensions+Helpers/RCTView+Helpers.swift
2
+ index 09be306d5aa39337c5114c2ad6ba7513218e0751..0a650b65b4f127116f78dd057aef2f696f5177a5 100644
3
+ --- a/ios/Sources/Extensions+Helpers/RCTView+Helpers.swift
4
+ +++ b/ios/Sources/Extensions+Helpers/RCTView+Helpers.swift
5
+ @@ -25,6 +25,9 @@ public extension RCTView {
6
+ return rootView.recursivelyFindSubview(whereType: targetType);
7
+ };
8
+
9
+ + // RN 0.86 prebuilt Fabric omits the legacy RCTRootContentView implementation.
10
+ + // Keep the fallback only for legacy builds; Fabric uses its own surface touch handler.
11
+ + #if !RCT_NEW_ARCH_ENABLED
12
+ var closestParentReactContentView: RCTRootContentView? {
13
+ let targetType = RCTRootContentView.self;
14
+
15
+ @@ -36,6 +39,8 @@ public extension RCTView {
16
+ return rootView.recursivelyFindSubview(whereType: targetType);
17
+ };
18
+
19
+ + #endif
20
+ +
21
+ var reactTouchHandlers: [RCTTouchHandler]? {
22
+ self.gestureRecognizers?.compactMap {
23
+ $0 as? RCTTouchHandler
24
+ @@ -58,6 +63,10 @@ public extension RCTView {
25
+ currentView = superview;
26
+ };
27
+
28
+ + #if !RCT_NEW_ARCH_ENABLED
29
+ return closestParentReactContentView?.reactTouchHandlers?.first;
30
+ + #else
31
+ + return nil;
32
+ + #endif
33
+ };
34
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hjmds/react-native",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Expo-independent React Native renderers for HJM design contracts.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -249,35 +249,158 @@
249
249
  "react-native": "./dist/evidence.js",
250
250
  "import": "./dist/evidence.js",
251
251
  "default": "./dist/evidence.js"
252
+ },
253
+ "./toast-liquid": {
254
+ "types": "./dist/toast-liquid.d.ts",
255
+ "react-native": "./dist/toast-liquid.js",
256
+ "import": "./dist/toast-liquid.js",
257
+ "default": "./dist/toast-liquid.js"
258
+ },
259
+ "./thinking-orb": {
260
+ "types": "./dist/thinking-orb.d.ts",
261
+ "react-native": "./dist/thinking-orb.js",
262
+ "import": "./dist/thinking-orb.js",
263
+ "default": "./dist/thinking-orb.js"
264
+ },
265
+ "./image-viewer": {
266
+ "types": "./dist/image-viewer.d.ts",
267
+ "react-native": "./dist/image-viewer.js",
268
+ "import": "./dist/image-viewer.js",
269
+ "default": "./dist/image-viewer.js"
270
+ },
271
+ "./keyboard-controller": {
272
+ "types": "./dist/keyboard-controller.d.ts",
273
+ "react-native": "./dist/keyboard-controller.js",
274
+ "import": "./dist/keyboard-controller.js",
275
+ "default": "./dist/keyboard-controller.js"
276
+ },
277
+ "./sheet-gesture": {
278
+ "types": "./dist/sheet-gesture.d.ts",
279
+ "react-native": "./dist/sheet-gesture.js",
280
+ "import": "./dist/sheet-gesture.js",
281
+ "default": "./dist/sheet-gesture.js"
282
+ },
283
+ "./context-menu-native": {
284
+ "types": "./dist/context-menu-native.d.ts",
285
+ "react-native": "./dist/context-menu-native.js",
286
+ "import": "./dist/context-menu-native.js",
287
+ "default": "./dist/context-menu-native.js"
288
+ },
289
+ "./masonry": {
290
+ "types": "./dist/masonry.d.ts",
291
+ "react-native": "./dist/masonry.js",
292
+ "import": "./dist/masonry.js",
293
+ "default": "./dist/masonry.js"
294
+ },
295
+ "./virtual-list": {
296
+ "types": "./dist/virtual-list.d.ts",
297
+ "react-native": "./dist/virtual-list.js",
298
+ "import": "./dist/virtual-list.js",
299
+ "default": "./dist/virtual-list.js"
300
+ },
301
+ "./qr-code": {
302
+ "types": "./dist/qr-code.d.ts",
303
+ "react-native": "./dist/qr-code.js",
304
+ "import": "./dist/qr-code.js",
305
+ "default": "./dist/qr-code.js"
252
306
  }
253
307
  },
254
308
  "files": [
255
309
  "dist",
256
310
  "README.md",
257
- "LICENSE"
311
+ "LICENSE",
312
+ "THIRD_PARTY_NOTICES.md",
313
+ "docs"
258
314
  ],
259
315
  "peerDependencies": {
260
- "@hjmds/design-contracts": ">=1.7.0 <1.8.0",
316
+ "@gorhom/bottom-sheet": "5.2.14",
317
+ "@hjmds/design-contracts": ">=1.8.0 <1.9.0",
318
+ "@react-native-menu/menu": "1.2.2",
319
+ "@shopify/react-native-skia": "^2.6.2",
261
320
  "react": ">=19",
262
- "react-native": ">=0.81"
321
+ "react-native": ">=0.81",
322
+ "react-native-gesture-handler": "2.32.0",
323
+ "react-native-ios-context-menu": "3.2.1",
324
+ "react-native-ios-utilities": "5.2.0",
325
+ "react-native-keyboard-controller": "1.22.5",
326
+ "react-native-reanimated": "^4.5.1",
327
+ "react-native-worklets": "^0.10.1",
328
+ "react-native-zoom-toolkit": "5.1.1",
329
+ "zeego": "3.0.6",
330
+ "react-native-svg": "15.15.5",
331
+ "qrcode-generator": "2.0.4"
263
332
  },
264
333
  "devDependencies": {
265
334
  "@babel/runtime": "7.29.7",
335
+ "@gorhom/bottom-sheet": "5.2.14",
336
+ "@react-native-menu/menu": "1.2.2",
266
337
  "@react-native/metro-config": "0.81.6",
338
+ "@shopify/react-native-skia": "2.6.2",
267
339
  "@types/node": "^24.13.3",
268
340
  "@types/react": "^19.2.18",
269
341
  "@types/react-test-renderer": "^19.1.0",
270
342
  "metro": "0.83.8",
271
343
  "react": "19.2.3",
272
344
  "react-native": "^0.81.6",
345
+ "react-native-gesture-handler": "2.32.0",
346
+ "react-native-ios-context-menu": "3.2.1",
347
+ "react-native-ios-utilities": "5.2.0",
348
+ "react-native-keyboard-controller": "1.22.5",
349
+ "react-native-reanimated": "4.5.1",
350
+ "react-native-svg": "15.15.5",
351
+ "react-native-worklets": "0.10.1",
352
+ "react-native-zoom-toolkit": "5.1.1",
273
353
  "react-test-renderer": "19.2.3",
274
354
  "typescript": "^5.9.3",
275
355
  "vitest": "^4.1.11",
276
- "@hjmds/design-contracts": "1.7.0"
356
+ "zeego": "3.0.6",
357
+ "qrcode-generator": "2.0.4",
358
+ "@hjmds/design-contracts": "1.8.0"
277
359
  },
278
360
  "engines": {
279
361
  "node": ">=20"
280
362
  },
363
+ "peerDependenciesMeta": {
364
+ "@shopify/react-native-skia": {
365
+ "optional": true
366
+ },
367
+ "react-native-reanimated": {
368
+ "optional": true
369
+ },
370
+ "react-native-worklets": {
371
+ "optional": true
372
+ },
373
+ "react-native-zoom-toolkit": {
374
+ "optional": true
375
+ },
376
+ "react-native-keyboard-controller": {
377
+ "optional": true
378
+ },
379
+ "@gorhom/bottom-sheet": {
380
+ "optional": true
381
+ },
382
+ "zeego": {
383
+ "optional": true
384
+ },
385
+ "@react-native-menu/menu": {
386
+ "optional": true
387
+ },
388
+ "react-native-ios-utilities": {
389
+ "optional": true
390
+ },
391
+ "react-native-ios-context-menu": {
392
+ "optional": true
393
+ },
394
+ "react-native-gesture-handler": {
395
+ "optional": true
396
+ },
397
+ "react-native-svg": {
398
+ "optional": true
399
+ },
400
+ "qrcode-generator": {
401
+ "optional": true
402
+ }
403
+ },
281
404
  "scripts": {
282
405
  "build": "tsc -p tsconfig.build.json",
283
406
  "typecheck": "tsc -p tsconfig.json --noEmit",