@hjmds/react-native 1.20.0 → 1.22.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/actions.d.ts +10 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js.map +1 -1
- package/dist/authoring-tools.d.ts +24 -0
- package/dist/authoring-tools.d.ts.map +1 -0
- package/dist/authoring-tools.js +28 -0
- package/dist/authoring-tools.js.map +1 -0
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +2 -1
- package/dist/calendar.js.map +1 -1
- package/dist/chart.d.ts +138 -0
- package/dist/chart.d.ts.map +1 -0
- package/dist/chart.js +271 -0
- package/dist/chart.js.map +1 -0
- package/dist/collection-editing.d.ts +63 -0
- package/dist/collection-editing.d.ts.map +1 -0
- package/dist/collection-editing.js +114 -0
- package/dist/collection-editing.js.map +1 -0
- package/dist/communication.d.ts +51 -0
- package/dist/communication.d.ts.map +1 -0
- package/dist/communication.js +68 -0
- package/dist/communication.js.map +1 -0
- package/dist/data-table.d.ts +48 -0
- package/dist/data-table.d.ts.map +1 -0
- package/dist/data-table.js +90 -0
- package/dist/data-table.js.map +1 -0
- package/dist/data-workflows.d.ts +68 -0
- package/dist/data-workflows.d.ts.map +1 -0
- package/dist/data-workflows.js +60 -0
- package/dist/data-workflows.js.map +1 -0
- package/dist/evidence.d.ts +1 -1
- package/dist/evidence.js +1 -1
- package/dist/internal/recipe-button.d.ts +4 -0
- package/dist/internal/recipe-button.d.ts.map +1 -1
- package/dist/internal/recipe-button.js +24 -5
- package/dist/internal/recipe-button.js.map +1 -1
- package/dist/internal/use-composition-action.d.ts +17 -0
- package/dist/internal/use-composition-action.d.ts.map +1 -0
- package/dist/internal/use-composition-action.js +17 -0
- package/dist/internal/use-composition-action.js.map +1 -0
- package/dist/media-transport.d.ts +22 -0
- package/dist/media-transport.d.ts.map +1 -0
- package/dist/media-transport.js +49 -0
- package/dist/media-transport.js.map +1 -0
- package/dist/navigation.d.ts +3 -1
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +24 -9
- package/dist/navigation.js.map +1 -1
- package/dist/screen-flows.d.ts +5 -2
- package/dist/screen-flows.d.ts.map +1 -1
- package/dist/screen-flows.js +6 -4
- package/dist/screen-flows.js.map +1 -1
- package/dist/screens.d.ts +8 -2
- package/dist/screens.d.ts.map +1 -1
- package/dist/screens.js +21 -7
- package/dist/screens.js.map +1 -1
- package/dist/social-compositions.d.ts +52 -0
- package/dist/social-compositions.d.ts.map +1 -0
- package/dist/social-compositions.js +40 -0
- package/dist/social-compositions.js.map +1 -0
- package/dist/streaming-answer.d.ts +24 -0
- package/dist/streaming-answer.d.ts.map +1 -0
- package/dist/streaming-answer.js +57 -0
- package/dist/streaming-answer.js.map +1 -0
- package/dist/table-family.d.ts +48 -0
- package/dist/table-family.d.ts.map +1 -0
- package/dist/table-family.js +56 -0
- package/dist/table-family.js.map +1 -0
- package/dist/task-controls.d.ts +47 -0
- package/dist/task-controls.d.ts.map +1 -0
- package/dist/task-controls.js +46 -0
- package/dist/task-controls.js.map +1 -0
- package/dist/toggle-feedback.d.ts +26 -0
- package/dist/toggle-feedback.d.ts.map +1 -0
- package/dist/toggle-feedback.js +46 -0
- package/dist/toggle-feedback.js.map +1 -0
- package/dist/transfer-task.d.ts +18 -0
- package/dist/transfer-task.d.ts.map +1 -0
- package/dist/transfer-task.js +56 -0
- package/dist/transfer-task.js.map +1 -0
- package/package.json +75 -3
package/dist/screens.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { resolveComposerLimit } from "@hjmds/design-contracts/communication";
|
|
3
|
+
import { Progress } from "./feedback.js";
|
|
2
4
|
import { resolveDesignProfileScreen } from "@hjmds/design-contracts/design-profile-layout";
|
|
3
5
|
import { MessageReactions } from "./internal/message-reactions.js";
|
|
4
6
|
import { Button, IconButton } from "./actions.js";
|
|
5
7
|
import { TextArea } from "./inputs.js";
|
|
6
|
-
import { useEffect, useMemo, useRef } from "react";
|
|
8
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
7
9
|
import { Animated, PanResponder, ScrollView, View } from "react-native";
|
|
8
10
|
import { Spinner } from "./internal/spinner.js";
|
|
9
11
|
import { FixedGlyph } from "./internal/fixed-glyph.js";
|
|
@@ -12,16 +14,25 @@ import { motion } from "@hjmds/design-contracts/foundations";
|
|
|
12
14
|
import { Stack, Text } from "./primitives.js";
|
|
13
15
|
import { ListRow } from "./data-display.js";
|
|
14
16
|
import { useHjmNativeTheme } from "./provider.js";
|
|
15
|
-
export function ScreenLayout({ title, header, contentInset = "default", presentation: suppliedPresentation, description, leading, actions, notice, footer, state = { kind: "ready" }, stateAction, children, scroll = "screen", layoutStyle, testID, scrollRef, scrollProps }) {
|
|
17
|
+
export function ScreenLayout({ title, titleVisibility = "visible", headerAlignment = "start", header, contentInset = "default", presentation: suppliedPresentation, description, leading, actions, notice, footer, state = { kind: "ready" }, stateAction, children, scroll = "screen", layoutStyle, testID, scrollRef, scrollProps }) {
|
|
18
|
+
const [leadingWidth, setLeadingWidth] = useState(0), [actionsWidth, setActionsWidth] = useState(0);
|
|
19
|
+
const sideWidth = Math.max(leadingWidth, actionsWidth);
|
|
20
|
+
const showHeader = titleVisibility === "visible" || !!description || !!leading || !!actions;
|
|
16
21
|
const resolved = resolveScreenContentState(state);
|
|
17
22
|
const { colors, environment, designProfile } = useHjmNativeTheme();
|
|
18
23
|
const presentation = suppliedPresentation ?? designProfile?.screens.overview;
|
|
19
24
|
const profileLayout = presentation === undefined ? undefined : resolveDesignProfileScreen(presentation);
|
|
20
25
|
const recipe = screenPatternRecipe;
|
|
21
26
|
const padding = contentInset === "none" ? 0 : recipe.padding;
|
|
27
|
+
// Icon-only route headers need no title breathing room: otherwise the 60pt
|
|
28
|
+
// heading plus full body inset leaves category tabs detached from navigation.
|
|
29
|
+
const compactHeader = header == null && showHeader && headerAlignment === "center" && titleVisibility === "hidden" && !description;
|
|
30
|
+
const headerVerticalPadding = compactHeader ? 2 : 8;
|
|
31
|
+
// A notice can contain navigation tabs; keep its separation from body filters.
|
|
32
|
+
const bodyPaddingTop = compactHeader && !notice ? Math.min(padding, 4) : padding;
|
|
22
33
|
const body = state.kind === "ready" ? children : _jsxs(View, { style: { marginVertical: "auto", flexShrink: 0, alignItems: "center", gap: recipe.stateGap, paddingVertical: profileLayout?.gap ?? recipe.sectionGap }, children: [resolved.busy ? _jsx(Spinner, { label: [state.title, state.description].filter(Boolean).join(". ") }) : _jsxs(View, { accessibilityLiveRegion: resolved.announcement, style: { alignItems: "center", gap: recipe.itemGap }, children: [_jsx(Text, { variant: "title", align: "center", children: state.title }), state.description ? _jsx(Text, { tone: "muted", align: "center", children: state.description }) : null] }), stateAction] });
|
|
23
|
-
return _jsxs(View, { testID: testID, style: [{ flex: 1, minHeight: 0, width: "100%", maxWidth: profileLayout?.maxWidth ?? recipe.maxWidth, alignSelf: "center", backgroundColor: designProfile?.material.canvas ? "transparent" : colors.bg }, layoutStyle], children: [header ?? _jsxs(View, { style: { flexDirection: profileLayout?.headerAxis ?? "row", flexWrap: "wrap", alignItems: profileLayout ? (profileLayout.centered ? "center" : "flex-start") : "center", padding, gap: recipe.itemGap }, children: [leading, _jsxs(View, { style: { flexGrow: 1, flexShrink: 1, ...(profileLayout?.headerAxis === "column" ? { width: "100%" } : { flexBasis: recipe.headerMinWidth * environment.textScale }) }, children: [_jsx(Text, { variant: profileLayout ? "heading" : "titleLarge", ...(profileLayout?.centered ? { align: "center" } : {}), accessibilityRole: "header", children: title }), description ? _jsx(Text, { tone: "muted", ...(profileLayout?.centered ? { align: "center" } : {}), children: description }) : null] }), actions] }), notice ? _jsx(View, { style: { paddingHorizontal: padding }, children: notice }) : null, scroll === "screen" || resolved.replacesContent ? _jsx(ScrollView, { ...scrollProps, ref: scrollRef, style: { flex: 1 }, keyboardShouldPersistTaps: "handled", contentContainerStyle: { flexGrow: 1, padding }, accessibilityState: { busy: resolved.busy }, children: body })
|
|
24
|
-
: _jsx(View, { style: { flex: 1, minHeight: 0, padding }, children: body }), footer ? _jsx(View, { style: { padding, borderTopWidth: contentInset === "none" ? 0 : 1, borderColor: colors.border }, children: footer }) : null] });
|
|
34
|
+
return _jsxs(View, { testID: testID, style: [{ flex: 1, minHeight: 0, width: "100%", maxWidth: profileLayout?.maxWidth ?? recipe.maxWidth, alignSelf: "center", backgroundColor: designProfile?.material.canvas ? "transparent" : colors.bg }, layoutStyle], children: [header ?? (!showHeader ? null : headerAlignment === "center" ? _jsxs(View, { style: { minHeight: compactHeader ? 48 : 60, paddingHorizontal: padding + sideWidth + recipe.itemGap, paddingVertical: headerVerticalPadding, justifyContent: "center" }, children: [_jsx(View, { onLayout: event => setLeadingWidth(event.nativeEvent.layout.width), style: { position: "absolute", left: padding, top: headerVerticalPadding, bottom: headerVerticalPadding, justifyContent: "center", flexDirection: "row", alignItems: "center" }, children: leading }), _jsxs(View, { style: { minWidth: 0, alignItems: "center", gap: 4 }, children: [titleVisibility === "visible" && _jsx(Text, { variant: "title", align: "center", accessibilityRole: "header", children: title }), description && _jsx(Text, { align: "center", tone: "muted", children: description })] }), _jsx(View, { onLayout: event => setActionsWidth(event.nativeEvent.layout.width), style: { position: "absolute", right: padding, top: headerVerticalPadding, bottom: headerVerticalPadding, justifyContent: "center", flexDirection: "row", alignItems: "center" }, children: actions })] }) : _jsxs(View, { style: { flexDirection: profileLayout?.headerAxis ?? "row", flexWrap: "wrap", alignItems: profileLayout ? (profileLayout.centered ? "center" : "flex-start") : "center", padding, gap: recipe.itemGap }, children: [leading, _jsxs(View, { style: { flexGrow: 1, flexShrink: 1, ...(profileLayout?.headerAxis === "column" ? { width: "100%" } : { flexBasis: recipe.headerMinWidth * environment.textScale }) }, children: [titleVisibility === "visible" && _jsx(Text, { variant: profileLayout ? "heading" : "titleLarge", ...(profileLayout?.centered ? { align: "center" } : {}), accessibilityRole: "header", children: title }), description ? _jsx(Text, { tone: "muted", ...(profileLayout?.centered ? { align: "center" } : {}), children: description }) : null] }), actions] })), notice ? _jsx(View, { style: { paddingHorizontal: padding }, children: notice }) : null, scroll === "screen" || resolved.replacesContent ? _jsx(ScrollView, { ...scrollProps, ref: scrollRef, style: { flex: 1 }, keyboardShouldPersistTaps: "handled", contentContainerStyle: { flexGrow: 1, padding, paddingTop: bodyPaddingTop }, accessibilityState: { busy: resolved.busy }, children: body })
|
|
35
|
+
: _jsx(View, { style: { flex: 1, minHeight: 0, padding, paddingTop: bodyPaddingTop }, children: body }), footer ? _jsx(View, { style: { padding, borderTopWidth: contentInset === "none" ? 0 : 1, borderColor: colors.border }, children: footer }) : null] });
|
|
25
36
|
}
|
|
26
37
|
export function SettingsScreen({ profile, sections, ...props }) {
|
|
27
38
|
// Settings group labels are subordinate to the screen title. Generic Section uses
|
|
@@ -40,11 +51,14 @@ export function ChatScreen({ composer, scroll = "content", ...props }) {
|
|
|
40
51
|
// An empty conversation must still allow its first message; unavailable states hide input.
|
|
41
52
|
return _jsx(ScreenLayout, { ...props, scroll: scroll, footer: !props.state || props.state.kind === "ready" || props.state.kind === "empty" ? composer : null });
|
|
42
53
|
}
|
|
43
|
-
export function MessageComposer({ value, label, sendLabel, placeholder = label, description, error, invalid = false, submitMode = "newline", onBlur, disabled = false, pending = false, onValueChange, onSend, maxLength, sendDisabled = false, additionalContent = false, leadingAction, inputRef, context, replyTo, sendIcon, sendPresentation = "inline", attachmentAction, attachments = [], onRemoveAttachment }) {
|
|
54
|
+
export function MessageComposer({ value, label, sendLabel, placeholder = label, description, error, invalid = false, submitMode = "newline", onBlur, disabled = false, pending = false, onValueChange, onSend, maxLength, lengthFeedback, sendDisabled = false, additionalContent = false, leadingAction, inputRef, context, replyTo, sendIcon, sendPresentation = "inline", attachmentAction, attachments = [], onRemoveAttachment }) {
|
|
44
55
|
validateMessageAttachments(attachments);
|
|
45
56
|
if (attachments.length && !onRemoveAttachment)
|
|
46
57
|
throw new TypeError("Attachments require a removal callback");
|
|
47
|
-
|
|
58
|
+
if (lengthFeedback && maxLength === undefined)
|
|
59
|
+
throw new TypeError("Composer length feedback requires maxLength");
|
|
60
|
+
const limit = !lengthFeedback ? null : resolveComposerLimit(value, maxLength, lengthFeedback.threshold);
|
|
61
|
+
const canSend = !sendDisabled && !limit?.exceeded && canSubmitMessage({ value, label, sendLabel, disabled, pending, attachmentCount: attachments.length + (additionalContent ? 1 : 0) });
|
|
48
62
|
const locked = disabled || pending;
|
|
49
63
|
// A bounded corner radius keeps multiline/large-text content inside the field instead of a tall pill.
|
|
50
64
|
const hasContent = !!value.trim() || attachments.length > 0 || additionalContent;
|
|
@@ -56,7 +70,7 @@ export function MessageComposer({ value, label, sendLabel, placeholder = label,
|
|
|
56
70
|
onSend(value); }, children: sendLabel });
|
|
57
71
|
return _jsxs(Stack, { gap: "sm", children: [context, replyTo ? _jsxs(Stack, { axis: "inline", gap: "sm", align: "center", children: [_jsxs(Stack, { gap: "xxs", children: [_jsx(Text, { variant: "caption", emphasis: "strong", children: replyTo.author }), _jsx(Text, { variant: "caption", tone: "muted", children: replyTo.excerpt })] }), _jsx(IconButton, { label: replyTo.cancelLabel, tone: "ghost", disabled: locked, onPress: replyTo.onCancel, children: _jsx(FixedGlyph, { children: "\u00D7" }) })] }) : null, attachments.length ? _jsxs(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, keyboardShouldPersistTaps: "handled", contentContainerStyle: { gap: tokens.spacing.sm, alignItems: "center" }, children: [attachments.map(item => _jsxs(View, { style: { width: screenPatternRecipe.attachmentSize, height: screenPatternRecipe.attachmentSize }, children: [_jsx(View, { style: { width: "100%", height: "100%", overflow: "hidden", borderRadius: tokens.radius.md }, children: item.preview }), _jsx(View, { style: { position: "absolute", top: 0, right: 0 }, children: _jsx(IconButton, { label: item.removeLabel, tone: "ghost", size: "small", disabled: locked || (item.disabled ?? false), onPress: () => { if (!locked && !item.disabled)
|
|
58
72
|
onRemoveAttachment?.(item.id); }, children: _jsx(View, { style: { backgroundColor: colors.bg, borderRadius: tokens.radius.full, width: screenPatternRecipe.attachmentRemoveSize, height: screenPatternRecipe.attachmentRemoveSize, alignItems: "center", justifyContent: "center" }, children: _jsx(FixedGlyph, { fontSize: 18, lineHeight: 24, children: "\u00D7" }) }) }) })] }, item.id)), attach] }) : null, _jsxs(View, { style: { flexDirection: "row", alignItems: "flex-end", gap: screenPatternRecipe.itemGap }, children: [_jsx(TextArea, { ...compactField, ref: inputRef, maxLength: maxLength, leadingAction: leadingAction, shape: "large", accessibilityLabel: label, placeholder: placeholder, ...(description === undefined ? {} : { description }), ...(error === undefined ? {} : { error }), invalid: invalid, onBlur: onBlur, value: value, disabled: locked, submitBehavior: submitMode === "send" ? "submit" : "newline", onSubmitEditing: () => { if (submitMode === "send" && canSend)
|
|
59
|
-
onSend(value); }, layoutStyle: { flex: 1 }, onValueChange: onValueChange, minVisibleLines: screenPatternRecipe.composerMinLines, maxVisibleLines: screenPatternRecipe.composerMaxLines, ...(sendIcon ? { trailing: _jsx(View, { style: { alignSelf: "center", marginStart: tokens.spacing.sm, marginEnd: sendPresentation === "circle" ? tokens.spacing.xs - tokens.spacing.md : 0 }, children: hasContent || pending ? send : attach }) } : {}) }), sendIcon ? null : send] })] });
|
|
73
|
+
onSend(value); }, layoutStyle: { flex: 1 }, onValueChange: onValueChange, minVisibleLines: screenPatternRecipe.composerMinLines, maxVisibleLines: screenPatternRecipe.composerMaxLines, ...(sendIcon ? { trailing: _jsx(View, { style: { alignSelf: "center", marginStart: tokens.spacing.sm, marginEnd: sendPresentation === "circle" ? tokens.spacing.xs - tokens.spacing.md : 0 }, children: hasContent || pending ? send : attach }) } : {}) }), sendIcon ? null : send] }), lengthFeedback && limit?.near ? _jsx(Progress, { shape: "circular", label: lengthFeedback.label, value: Math.min(limit.used, limit.max), max: limit.max, valueText: lengthFeedback.formatCount(limit.used, limit.max), children: _jsx(Text, { variant: "caption", children: lengthFeedback.formatCount(limit.used, limit.max) }) }) : null] });
|
|
60
74
|
}
|
|
61
75
|
export function ChatMessage({ direction, author, timestamp, timestampPresentation = "always", bubbleTail = false, deliveryLabel, avatar, reply, actions, replyAction, replyLink, reactions, children, interactiveContent = false }) {
|
|
62
76
|
const { colors, tokens, environment } = useHjmNativeTheme();
|
package/dist/screens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../src/screens.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../src/screens.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type FollowProfileState, type AttendanceChoice, type EventAttendanceState } from "@hjmds/design-contracts/social-compositions";
|
|
3
|
+
type Person = Readonly<{
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
avatar?: ReactNode;
|
|
7
|
+
}>;
|
|
8
|
+
export type FollowProfileCardProps = Readonly<{
|
|
9
|
+
/** Changing entities remounts the action scope and detaches old responses. */
|
|
10
|
+
profileId: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description?: ReactNode;
|
|
13
|
+
avatar?: ReactNode;
|
|
14
|
+
state: FollowProfileState;
|
|
15
|
+
locale: string;
|
|
16
|
+
labels: Readonly<{
|
|
17
|
+
follow: string;
|
|
18
|
+
following: string;
|
|
19
|
+
pending: string;
|
|
20
|
+
count: string;
|
|
21
|
+
error: string;
|
|
22
|
+
}>;
|
|
23
|
+
/** Resolve only after the real mutation; update state with the server's confirmed snapshot. */
|
|
24
|
+
onFollowChange: (following: boolean) => void | Promise<void>;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function FollowProfileCard(props: FollowProfileCardProps): import("react").JSX.Element;
|
|
28
|
+
export type EventAttendanceCardProps = Readonly<{
|
|
29
|
+
eventId: string;
|
|
30
|
+
title: string;
|
|
31
|
+
description?: ReactNode;
|
|
32
|
+
dateLabel: string;
|
|
33
|
+
state: EventAttendanceState;
|
|
34
|
+
choices: readonly AttendanceChoice[];
|
|
35
|
+
participants: readonly Person[];
|
|
36
|
+
locale: string;
|
|
37
|
+
labels: Readonly<{
|
|
38
|
+
response: string;
|
|
39
|
+
pending: string;
|
|
40
|
+
count: string;
|
|
41
|
+
calendar: string;
|
|
42
|
+
calendarAdded: string;
|
|
43
|
+
error: string;
|
|
44
|
+
}>;
|
|
45
|
+
onResponseChange: (responseId: string) => void | Promise<void>;
|
|
46
|
+
/** Actual calendar adapter, including platform permissions; rejection stays retryable. */
|
|
47
|
+
onAddToCalendar: () => void | Promise<void>;
|
|
48
|
+
disabled?: boolean;
|
|
49
|
+
}>;
|
|
50
|
+
export declare function EventAttendanceCard(props: EventAttendanceCardProps): import("react").JSX.Element;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=social-compositions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"social-compositions.d.ts","sourceRoot":"","sources":["../src/social-compositions.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAoD,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAO1L,KAAK,MAAM,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAIzE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC7E,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAC1C,MAAM,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvG,+FAA+F;IAC/F,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAClF,CAAC,CAAC;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,+BAG9D;AAgBD,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAC3E,KAAK,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IACnH,MAAM,EAAE,QAAQ,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/H,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,0FAA0F;IAC1F,eAAe,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACjE,CAAC,CAAC;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,+BAGlE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { resolveFollowProposal, resolveAttendanceProposal } from "@hjmds/design-contracts/social-compositions";
|
|
5
|
+
import { Button } from "./actions.js";
|
|
6
|
+
import { AnimatedStatistic } from "./statistic-motion.js";
|
|
7
|
+
import { Avatar, Card } from "./data-display.js";
|
|
8
|
+
import { Stack, Text } from "./primitives.js";
|
|
9
|
+
import { useCompositionAction } from "./internal/use-composition-action.js";
|
|
10
|
+
function Failure({ failed, label }) {
|
|
11
|
+
return failed ? _jsx(Text, { accessibilityRole: "alert", accessibilityLiveRegion: "assertive", align: "center", tone: "danger", children: label }) : null;
|
|
12
|
+
}
|
|
13
|
+
export function FollowProfileCard(props) {
|
|
14
|
+
if (!props.profileId.trim())
|
|
15
|
+
throw new TypeError("Follow profile requires a stable id");
|
|
16
|
+
return _jsx(FollowProfileBody, { ...props }, props.profileId);
|
|
17
|
+
}
|
|
18
|
+
function FollowProfileBody(props) {
|
|
19
|
+
resolveFollowProposal(props.state, props.state.following);
|
|
20
|
+
const action = useCompositionAction(props.disabled);
|
|
21
|
+
// Capture the proposal once; changing server counts during the request must not add the delta twice.
|
|
22
|
+
const displayed = action.active ?? props.state;
|
|
23
|
+
return _jsx(Card, { title: props.name, description: props.description, leading: props.avatar ?? _jsx(Avatar, { name: props.name, decorative: true }), children: _jsxs(Stack, { gap: "md", children: [_jsx(AnimatedStatistic, { descriptor: { id: "social-count", label: props.labels.count }, value: displayed.count, locale: props.locale }), _jsx(Button, { selected: displayed.following, loading: action.pending, loadingLabel: props.labels.pending, disabled: props.disabled === true, onPress: () => { const proposal = resolveFollowProposal(props.state, !props.state.following); void action.run(proposal, () => props.onFollowChange(proposal.following)); }, children: displayed.following ? props.labels.following : props.labels.follow }), _jsx(Failure, { failed: action.failed, label: props.labels.error })] }) });
|
|
24
|
+
}
|
|
25
|
+
export function EventAttendanceCard(props) {
|
|
26
|
+
if (!props.eventId.trim())
|
|
27
|
+
throw new TypeError("Event attendance requires a stable id");
|
|
28
|
+
return _jsx(EventAttendanceBody, { ...props }, props.eventId);
|
|
29
|
+
}
|
|
30
|
+
function EventAttendanceBody(props) {
|
|
31
|
+
resolveAttendanceProposal(props.state, props.choices, props.state.responseId);
|
|
32
|
+
const action = useCompositionAction(props.disabled), [calendarAdded, setCalendarAdded] = useState(false);
|
|
33
|
+
const displayed = action.active === null || action.active === "calendar" ? props.state : action.active;
|
|
34
|
+
const locked = props.disabled === true || action.pending;
|
|
35
|
+
return _jsx(Card, { title: props.title, description: props.description, children: _jsxs(Stack, { gap: "md", children: [_jsx(Text, { children: props.dateLabel }), _jsx(AnimatedStatistic, { descriptor: { id: "social-count", label: props.labels.count }, value: displayed.count, locale: props.locale }), _jsx(Stack, { axis: "inline", gap: "xs", wrap: true, children: props.participants.map(person => _jsxs(Stack, { axis: "inline", gap: "xs", children: [person.avatar ?? _jsx(Avatar, { name: person.name, decorative: true }), _jsx(Text, { children: person.name })] }, person.id)) }), _jsx(Text, { emphasis: "strong", children: props.labels.response }), _jsx(Stack, { axis: "inline", gap: "xs", wrap: true, children: props.choices.map(choice => _jsx(Button, { selected: displayed.responseId === choice.id, disabled: locked || choice.disabled === true, loading: action.pending && action.active !== "calendar" && displayed.responseId === choice.id, loadingLabel: props.labels.pending, onPress: () => { if (choice.disabled || choice.id === props.state.responseId)
|
|
36
|
+
return; const proposal = resolveAttendanceProposal(props.state, props.choices, choice.id); void action.run(proposal, () => props.onResponseChange(choice.id)); }, children: choice.label }, choice.id)) }), _jsx(Button, { tone: "secondary", disabled: locked || calendarAdded, loading: action.active === "calendar", loadingLabel: props.labels.pending, onPress: () => { if (calendarAdded)
|
|
37
|
+
return; void action.run("calendar", props.onAddToCalendar).then(outcome => { if (outcome.status === "success")
|
|
38
|
+
setCalendarAdded(true); }); }, children: calendarAdded ? props.labels.calendarAdded : props.labels.calendar }), _jsx(Failure, { failed: action.failed, label: props.labels.error })] }) });
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=social-compositions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"social-compositions.js","sourceRoot":"","sources":["../src/social-compositions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type AnswerStreamEvent, type AnswerGenerationContext } from "@hjmds/design-contracts/streaming-answer";
|
|
3
|
+
export type StreamingAnswerProps = Readonly<{
|
|
4
|
+
answerId: string;
|
|
5
|
+
initialText?: string;
|
|
6
|
+
label: string;
|
|
7
|
+
onGenerate: (context: AnswerGenerationContext) => AsyncIterable<AnswerStreamEvent> | Promise<AsyncIterable<AnswerStreamEvent>>;
|
|
8
|
+
labels: Readonly<{
|
|
9
|
+
generate: string;
|
|
10
|
+
regenerate: string;
|
|
11
|
+
stop: string;
|
|
12
|
+
thinking: string;
|
|
13
|
+
streaming: string;
|
|
14
|
+
stopping: string;
|
|
15
|
+
complete: string;
|
|
16
|
+
stopped: string;
|
|
17
|
+
error: string;
|
|
18
|
+
}>;
|
|
19
|
+
thinkingIndicator?: ReactNode;
|
|
20
|
+
renderText?: (text: string) => ReactNode;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
}>;
|
|
23
|
+
export declare function StreamingAnswer(props: StreamingAnswerProps): import("react").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=streaming-answer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-answer.d.ts","sourceRoot":"","sources":["../src/streaming-answer.tsx"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAuB,KAAK,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAKrI,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IACtD,UAAU,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,aAAa,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC/H,MAAM,EAAE,QAAQ,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClL,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7F,CAAC,CAAC;AAEH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BAG1D"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import { consumeAnswerStream } from "@hjmds/design-contracts/streaming-answer";
|
|
5
|
+
import { Button } from "./actions.js";
|
|
6
|
+
import { Progress } from "./feedback.js";
|
|
7
|
+
import { Stack, Text } from "./primitives.js";
|
|
8
|
+
import { useCompositionAction } from "./internal/use-composition-action.js";
|
|
9
|
+
export function StreamingAnswer(props) {
|
|
10
|
+
if (!props.answerId.trim())
|
|
11
|
+
throw new TypeError("Streaming answers require a stable id");
|
|
12
|
+
return _jsx(AnswerBody, { ...props }, props.answerId);
|
|
13
|
+
}
|
|
14
|
+
function AnswerBody(props) {
|
|
15
|
+
const [text, setText] = useState(props.initialText ?? ""), [phase, setPhase] = useState(props.initialText ? "complete" : "idle");
|
|
16
|
+
const action = useCompositionAction(props.disabled), request = useRef(null), mounted = useRef(true), disabled = useRef(props.disabled), requestWasRegenerate = useRef(false);
|
|
17
|
+
disabled.current = props.disabled;
|
|
18
|
+
useEffect(() => { mounted.current = true; return () => { mounted.current = false; request.current?.abort(); request.current = null; }; }, []);
|
|
19
|
+
const generate = () => {
|
|
20
|
+
if (!mounted.current || disabled.current || request.current)
|
|
21
|
+
return;
|
|
22
|
+
const controller = new AbortController();
|
|
23
|
+
request.current = controller;
|
|
24
|
+
const previousText = text, regenerate = phase !== "idle";
|
|
25
|
+
requestWasRegenerate.current = regenerate;
|
|
26
|
+
setPhase("thinking");
|
|
27
|
+
const current = () => mounted.current && request.current === controller;
|
|
28
|
+
void action.run("generate", async () => {
|
|
29
|
+
try {
|
|
30
|
+
const source = await props.onGenerate({ signal: controller.signal, previousText, regenerate });
|
|
31
|
+
const result = await consumeAnswerStream(source, controller.signal, previousText, value => { if (current()) {
|
|
32
|
+
setText(value);
|
|
33
|
+
setPhase("streaming");
|
|
34
|
+
} });
|
|
35
|
+
if (current()) {
|
|
36
|
+
setText(result.text);
|
|
37
|
+
setPhase(result.phase);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
const aborted = controller.signal.aborted && error && typeof error === "object" && "name" in error && error.name === "AbortError";
|
|
42
|
+
if (current())
|
|
43
|
+
setPhase(aborted ? "stopped" : "error");
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}).then(() => { if (request.current === controller)
|
|
47
|
+
request.current = null; });
|
|
48
|
+
};
|
|
49
|
+
const stop = () => { if (mounted.current && !disabled.current && request.current && !request.current.signal.aborted) {
|
|
50
|
+
setPhase("stopping");
|
|
51
|
+
request.current.abort();
|
|
52
|
+
} };
|
|
53
|
+
const pending = action.pending;
|
|
54
|
+
const status = phase === "idle" ? null : props.labels[phase];
|
|
55
|
+
return _jsxs(Stack, { gap: "md", children: [_jsx(Text, { emphasis: "strong", children: props.label }), text ? (props.renderText ? props.renderText(text) : _jsx(Text, { children: text })) : null, phase === "thinking" ? _jsx(Stack, { align: "center", justify: "center", children: props.thinkingIndicator ?? _jsx(Progress, { label: props.labels.thinking }) }) : null, _jsxs(Stack, { axis: "inline", gap: "sm", wrap: true, children: [_jsx(Button, { loading: pending, disabled: props.disabled === true, onPress: generate, children: (pending ? requestWasRegenerate.current : phase !== "idle") ? props.labels.regenerate : props.labels.generate }), pending ? _jsx(Button, { tone: "secondary", disabled: props.disabled === true || phase === "stopping", onPress: stop, children: props.labels.stop }) : null] }), status && phase !== "thinking" ? _jsx(Text, { accessibilityRole: phase === "error" ? "alert" : "text", accessibilityLiveRegion: "polite", align: "center", tone: phase === "error" ? "danger" : "primary", children: status }) : null] });
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=streaming-answer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-answer.js","sourceRoot":"","sources":["../src/streaming-answer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type ComparisonRow, type LineScoreTeam, type MatrixCell } from "@hjmds/design-contracts/components/data-table";
|
|
3
|
+
import type { HjmCompositionStyleProp } from "./composition-style.js";
|
|
4
|
+
export type LineScoreProps = Readonly<{
|
|
5
|
+
teams: readonly LineScoreTeam[];
|
|
6
|
+
/** Total column headers in order, e.g. ["R", "H", "E", "B"]. The first one decides the leader. */
|
|
7
|
+
totals: readonly string[];
|
|
8
|
+
/** Live period (1-based) to highlight. */
|
|
9
|
+
currentPeriod?: number | null;
|
|
10
|
+
minPeriods?: number;
|
|
11
|
+
/** Optional leading cell per team (logo/badge). */
|
|
12
|
+
renderTeam?: (team: LineScoreTeam) => ReactNode;
|
|
13
|
+
accessibilityLabel: string;
|
|
14
|
+
layoutStyle?: HjmCompositionStyleProp;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function LineScore({ teams, totals, currentPeriod, minPeriods, renderTeam, accessibilityLabel, layoutStyle }: LineScoreProps): import("react").JSX.Element;
|
|
17
|
+
export type MatrixTableProps<Key extends string = string> = Readonly<{
|
|
18
|
+
ids: readonly Key[];
|
|
19
|
+
/** Short header per id (team short name). */
|
|
20
|
+
labelOf: (id: Key) => string;
|
|
21
|
+
getCell: (row: Key, column: Key) => MatrixCell | null;
|
|
22
|
+
/** Row id to highlight (my team). */
|
|
23
|
+
highlightId?: Key | null;
|
|
24
|
+
heatColors?: Readonly<{
|
|
25
|
+
high: string;
|
|
26
|
+
low: string;
|
|
27
|
+
}>;
|
|
28
|
+
accessibilityLabel: string;
|
|
29
|
+
layoutStyle?: HjmCompositionStyleProp;
|
|
30
|
+
}>;
|
|
31
|
+
export declare function MatrixTable<Key extends string = string>({ ids, labelOf, getCell, highlightId, heatColors, accessibilityLabel, layoutStyle }: MatrixTableProps<Key>): import("react").JSX.Element;
|
|
32
|
+
export type ComparisonTableProps = Readonly<{
|
|
33
|
+
rows: readonly ComparisonRow[];
|
|
34
|
+
/** Side names and accent colors (team colors). */
|
|
35
|
+
sides: readonly [Readonly<{
|
|
36
|
+
name: string;
|
|
37
|
+
color: string;
|
|
38
|
+
}>, Readonly<{
|
|
39
|
+
name: string;
|
|
40
|
+
color: string;
|
|
41
|
+
}>];
|
|
42
|
+
/** Hide duplicate visual names when the two sides are already identified above; spoken row labels retain them. */
|
|
43
|
+
showSideNames?: boolean;
|
|
44
|
+
accessibilityLabel: string;
|
|
45
|
+
layoutStyle?: HjmCompositionStyleProp;
|
|
46
|
+
}>;
|
|
47
|
+
export declare function ComparisonTable({ rows, sides, showSideNames, accessibilityLabel, layoutStyle }: ComparisonTableProps): import("react").JSX.Element;
|
|
48
|
+
//# sourceMappingURL=table-family.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-family.d.ts","sourceRoot":"","sources":["../src/table-family.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAO,EAEL,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EACxD,MAAM,+CAA+C,CAAC;AAGvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AActE,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,kGAAkG;IAClG,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,CAAC;IAChD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAEH,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAoB,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,cAAc,+BAgCzI;AAED,MAAM,MAAM,gBAAgB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IACnE,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC;IACpB,6CAA6C;IAC7C,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,UAAU,GAAG,IAAI,CAAC;IACtD,qCAAqC;IACrC,WAAW,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAEH,wBAAgB,WAAW,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,WAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,+BA8BzK;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B,kDAAkD;IAClD,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACvG,kHAAkH;IAClH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAEH,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAoB,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,oBAAoB,+BAyB3H"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { ScrollView, Text as NativeText, View } from "react-native";
|
|
4
|
+
import { resolveColorReference } from "@hjmds/design-contracts/color-references";
|
|
5
|
+
import { dataTableFamilyRecipe, dataTableRecipe, formatLineScoreCell, resolveComparisonRow, resolveLineScore, resolveMatrix, } from "@hjmds/design-contracts/components/data-table";
|
|
6
|
+
import { spacing } from "@hjmds/design-contracts/foundations";
|
|
7
|
+
import { useHjmNativeTheme } from "./provider.js";
|
|
8
|
+
/*
|
|
9
|
+
* Table family companions (2026-10-14): layouts products kept hand-building next to DataTable.
|
|
10
|
+
* LineScore follows MLB/ESPN game headers, MatrixTable a head-to-head cross table, ComparisonTable
|
|
11
|
+
* the ESPN matchup rows. Geometry and rules live in the data-table contract; these only draw.
|
|
12
|
+
*/
|
|
13
|
+
function usePalette() {
|
|
14
|
+
const theme = useHjmNativeTheme();
|
|
15
|
+
return { colors: theme.colors, color: (reference) => resolveColorReference(reference, theme.palette) };
|
|
16
|
+
}
|
|
17
|
+
const num = { fontVariant: ["tabular-nums"] };
|
|
18
|
+
export function LineScore({ teams, totals, currentPeriod = null, minPeriods, renderTeam, accessibilityLabel, layoutStyle }) {
|
|
19
|
+
const { colors, color } = usePalette();
|
|
20
|
+
const score = resolveLineScore(teams, { totals, currentPeriod, ...(minPeriods !== undefined ? { minPeriods } : {}) });
|
|
21
|
+
const periods = score.columns.filter(column => column.kind === "period"), totalColumns = score.columns.filter(column => column.kind === "total");
|
|
22
|
+
// Nine innings plus R/H/E/B fit a 360pt phone without scrolling; a team mark (renderTeam) replaces the
|
|
23
|
+
// visible name, which stays in the row's accessibility label (2026-10-14 Yajalal device check: "L…").
|
|
24
|
+
const CELL = 23, TOTAL = 27, ROW = 36, NAME = renderTeam ? 40 : 64;
|
|
25
|
+
const header = color(dataTableRecipe.header.color), live = color(dataTableRecipe.sortButton.activeColor);
|
|
26
|
+
const rowLabel = (team) => `${team.name} ${totalColumns.map(column => `${column.header} ${team.totals[column.header] ?? "—"}`).join(", ")}`;
|
|
27
|
+
return _jsxs(View, { accessibilityLabel: accessibilityLabel, style: [{ flexDirection: "row", borderRadius: 12, overflow: "hidden", backgroundColor: colors.surface, paddingVertical: spacing.xs }, layoutStyle], children: [_jsxs(View, { children: [_jsx(View, { style: { height: 26 } }), teams.map(team => _jsx(View, { accessible: true, accessibilityLabel: rowLabel(team), style: { height: ROW, width: NAME, flexDirection: "row", alignItems: "center", gap: 6, paddingLeft: spacing.sm }, children: renderTeam ? renderTeam(team) : _jsx(NativeText, { numberOfLines: 1, style: { flex: 1, color: score.leaderId === team.id ? colors.text : colors.textBody, fontSize: 14, fontWeight: score.leaderId === team.id ? "800" : "600" }, children: team.name }) }, team.id))] }), _jsx(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, style: { flex: 1 }, contentContainerStyle: { flexGrow: 1, justifyContent: "flex-end" }, children: periods.map((column, index) => {
|
|
28
|
+
const isLive = score.currentPeriod === index + 1;
|
|
29
|
+
return _jsxs(View, { importantForAccessibility: "no-hide-descendants", accessibilityElementsHidden: true, style: { width: CELL, alignItems: "center", borderRadius: 8, backgroundColor: isLive ? color(dataTableRecipe.row.selectedBackground) : "transparent" }, children: [_jsx(NativeText, { style: { height: 26, lineHeight: 26, color: isLive ? live : header, fontSize: 11, fontWeight: "700" }, children: column.header }), teams.map(team => _jsx(NativeText, { style: { height: ROW, lineHeight: ROW, color: team.periods[index] ? colors.text : colors.textMuted, fontSize: 14, fontWeight: team.periods[index] ? "700" : "500", ...num }, children: formatLineScoreCell(team.periods[index]) }, team.id))] }, column.id);
|
|
30
|
+
}) }), _jsx(View, { importantForAccessibility: "no-hide-descendants", accessibilityElementsHidden: true, style: { flexDirection: "row", borderLeftWidth: 1, borderColor: color(dataTableRecipe.row.borderBottom), paddingHorizontal: 4 }, children: totalColumns.map((column, index) => _jsxs(View, { style: { width: TOTAL, alignItems: "center" }, children: [_jsx(NativeText, { style: { height: 26, lineHeight: 26, color: header, fontSize: 11, fontWeight: "700" }, children: column.header }), teams.map(team => _jsx(NativeText, { style: { height: ROW, lineHeight: ROW, color: index === 0 ? colors.text : colors.textBody, fontSize: index === 0 ? 16 : 14, fontWeight: index === 0 ? "800" : "600", ...num }, children: team.totals[column.header] ?? "—" }, team.id))] }, column.id)) })] });
|
|
31
|
+
}
|
|
32
|
+
export function MatrixTable({ ids, labelOf, getCell, highlightId = null, heatColors, accessibilityLabel, layoutStyle }) {
|
|
33
|
+
const { colors, color } = usePalette();
|
|
34
|
+
const matrix = resolveMatrix(ids, getCell);
|
|
35
|
+
const heat = { high: heatColors?.high ?? color(dataTableFamilyRecipe.heat.high), low: heatColors?.low ?? color(dataTableFamilyRecipe.heat.low) };
|
|
36
|
+
const CELL = 58, NAME = 52, ROW = 38;
|
|
37
|
+
const border = color(dataTableRecipe.row.borderBottom);
|
|
38
|
+
return _jsxs(View, { accessibilityLabel: accessibilityLabel, style: [{ flexDirection: "row", borderRadius: 12, overflow: "hidden", backgroundColor: colors.surface }, layoutStyle], children: [_jsxs(View, { style: { borderRightWidth: 1, borderColor: border }, children: [_jsx(View, { style: { height: 32 } }), ids.map(id => _jsx(View, { style: { width: NAME, height: ROW, justifyContent: "center", paddingHorizontal: spacing.sm, borderTopWidth: 1, borderColor: border, backgroundColor: id === highlightId ? color(dataTableRecipe.row.selectedBackground) : "transparent" }, children: _jsx(NativeText, { numberOfLines: 1, style: { color: colors.text, fontSize: 13, fontWeight: "700" }, children: labelOf(id) }) }, id))] }), _jsx(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, children: _jsxs(View, { children: [_jsx(View, { style: { flexDirection: "row", height: 32 }, children: ids.map(id => _jsx(NativeText, { accessibilityRole: "header", numberOfLines: 1, style: { width: CELL, lineHeight: 32, textAlign: "center", color: color(dataTableRecipe.header.color), fontSize: 12, fontWeight: "700" }, children: labelOf(id) }, id)) }), matrix.map((cells, rowIndex) => _jsx(View, { style: { flexDirection: "row", height: ROW, borderTopWidth: 1, borderColor: border, backgroundColor: ids[rowIndex] === highlightId ? color(dataTableRecipe.row.selectedBackground) : "transparent" }, children: cells.map((cell, columnIndex) => {
|
|
39
|
+
const name = `${labelOf(ids[rowIndex])} 대 ${labelOf(ids[columnIndex])}`;
|
|
40
|
+
if (cell === "self")
|
|
41
|
+
return _jsx(View, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: { width: CELL, backgroundColor: color(dataTableFamilyRecipe.groupRow.background) } }, columnIndex);
|
|
42
|
+
const tone = cell?.tone ? dataTableFamilyRecipe.tone[cell.tone] : null;
|
|
43
|
+
return _jsxs(View, { accessible: true, accessibilityLabel: `${name} ${cell?.label ?? "—"}`, style: { width: CELL, alignItems: "center", justifyContent: "center" }, children: [cell?.heat && _jsx(View, { pointerEvents: "none", style: { position: "absolute", left: 3, right: 3, top: 5, bottom: 5, borderRadius: 6, backgroundColor: heat[cell.heat.side], opacity: dataTableFamilyRecipe.heatAlpha[cell.heat.strength] } }), _jsx(NativeText, { numberOfLines: 1, style: { color: tone ? color(tone.color) : colors.textBody, fontSize: 12, fontWeight: tone ? tone.fontWeight : "600", ...num }, children: cell?.label ?? "—" })] }, columnIndex);
|
|
44
|
+
}) }, ids[rowIndex]))] }) })] });
|
|
45
|
+
}
|
|
46
|
+
export function ComparisonTable({ rows, sides, showSideNames = true, accessibilityLabel, layoutStyle }) {
|
|
47
|
+
const { colors, color } = usePalette();
|
|
48
|
+
const [width, setWidth] = useState(0);
|
|
49
|
+
return _jsxs(View, { accessibilityLabel: accessibilityLabel, onLayout: event => setWidth(event.nativeEvent.layout.width), style: [{ borderRadius: 12, backgroundColor: colors.surface, paddingVertical: spacing.xs }, layoutStyle], children: [showSideNames && _jsx(View, { style: { flexDirection: "row", justifyContent: "space-between", paddingHorizontal: spacing.md, paddingVertical: spacing.xs }, children: sides.map((side, index) => _jsx(NativeText, { numberOfLines: 1, style: { color: side.color, fontSize: 13, fontWeight: "800" }, children: side.name }, index)) }), rows.map((row, rowIndex) => {
|
|
50
|
+
const { winner, shares } = resolveComparisonRow(row);
|
|
51
|
+
const shown = row.display ?? [row.values[0] === null ? "—" : String(row.values[0]), row.values[1] === null ? "—" : String(row.values[1])];
|
|
52
|
+
const half = Math.max(0, width / 2 - spacing.md - spacing.sm / 2);
|
|
53
|
+
return _jsxs(View, { accessible: true, accessibilityLabel: `${row.label} ${sides[0].name} ${shown[0]}, ${sides[1].name} ${shown[1]}`, style: { paddingHorizontal: spacing.md, paddingVertical: spacing.sm, borderTopWidth: rowIndex === 0 && !showSideNames ? 0 : 1, borderColor: color(dataTableRecipe.row.borderBottom), gap: spacing.xs }, children: [_jsxs(View, { style: { flexDirection: "row", alignItems: "center" }, children: [_jsx(NativeText, { style: { flex: 1, color: winner === 0 ? colors.text : colors.textSub, fontSize: 16, fontWeight: winner === 0 ? "800" : "500", ...num }, children: shown[0] }), _jsx(NativeText, { style: { color: colors.text, fontSize: 13, fontWeight: "600" }, children: row.label }), _jsx(NativeText, { style: { flex: 1, textAlign: "right", color: winner === 1 ? colors.text : colors.textSub, fontSize: 16, fontWeight: winner === 1 ? "800" : "500", ...num }, children: shown[1] })] }), _jsx(View, { style: { flexDirection: "row", gap: spacing.sm, height: 5 }, children: [0, 1].map(index => _jsx(View, { style: { flex: 1, flexDirection: index === 0 ? "row-reverse" : "row", backgroundColor: colors.surfaceAlt, borderRadius: 2 }, children: _jsx(View, { style: { width: half * shares[index], borderRadius: 2, backgroundColor: sides[index].color, opacity: winner === null || winner === index ? 1 : 0.6 } }) }, index)) })] }, row.id);
|
|
54
|
+
})] });
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=table-family.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-family.js","sourceRoot":"","sources":["../src/table-family.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { resolvePasswordRules, type TaskChoice, type PasswordRule, type PriceOption } from "@hjmds/design-contracts/task-controls";
|
|
2
|
+
import { type PasswordFieldProps } from "./inputs.js";
|
|
3
|
+
export type SplitActionProps = Readonly<{
|
|
4
|
+
modes: readonly TaskChoice[];
|
|
5
|
+
modeId: string;
|
|
6
|
+
onModeChange: (id: string) => void;
|
|
7
|
+
onExecute: (modeId: string) => void | Promise<void>;
|
|
8
|
+
executeLabel: (mode: TaskChoice) => string;
|
|
9
|
+
menuLabel: string;
|
|
10
|
+
dismissLabel: string;
|
|
11
|
+
errorLabel: string;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function SplitAction(props: SplitActionProps): import("react").JSX.Element;
|
|
15
|
+
export type AccountSwitcherProps = Readonly<{
|
|
16
|
+
accounts: readonly TaskChoice[];
|
|
17
|
+
accountId: string;
|
|
18
|
+
label: string;
|
|
19
|
+
dismissLabel: string;
|
|
20
|
+
errorLabel: string;
|
|
21
|
+
onSwitch: (accountId: string) => void | Promise<void>;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function AccountSwitcher(props: AccountSwitcherProps): import("react").JSX.Element;
|
|
25
|
+
export type PasswordRulesFieldProps = Omit<PasswordFieldProps, "value" | "defaultValue" | "onValueChange"> & Readonly<{
|
|
26
|
+
label: string;
|
|
27
|
+
value: string;
|
|
28
|
+
onValueChange: (value: string) => void;
|
|
29
|
+
rules: readonly PasswordRule[];
|
|
30
|
+
progressLabel: string;
|
|
31
|
+
summaryLabel: (satisfied: number, total: number) => string;
|
|
32
|
+
ruleLabel: (rule: ReturnType<typeof resolvePasswordRules>["rules"][number]) => string;
|
|
33
|
+
}>;
|
|
34
|
+
export declare function PasswordRulesField({ rules, progressLabel, summaryLabel, ruleLabel, ...field }: PasswordRulesFieldProps): import("react").JSX.Element;
|
|
35
|
+
export type PricingChoiceProps = Readonly<{
|
|
36
|
+
label: string;
|
|
37
|
+
options: readonly PriceOption[];
|
|
38
|
+
selectedId: string;
|
|
39
|
+
onSelectionChange: (id: string) => void;
|
|
40
|
+
formatPrice: (option: PriceOption) => string;
|
|
41
|
+
continueLabel: string;
|
|
42
|
+
errorLabel: string;
|
|
43
|
+
onContinue: (option: PriceOption) => void | Promise<void>;
|
|
44
|
+
disabled?: boolean;
|
|
45
|
+
}>;
|
|
46
|
+
export declare function PricingChoice(props: PricingChoiceProps): import("react").JSX.Element;
|
|
47
|
+
//# sourceMappingURL=task-controls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-controls.d.ts","sourceRoot":"","sources":["../src/task-controls.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,oBAAoB,EAAsB,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAG1K,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAmBrE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC;IAChG,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACjF,CAAC,CAAC;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAOlD;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAC5G,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC3E,CAAC,CAAC;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BAO1D;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,cAAc,GAAG,eAAe,CAAC,GAAG,QAAQ,CAAC;IACpH,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACrG,aAAa,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClF,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;CACvF,CAAC,CAAC;AACH,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,+BAMtH;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5G,WAAW,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IACxF,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC/E,CAAC,CAAC;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BAUtD"}
|