@hjmds/react-native 1.29.0 → 1.31.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.
- package/dist/auth-screen.d.ts +10 -1
- package/dist/auth-screen.d.ts.map +1 -1
- package/dist/auth-screen.js +39 -24
- package/dist/auth-screen.js.map +1 -1
- package/dist/carousel.d.ts +25 -1
- package/dist/carousel.d.ts.map +1 -1
- package/dist/carousel.js +18 -4
- package/dist/carousel.js.map +1 -1
- package/dist/data-display.d.ts +5 -1
- package/dist/data-display.d.ts.map +1 -1
- package/dist/data-display.js +28 -14
- package/dist/data-display.js.map +1 -1
- package/dist/data-table.d.ts.map +1 -1
- package/dist/data-table.js +13 -8
- package/dist/data-table.js.map +1 -1
- package/dist/evidence.d.ts +3 -1562
- package/dist/evidence.d.ts.map +1 -1
- package/dist/evidence.js +93 -255
- package/dist/evidence.js.map +1 -1
- package/dist/forms.js +3 -3
- package/dist/forms.js.map +1 -1
- package/dist/icon-svg.d.ts +8 -0
- package/dist/icon-svg.d.ts.map +1 -0
- package/dist/icon-svg.js +22 -0
- package/dist/icon-svg.js.map +1 -0
- package/dist/image-choice.d.ts +5 -0
- package/dist/image-choice.d.ts.map +1 -1
- package/dist/image-choice.js +5 -2
- package/dist/image-choice.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/inputs.d.ts.map +1 -1
- package/dist/inputs.js +2 -1
- package/dist/inputs.js.map +1 -1
- package/dist/internal/bottom-navigation-inset.d.ts +21 -0
- package/dist/internal/bottom-navigation-inset.d.ts.map +1 -0
- package/dist/internal/bottom-navigation-inset.js +28 -0
- package/dist/internal/bottom-navigation-inset.js.map +1 -0
- package/dist/internal/field-frame.d.ts +11 -1
- package/dist/internal/field-frame.d.ts.map +1 -1
- package/dist/internal/field-frame.js +17 -1
- package/dist/internal/field-frame.js.map +1 -1
- package/dist/internal/initial-focus.d.ts +2 -1
- package/dist/internal/initial-focus.d.ts.map +1 -1
- package/dist/internal/initial-focus.js +11 -3
- package/dist/internal/initial-focus.js.map +1 -1
- package/dist/internal/media-album.d.ts +48 -0
- package/dist/internal/media-album.d.ts.map +1 -0
- package/dist/internal/media-album.js +36 -0
- package/dist/internal/media-album.js.map +1 -0
- package/dist/internal/message-reactions.d.ts +28 -2
- package/dist/internal/message-reactions.d.ts.map +1 -1
- package/dist/internal/message-reactions.js +25 -6
- package/dist/internal/message-reactions.js.map +1 -1
- package/dist/navigation.d.ts +12 -2
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +75 -19
- package/dist/navigation.js.map +1 -1
- package/dist/number-field.d.ts.map +1 -1
- package/dist/number-field.js +2 -0
- package/dist/number-field.js.map +1 -1
- package/dist/overlays.d.ts +39 -1
- package/dist/overlays.d.ts.map +1 -1
- package/dist/overlays.js +254 -205
- package/dist/overlays.js.map +1 -1
- package/dist/primitives.d.ts +29 -1
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +18 -3
- package/dist/primitives.js.map +1 -1
- package/dist/public-exports.generated.d.ts +209 -0
- package/dist/public-exports.generated.d.ts.map +1 -0
- package/dist/public-exports.generated.js +642 -0
- package/dist/public-exports.generated.js.map +1 -0
- package/dist/screen-flows.d.ts +104 -12
- package/dist/screen-flows.d.ts.map +1 -1
- package/dist/screen-flows.js +87 -17
- package/dist/screen-flows.js.map +1 -1
- package/dist/screens.d.ts +59 -7
- package/dist/screens.d.ts.map +1 -1
- package/dist/screens.js +89 -19
- package/dist/screens.js.map +1 -1
- package/dist/steps.d.ts +7 -2
- package/dist/steps.d.ts.map +1 -1
- package/dist/steps.js +12 -5
- package/dist/steps.js.map +1 -1
- package/package.json +9 -3
package/dist/screen-flows.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import { type SheetProps } from "./overlays.js";
|
|
|
4
4
|
import { type UploadItemDescriptor, type UploadItemLabels } from "@hjmds/design-contracts/components/upload-item";
|
|
5
5
|
import { type AlertDialogRequest } from "@hjmds/design-contracts/components/alert-dialog";
|
|
6
6
|
import { type CommentMenuItemDescriptor, type PermissionScreenStatus, type PhotoSource, type PhotoSourceLabels } from "@hjmds/design-contracts/screen-patterns";
|
|
7
|
+
import { type MediaAlbum } from "./internal/media-album.js";
|
|
8
|
+
export type { MediaAlbum } from "./internal/media-album.js";
|
|
7
9
|
import { type ContainerGutter } from "@hjmds/design-contracts/components/container";
|
|
8
10
|
import { type MessageMenuAction } from "./internal/message-reactions.js";
|
|
9
11
|
import type { ReactionPickerProps } from "./reaction-picker.js";
|
|
@@ -46,16 +48,44 @@ export type EditorScreenProps = Omit<Base, "leading" | "exit"> & {
|
|
|
46
48
|
fallbackErrorMessage: string;
|
|
47
49
|
};
|
|
48
50
|
draftStatus?: ReactNode;
|
|
51
|
+
/** Multi-step editor: while supplied, the header exit is a back chevron that returns to the previous step instead of
|
|
52
|
+
* the cancel ×, and never opens the discard prompt (stepping back keeps the draft). Omit it on the first step so the
|
|
53
|
+
* exit leaves through `cancel` again (2026-10-18: spint compose replaced the header with its own TopBar for this). */
|
|
54
|
+
stepBack?: ScreenFlowAction;
|
|
49
55
|
};
|
|
50
|
-
export declare function EditorScreen({ children, dirty, submitPlacement, submit, cancel, discard, draftStatus, initialFocus, ...screen }: EditorScreenProps): import("react").JSX.Element;
|
|
56
|
+
export declare function EditorScreen({ children, dirty, submitPlacement, submit, cancel, discard, draftStatus, stepBack, initialFocus, ...screen }: EditorScreenProps): import("react").JSX.Element;
|
|
51
57
|
export type ProfileScreenProps = Base & {
|
|
52
58
|
summary: ReactNode;
|
|
53
59
|
edit: ScreenFlowAction;
|
|
54
60
|
children?: ReactNode;
|
|
55
61
|
accountActions?: ReactNode;
|
|
62
|
+
/** `below-summary` (default): ghost button under the summary. `summary`: the edit action goes first in the action row
|
|
63
|
+
* of the ProfileSummary inside `summary` (2026-10-15 utilverse account decision: the edit action belongs inside the
|
|
64
|
+
* profile card). With `summary`, the slot must contain a ProfileSummary, or the edit action is not drawn. */
|
|
65
|
+
editPlacement?: "below-summary" | "summary";
|
|
56
66
|
};
|
|
57
|
-
export declare function ProfileScreen({ summary, edit, children, accountActions, ...screen }: ProfileScreenProps): import("react").JSX.Element;
|
|
58
|
-
|
|
67
|
+
export declare function ProfileScreen({ summary, edit, children, accountActions, editPlacement, ...screen }: ProfileScreenProps): import("react").JSX.Element;
|
|
68
|
+
/** Operator decision on a report (dismiss, hide, uphold, overturn…). Labels are product copy; ids are product keys.
|
|
69
|
+
* With `confirmation`, pressing opens that AlertDialog and only its `onConfirm` acts (same rule as `block`). */
|
|
70
|
+
export type ModerationDecision = ScreenFlowAction & Readonly<{
|
|
71
|
+
id: string;
|
|
72
|
+
tone?: "primary" | "secondary" | "danger";
|
|
73
|
+
confirmation?: Extract<AlertDialogRequest, {
|
|
74
|
+
mode: "confirm";
|
|
75
|
+
}>;
|
|
76
|
+
}>;
|
|
77
|
+
/** Free-text decision reason. `required` (default true) keeps every decision locked until it has non-blank text. */
|
|
78
|
+
export type ModerationDecisionReason = Readonly<{
|
|
79
|
+
label: string;
|
|
80
|
+
value: string;
|
|
81
|
+
onValueChange(value: string): void;
|
|
82
|
+
description?: string;
|
|
83
|
+
maxLength?: number;
|
|
84
|
+
required?: boolean;
|
|
85
|
+
disabled?: boolean;
|
|
86
|
+
}>;
|
|
87
|
+
type ModerationReportFields = {
|
|
88
|
+
variant?: "report";
|
|
59
89
|
reasonPicker?: ReactNode;
|
|
60
90
|
reasons: readonly {
|
|
61
91
|
value: string;
|
|
@@ -73,7 +103,29 @@ export type ModerationScreenProps = Base & {
|
|
|
73
103
|
}>;
|
|
74
104
|
};
|
|
75
105
|
};
|
|
76
|
-
|
|
106
|
+
/** Operator review (2026-10-18: utilverse review and appeal queues hand-built this with TextArea, buttons and Alert):
|
|
107
|
+
* `children` shows the reported content, then the reason field and the decisions; `resolution` replaces both once decided. */
|
|
108
|
+
type ModerationReviewFields = {
|
|
109
|
+
variant: "review";
|
|
110
|
+
children?: ReactNode;
|
|
111
|
+
decisionReason: ModerationDecisionReason;
|
|
112
|
+
decisions: readonly ModerationDecision[];
|
|
113
|
+
resolution?: ReactNode;
|
|
114
|
+
};
|
|
115
|
+
export type ModerationFields = ModerationReportFields | ModerationReviewFields;
|
|
116
|
+
export type ModerationScreenProps = Base & ModerationFields;
|
|
117
|
+
export declare function ModerationScreen(props: ModerationScreenProps): import("react").JSX.Element;
|
|
118
|
+
/** The moderation fields and actions without screen chrome, for a report opened inside a letter, card or Sheet
|
|
119
|
+
* (2026-10-18: diairy turned ModerationScreen's header and padding off to place it in a letter). The host owns the
|
|
120
|
+
* surrounding surface and placement; `title` is an optional section heading (omit it inside a titled Sheet) and
|
|
121
|
+
* `cancel` adds a ghost "collapse" action after the others. */
|
|
122
|
+
export type ModerationFormProps = ModerationFields & Readonly<{
|
|
123
|
+
title?: string;
|
|
124
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
125
|
+
cancel?: ScreenFlowAction;
|
|
126
|
+
layoutStyle?: ScreenLayoutProps["layoutStyle"];
|
|
127
|
+
}>;
|
|
128
|
+
export declare function ModerationForm(props: ModerationFormProps): import("react").JSX.Element;
|
|
77
129
|
/** Source choice only: permission, capture, decoding and draft persistence belong to the host. */
|
|
78
130
|
export type PhotoSourceSheetProps = Readonly<{
|
|
79
131
|
open: boolean;
|
|
@@ -88,12 +140,17 @@ export type MediaSelectionItem = {
|
|
|
88
140
|
descriptor: UploadItemDescriptor;
|
|
89
141
|
preview?: ReactNode;
|
|
90
142
|
};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
143
|
+
/**
|
|
144
|
+
* Quarter-turn action for a picked photo (2026-10-18, Utilverse photo-to-PDF). The product stores the rotation and
|
|
145
|
+
* applies it to `preview` and its output; HJM only places the button with the other item actions.
|
|
146
|
+
*/
|
|
147
|
+
export type MediaSelectionRotate = Readonly<{
|
|
148
|
+
label: string;
|
|
149
|
+
itemLabel(item: MediaSelectionItem): string;
|
|
150
|
+
onRotate(id: string): void;
|
|
151
|
+
}>;
|
|
152
|
+
/** Copy and callbacks of one item's actions, shared by the screen grid and MediaSelectionCell. */
|
|
153
|
+
export type MediaSelectionItemActions = {
|
|
97
154
|
labels: UploadItemLabels;
|
|
98
155
|
actionLabels: {
|
|
99
156
|
remove: string;
|
|
@@ -107,9 +164,28 @@ export type MediaSelectionScreenProps = Base & {
|
|
|
107
164
|
onMove(id: string, direction: -1 | 1): void;
|
|
108
165
|
onRetry(id: string): void;
|
|
109
166
|
onCancel(id: string): void;
|
|
167
|
+
rotate?: MediaSelectionRotate;
|
|
110
168
|
};
|
|
169
|
+
export type MediaSelectionScreenProps = Base & {
|
|
170
|
+
library?: ReactNode;
|
|
171
|
+
selectionSummary?: ReactNode;
|
|
172
|
+
items: readonly MediaSelectionItem[];
|
|
173
|
+
add?: ScreenFlowIconAction;
|
|
174
|
+
done: ScreenFlowAction;
|
|
175
|
+
} & MediaSelectionItemActions;
|
|
176
|
+
/** `index`/`count` place the item in the product's full list so the first/last move buttons disable correctly. */
|
|
177
|
+
export type MediaSelectionCellProps = MediaSelectionItemActions & Readonly<{
|
|
178
|
+
item: MediaSelectionItem;
|
|
179
|
+
index: number;
|
|
180
|
+
count: number;
|
|
181
|
+
}>;
|
|
182
|
+
/**
|
|
183
|
+
* One picked item: preview, upload status, then move/rotate/remove. Exported (2026-10-18, Utilverse photo tools) so a
|
|
184
|
+
* virtualized host (FlatList renderItem) renders the same cell as the screen grid instead of a copy.
|
|
185
|
+
*/
|
|
186
|
+
export declare function MediaSelectionCell({ item, index, count, labels, actionLabels, removeLabel, moveUpLabel, moveDownLabel, onRemove, onMove, onRetry, onCancel, rotate }: MediaSelectionCellProps): import("react").JSX.Element;
|
|
111
187
|
/** A photo is the primary content; upload status stays below it instead of replacing the thumbnail. */
|
|
112
|
-
export declare function MediaSelectionScreen({ library, selectionSummary, items, add, done, labels, actionLabels, removeLabel, moveUpLabel, moveDownLabel, onRemove, onMove, onRetry, onCancel, ...screen }: MediaSelectionScreenProps): import("react").JSX.Element;
|
|
188
|
+
export declare function MediaSelectionScreen({ library, selectionSummary, items, add, done, labels, actionLabels, removeLabel, moveUpLabel, moveDownLabel, onRemove, onMove, onRetry, onCancel, rotate, ...screen }: MediaSelectionScreenProps): import("react").JSX.Element;
|
|
113
189
|
export type SearchRecentQueries = Readonly<{
|
|
114
190
|
items: readonly string[];
|
|
115
191
|
title: string;
|
|
@@ -306,6 +382,23 @@ export type CommentThreadItem = Readonly<{
|
|
|
306
382
|
reactionSummary?: ReactNode;
|
|
307
383
|
/** Optional photo or sticker under the body; HJM bounds its width and corners, the product sizes the image. */
|
|
308
384
|
media?: ReactNode;
|
|
385
|
+
/**
|
|
386
|
+
* Where the time label sits. "auto" keeps it beside the author unless `bodyText` inlines the author; "actions" moves it
|
|
387
|
+
* into the line under the body with reactions and Reply, for rich (non-text) bodies such as Spint's flower stamp
|
|
388
|
+
* (2026-10-18). Default "auto".
|
|
389
|
+
*/
|
|
390
|
+
timePlacement?: "auto" | "actions";
|
|
391
|
+
/**
|
|
392
|
+
* Inline per-comment panel (edit, report or block form) under the Reply line, outside the long-press target
|
|
393
|
+
* (2026-10-18, Utilverse). The product owns its open state, focus, submit and close; HJM owns its place in the row.
|
|
394
|
+
*/
|
|
395
|
+
panel?: ReactNode;
|
|
396
|
+
/**
|
|
397
|
+
* Paged photo set under the body (2026-10-18, Utilverse): HJM mounts only the shown page so the product can fetch one
|
|
398
|
+
* authorized image at a time. Exclusive with `media` (validated at render); it sits outside the long-press target because it has its own buttons, and the
|
|
399
|
+
* hold menu's preview (a second render) would otherwise mount a second page.
|
|
400
|
+
*/
|
|
401
|
+
mediaAlbum?: MediaAlbum;
|
|
309
402
|
}>;
|
|
310
403
|
export type CommentReactions = ReactionPickerProps & Readonly<{
|
|
311
404
|
closeLabel: string;
|
|
@@ -382,5 +475,4 @@ export type ProfileSummaryProps = Readonly<{
|
|
|
382
475
|
}>;
|
|
383
476
|
/** Profile identity and counts are common; routing and mutations stay controlled by the product. */
|
|
384
477
|
export declare function ProfileSummary({ name, headingLevel, avatar, badge, nameActions, stats, actions, children }: ProfileSummaryProps): import("react").JSX.Element;
|
|
385
|
-
export {};
|
|
386
478
|
//# sourceMappingURL=screen-flows.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-flows.d.ts","sourceRoot":"","sources":["../src/screen-flows.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screen-flows.d.ts","sourceRoot":"","sources":["../src/screen-flows.tsx"],"names":[],"mappings":"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"}
|
package/dist/screen-flows.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
import { TextArea } from "./inputs.js";
|
|
3
5
|
import { CompositionLayout, ScreenLayout } from "./screens.js";
|
|
4
6
|
import { ScreenExitButton } from "./internal/screen-exit.js";
|
|
5
7
|
import { Button, IconButton } from "./actions.js";
|
|
@@ -14,6 +16,8 @@ import { initialFocusDefaults, validateCommentThread, resolvePermissionAction, r
|
|
|
14
16
|
import { iconButtonRecipe, resolveIconButtonEdgeOverhang, resolveIconButtonPresentation } from "@hjmds/design-contracts/recipes";
|
|
15
17
|
import { visibleControlHeight } from "@hjmds/design-contracts/components/design-system-provider";
|
|
16
18
|
import { DrawnMoreVertical } from "./internal/drawn-glyphs.js";
|
|
19
|
+
import { MediaAlbumView, useMediaAlbumIndex } from "./internal/media-album.js";
|
|
20
|
+
import { validateMediaSetChoice } from "@hjmds/design-contracts/screen-patterns";
|
|
17
21
|
import { useHjmNativeTheme } from "./provider.js";
|
|
18
22
|
import { AccessibilityInfo, Keyboard, Pressable, ScrollView, View } from "react-native";
|
|
19
23
|
import { containerRecipe } from "@hjmds/design-contracts/components/container";
|
|
@@ -33,34 +37,82 @@ function Action({ action, secondary = false, edge }) { if (action.icon)
|
|
|
33
37
|
// placement while list and detail swap. Passing it to the list ScreenLayout dropped it on detail.
|
|
34
38
|
// "Load more" ends the list inside the scroll body, centered like LoadMore; the fixed footer is the bottom CTA slot (2026-10-17 review).
|
|
35
39
|
export function ListDetailScreen({ list, detail, back, refresh, loadMore, layoutStyle, ...screen }) { return _jsxs(View, { style: [{ flex: 1 }, layoutStyle], children: [_jsx(Pane, { hidden: !!detail, children: _jsx(ScreenLayout, { ...screen, ...(refresh || screen.actions ? { actions: _jsxs(Stack, { axis: "inline", gap: "xs", align: "center", children: [screen.actions, refresh ? _jsx(Action, { action: refresh, secondary: true, edge: "end" }) : null] }) } : {}), children: loadMore ? _jsxs(View, { style: { flexGrow: 1, flexShrink: 1, minHeight: 0, gap: screenPatternRecipe.itemGap }, children: [list, _jsx(View, { style: { alignItems: "center" }, children: _jsx(Action, { action: loadMore, secondary: true }) })] }) : list }) }), detail ? _jsx(Pane, { children: _jsx(ScreenLayout, { title: detail.title, ...(detail.titleVisibility === undefined ? {} : { titleVisibility: detail.titleVisibility }), ...(detail.headerAlignment === undefined ? {} : { headerAlignment: detail.headerAlignment }), ...(detail.state === undefined ? {} : { state: detail.state }), stateAction: detail.stateAction, notice: detail.notice, ...(screen.safeAreaBottom === undefined ? {} : { safeAreaBottom: screen.safeAreaBottom }), exit: { kind: "back", label: back.label, onPress: back.onAction, disabled: !!(back.disabled || back.pending) }, children: detail.content }) }) : null] }); }
|
|
36
|
-
export function EditorScreen({ children, dirty, submitPlacement = "footer", submit, cancel, discard, draftStatus, initialFocus = initialFocusDefaults.editor, ...screen }) {
|
|
40
|
+
export function EditorScreen({ children, dirty, submitPlacement = "footer", submit, cancel, discard, draftStatus, stepBack, initialFocus = initialFocusDefaults.editor, ...screen }) {
|
|
37
41
|
const [confirm, setConfirm] = useState(false);
|
|
38
42
|
const cancelLocked = !!(cancel.disabled || cancel.pending || submit.pending);
|
|
39
43
|
const submitAction = { ...submit, disabled: !!(submit.disabled || screen.state && screen.state.kind !== "ready") };
|
|
40
44
|
// A prompt opened before an external save must not bypass the current leave lock
|
|
41
45
|
// or reappear once the save finishes. Keep the draft mounted throughout.
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
const stepping = !!stepBack, stepLocked = !!(stepBack?.disabled || stepBack?.pending || submit.pending);
|
|
47
|
+
// A step-back exit replaces the cancel exit, so a discard prompt opened from the cancel exit cannot outlive it.
|
|
48
|
+
useEffect(() => { if (cancelLocked || stepping)
|
|
49
|
+
setConfirm(false); }, [cancelLocked, stepping]);
|
|
44
50
|
// Preserve an async host result so AlertDialog can retain failure and retry.
|
|
45
51
|
const leave = () => { if (!cancelLocked)
|
|
46
52
|
return cancel.onAction(); };
|
|
47
53
|
// Writing is the screen's purpose: focus the first field on entry unless the host opts out (2026-10-18).
|
|
48
|
-
return _jsxs(_Fragment, { children: [_jsx(ScreenLayout, { ...screen, initialFocus: initialFocus, exit: { kind: "
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
return _jsxs(_Fragment, { children: [_jsx(ScreenLayout, { ...screen, initialFocus: initialFocus, exit: stepBack ? { kind: "back", label: stepBack.label, disabled: stepLocked, onPress: () => { if (!stepLocked)
|
|
55
|
+
stepBack.onAction(); } }
|
|
56
|
+
: { kind: "close", label: cancel.label, disabled: cancelLocked, onPress: () => { if (cancelLocked)
|
|
57
|
+
return; if (dirty)
|
|
58
|
+
setConfirm(true);
|
|
59
|
+
else
|
|
60
|
+
leave(); } }, actions: submitPlacement === "header" ? _jsx(Action, { action: submitAction }) : screen.actions, footer: submitPlacement === "header" ? draftStatus : _jsxs(Stack, { gap: "sm", children: [draftStatus, _jsx(Action, { action: submitAction })] }), children: children }), _jsx(AlertDialog, { open: confirm && !cancelLocked && !stepping, onOpenChange: setConfirm, request: { ...discard, mode: "confirm", onConfirm: leave } })] });
|
|
53
61
|
}
|
|
54
|
-
|
|
55
|
-
|
|
62
|
+
// Hands ProfileScreen's edit action to the ProfileSummary inside its summary slot, wherever the product nests it.
|
|
63
|
+
const ProfileEditContext = createContext(undefined);
|
|
64
|
+
export function ProfileScreen({ summary, edit, children, accountActions, editPlacement = "below-summary", ...screen }) { return _jsx(ScreenLayout, { ...screen, children: _jsxs(Stack, { gap: "xl", children: [editPlacement === "summary" ? _jsx(ProfileEditContext.Provider, { value: edit, children: summary }) : _jsx(CompositionLayout, { footer: _jsx(Action, { action: edit, secondary: true }), children: summary }), children, accountActions] }) }); }
|
|
65
|
+
/** Body, stacked actions and confirmations shared by ModerationScreen (screen chrome) and ModerationForm (none). */
|
|
66
|
+
function useModeration(fields, ready, cancel) {
|
|
56
67
|
const [confirm, setConfirm] = useState(false);
|
|
57
|
-
const
|
|
68
|
+
const [confirmId, setConfirmId] = useState(null);
|
|
69
|
+
const review = fields.variant === "review" ? fields : null, report = fields.variant === "review" ? null : fields;
|
|
70
|
+
const hasBlock = !!report?.block;
|
|
58
71
|
// Withdrawing the action ends that confirmation session; a later action needs
|
|
59
72
|
// a new explicit press even if the screen itself stays mounted.
|
|
60
73
|
useEffect(() => { if (!hasBlock)
|
|
61
74
|
setConfirm(false); }, [hasBlock]);
|
|
62
|
-
|
|
63
|
-
|
|
75
|
+
const confirming = review && !review.resolution ? review.decisions.find(decision => decision.id === confirmId && decision.confirmation) : undefined;
|
|
76
|
+
// Same rule for a decision: its confirmation closes when the decision or its confirmation is withdrawn or resolved.
|
|
77
|
+
useEffect(() => { if (confirmId !== null && !confirming)
|
|
78
|
+
setConfirmId(null); }, [confirmId, confirming]);
|
|
79
|
+
const cancelAction = cancel ? _jsx(Action, { action: cancel, secondary: true }) : null;
|
|
80
|
+
if (review) {
|
|
81
|
+
const busy = review.decisions.some(decision => decision.pending);
|
|
82
|
+
const reasonMissing = (review.decisionReason.required ?? true) && !review.decisionReason.value.trim();
|
|
83
|
+
const field = review.resolution ?? _jsx(TextArea, { label: review.decisionReason.label, value: review.decisionReason.value, onValueChange: review.decisionReason.onValueChange, ...(review.decisionReason.description === undefined ? {} : { description: review.decisionReason.description }), ...(review.decisionReason.maxLength === undefined ? {} : { maxLength: review.decisionReason.maxLength }), required: review.decisionReason.required ?? true, disabled: !!review.decisionReason.disabled || busy });
|
|
84
|
+
// One decision at a time: a pending decision locks the others and the reason it was taken with.
|
|
85
|
+
const decisions = review.resolution ? [] : review.decisions.map(decision => {
|
|
86
|
+
const locked = !!decision.disabled || busy || !ready || reasonMissing;
|
|
87
|
+
return _jsx(Button, { tone: decision.tone ?? "secondary", disabled: locked, loading: decision.pending ?? false, onPress: () => { if (locked)
|
|
88
|
+
return; if (decision.confirmation)
|
|
89
|
+
setConfirmId(decision.id);
|
|
90
|
+
else
|
|
91
|
+
decision.onAction(); }, children: decision.label }, decision.id);
|
|
92
|
+
});
|
|
93
|
+
return { body: _jsxs(Stack, { gap: "lg", children: [review.children, field] }),
|
|
94
|
+
actions: decisions.length || cancelAction ? _jsxs(Stack, { gap: "xs", children: [decisions, cancelAction] }) : null,
|
|
95
|
+
dialogs: confirming?.confirmation ? _jsx(AlertDialog, { open: true, onOpenChange: open => { if (!open)
|
|
96
|
+
setConfirmId(null); }, request: confirming.confirmation }) : null };
|
|
97
|
+
}
|
|
98
|
+
const r = report;
|
|
99
|
+
return { body: _jsxs(Stack, { gap: "lg", children: [r.reasonPicker ?? (r.reasons.length ? _jsx(RadioGroup, { accessibilityLabel: r.reasonLabel, orientation: "vertical", items: r.reasons, value: r.reason, onValueChange: value => { if (value)
|
|
100
|
+
r.onReasonChange(value); } }) : null), r.children] }),
|
|
101
|
+
actions: _jsxs(Stack, { gap: "xs", children: [_jsx(Action, { action: { ...r.submit, disabled: r.submit.disabled || !ready || !r.reasons.some(item => item.value === r.reason) } }), r.block ? _jsx(Action, { action: { ...r.block.action, onAction: () => setConfirm(true) }, secondary: true }) : null, cancelAction] }),
|
|
102
|
+
dialogs: r.block ? _jsx(AlertDialog, { open: confirm, onOpenChange: setConfirm, request: r.block.confirmation }) : null };
|
|
103
|
+
}
|
|
104
|
+
// Every key of either variant, so the rest of the props reach ScreenLayout unchanged whichever variant is used.
|
|
105
|
+
const moderationFieldKeys = ["variant", "reasonPicker", "reasons", "reason", "onReasonChange", "reasonLabel", "children", "submit", "block", "decisionReason", "decisions", "resolution"];
|
|
106
|
+
export function ModerationScreen(props) {
|
|
107
|
+
const screen = { ...props };
|
|
108
|
+
for (const key of moderationFieldKeys)
|
|
109
|
+
delete screen[key];
|
|
110
|
+
const { body, actions, dialogs } = useModeration(props, !props.state || props.state.kind === "ready");
|
|
111
|
+
return _jsxs(_Fragment, { children: [_jsx(ScreenLayout, { ...screen, footer: actions, children: body }), dialogs] });
|
|
112
|
+
}
|
|
113
|
+
export function ModerationForm(props) {
|
|
114
|
+
const { body, actions, dialogs } = useModeration(props, true, props.cancel);
|
|
115
|
+
return _jsxs(_Fragment, { children: [_jsx(CompositionLayout, { ...(props.title === undefined ? {} : { title: props.title }), ...(props.headingLevel === undefined ? {} : { headingLevel: props.headingLevel }), ...(props.layoutStyle === undefined ? {} : { layoutStyle: props.layoutStyle }), footer: actions, children: body }), dialogs] });
|
|
64
116
|
}
|
|
65
117
|
export function PhotoSourceSheet({ open, onOpenChange, onSelect, labels, disabled = false, cameraAvailable = true }) {
|
|
66
118
|
const queued = useRef(null);
|
|
@@ -77,8 +129,19 @@ export function PhotoSourceSheet({ open, onOpenChange, onSelect, labels, disable
|
|
|
77
129
|
queued.current = null; onOpenChange(next); };
|
|
78
130
|
return _jsx(Sheet, { open: open, onOpenChange: dismiss, title: labels.title, closeLabel: labels.cancel, onDismissComplete: complete, children: _jsxs(Stack, { gap: "xs", children: [_jsx(Button, { tone: "secondary", disabled: disabled, onPress: () => select("library"), children: labels.library }), cameraAvailable ? _jsx(Button, { tone: "secondary", disabled: disabled, onPress: () => select("camera"), children: labels.camera }) : null] }) });
|
|
79
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* One picked item: preview, upload status, then move/rotate/remove. Exported (2026-10-18, Utilverse photo tools) so a
|
|
134
|
+
* virtualized host (FlatList renderItem) renders the same cell as the screen grid instead of a copy.
|
|
135
|
+
*/
|
|
136
|
+
export function MediaSelectionCell({ item, index, count, labels, actionLabels, removeLabel, moveUpLabel, moveDownLabel, onRemove, onMove, onRetry, onCancel, rotate }) {
|
|
137
|
+
const id = item.descriptor.id;
|
|
138
|
+
return _jsxs(Stack, { gap: "xs", children: [item.preview, _jsx(UploadItem, { descriptor: item.descriptor, labels: labels, onRetry: onRetry, onCancel: onCancel }), _jsxs(Stack, { axis: "inline", gap: "xxs", layoutStyle: { flexWrap: "wrap" }, children: [_jsx(Button, { accessibilityLabel: moveUpLabel(item), size: "small", tone: "ghost", disabled: index === 0, onPress: () => onMove(id, -1), children: actionLabels.moveUp }), _jsx(Button, { accessibilityLabel: moveDownLabel(item), size: "small", tone: "ghost", disabled: index === count - 1, onPress: () => onMove(id, 1), children: actionLabels.moveDown }), rotate ? _jsx(Button, { accessibilityLabel: rotate.itemLabel(item), size: "small", tone: "ghost", onPress: () => rotate.onRotate(id), children: rotate.label }) : null, _jsx(Button, { accessibilityLabel: removeLabel(item), size: "small", tone: "ghost", onPress: () => onRemove(id), children: actionLabels.remove })] })] });
|
|
139
|
+
}
|
|
80
140
|
/** A photo is the primary content; upload status stays below it instead of replacing the thumbnail. */
|
|
81
|
-
export function MediaSelectionScreen({ library, selectionSummary, items, add, done, labels, actionLabels, removeLabel, moveUpLabel, moveDownLabel, onRemove, onMove, onRetry, onCancel,
|
|
141
|
+
export function MediaSelectionScreen({ library, selectionSummary, items, add, done, labels, actionLabels, removeLabel, moveUpLabel, moveDownLabel, onRemove, onMove, onRetry, onCancel, rotate, ...screen }) {
|
|
142
|
+
const itemActions = { labels, actionLabels, removeLabel, moveUpLabel, moveDownLabel, onRemove, onMove, onRetry, onCancel, ...(rotate === undefined ? {} : { rotate }) };
|
|
143
|
+
return _jsx(ScreenLayout, { ...screen, ...(add || screen.actions ? { actions: _jsxs(Stack, { axis: "inline", gap: "xs", align: "center", children: [screen.actions, add ? _jsx(Action, { action: add, edge: "end" }) : null] }) } : {}), footer: _jsxs(Stack, { gap: "sm", children: [selectionSummary, _jsx(Action, { action: done })] }), children: library ?? _jsx(Grid, { columns: { compact: 2, expanded: 3 }, gap: { compact: "md" }, children: items.map((item, index) => _jsx(MediaSelectionCell, { item: item, index: index, count: items.length, ...itemActions }, item.descriptor.id)) }) });
|
|
144
|
+
}
|
|
82
145
|
/** Announce only when the text changes; iOS queues it behind the current utterance instead of cutting it off. */
|
|
83
146
|
function useSearchAnnouncement(text) {
|
|
84
147
|
useEffect(() => {
|
|
@@ -226,6 +289,10 @@ function CommentMenuButton({ item, menu, items }) {
|
|
|
226
289
|
}
|
|
227
290
|
/** Virtualized hosts reuse the same row as CommentThreadScreen; product slots add content, not a second layout. */
|
|
228
291
|
export function CommentThreadRow({ item, onLike, onReply, replyLabel, layoutStyle, commentMenu }) {
|
|
292
|
+
validateMediaSetChoice(item.media != null, item.mediaAlbum !== undefined);
|
|
293
|
+
const [albumIndex, setAlbumIndex] = useMediaAlbumIndex(item.mediaAlbum);
|
|
294
|
+
// bodyText inlines the author, so its time always moves under the body; rich bodies opt in with timePlacement.
|
|
295
|
+
const timeInActions = item.bodyText !== undefined || item.timePlacement === "actions";
|
|
229
296
|
const avatarSize = item.parentId === null ? commentThreadRecipe.avatarSize : commentThreadRecipe.replyAvatarSize;
|
|
230
297
|
const theme = useHjmNativeTheme();
|
|
231
298
|
const menuItems = commentMenu ? resolveCommentMenuItems(commentMenu.items(item)) : [];
|
|
@@ -239,9 +306,9 @@ export function CommentThreadRow({ item, onLike, onReply, replyLabel, layoutStyl
|
|
|
239
306
|
const edgeOverhang = menuItems.length || item.actions == null && item.likeAction === undefined ? resolveIconButtonEdgeOverhang("ghost", "medium", visibleTarget) : 0;
|
|
240
307
|
// The like count sits under the heart so the text column carries only identity, body and reply.
|
|
241
308
|
return _jsxs(Stack, { axis: "inline", align: "start", gap: "xs", ...(layoutStyle === undefined ? {} : { layoutStyle }), children: [item.avatar ? _jsx(View, { style: { width: avatarSize, alignItems: "center" }, children: item.avatar }) : null, _jsxs(View, { style: { flex: 1, minWidth: 0, gap: commentThreadRecipe.lineGap }, children: [(() => {
|
|
242
|
-
const identity = _jsxs(_Fragment, { children: [item.bodyText !== undefined ? _jsxs(Text, { children: [_jsx(Text, { emphasis: "strong", children: item.author }), " ", item.bodyText] }) : (item.author || item.timeLabel) ? _jsxs(Stack, { axis: "inline", gap: "xxs", align: "center", layoutStyle: { flexWrap: "wrap" }, children: [item.author ? _jsx(Text, { variant: "caption", emphasis: "strong", children: item.author }) : null, item.timeLabel ? _jsx(Text, { variant: "caption", tone: "muted", children: item.timeLabel }) : null] }) : null, item.body, item.media ? _jsx(View, { style: { maxWidth: commentThreadRecipe.mediaMaxWidth, borderRadius: commentThreadRecipe.mediaRadius, overflow: "hidden", marginTop: commentThreadRecipe.avatarGap / 2, alignSelf: "flex-start" }, children: item.media }) : null] });
|
|
309
|
+
const identity = _jsxs(_Fragment, { children: [item.bodyText !== undefined ? _jsxs(Text, { children: [_jsx(Text, { emphasis: "strong", children: item.author }), " ", item.bodyText] }) : (item.author || (item.timeLabel && !timeInActions)) ? _jsxs(Stack, { axis: "inline", gap: "xxs", align: "center", layoutStyle: { flexWrap: "wrap" }, children: [item.author ? _jsx(Text, { variant: "caption", emphasis: "strong", children: item.author }) : null, item.timeLabel && !timeInActions ? _jsx(Text, { variant: "caption", tone: "muted", children: item.timeLabel }) : null] }) : null, item.body, item.media ? _jsx(View, { style: { maxWidth: commentThreadRecipe.mediaMaxWidth, borderRadius: commentThreadRecipe.mediaRadius, overflow: "hidden", marginTop: commentThreadRecipe.avatarGap / 2, alignSelf: "flex-start" }, children: item.media }) : null] });
|
|
243
310
|
return item.reactions ? _jsx(MessageReactions, { previewSurface: true, ...item.reactions, ...((item.canReply ?? item.parentId === null) && !item.replyDisabled ? { replyAction: { label: replyLabel, onPress: () => onReply(item.id), ...(item.reactions.replyIcon === undefined ? {} : { icon: item.reactions.replyIcon }) } } : {}), children: _jsx(View, { style: { gap: commentThreadRecipe.lineGap }, children: identity }) }) : identity;
|
|
244
|
-
})(), (item.
|
|
311
|
+
})(), item.mediaAlbum ? _jsx(View, { style: { marginTop: commentThreadRecipe.avatarGap / 2, alignSelf: "flex-start" }, children: _jsx(MediaAlbumView, { album: item.mediaAlbum, index: albumIndex, onIndexChange: setAlbumIndex, width: commentThreadRecipe.mediaMaxWidth, radius: commentThreadRecipe.mediaRadius }) }) : null, (timeInActions && item.timeLabel) || (item.canReply ?? item.parentId === null) || item.reactionSummary ? _jsxs(Stack, { axis: "inline", gap: "sm", align: "center", layoutStyle: { flexWrap: "wrap" }, children: [timeInActions && item.timeLabel ? _jsx(Text, { variant: "caption", tone: "muted", children: item.timeLabel }) : null, item.reactionSummary, (item.canReply ?? item.parentId === null) ? _jsx(CommentTextAction, { label: replyLabel, disabled: item.replyDisabled ?? false, onPress: () => onReply(item.id) }) : null] }) : null, item.panel != null ? _jsx(View, { style: { marginTop: commentThreadRecipe.panelGap - commentThreadRecipe.lineGap }, children: item.panel }) : null] }), _jsxs(View, { style: { flexShrink: 0, marginTop: anchorOffset, ...(edgeOverhang ? { marginEnd: -edgeOverhang } : {}) }, children: [_jsxs(Stack, { axis: "inline", gap: "xxs", align: "center", layoutStyle: { flexShrink: 0 }, children: [item.likeAction !== undefined ? item.likeAction : _jsx(IconButton, { label: item.likeLabel, tone: "ghost", onPress: () => onLike(item.id), children: item.likeIcon }), item.actions, commentMenu && menuItems.length ? _jsx(CommentMenuButton, { item: item, menu: commentMenu, items: menuItems }) : null] }), item.likeCountLabel ? _jsx(View, { style: { width: commentThreadRecipe.likeColumnWidth }, children: _jsx(Text, { variant: "caption", tone: "muted", align: "center", children: item.likeCountLabel }) }) : null] })] }, item.id);
|
|
245
312
|
}
|
|
246
313
|
/** Controlled thread: server ordering, permission checks and receipt-based draft clearing belong to the product. */
|
|
247
314
|
export function CommentThreadScreen({ items, expandedIds, onExpandedChange, onLike, onReply, replyLabel, repliesLabel, composer, threadHeader, threadFooter, commentMenu, ...screen }) {
|
|
@@ -267,7 +334,10 @@ export function CommentThreadScreen({ items, expandedIds, onExpandedChange, onLi
|
|
|
267
334
|
}
|
|
268
335
|
/** Profile identity and counts are common; routing and mutations stay controlled by the product. */
|
|
269
336
|
export function ProfileSummary({ name, headingLevel = 2, avatar, badge, nameActions, stats = [], actions, children }) {
|
|
337
|
+
const edit = useContext(ProfileEditContext);
|
|
338
|
+
const { tone: editTone, size: editSize } = profileSummaryRecipe.editAction;
|
|
339
|
+
const editButton = edit ? _jsx(Button, { tone: editTone, size: editSize, disabled: !!(edit.disabled || edit.pending), loading: edit.pending ?? false, onPress: edit.onAction, children: edit.label }) : null;
|
|
270
340
|
return _jsxs(CompositionLayout, { title: name, headingLevel: headingLevel, leading: _jsx(View, { style: { width: profileSummaryRecipe.avatarSize, height: profileSummaryRecipe.avatarSize, flexShrink: 0, borderRadius: profileSummaryRecipe.avatarSize / 2, overflow: "hidden" }, children: avatar }), badge: badge, actions: nameActions, footer: children, children: [stats.length ? _jsx(Stack, { axis: "inline", gap: "md", align: "stretch", layoutStyle: { width: "100%" }, children: stats.map(stat => _jsx(Stack, { gap: "xxs", align: "center", justify: "center", layoutStyle: { flex: 1, minWidth: 0 }, children: stat.onPress ? _jsx(Button, { tone: "ghost", accessibilityLabel: `${stat.value} ${stat.label}`, disabled: stat.disabled ?? false, onPress: stat.onPress, layoutStyle: { width: "100%" }, children: _jsxs(Stack, { gap: "xxs", align: "center", children: [_jsx(Text, { emphasis: "strong", children: stat.value }), _jsx(Text, { variant: "caption", tone: "muted", children: stat.label })] }) })
|
|
271
|
-
: _jsxs(_Fragment, { children: [_jsx(Text, { emphasis: "strong", children: stat.value }), _jsx(Text, { variant: "caption", tone: "muted", children: stat.label })] }) }, stat.id)) }) : null, actions ?
|
|
341
|
+
: _jsxs(_Fragment, { children: [_jsx(Text, { emphasis: "strong", children: stat.value }), _jsx(Text, { variant: "caption", tone: "muted", children: stat.label })] }) }, stat.id)) }) : null, editButton || actions ? _jsxs(Stack, { axis: "inline", gap: "sm", wrap: true, children: [editButton, actions] }) : null] });
|
|
272
342
|
}
|
|
273
343
|
//# sourceMappingURL=screen-flows.js.map
|