@hjmds/react-native 1.19.0 → 1.21.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 +41 -12
- package/dist/navigation.js.map +1 -1
- package/dist/screen-flows.d.ts +3 -2
- package/dist/screen-flows.d.ts.map +1 -1
- package/dist/screen-flows.js +1 -1
- 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 +46 -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
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { isLargeTextScale, visibleControlHeight, } from "@hjmds/design-contracts/components/design-system-provider";
|
|
3
3
|
import { control, spacing } from "@hjmds/design-contracts/foundations";
|
|
4
4
|
import { buttonRecipe, resolveButtonLabelLines, } from "@hjmds/design-contracts/recipes/base";
|
|
5
|
-
import { Children, forwardRef } from "react";
|
|
5
|
+
import { Children, forwardRef, useState } from "react";
|
|
6
6
|
import { ActivityIndicator, Pressable, View, } from "react-native";
|
|
7
7
|
import { Text } from "../primitives.js";
|
|
8
8
|
import { useHjmNativeTheme } from "../provider.js";
|
|
@@ -21,15 +21,20 @@ function joinTextChildren(children) {
|
|
|
21
21
|
: children;
|
|
22
22
|
}
|
|
23
23
|
// UI control labels keep the ui font even when their metric variant is body; content still uses reading.
|
|
24
|
-
export const RecipeButton = forwardRef(function RecipeButton({ children, tone = buttonRecipe.defaults.tone, size = buttonRecipe.defaults.size, shape = buttonRecipe.defaults.shape, align = buttonRecipe.defaults.align, selected, disabled = false, loading = false, disableWhileLoading = false, growWithContent = false, loadingLabel, leading, trailing, fullWidth = false, hitSlop, layoutStyle, style, labelStyle, renderLoadingIndicator, accessibilityLabel, accessibilityState, onPress, onLongPress, ...props }, ref) {
|
|
25
|
-
const { colors, environment, tokens } = useHjmNativeTheme();
|
|
24
|
+
export const RecipeButton = forwardRef(function RecipeButton({ children, tone = buttonRecipe.defaults.tone, size = buttonRecipe.defaults.size, shape = buttonRecipe.defaults.shape, align = buttonRecipe.defaults.align, selected, disabled = false, loading = false, completion, disableWhileLoading = false, growWithContent = false, loadingLabel, leading, trailing, fullWidth = false, hitSlop, layoutStyle, style, labelStyle, renderLoadingIndicator, accessibilityLabel, accessibilityState, onPress, onLongPress, ...props }, ref) {
|
|
25
|
+
const { colors, environment, tokens, textScaling } = useHjmNativeTheme();
|
|
26
26
|
const labelLines = resolveButtonLabelLines(isLargeTextScale(environment.textScale));
|
|
27
27
|
const inactive = disabled && !loading;
|
|
28
28
|
const unavailable = disabled || (loading && disableWhileLoading);
|
|
29
29
|
// Preserve the idle content's measured width while the pending label remains the accessible name.
|
|
30
30
|
const content = joinTextChildren(children);
|
|
31
31
|
const textContent = typeof content === "string" || typeof content === "number";
|
|
32
|
-
|
|
32
|
+
if (completion && (!completion.label.trim() || typeof completion.confirmed !== "boolean" || !textContent)) {
|
|
33
|
+
throw new TypeError("Button completion requires a nonempty label, a boolean confirmed value and text-only children");
|
|
34
|
+
}
|
|
35
|
+
const completed = completion?.confirmed === true && !loading;
|
|
36
|
+
const currentContent = completed ? completion.label : content;
|
|
37
|
+
const announcedContent = loading && loadingLabel !== undefined ? loadingLabel : currentContent;
|
|
33
38
|
if (content === undefined || content === null || content === false) {
|
|
34
39
|
throw new TypeError("Button requires children");
|
|
35
40
|
}
|
|
@@ -39,6 +44,20 @@ export const RecipeButton = forwardRef(function RecipeButton({ children, tone =
|
|
|
39
44
|
const resolveColor = (key) => key === null ? "transparent" : colors[key];
|
|
40
45
|
const contentColor = resolveColor(selectedContract?.content ?? toneContract.content);
|
|
41
46
|
const visibleHeight = visibleControlHeight(sizeContract.height, environment.minimumVisualTarget);
|
|
47
|
+
// Yoga has no intrinsic overlapping grid. Hidden flow labels supply the maximum
|
|
48
|
+
// width; a recipe-height slot exists before their first native measurement.
|
|
49
|
+
const measurementKey = completion ? JSON.stringify([content, completion.label, size, tokens.fontFamily, tokens.typography[sizeContract.textVariant], environment.textScale, labelStyle]) : "";
|
|
50
|
+
const [labelMeasurements, setLabelMeasurements] = useState({ key: "", idle: 0, complete: 0 });
|
|
51
|
+
const labelMetric = tokens.typography[sizeContract.textVariant];
|
|
52
|
+
const initialSlotHeight = labelMetric.lineHeight * textScaling.scale * (labelLines ?? 1);
|
|
53
|
+
const measured = labelMeasurements.key === measurementKey ? Math.max(labelMeasurements.idle, labelMeasurements.complete) : 0;
|
|
54
|
+
const slotHeight = Math.max(initialSlotHeight, measured);
|
|
55
|
+
const measureLabel = (label, height) => {
|
|
56
|
+
setLabelMeasurements(previous => {
|
|
57
|
+
const current = previous.key === measurementKey ? previous : { key: measurementKey, idle: 0, complete: 0 };
|
|
58
|
+
return current[label] === height ? current : { ...current, [label]: height };
|
|
59
|
+
});
|
|
60
|
+
};
|
|
42
61
|
return (_jsxs(Pressable, { ...props, ref: ref, accessibilityLabel: accessibilityLabel ??
|
|
43
62
|
(typeof announcedContent === "string" ? announcedContent : undefined), accessibilityRole: "button", accessibilityState: {
|
|
44
63
|
...accessibilityState,
|
|
@@ -72,6 +91,6 @@ export const RecipeButton = forwardRef(function RecipeButton({ children, tone =
|
|
|
72
91
|
},
|
|
73
92
|
style,
|
|
74
93
|
layoutStyle,
|
|
75
|
-
], children: [loading && leading != null ? _jsx(View, { style: { opacity: 0 }, children: leading }) : leading, textContent ? (_jsx(Text, { fontRole: "ui", align: align === "leading" ? "auto" : "center", emphasis: "medium", ...(labelLines === null ? {} : { numberOfLines: labelLines }), style: [{ color: contentColor, flexShrink: 1, minWidth: 0 }, labelStyle, loading ? { opacity: 0 } : null], variant: sizeContract.textVariant, children: content })) : (loading ? _jsx(View, { importantForAccessibility: "no-hide-descendants", style: { opacity: 0 }, children: content }) : content), loading && trailing != null ? _jsx(View, { style: { opacity: 0 }, children: trailing }) : trailing, loading ? _jsx(View, { pointerEvents: "none", style: { alignItems: "center", bottom: 0, justifyContent: "center", left: 0, position: "absolute", right: 0, top: 0 }, children: renderLoadingIndicator?.({ color: contentColor, size: "small" }) ?? _jsx(ActivityIndicator, { color: contentColor, size: "small" }) }) : null] }));
|
|
94
|
+
], children: [loading && leading != null ? _jsx(View, { style: { opacity: 0 }, children: leading }) : leading, completion ? _jsxs(View, { style: { flexShrink: 1, minWidth: 0, height: slotHeight }, children: [_jsxs(View, { pointerEvents: "none", accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", style: { height: 0, opacity: 0 }, children: [_jsx(Text, { fontRole: "ui", emphasis: "medium", variant: sizeContract.textVariant, ...(labelLines === null ? {} : { numberOfLines: labelLines }), onLayout: event => measureLabel("idle", event.nativeEvent.layout.height), style: [{ color: contentColor, flexShrink: 0, minWidth: 0 }, labelStyle], children: content }), _jsx(Text, { fontRole: "ui", emphasis: "medium", variant: sizeContract.textVariant, ...(labelLines === null ? {} : { numberOfLines: labelLines }), onLayout: event => measureLabel("complete", event.nativeEvent.layout.height), style: [{ color: contentColor, flexShrink: 0, minWidth: 0 }, labelStyle], children: completion.label })] }), _jsx(View, { pointerEvents: "none", style: { position: "absolute", inset: 0, justifyContent: "center", opacity: loading ? 0 : 1 }, children: _jsx(Text, { fontRole: "ui", align: align === "leading" ? "auto" : "center", emphasis: "medium", variant: sizeContract.textVariant, ...(labelLines === null ? {} : { numberOfLines: labelLines }), style: [{ color: contentColor, minWidth: 0 }, labelStyle], children: currentContent }) })] }) : textContent ? (_jsx(Text, { fontRole: "ui", align: align === "leading" ? "auto" : "center", emphasis: "medium", ...(labelLines === null ? {} : { numberOfLines: labelLines }), style: [{ color: contentColor, flexShrink: 1, minWidth: 0 }, labelStyle, loading ? { opacity: 0 } : null], variant: sizeContract.textVariant, children: content })) : (loading ? _jsx(View, { importantForAccessibility: "no-hide-descendants", style: { opacity: 0 }, children: content }) : content), loading && trailing != null ? _jsx(View, { style: { opacity: 0 }, children: trailing }) : trailing, loading ? _jsx(View, { pointerEvents: "none", style: { alignItems: "center", bottom: 0, justifyContent: "center", left: 0, position: "absolute", right: 0, top: 0 }, children: renderLoadingIndicator?.({ color: contentColor, size: "small" }) ?? _jsx(ActivityIndicator, { color: contentColor, size: "small" }) }) : null] }));
|
|
76
95
|
});
|
|
77
96
|
//# sourceMappingURL=recipe-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe-button.js","sourceRoot":"","sources":["../../src/internal/recipe-button.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EACL,YAAY,EACZ,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"recipe-button.js","sourceRoot":"","sources":["../../src/internal/recipe-button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare function useCompositionAction<T = string>(disabled?: boolean): {
|
|
2
|
+
session: Readonly<{
|
|
3
|
+
getSnapshot(): import("@hjmds/design-contracts/action-session").ActionSnapshot<T | null>;
|
|
4
|
+
subscribe(listener: () => void): () => void;
|
|
5
|
+
run(task: import("@hjmds/design-contracts/action-session").ActionTask<T | null>, options?: Readonly<{
|
|
6
|
+
optimisticValue?: T | null;
|
|
7
|
+
retryable?: boolean;
|
|
8
|
+
}> | undefined): Promise<import("@hjmds/design-contracts/action-session").ActionOutcome<T | null>>;
|
|
9
|
+
retry(): Promise<import("@hjmds/design-contracts/action-session").ActionOutcome<T | null>>;
|
|
10
|
+
reset(value: T | null): void;
|
|
11
|
+
}>;
|
|
12
|
+
pending: boolean;
|
|
13
|
+
failed: boolean;
|
|
14
|
+
active: T | null;
|
|
15
|
+
run: (key: T, task: () => void | Promise<void>) => Promise<import("@hjmds/design-contracts/action-session").ActionOutcome<T | null>>;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=use-composition-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-composition-action.d.ts","sourceRoot":"","sources":["../../src/internal/use-composition-action.ts"],"names":[],"mappings":"AAGA,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,MAAM,EAAE,QAAQ,UAAQ;;;;;;;;;;;;;;eAQlD,CAAC,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;EAIjD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useEffect, useRef, useState, useSyncExternalStore } from "react";
|
|
2
|
+
import { createActionSession } from "@hjmds/design-contracts/action-session";
|
|
3
|
+
export function useCompositionAction(disabled = false) {
|
|
4
|
+
const available = useRef(true), disabledRef = useRef(disabled);
|
|
5
|
+
disabledRef.current = disabled;
|
|
6
|
+
const [session] = useState(() => createActionSession(null));
|
|
7
|
+
const state = useSyncExternalStore(session.subscribe, session.getSnapshot, session.getSnapshot);
|
|
8
|
+
useEffect(() => { available.current = true; return () => { available.current = false; session.reset(null); }; }, [session]);
|
|
9
|
+
return { session, pending: state.status === "pending", failed: state.status === "error",
|
|
10
|
+
active: state.status === "pending" ? state.value : null,
|
|
11
|
+
run: (key, task) => {
|
|
12
|
+
if (!available.current || disabledRef.current)
|
|
13
|
+
return Promise.resolve({ status: "ignored" });
|
|
14
|
+
return session.run(async () => { await task(); return null; }, { optimisticValue: key });
|
|
15
|
+
} };
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=use-composition-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-composition-action.js","sourceRoot":"","sources":["../../src/internal/use-composition-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,UAAU,oBAAoB,CAAa,QAAQ,GAAG,KAAK;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAW,IAAI,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChG,SAAS,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5H,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,OAAO;QACrF,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QACvD,GAAG,EAAE,CAAC,GAAM,EAAE,IAAgC,EAAE,EAAE;YAChD,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,CAAC,CAAC;YACtG,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3F,CAAC,EAAE,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type MediaPlaybackState } from "@hjmds/design-contracts/media-transport";
|
|
2
|
+
export type MediaTransportProps = Readonly<{
|
|
3
|
+
state: MediaPlaybackState;
|
|
4
|
+
onPlay: () => void | Promise<void>;
|
|
5
|
+
onPause: () => void | Promise<void>;
|
|
6
|
+
/** Resolve after the adapter confirms the actual seek; rejecting keeps the observed position. */
|
|
7
|
+
onSeek: (seconds: number) => void | Promise<void>;
|
|
8
|
+
labels: Readonly<{
|
|
9
|
+
play: string;
|
|
10
|
+
pause: string;
|
|
11
|
+
seek: string;
|
|
12
|
+
decrement: string;
|
|
13
|
+
increment: string;
|
|
14
|
+
unknownDuration: string;
|
|
15
|
+
error: string;
|
|
16
|
+
}>;
|
|
17
|
+
formatTime: (seconds: number) => string;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
active?: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
export declare function MediaTransport(props: MediaTransportProps): import("react").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=media-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-transport.d.ts","sourceRoot":"","sources":["../src/media-transport.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAwB7H,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnG,iGAAiG;IACjG,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9I,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC/E,CAAC,CAAC;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAiBxD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { Animated, AppState } from "react-native";
|
|
4
|
+
import Svg, { Path } from "react-native-svg";
|
|
5
|
+
import { mediaTransportPaths, resolveMediaPlayback } from "@hjmds/design-contracts/media-transport";
|
|
6
|
+
import { motion } from "@hjmds/design-contracts/foundations";
|
|
7
|
+
import { IconButton } from "./actions.js";
|
|
8
|
+
import { Slider } from "./slider.js";
|
|
9
|
+
import { Stack, Text } from "./primitives.js";
|
|
10
|
+
import { useHjmNativeTheme } from "./provider.js";
|
|
11
|
+
import { useCompositionAction } from "./internal/use-composition-action.js";
|
|
12
|
+
function MediaGlyph({ playing, active }) {
|
|
13
|
+
const first = useRef(null), second = useRef(null);
|
|
14
|
+
const [value] = useState(() => new Animated.Value(playing ? 1 : 0)), current = useRef(playing ? 1 : 0);
|
|
15
|
+
const theme = useHjmNativeTheme(), reduced = theme.environment.reducedMotion;
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const target = playing ? 1 : 0;
|
|
18
|
+
const draw = (n) => { current.current = n; const paths = mediaTransportPaths(n); first.current?.setNativeProps?.({ d: paths[0] }); second.current?.setNativeProps?.({ d: paths[1] }); };
|
|
19
|
+
const listener = value.addListener(({ value: n }) => draw(n));
|
|
20
|
+
const settle = () => { value.stopAnimation(); value.setValue(target); draw(target); };
|
|
21
|
+
// d is a path, so useNativeDriver cannot animate it. Update SVG hosts without React renders.
|
|
22
|
+
if (reduced || !active || AppState.currentState !== "active")
|
|
23
|
+
settle();
|
|
24
|
+
else
|
|
25
|
+
Animated.timing(value, { toValue: target, duration: motion.normal, useNativeDriver: false }).start();
|
|
26
|
+
const app = AppState.addEventListener("change", state => { if (state !== "active")
|
|
27
|
+
settle(); });
|
|
28
|
+
return () => { value.stopAnimation(); value.removeListener(listener); app.remove(); };
|
|
29
|
+
}, [playing, active, reduced, value]);
|
|
30
|
+
const paths = mediaTransportPaths(current.current);
|
|
31
|
+
return _jsxs(Svg, { width: 24, height: 24, viewBox: "0 0 24 24", accessible: false, children: [_jsx(Path, { ref: first, d: paths[0], fill: theme.colors.contentBrand }), _jsx(Path, { ref: second, d: paths[1], fill: theme.colors.contentBrand })] });
|
|
32
|
+
}
|
|
33
|
+
export function MediaTransport(props) {
|
|
34
|
+
const state = resolveMediaPlayback(props.state), active = props.active !== false;
|
|
35
|
+
const action = useCompositionAction(props.disabled === true || !active), [draft, setDraft] = useState(null);
|
|
36
|
+
const locked = props.disabled === true || !active || action.pending;
|
|
37
|
+
useEffect(() => { if (!active)
|
|
38
|
+
setDraft(null); }, [active]);
|
|
39
|
+
const toggle = () => { void action.run(state.playing ? "pause" : "play", state.playing ? props.onPause : props.onPlay); };
|
|
40
|
+
const seek = (seconds) => {
|
|
41
|
+
if (locked || !state.seekable)
|
|
42
|
+
return;
|
|
43
|
+
void action.run("seek", () => props.onSeek(Math.min(state.duration, Math.max(0, seconds)))).then(result => { if (result.status === "success" || result.status === "error")
|
|
44
|
+
setDraft(null); });
|
|
45
|
+
};
|
|
46
|
+
return _jsxs(Stack, { gap: "md", children: [_jsxs(Stack, { axis: "inline", gap: "sm", align: "center", children: [_jsx(IconButton, { label: state.playing ? props.labels.pause : props.labels.play, tone: "ghost", selected: state.playing, loading: action.pending || (state.buffering === true && !state.playing), disabled: props.disabled === true || !active, onPress: toggle, children: _jsx(MediaGlyph, { playing: state.playing, active: active }) }), _jsxs(Text, { variant: "caption", children: [props.formatTime(state.position), " / ", state.duration === null ? props.labels.unknownDuration : props.formatTime(state.duration)] })] }), state.seekable ? _jsx(Slider, { label: props.labels.seek, min: 0, max: state.duration, step: .1, value: Math.min(state.duration, draft ?? state.position), disabled: locked, onValueChange: seconds => { if (!locked)
|
|
47
|
+
setDraft(seconds); }, onValueChangeEnd: seek, getValueText: props.formatTime, decrementLabel: props.labels.decrement, incrementLabel: props.labels.increment }) : null, action.failed ? _jsx(Text, { accessibilityRole: "alert", accessibilityLiveRegion: "assertive", tone: "danger", align: "center", children: props.labels.error }) : null] });
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=media-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-transport.js","sourceRoot":"","sources":["../src/media-transport.tsx"],"names":[],"mappings":"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"}
|
package/dist/navigation.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type BottomNavigationActivation, type BottomNavigationConfiguration, ty
|
|
|
3
3
|
import { type CollectionSource } from "@hjmds/design-contracts/components/collection";
|
|
4
4
|
import type { LinkDestination } from "@hjmds/design-contracts/components/link";
|
|
5
5
|
import { type LoadMoreDescriptor, type LoadMoreMode, type LoadMoreRequestHandler, type LoadMoreRequestOutcome, type LoadMoreRequestReason } from "@hjmds/design-contracts/components/load-more";
|
|
6
|
-
import { type TabsAppearance } from "@hjmds/design-contracts/gooey-navigation";
|
|
6
|
+
import { type TabSwipePosition, type TabsAppearance } from "@hjmds/design-contracts/gooey-navigation";
|
|
7
7
|
import { type LoadMoreDensity, type MenuDensity, type TabSize, type TabsLayout, type TabsOverflow } from "@hjmds/design-contracts/recipes";
|
|
8
8
|
import { type ReactElement, type ReactNode } from "react";
|
|
9
9
|
import { type ModalProps, type PressableProps } from "react-native";
|
|
@@ -44,6 +44,8 @@ type TabsBaseProps<Value extends string> = Readonly<{
|
|
|
44
44
|
mountPolicy?: TabsMountPolicy;
|
|
45
45
|
panelMode?: TabsPanelMode;
|
|
46
46
|
appearance?: TabsAppearance;
|
|
47
|
+
/** Fractional pager position; selection commits through onValueChange. Horizontal only. */
|
|
48
|
+
swipePosition?: TabSwipePosition;
|
|
47
49
|
orientation?: TabsOrientation;
|
|
48
50
|
direction?: TabsDirection;
|
|
49
51
|
loop?: boolean;
|
package/dist/navigation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../src/navigation.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../src/navigation.tsx"],"names":[],"mappings":"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"}
|
package/dist/navigation.js
CHANGED
|
@@ -5,7 +5,7 @@ import { resolveBottomNavigationActivation, resolveBottomNavigationConfiguration
|
|
|
5
5
|
import { flattenCollectionItems, validateCollection, } from "@hjmds/design-contracts/components/collection";
|
|
6
6
|
import { createLoadMoreController, validateLoadMoreDescriptor, } from "@hjmds/design-contracts/components/load-more";
|
|
7
7
|
import { backdrop, easing, glyph, radius, spacing, } from "@hjmds/design-contracts/foundations";
|
|
8
|
-
import { resolveTabIndicator, resolveTabsAppearance, sampleTabIndicator, } from "@hjmds/design-contracts/gooey-navigation";
|
|
8
|
+
import { resolveSwipeTabIndicator, resolveTabIndicator, resolveTabsAppearance, sampleTabIndicator, } from "@hjmds/design-contracts/gooey-navigation";
|
|
9
9
|
import { bottomNavigationRecipe, counterBadgeRecipe, loadMoreRecipe, menuRecipe, spinnerRecipe, tabsRecipe, topBarRecipe, } from "@hjmds/design-contracts/recipes";
|
|
10
10
|
import { Fragment, forwardRef, useCallback, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState, } from "react";
|
|
11
11
|
import { AccessibilityInfo, ActivityIndicator, Animated, AppState, Easing, Keyboard, Modal, Platform, Pressable, ScrollView, View, findNodeHandle, } from "react-native";
|
|
@@ -56,7 +56,7 @@ export function TabPanel(props) {
|
|
|
56
56
|
}
|
|
57
57
|
// UI control labels keep the ui font even when their metric variant is body; content still uses reading.
|
|
58
58
|
export function Tabs(props) {
|
|
59
|
-
const { id, label, items, value: valueProp, defaultValue, onValueChange, activationMode = tabsBehaviorDefaults.activationMode, mountPolicy = tabsBehaviorDefaults.mountPolicy, panelMode = tabsBehaviorDefaults.panelMode, appearance: suppliedAppearance, orientation = tabsBehaviorDefaults.orientation, direction: directionProp, loop = tabsBehaviorDefaults.loop, size = tabsRecipe.defaults.size, layout = tabsRecipe.defaults.layout, overflow = tabsRecipe.defaults.overflow, renderPanels = true, children, layoutStyle, } = props;
|
|
59
|
+
const { id, label, items, value: valueProp, defaultValue, onValueChange, activationMode = tabsBehaviorDefaults.activationMode, mountPolicy = tabsBehaviorDefaults.mountPolicy, panelMode = tabsBehaviorDefaults.panelMode, appearance: suppliedAppearance, swipePosition, orientation = tabsBehaviorDefaults.orientation, direction: directionProp, loop = tabsBehaviorDefaults.loop, size = tabsRecipe.defaults.size, layout = tabsRecipe.defaults.layout, overflow = tabsRecipe.defaults.overflow, renderPanels = true, children, layoutStyle, } = props;
|
|
60
60
|
assertNoRemovedStyleProps("Tabs", props, ["style", "tabListStyle"]);
|
|
61
61
|
if (!label.trim())
|
|
62
62
|
throw new TypeError("Tabs label must not be empty");
|
|
@@ -103,7 +103,7 @@ export function Tabs(props) {
|
|
|
103
103
|
const [visited, setVisited] = useState(() => new Set([selected]));
|
|
104
104
|
const tabRefs = useRef(new Map());
|
|
105
105
|
const appearance = resolveTabsAppearance(suppliedAppearance, theme.designProfile?.interactions.selectionMotion, orientation);
|
|
106
|
-
const movingIndicator = appearance !== "standard";
|
|
106
|
+
const movingIndicator = appearance !== "standard" || (orientation === "horizontal" && swipePosition !== undefined);
|
|
107
107
|
const [indicatorRects, setIndicatorRects] = useState({});
|
|
108
108
|
const tabScroll = useRef(null);
|
|
109
109
|
const [tabViewport, setTabViewport] = useState(0);
|
|
@@ -118,6 +118,8 @@ export function Tabs(props) {
|
|
|
118
118
|
}, [selected, destination, tabViewport, tabContentWidth, direction, orientation, scrollable, fitted]);
|
|
119
119
|
const previousIndicator = useRef(null);
|
|
120
120
|
const progress = useRef(new Animated.Value(1)).current;
|
|
121
|
+
const swipeX = useRef(new Animated.Value(0)).current;
|
|
122
|
+
const swipeWidth = useRef(new Animated.Value(0)).current;
|
|
121
123
|
const [indicatorRecipe, setIndicatorRecipe] = useState(null);
|
|
122
124
|
const recipeRef = useRef(null);
|
|
123
125
|
const progressFrame = useRef(1);
|
|
@@ -132,7 +134,7 @@ export function Tabs(props) {
|
|
|
132
134
|
interruptedIndicator.current = null;
|
|
133
135
|
progress.stopAnimation();
|
|
134
136
|
progress.setValue(1);
|
|
135
|
-
if (appearance === "standard" || !destination) {
|
|
137
|
+
if (swipePosition || appearance === "standard" || !destination) {
|
|
136
138
|
previousIndicator.current = null;
|
|
137
139
|
recipeRef.current = null;
|
|
138
140
|
setIndicatorRecipe(null);
|
|
@@ -162,7 +164,20 @@ export function Tabs(props) {
|
|
|
162
164
|
stop();
|
|
163
165
|
subscription.remove();
|
|
164
166
|
};
|
|
165
|
-
}, [appearance, selected, destination, environment.reducedMotion, progress]);
|
|
167
|
+
}, [appearance, selected, destination, environment.reducedMotion, progress, swipePosition]);
|
|
168
|
+
useLayoutEffect(() => {
|
|
169
|
+
if (!swipePosition || orientation !== "horizontal")
|
|
170
|
+
return;
|
|
171
|
+
const place = (position = swipePosition.get()) => {
|
|
172
|
+
const rect = resolveSwipeTabIndicator(tabItems.map(item => indicatorRects[item.id]), position);
|
|
173
|
+
if (!rect)
|
|
174
|
+
return;
|
|
175
|
+
swipeX.setValue(rect.x);
|
|
176
|
+
swipeWidth.setValue(rect.width);
|
|
177
|
+
};
|
|
178
|
+
place();
|
|
179
|
+
return swipePosition.subscribe(place);
|
|
180
|
+
}, [swipePosition, indicatorRects, orientation, swipeX, swipeWidth, tabItems]);
|
|
166
181
|
useEffect(() => {
|
|
167
182
|
if (!controlled && !storedValueValid)
|
|
168
183
|
setSelected(collectionFallback);
|
|
@@ -234,11 +249,11 @@ export function Tabs(props) {
|
|
|
234
249
|
flexGrow: fitted ? 1 : 0,
|
|
235
250
|
flexDirection: orientation === "vertical" ? "column" : "row",
|
|
236
251
|
},
|
|
237
|
-
], children: [movingIndicator && indicatorRecipe ? _jsx(Animated.View, { pointerEvents: "none", accessible: false, accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", style: {
|
|
252
|
+
], children: [movingIndicator && (indicatorRecipe || swipePosition) ? _jsx(Animated.View, { pointerEvents: "none", accessible: false, accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", style: {
|
|
238
253
|
position: "absolute", bottom: 0, height: appearance === "gooey" ? 6 : tabsRecipe.indicatorHeight, borderRadius: theme.tokens.radius.full,
|
|
239
254
|
backgroundColor: resolveColorReference(tabsRecipe.colors.indicator, theme.palette),
|
|
240
|
-
left: progress.interpolate({ inputRange: [...indicatorRecipe.input], outputRange: [...indicatorRecipe.x] }),
|
|
241
|
-
width: progress.interpolate({ inputRange: [...indicatorRecipe.input], outputRange: [...indicatorRecipe.width] }),
|
|
255
|
+
left: swipePosition ? swipeX : progress.interpolate({ inputRange: [...indicatorRecipe.input], outputRange: [...indicatorRecipe.x] }),
|
|
256
|
+
width: swipePosition ? swipeWidth : progress.interpolate({ inputRange: [...indicatorRecipe.input], outputRange: [...indicatorRecipe.width] }),
|
|
242
257
|
} }) : null, tabItems.map((item) => {
|
|
243
258
|
const active = selected === item.id;
|
|
244
259
|
return (_jsxs(Pressable, { onLayout: orientation === "horizontal" ? event => {
|
|
@@ -323,7 +338,7 @@ export function Tabs(props) {
|
|
|
323
338
|
backgroundColor: colors.bg,
|
|
324
339
|
borderRadius: radius.full,
|
|
325
340
|
paddingHorizontal: spacing.xs,
|
|
326
|
-
}, children: _jsx(Text, { align: "center", tone: "brand", variant: "caption", children: item.badge }) })) : null, active && (!movingIndicator || !indicatorRecipe) ? (_jsx(View, { accessibilityElementsHidden: true, accessible: false, importantForAccessibility: "no-hide-descendants", style: {
|
|
341
|
+
}, children: _jsx(Text, { align: "center", tone: "brand", variant: "caption", children: item.badge }) })) : null, active && (!movingIndicator || (!indicatorRecipe && !swipePosition)) ? (_jsx(View, { accessibilityElementsHidden: true, accessible: false, importantForAccessibility: "no-hide-descendants", style: {
|
|
327
342
|
backgroundColor: resolveColorReference(tabsRecipe.colors.indicator, theme.palette),
|
|
328
343
|
...(orientation === "horizontal"
|
|
329
344
|
? {
|
|
@@ -377,6 +392,8 @@ export function BottomNavigation({ descriptor, onActivate, onLongActivate, rende
|
|
|
377
392
|
const capsule = presentation.presentation === "capsule";
|
|
378
393
|
const tile = presentation.selection === "tile";
|
|
379
394
|
const tileRecipe = bottomNavigationRecipe.selectionTile;
|
|
395
|
+
const raised = tile && presentation.surface === "raised";
|
|
396
|
+
const raisedRecipe = bottomNavigationRecipe.raisedSurface;
|
|
380
397
|
// Hidden labels keep the item's accessibilityLabel; only the visible Text row is dropped.
|
|
381
398
|
const labelsVisible = presentation.labels === "visible";
|
|
382
399
|
const expandedLabels = theme.environment.textScale >= 1.5 || resolved.items.length > 4;
|
|
@@ -388,7 +405,8 @@ export function BottomNavigation({ descriptor, onActivate, onLongActivate, rende
|
|
|
388
405
|
const presentationRecipe = bottomNavigationRecipe.presentations[presentation.presentation];
|
|
389
406
|
// Floating/capsule presentations own elevation; a flat bar must never gain
|
|
390
407
|
// one just because a profile has a floating token. Keep router state outside.
|
|
391
|
-
|
|
408
|
+
// The raised plank's lower edge is its elevation; a floating shadow under it reads as two objects.
|
|
409
|
+
const surfaceShadow = presentationRecipe.shadow && !raised
|
|
392
410
|
? theme.designProfile?.tokens.shadow.floating ?? presentationRecipe.shadow
|
|
393
411
|
: null;
|
|
394
412
|
const centerGap = bottomNavigationRecipe.distributions[presentation.distribution].centerGap;
|
|
@@ -397,8 +415,11 @@ export function BottomNavigation({ descriptor, onActivate, onLongActivate, rende
|
|
|
397
415
|
const selectedIconColor = resolveColorReference(tile ? tileRecipe.selectedContent : bottomNavigationRecipe.colors.selectedIcon, theme.palette);
|
|
398
416
|
const selectedLabelColor = resolveColorReference(tile ? tileRecipe.selectedContent : bottomNavigationRecipe.colors.selectedLabel, theme.palette);
|
|
399
417
|
const pressedBackground = resolveColorReference(bottomNavigationRecipe.states.pressedBackground, theme.palette);
|
|
400
|
-
const surfaceBackground = resolveColorReference(tile ? tileRecipe.background : presentationRecipe.background, theme.palette);
|
|
401
|
-
const surfaceBorder = resolveColorReference(presentationRecipe.border, theme.palette);
|
|
418
|
+
const surfaceBackground = resolveColorReference(raised ? raisedRecipe.background : tile ? tileRecipe.background : presentationRecipe.background, theme.palette);
|
|
419
|
+
const surfaceBorder = resolveColorReference(raised ? raisedRecipe.border : presentationRecipe.border, theme.palette);
|
|
420
|
+
const selectedDepthColor = raised
|
|
421
|
+
? resolveColorReference(raisedRecipe.selectedDepthColor, theme.palette)
|
|
422
|
+
: undefined;
|
|
402
423
|
const badgeMetrics = counterBadgeRecipe.sizes[bottomNavigationRecipe.badge.size];
|
|
403
424
|
const badgeTone = counterBadgeRecipe.tones.danger;
|
|
404
425
|
const badgeVariant = counterBadgeRecipe.variants[bottomNavigationRecipe.badge.variant];
|
|
@@ -430,6 +451,8 @@ export function BottomNavigation({ descriptor, onActivate, onLongActivate, rende
|
|
|
430
451
|
// Capsule's own list paints its border; bar/floating keep the recipe top edge here.
|
|
431
452
|
borderTopWidth: capsule ? 0 : presentationRecipe.borderWidth,
|
|
432
453
|
borderWidth: presentation.presentation === "floating" ? presentationRecipe.borderWidth : 0,
|
|
454
|
+
// Per-edge width after borderWidth: only the lower edge thickens into the plank side.
|
|
455
|
+
...(raised ? { borderBottomWidth: raisedRecipe.depth } : {}),
|
|
433
456
|
...(surfaceShadow ? resolveNativeShadowElevation(surfaceShadow, theme.designProfile !== undefined, 8) : { elevation: 0 }),
|
|
434
457
|
maxWidth: presentationRecipe.maxWidth ?? undefined,
|
|
435
458
|
position: "relative",
|
|
@@ -485,6 +508,12 @@ export function BottomNavigation({ descriptor, onActivate, onLongActivate, rende
|
|
|
485
508
|
? resolveColorReference(tileRecipe.selectedBackground, theme.palette)
|
|
486
509
|
: pressed ? pressedBackground : capsule && selected ? theme.colors.surfaceAccent : "transparent",
|
|
487
510
|
borderRadius: tile ? theme.tokens.radius[tileRecipe.radius] : capsule ? radius.full : theme.tokens.radius.lg,
|
|
511
|
+
// Every raised tile reserves the edge so selection never shifts icon/label rows.
|
|
512
|
+
// The translucent edge composites over the brand fill, darkening it.
|
|
513
|
+
...(raised ? {
|
|
514
|
+
borderBottomWidth: raisedRecipe.selectedDepth,
|
|
515
|
+
borderBottomColor: selected ? selectedDepthColor : "transparent",
|
|
516
|
+
} : {}),
|
|
488
517
|
// Floating edge items touch the frame. Their pressed fill must follow its
|
|
489
518
|
// inner curve; the smaller generic radius painted over the border in Spint.
|
|
490
519
|
// Match corners instead of clipping the whole surface (which clips shadows/focus).
|