@hjmds/react-native 1.17.2 → 1.19.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/README.md +8 -8
- package/dist/actions.d.ts +3 -23
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +8 -11
- package/dist/actions.js.map +1 -1
- package/dist/activity-chip.d.ts +29 -0
- package/dist/activity-chip.d.ts.map +1 -0
- package/dist/activity-chip.js +54 -0
- package/dist/activity-chip.js.map +1 -0
- package/dist/agreement.d.ts +1 -7
- package/dist/agreement.d.ts.map +1 -1
- package/dist/agreement.js +21 -15
- package/dist/agreement.js.map +1 -1
- package/dist/asset.d.ts +2 -13
- package/dist/asset.d.ts.map +1 -1
- package/dist/asset.js +4 -7
- package/dist/asset.js.map +1 -1
- package/dist/bottom-info.d.ts +1 -7
- package/dist/bottom-info.d.ts.map +1 -1
- package/dist/bottom-info.js +2 -4
- package/dist/bottom-info.js.map +1 -1
- package/dist/carousel-motion.d.ts +1 -0
- package/dist/carousel-motion.d.ts.map +1 -1
- package/dist/carousel-motion.js +5 -3
- package/dist/carousel-motion.js.map +1 -1
- package/dist/carousel.d.ts +1 -7
- package/dist/carousel.d.ts.map +1 -1
- package/dist/carousel.js +14 -6
- package/dist/carousel.js.map +1 -1
- package/dist/collapsible.d.ts +1 -7
- package/dist/collapsible.d.ts.map +1 -1
- package/dist/collapsible.js +4 -4
- package/dist/collapsible.js.map +1 -1
- package/dist/content-transition.d.ts +2 -1
- package/dist/content-transition.d.ts.map +1 -1
- package/dist/content-transition.js +3 -3
- package/dist/content-transition.js.map +1 -1
- package/dist/data-display.d.ts +23 -154
- package/dist/data-display.d.ts.map +1 -1
- package/dist/data-display.js +86 -92
- package/dist/data-display.js.map +1 -1
- package/dist/date-entry.d.ts +1 -0
- package/dist/date-entry.d.ts.map +1 -1
- package/dist/date-entry.js +22 -20
- package/dist/date-entry.js.map +1 -1
- package/dist/date-picker.d.ts +1 -7
- package/dist/date-picker.d.ts.map +1 -1
- package/dist/date-picker.js +19 -11
- package/dist/date-picker.js.map +1 -1
- package/dist/duration-field.d.ts +1 -1
- package/dist/duration-field.d.ts.map +1 -1
- package/dist/duration-field.js +11 -9
- package/dist/duration-field.js.map +1 -1
- package/dist/evidence.d.ts +1 -1
- package/dist/evidence.js +1 -1
- package/dist/feedback.d.ts +9 -88
- package/dist/feedback.d.ts.map +1 -1
- package/dist/feedback.js +124 -81
- package/dist/feedback.js.map +1 -1
- package/dist/field-group.d.ts +3 -2
- package/dist/field-group.d.ts.map +1 -1
- package/dist/field-group.js +7 -4
- package/dist/field-group.js.map +1 -1
- package/dist/file-picker.d.ts +1 -7
- package/dist/file-picker.d.ts.map +1 -1
- package/dist/file-picker.js +21 -11
- package/dist/file-picker.js.map +1 -1
- package/dist/forms.d.ts +6 -21
- package/dist/forms.d.ts.map +1 -1
- package/dist/forms.js +29 -35
- package/dist/forms.js.map +1 -1
- package/dist/gravity-letters.d.ts.map +1 -1
- package/dist/gravity-letters.js +13 -5
- package/dist/gravity-letters.js.map +1 -1
- package/dist/grid-reveal.d.ts.map +1 -1
- package/dist/grid-reveal.js +10 -2
- package/dist/grid-reveal.js.map +1 -1
- package/dist/heading.d.ts +1 -7
- package/dist/heading.d.ts.map +1 -1
- package/dist/heading.js +1 -4
- package/dist/heading.js.map +1 -1
- package/dist/image-viewer.d.ts.map +1 -1
- package/dist/image-viewer.js +2 -1
- package/dist/image-viewer.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/inline-confirm.d.ts.map +1 -1
- package/dist/inline-confirm.js +5 -1
- package/dist/inline-confirm.js.map +1 -1
- package/dist/inputs.d.ts +4 -71
- package/dist/inputs.d.ts.map +1 -1
- package/dist/inputs.js +52 -67
- package/dist/inputs.js.map +1 -1
- package/dist/internal/accessible-focus.d.ts +3 -0
- package/dist/internal/accessible-focus.d.ts.map +1 -0
- package/dist/internal/accessible-focus.js +15 -0
- package/dist/internal/accessible-focus.js.map +1 -0
- package/dist/internal/diagnostics.d.ts +7 -0
- package/dist/internal/diagnostics.d.ts.map +1 -0
- package/dist/internal/diagnostics.js +20 -0
- package/dist/internal/diagnostics.js.map +1 -0
- package/dist/internal/document-resource.d.ts.map +1 -1
- package/dist/internal/document-resource.js +2 -2
- package/dist/internal/document-resource.js.map +1 -1
- package/dist/internal/recipe-button.js +1 -1
- package/dist/internal/recipe-button.js.map +1 -1
- package/dist/internal/spinner.d.ts +1 -7
- package/dist/internal/spinner.d.ts.map +1 -1
- package/dist/internal/spinner.js +2 -4
- package/dist/internal/spinner.js.map +1 -1
- package/dist/masonry.d.ts.map +1 -1
- package/dist/masonry.js +2 -1
- package/dist/masonry.js.map +1 -1
- package/dist/mentions.d.ts +1 -7
- package/dist/mentions.d.ts.map +1 -1
- package/dist/mentions.js +11 -7
- package/dist/mentions.js.map +1 -1
- package/dist/navigation.d.ts +4 -74
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +86 -45
- package/dist/navigation.js.map +1 -1
- package/dist/number-field.d.ts +1 -21
- package/dist/number-field.d.ts.map +1 -1
- package/dist/number-field.js +6 -5
- package/dist/number-field.js.map +1 -1
- package/dist/overlays.d.ts +7 -16
- package/dist/overlays.d.ts.map +1 -1
- package/dist/overlays.js +220 -213
- package/dist/overlays.js.map +1 -1
- package/dist/primitives.d.ts +3 -18
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +8 -10
- package/dist/primitives.js.map +1 -1
- package/dist/provider-button.d.ts +1 -7
- package/dist/provider-button.d.ts.map +1 -1
- package/dist/provider-button.js +1 -4
- package/dist/provider-button.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +9 -1
- package/dist/provider.js.map +1 -1
- package/dist/saved-items.d.ts.map +1 -1
- package/dist/saved-items.js +6 -1
- package/dist/saved-items.js.map +1 -1
- package/dist/screen-flows.d.ts +1 -2
- package/dist/screen-flows.d.ts.map +1 -1
- package/dist/screen-flows.js +60 -16
- package/dist/screen-flows.js.map +1 -1
- package/dist/screens.d.ts +1 -1
- package/dist/screens.d.ts.map +1 -1
- package/dist/screens.js +32 -15
- package/dist/screens.js.map +1 -1
- package/dist/sheet-gesture.d.ts.map +1 -1
- package/dist/sheet-gesture.js +6 -3
- package/dist/sheet-gesture.js.map +1 -1
- package/dist/slider.d.ts +1 -21
- package/dist/slider.d.ts.map +1 -1
- package/dist/slider.js +3 -5
- package/dist/slider.js.map +1 -1
- package/dist/sortable.d.ts.map +1 -1
- package/dist/sortable.js +2 -1
- package/dist/sortable.js.map +1 -1
- package/dist/status-text.d.ts +17 -0
- package/dist/status-text.d.ts.map +1 -0
- package/dist/status-text.js +18 -0
- package/dist/status-text.js.map +1 -0
- package/dist/steps.d.ts +1 -7
- package/dist/steps.d.ts.map +1 -1
- package/dist/steps.js +2 -4
- package/dist/steps.js.map +1 -1
- package/dist/swipe-actions.d.ts.map +1 -1
- package/dist/swipe-actions.js +13 -2
- package/dist/swipe-actions.js.map +1 -1
- package/dist/tags-input.d.ts +1 -7
- package/dist/tags-input.d.ts.map +1 -1
- package/dist/tags-input.js +2 -4
- package/dist/tags-input.js.map +1 -1
- package/dist/toggle-group.d.ts +1 -7
- package/dist/toggle-group.d.ts.map +1 -1
- package/dist/toggle-group.js +10 -5
- package/dist/toggle-group.js.map +1 -1
- package/dist/top.d.ts +1 -7
- package/dist/top.d.ts.map +1 -1
- package/dist/top.js +1 -4
- package/dist/top.js.map +1 -1
- package/dist/transfer-list.d.ts +2 -8
- package/dist/transfer-list.d.ts.map +1 -1
- package/dist/transfer-list.js +30 -11
- package/dist/transfer-list.js.map +1 -1
- package/dist/upload-item.d.ts +1 -7
- package/dist/upload-item.d.ts.map +1 -1
- package/dist/upload-item.js +2 -4
- package/dist/upload-item.js.map +1 -1
- package/dist/virtual-list.d.ts.map +1 -1
- package/dist/virtual-list.js +2 -1
- package/dist/virtual-list.js.map +1 -1
- package/docs/liquid-toast.md +20 -0
- package/package.json +17 -4
- package/dist/internal/deprecated-style.d.ts +0 -8
- package/dist/internal/deprecated-style.d.ts.map +0 -1
- package/dist/internal/deprecated-style.js +0 -34
- package/dist/internal/deprecated-style.js.map +0 -1
package/dist/tags-input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags-input.js","sourceRoot":"","sources":["../src/tags-input.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,eAAe,GAIhB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"tags-input.js","sourceRoot":"","sources":["../src/tags-input.tsx"],"names":[],"mappings":"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"}
|
package/dist/toggle-group.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type ToggleGroupDescriptor, type ToggleGroupSize } from "@hjmds/design-contracts/components/toggle-group";
|
|
2
|
-
import { type StyleProp, type ViewStyle } from "react-native";
|
|
3
2
|
import type { HjmCompositionStyleProp } from "./composition-style.js";
|
|
4
3
|
export type ToggleGroupProps<Id extends string = string> = Readonly<{
|
|
5
4
|
descriptor: ToggleGroupDescriptor<Id>;
|
|
@@ -9,11 +8,6 @@ export type ToggleGroupProps<Id extends string = string> = Readonly<{
|
|
|
9
8
|
size?: ToggleGroupSize;
|
|
10
9
|
/** Canonical layout-only placement. Controlled visual keys are excluded. */
|
|
11
10
|
layoutStyle?: HjmCompositionStyleProp;
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated Raw visual style bypasses the HJM recipe. Use `layoutStyle` for placement;
|
|
14
|
-
* `toggleGroupRecipe` (`size`) owns appearance. Removed in the next major (consumer-policy.md §3.1).
|
|
15
|
-
*/
|
|
16
|
-
style?: StyleProp<ViewStyle>;
|
|
17
11
|
}>;
|
|
18
|
-
export declare function ToggleGroup<Id extends string = string>({ descriptor, pressedIds: controlledPressed, defaultPressedIds, onPressedIdsChange, size, layoutStyle,
|
|
12
|
+
export declare function ToggleGroup<Id extends string = string>({ descriptor, pressedIds: controlledPressed, defaultPressedIds, onPressedIdsChange, size, layoutStyle, }: ToggleGroupProps<Id>): import("react").JSX.Element;
|
|
19
13
|
//# sourceMappingURL=toggle-group.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../src/toggle-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACrB,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../src/toggle-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACrB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,MAAM,MAAM,gBAAgB,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAClE,UAAU,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,iBAAiB,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACpD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAIH,wBAAgB,WAAW,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EACtD,UAAU,EACV,UAAU,EAAE,iBAAiB,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,IAAsC,EACtC,WAAW,GACZ,EAAE,gBAAgB,CAAC,EAAE,CAAC,+BA8DtB"}
|
package/dist/toggle-group.js
CHANGED
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { reconcileToggleGroupSelection, toggleGroupRecipe, toggleGroupSelection, validateToggleGroupDescriptor, } from "@hjmds/design-contracts/components/toggle-group";
|
|
3
3
|
import { resolveColorReference } from "@hjmds/design-contracts/color-references";
|
|
4
|
-
import { useMemo, useState } from "react";
|
|
4
|
+
import { useEffect, useMemo, useState } from "react";
|
|
5
5
|
import { Pressable, View } from "react-native";
|
|
6
6
|
import { Text } from "./primitives.js";
|
|
7
|
-
import { warnDeprecatedStyleProps } from "./internal/deprecated-style.js";
|
|
8
7
|
import { useHjmNativeTheme } from "./provider.js";
|
|
9
8
|
// UI control labels keep the ui font even when their metric variant is body; content still uses reading.
|
|
10
|
-
export function ToggleGroup({ descriptor, pressedIds: controlledPressed, defaultPressedIds, onPressedIdsChange, size = toggleGroupRecipe.defaults.size, layoutStyle,
|
|
11
|
-
warnDeprecatedStyleProps("ToggleGroup", { style }, "layoutStyle for placement; toggleGroupRecipe (size) owns appearance");
|
|
9
|
+
export function ToggleGroup({ descriptor, pressedIds: controlledPressed, defaultPressedIds, onPressedIdsChange, size = toggleGroupRecipe.defaults.size, layoutStyle, }) {
|
|
12
10
|
validateToggleGroupDescriptor(descriptor);
|
|
13
11
|
const theme = useHjmNativeTheme();
|
|
14
12
|
const [internal, setInternal] = useState(defaultPressedIds ?? new Set());
|
|
15
13
|
const raw = controlledPressed ?? internal;
|
|
16
14
|
const pressed = useMemo(() => reconcileToggleGroupSelection(descriptor, raw), [descriptor, raw]);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
// Persist pruning so a removed toggle does not revive when the item returns.
|
|
17
|
+
if (controlledPressed === undefined && pressed !== internal) {
|
|
18
|
+
setInternal(pressed);
|
|
19
|
+
onPressedIdsChange?.(pressed);
|
|
20
|
+
}
|
|
21
|
+
}, [controlledPressed, internal, onPressedIdsChange, pressed]);
|
|
17
22
|
const metrics = toggleGroupRecipe.sizes[size];
|
|
18
23
|
const commit = (next) => {
|
|
19
24
|
if (controlledPressed === undefined)
|
|
20
25
|
setInternal(next);
|
|
21
26
|
onPressedIdsChange?.(next);
|
|
22
27
|
};
|
|
23
|
-
return (_jsx(View, { accessibilityLabel: descriptor.accessibilityLabel, style: [{ flexDirection: "row", flexWrap: "wrap", gap: toggleGroupRecipe.gap },
|
|
28
|
+
return (_jsx(View, { accessibilityLabel: descriptor.accessibilityLabel, style: [{ flexDirection: "row", flexWrap: "wrap", gap: toggleGroupRecipe.gap }, layoutStyle], children: descriptor.items.map((item) => {
|
|
24
29
|
const on = pressed.has(item.id);
|
|
25
30
|
const tone = on ? toggleGroupRecipe.pressed : toggleGroupRecipe.idle;
|
|
26
31
|
return (_jsx(Pressable, { accessibilityRole: "button",
|
package/dist/toggle-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.js","sourceRoot":"","sources":["../src/toggle-group.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,GAG9B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"toggle-group.js","sourceRoot":"","sources":["../src/toggle-group.tsx"],"names":[],"mappings":"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"}
|
package/dist/top.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type TopDescriptor } from "@hjmds/design-contracts/components/top";
|
|
2
2
|
import type { ReactNode } from "react";
|
|
3
|
-
import { type StyleProp, type ViewStyle } from "react-native";
|
|
4
3
|
import type { HjmCompositionStyleProp } from "./composition-style.js";
|
|
5
4
|
export type TopProps = Readonly<{
|
|
6
5
|
descriptor: TopDescriptor;
|
|
@@ -8,11 +7,6 @@ export type TopProps = Readonly<{
|
|
|
8
7
|
trailing?: ReactNode;
|
|
9
8
|
/** Canonical layout-only placement. Controlled visual keys are excluded. */
|
|
10
9
|
layoutStyle?: HjmCompositionStyleProp;
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated Raw visual style bypasses the HJM recipe. Use `layoutStyle` for placement;
|
|
13
|
-
* `topRecipe` owns appearance. Removed in the next major (consumer-policy.md §3.1).
|
|
14
|
-
*/
|
|
15
|
-
style?: StyleProp<ViewStyle>;
|
|
16
10
|
}>;
|
|
17
|
-
export declare function Top({ descriptor, trailing, layoutStyle
|
|
11
|
+
export declare function Top({ descriptor, trailing, layoutStyle }: TopProps): import("react").JSX.Element;
|
|
18
12
|
//# sourceMappingURL=top.d.ts.map
|
package/dist/top.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"top.d.ts","sourceRoot":"","sources":["../src/top.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"top.d.ts","sourceRoot":"","sources":["../src/top.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,aAAa,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAEH,wBAAgB,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,QAAQ,+BA8DlE"}
|
package/dist/top.js
CHANGED
|
@@ -3,10 +3,8 @@ import { topDefaults, topRecipe, validateTopDescriptor, } from "@hjmds/design-co
|
|
|
3
3
|
import { resolveColorReference } from "@hjmds/design-contracts/color-references";
|
|
4
4
|
import { View } from "react-native";
|
|
5
5
|
import { Text } from "./primitives.js";
|
|
6
|
-
import { warnDeprecatedStyleProps } from "./internal/deprecated-style.js";
|
|
7
6
|
import { useHjmNativeTheme } from "./provider.js";
|
|
8
|
-
export function Top({ descriptor, trailing, layoutStyle
|
|
9
|
-
warnDeprecatedStyleProps("Top", { style }, "layoutStyle for placement; topRecipe owns appearance");
|
|
7
|
+
export function Top({ descriptor, trailing, layoutStyle }) {
|
|
10
8
|
validateTopDescriptor(descriptor);
|
|
11
9
|
const theme = useHjmNativeTheme();
|
|
12
10
|
const size = descriptor.size ?? topDefaults.size;
|
|
@@ -20,7 +18,6 @@ export function Top({ descriptor, trailing, layoutStyle, style }) {
|
|
|
20
18
|
const stack = theme.environment.textScale >= 1.6;
|
|
21
19
|
return (_jsxs(View, { style: [
|
|
22
20
|
{ gap: topRecipe.gap, paddingBottom: metrics.paddingBottom, paddingTop: metrics.paddingTop },
|
|
23
|
-
style,
|
|
24
21
|
layoutStyle,
|
|
25
22
|
], children: [descriptor.eyebrow ? (_jsx(Text, { style: { color: resolveColorReference(topRecipe.eyebrow.color, theme.palette) }, variant: topRecipe.eyebrow.textVariant, children: descriptor.eyebrow })) : null, _jsxs(View, { style: {
|
|
26
23
|
alignItems: stack ? "stretch" : "center",
|
package/dist/top.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"top.js","sourceRoot":"","sources":["../src/top.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,qBAAqB,GAEtB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"top.js","sourceRoot":"","sources":["../src/top.tsx"],"names":[],"mappings":"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"}
|
package/dist/transfer-list.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type TransferListMoveDirection } from "@hjmds/design-contracts/components/transfer-list";
|
|
2
|
-
import type
|
|
3
|
-
import { type StyleProp, type ViewStyle } from "react-native";
|
|
2
|
+
import { type SelectItemDescriptor } from "@hjmds/design-contracts/behaviors";
|
|
4
3
|
import type { HjmCompositionStyleProp } from "./composition-style.js";
|
|
5
4
|
export type TransferListLabels = Readonly<{
|
|
6
5
|
source: string;
|
|
@@ -20,11 +19,6 @@ export type TransferListProps<Id extends string = string> = Readonly<{
|
|
|
20
19
|
onMove?: (movedIds: readonly Id[], direction: TransferListMoveDirection) => void;
|
|
21
20
|
/** Canonical layout-only placement. Controlled visual keys are excluded. */
|
|
22
21
|
layoutStyle?: HjmCompositionStyleProp;
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated Raw visual style bypasses the HJM recipe. Use `layoutStyle` for placement;
|
|
25
|
-
* the transfer list renderer owns appearance. Removed in the next major (consumer-policy.md §3.1).
|
|
26
|
-
*/
|
|
27
|
-
style?: StyleProp<ViewStyle>;
|
|
28
22
|
}>;
|
|
29
|
-
export declare function TransferList<Id extends string = string>({ items, labels, targetKeys: controlledTargetKeys, defaultTargetKeys, onTargetKeysChange, onMove, layoutStyle,
|
|
23
|
+
export declare function TransferList<Id extends string = string>({ items, labels, targetKeys: controlledTargetKeys, defaultTargetKeys, onTargetKeysChange, onMove, layoutStyle, }: TransferListProps<Id>): import("react").JSX.Element;
|
|
30
24
|
//# sourceMappingURL=transfer-list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-list.d.ts","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"transfer-list.d.ts","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,yBAAyB,EAG/B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAO1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IACnE,KAAK,EAAE,SAAS,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,iBAAiB,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACrD,oFAAoF;IACpF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACjF,4EAA4E;IAC5E,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AASH,wBAAgB,YAAY,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EACvD,KAAK,EACL,MAAM,EACN,UAAU,EAAE,oBAAoB,EAChC,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,WAAW,GACZ,EAAE,iBAAiB,CAAC,EAAE,CAAC,+BAkHvB"}
|
package/dist/transfer-list.js
CHANGED
|
@@ -1,37 +1,56 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { transferListRecipe, moveTransferListSelection, reconcileTransferListSelection, resolveTransferListPanels, resolveTransferListSelectAllState, toggleTransferListSelectAll, toggleTransferListSelection, } from "@hjmds/design-contracts/components/transfer-list";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { transferListRecipe, moveTransferListSelection, reconcileTransferListSelection, resolveTransferListPanels, resolveTransferListSelectAllState, toggleTransferListSelectAll, toggleTransferListSelection, validateTransferListDescriptor, } from "@hjmds/design-contracts/components/transfer-list";
|
|
3
|
+
import { reconcileCheckboxSelection } from "@hjmds/design-contracts/behaviors";
|
|
4
|
+
import { control, spacing } from "@hjmds/design-contracts/foundations";
|
|
5
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
5
6
|
import { Pressable, ScrollView, View } from "react-native";
|
|
6
7
|
import { Button } from "./actions.js";
|
|
7
8
|
import { Text } from "./primitives.js";
|
|
8
9
|
import { mixedCheckboxState, useControllableState } from "./internal/state.js";
|
|
9
|
-
import { warnDeprecatedStyleProps } from "./internal/deprecated-style.js";
|
|
10
10
|
import { useHjmNativeTheme } from "./provider.js";
|
|
11
11
|
const emptySelection = () => ({
|
|
12
12
|
source: new Set(),
|
|
13
13
|
target: new Set(),
|
|
14
14
|
});
|
|
15
15
|
// UI control labels keep the ui font even when their metric variant is body; content still uses reading.
|
|
16
|
-
export function TransferList({ items, labels, targetKeys: controlledTargetKeys, defaultTargetKeys, onTargetKeysChange, onMove, layoutStyle,
|
|
17
|
-
warnDeprecatedStyleProps("TransferList", { style }, "layoutStyle for placement; the transfer list renderer owns appearance");
|
|
16
|
+
export function TransferList({ items, labels, targetKeys: controlledTargetKeys, defaultTargetKeys, onTargetKeysChange, onMove, layoutStyle, }) {
|
|
18
17
|
const { colors, designProfile } = useHjmNativeTheme();
|
|
19
18
|
// Panels share the Web md role; preserve the pre-profile frame when no profile is selected.
|
|
20
19
|
const corner = designProfile?.tokens.radius[transferListRecipe.panel.radius] ?? 12;
|
|
21
|
-
const [
|
|
20
|
+
const [storedTargetKeys, setTargetKeys] = useControllableState({
|
|
22
21
|
...(controlledTargetKeys === undefined ? {} : { value: controlledTargetKeys }),
|
|
23
22
|
defaultValue: defaultTargetKeys ?? new Set(),
|
|
24
23
|
...(onTargetKeysChange === undefined ? {} : { onChange: onTargetKeysChange }),
|
|
25
24
|
});
|
|
25
|
+
const validatedInitialTargets = useRef(false);
|
|
26
|
+
if (!validatedInitialTargets.current) {
|
|
27
|
+
validateTransferListDescriptor({ items, targetKeys: storedTargetKeys });
|
|
28
|
+
validatedInitialTargets.current = true;
|
|
29
|
+
}
|
|
30
|
+
const targetKeys = useMemo(() => controlledTargetKeys === undefined
|
|
31
|
+
? reconcileCheckboxSelection(items, storedTargetKeys) : storedTargetKeys, [controlledTargetKeys, items, storedTargetKeys]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (controlledTargetKeys === undefined && targetKeys !== storedTargetKeys)
|
|
34
|
+
setTargetKeys(targetKeys);
|
|
35
|
+
}, [controlledTargetKeys, setTargetKeys, storedTargetKeys, targetKeys]);
|
|
26
36
|
const [rawSelection, setSelection] = useState((emptySelection));
|
|
27
37
|
const descriptor = useMemo(() => ({ items, targetKeys }), [items, targetKeys]);
|
|
28
38
|
// A row that left the list entirely must not keep a pending check mark.
|
|
29
39
|
const selection = useMemo(() => reconcileTransferListSelection(descriptor, rawSelection), [descriptor, rawSelection]);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (selection !== rawSelection)
|
|
42
|
+
setSelection(selection);
|
|
43
|
+
}, [rawSelection, selection]);
|
|
30
44
|
const panels = resolveTransferListPanels(descriptor);
|
|
45
|
+
const canMove = (panel) => panels[panel].some(item => !item.disabled && selection[panel].has(item.id));
|
|
31
46
|
const move = (direction) => {
|
|
32
47
|
const result = moveTransferListSelection(descriptor, selection, direction);
|
|
48
|
+
if (result.movedIds.length === 0)
|
|
49
|
+
return;
|
|
33
50
|
setTargetKeys(result.targetKeys);
|
|
34
|
-
|
|
51
|
+
// Controlled owners may refuse or defer the move; keep checks until the rows actually leave.
|
|
52
|
+
if (controlledTargetKeys === undefined)
|
|
53
|
+
setSelection(result.selection);
|
|
35
54
|
if (result.movedIds.length > 0)
|
|
36
55
|
onMove?.(result.movedIds, direction);
|
|
37
56
|
};
|
|
@@ -42,11 +61,11 @@ export function TransferList({ items, labels, targetKeys: controlledTargetKeys,
|
|
|
42
61
|
// `mixed` is the contract's answer, not a third visual state invented
|
|
43
62
|
// here: some rows checked is neither on nor off.
|
|
44
63
|
// mixedCheckboxState keeps Android from holding a stale ", mixed" suffix.
|
|
45
|
-
accessibilityState: mixedCheckboxState(selectAll), accessibilityLabel: `${panel === "source" ? labels.source : labels.target}, ${labels.selectAll}`, disabled: rows.
|
|
64
|
+
accessibilityState: mixedCheckboxState(selectAll, { disabled: !rows.some(item => !item.disabled) }), accessibilityLabel: `${panel === "source" ? labels.source : labels.target}, ${labels.selectAll}`, disabled: !rows.some(item => !item.disabled), onPress: () => setSelection(toggleTransferListSelectAll(descriptor, selection, panel)), style: { minHeight: control.minTouchTarget, justifyContent: "center" }, children: _jsx(Text, { variant: "label", children: labels.selectAll }) }), _jsx(ScrollView, { accessibilityRole: "list", accessibilityLabel: panel === "source" ? labels.source : labels.target, style: { borderWidth: 1, borderColor: colors.border, borderRadius: corner }, contentContainerStyle: rows.length === 0 ? { flexGrow: 1, justifyContent: "center", alignItems: "center" } : undefined, children: rows.length === 0 ? (_jsx(Text, { tone: "muted", variant: "caption", align: "center", style: { padding: spacing.sm }, children: labels.empty })) : (rows.map((item) => {
|
|
46
65
|
const checked = selection[panel].has(item.id);
|
|
47
|
-
return (_jsx(Pressable, { accessibilityRole: "checkbox", accessibilityLabel: item.label, accessibilityState: { checked, disabled: item.disabled === true }, disabled: item.disabled === true, onPress: () => setSelection(toggleTransferListSelection(descriptor, selection, panel, item.id)), style: { minHeight:
|
|
66
|
+
return (_jsx(Pressable, { accessibilityRole: "checkbox", accessibilityLabel: item.label, accessibilityState: { checked, disabled: item.disabled === true }, disabled: item.disabled === true, onPress: () => setSelection(toggleTransferListSelection(descriptor, selection, panel, item.id)), style: { minHeight: control.minTouchTarget, justifyContent: "center", paddingHorizontal: spacing.sm }, children: _jsxs(Text, { fontRole: "ui", children: [checked ? "✓ " : "", item.label] }) }, item.id));
|
|
48
67
|
})) })] }));
|
|
49
68
|
};
|
|
50
|
-
return (_jsxs(View, { style: [{ gap: spacing.sm },
|
|
69
|
+
return (_jsxs(View, { style: [{ gap: spacing.sm }, layoutStyle], children: [_jsx(Text, { variant: "label", children: labels.source }), renderPanel("source"), _jsxs(View, { style: { flexDirection: "row", gap: spacing.sm, justifyContent: "center" }, children: [_jsx(Button, { tone: "secondary", disabled: !canMove("source"), onPress: () => move("toTarget"), children: labels.toTarget }), _jsx(Button, { tone: "secondary", disabled: !canMove("target"), onPress: () => move("toSource"), children: labels.toSource })] }), _jsx(Text, { variant: "label", children: labels.target }), renderPanel("target")] }));
|
|
51
70
|
}
|
|
52
71
|
//# sourceMappingURL=transfer-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-list.js","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC9B,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,2BAA2B,
|
|
1
|
+
{"version":3,"file":"transfer-list.js","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"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"}
|
package/dist/upload-item.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type UploadItemDescriptor, type UploadItemLabels } from "@hjmds/design-contracts/components/upload-item";
|
|
2
2
|
import type { ReactNode } from "react";
|
|
3
|
-
import { type StyleProp, type ViewStyle } from "react-native";
|
|
4
3
|
import type { HjmCompositionStyleProp } from "./composition-style.js";
|
|
5
4
|
export type UploadItemProps = Readonly<{
|
|
6
5
|
descriptor: UploadItemDescriptor;
|
|
@@ -10,11 +9,6 @@ export type UploadItemProps = Readonly<{
|
|
|
10
9
|
leading?: ReactNode;
|
|
11
10
|
/** Canonical layout-only placement. Controlled visual keys are excluded. */
|
|
12
11
|
layoutStyle?: HjmCompositionStyleProp;
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated Raw visual style bypasses the HJM recipe. Use `layoutStyle` for placement;
|
|
15
|
-
* `uploadItemRecipe` owns appearance. Removed in the next major (consumer-policy.md §3.1).
|
|
16
|
-
*/
|
|
17
|
-
style?: StyleProp<ViewStyle>;
|
|
18
12
|
}>;
|
|
19
|
-
export declare function UploadItem({ descriptor, labels, onCancel, onRetry, leading, layoutStyle
|
|
13
|
+
export declare function UploadItem({ descriptor, labels, onCancel, onRetry, leading, layoutStyle }: UploadItemProps): import("react").JSX.Element;
|
|
20
14
|
//# sourceMappingURL=upload-item.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-item.d.ts","sourceRoot":"","sources":["../src/upload-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"upload-item.d.ts","sourceRoot":"","sources":["../src/upload-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,UAAU,EAAE,oBAAoB,CAAC;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAEH,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,eAAe,+BA6C1G"}
|
package/dist/upload-item.js
CHANGED
|
@@ -4,10 +4,8 @@ import { Pressable, View } from "react-native";
|
|
|
4
4
|
import { Progress } from "./feedback.js";
|
|
5
5
|
import { minimumTargetStyle } from "./internal/styles.js";
|
|
6
6
|
import { Text } from "./primitives.js";
|
|
7
|
-
import { warnDeprecatedStyleProps } from "./internal/deprecated-style.js";
|
|
8
7
|
import { useHjmNativeTheme } from "./provider.js";
|
|
9
|
-
export function UploadItem({ descriptor, labels, onCancel, onRetry, leading, layoutStyle
|
|
10
|
-
warnDeprecatedStyleProps("UploadItem", { style }, "layoutStyle for placement; uploadItemRecipe owns appearance");
|
|
8
|
+
export function UploadItem({ descriptor, labels, onCancel, onRetry, leading, layoutStyle }) {
|
|
11
9
|
const { colors, environment, designProfile } = useHjmNativeTheme();
|
|
12
10
|
// The row md role follows the nearest profile; retain the pre-profile 12px frame.
|
|
13
11
|
const corner = designProfile?.tokens.radius[uploadItemRecipe.row.radius] ?? 12;
|
|
@@ -29,6 +27,6 @@ export function UploadItem({ descriptor, labels, onCancel, onRetry, leading, lay
|
|
|
29
27
|
// element, VoiceOver and TalkBack swallowed Cancel/Retry into it and the
|
|
30
28
|
// action was unreachable (2026-09-30 audit). The file text is one grouped
|
|
31
29
|
// element and the action is a separate button, as the contract's slots list.
|
|
32
|
-
_jsxs(View, { style: [{ alignItems: "center", borderColor: colors.border, borderRadius: corner, borderWidth: 1, direction: environment.direction, flexDirection: "row", gap: uploadItemRecipe.row.gap, minHeight: uploadItemRecipe.row.minHeight, paddingHorizontal: uploadItemRecipe.row.paddingHorizontal, paddingVertical: uploadItemRecipe.row.paddingVertical },
|
|
30
|
+
_jsxs(View, { style: [{ alignItems: "center", borderColor: colors.border, borderRadius: corner, borderWidth: 1, direction: environment.direction, flexDirection: "row", gap: uploadItemRecipe.row.gap, minHeight: uploadItemRecipe.row.minHeight, paddingHorizontal: uploadItemRecipe.row.paddingHorizontal, paddingVertical: uploadItemRecipe.row.paddingVertical }, layoutStyle], children: [leading === undefined ? null : _jsx(View, { accessible: false, importantForAccessibility: "no-hide-descendants", children: leading }), _jsxs(View, { accessibilityLabel: announcement.label, accessibilityState: { busy: descriptor.state.status === "uploading" }, accessibilityValue: { text: announcement.description }, accessible: true, style: { flex: 1, gap: 2, minWidth: 0 }, children: [_jsx(Text, { children: descriptor.name }), descriptor.sizeLabel === undefined ? null : _jsx(Text, { tone: "muted", variant: "label", children: descriptor.sizeLabel }), _jsx(Text, { accessibilityLiveRegion: "polite", style: { color: statusColor }, variant: "label", children: announcement.description }), descriptor.state.status === "uploading" ? _jsx(Progress, { accessibilityLabel: announcement.description, ...(descriptor.state.progress === null ? {} : { value: descriptor.state.progress * 100 }), valueText: announcement.description }) : null] }), action === null ? null : (_jsx(Pressable, { accessibilityLabel: action === "cancel" ? labels.cancel : labels.retry, accessibilityRole: "button", onPress: () => action === "cancel" ? onCancel?.(descriptor.id) : onRetry?.(descriptor.id), style: ({ pressed }) => [minimumTargetStyle, { alignItems: "center", justifyContent: "center", opacity: pressed ? 0.72 : 1 }], children: _jsx(Text, { emphasis: "strong", style: { color: action === "cancel" ? colors.danger : colors.contentBrand }, variant: "label", children: action === "cancel" ? labels.cancel : labels.retry }) }))] }));
|
|
33
31
|
}
|
|
34
32
|
//# sourceMappingURL=upload-item.js.map
|
package/dist/upload-item.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-item.js","sourceRoot":"","sources":["../src/upload-item.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,gBAAgB,GAGjB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"upload-item.js","sourceRoot":"","sources":["../src/upload-item.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-list.d.ts","sourceRoot":"","sources":["../src/virtual-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAAC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACxO,gHAAgH;AAChH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAY,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"virtual-list.d.ts","sourceRoot":"","sources":["../src/virtual-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAAC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACxO,gHAAgH;AAChH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAY,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,+BAUrI"}
|
package/dist/virtual-list.js
CHANGED
|
@@ -7,6 +7,7 @@ export function VirtualList({ items, keyExtractor, renderItem, rowHeight, height
|
|
|
7
7
|
resolveVirtualWindow(items.length, rowHeight, height, 0, overscan);
|
|
8
8
|
// ScrollView defaults to flexGrow: 1; disable it so the declared viewport
|
|
9
9
|
// remains fixed inside a tall host instead of expanding beyond `height`.
|
|
10
|
-
|
|
10
|
+
// Empty guidance occupies the declared viewport, not a zero-height first row.
|
|
11
|
+
return _jsx(FlatList, { data: items, accessibilityLabel: label, keyExtractor: keyExtractor, style: { height, flexGrow: 0, flexShrink: 0 }, getItemLayout: (_data, index) => ({ length: rowHeight, offset: index * rowHeight, index }), contentContainerStyle: items.length === 0 ? { flexGrow: 1, justifyContent: "center", alignItems: "center" } : undefined, initialNumToRender: Math.ceil(height / rowHeight) + overscan, ListEmptyComponent: _jsx(View, { children: empty }), renderItem: ({ item, index }) => _jsx(View, { style: { height: rowHeight }, children: renderItem(item, index) }) });
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=virtual-list.js.map
|
package/dist/virtual-list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-list.js","sourceRoot":"","sources":["../src/virtual-list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAEzG,gHAAgH;AAChH,MAAM,UAAU,WAAW,CAAI,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAuB;IACpI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrH,0EAA0E;IAC1E,yEAAyE;IACzE,OAAO,KAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EACjF,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,EACzI,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,QAAQ,EAAE,kBAAkB,EAAE,KAAC,IAAI,cAAE,KAAK,GAAQ,EACtG,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAQ,GAAI,CAAC;AAC9G,CAAC"}
|
|
1
|
+
{"version":3,"file":"virtual-list.js","sourceRoot":"","sources":["../src/virtual-list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAEzG,gHAAgH;AAChH,MAAM,UAAU,WAAW,CAAI,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAuB;IACpI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrH,0EAA0E;IAC1E,yEAAyE;IACzE,8EAA8E;IAC9E,OAAO,KAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EACjF,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,EACzI,qBAAqB,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,EACvH,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,QAAQ,EAAE,kBAAkB,EAAE,KAAC,IAAI,cAAE,KAAK,GAAQ,EACtG,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAQ,GAAI,CAAC;AAC9G,CAAC"}
|
package/docs/liquid-toast.md
CHANGED
|
@@ -166,3 +166,23 @@ the nearest profile. Ordinary Toast previews retain their timeout. Light/dark mo
|
|
|
166
166
|
covers no profile, all 11 presets (including neutral), and a custom upward shadow; these checks do
|
|
167
167
|
not establish Native rasterization, touch, spoken accessibility or frame performance. See the
|
|
168
168
|
[current QA record](../../../docs/qa/2026-10-07-design-profile-research.md).
|
|
169
|
+
|
|
170
|
+
## Panel card · 2026-10-10 (unpublished, after 1.17.2)
|
|
171
|
+
|
|
172
|
+
The user asked for one panel everywhere ("the panel becomes the toast"), including the liquid card. The settled
|
|
173
|
+
card now draws the same columns as the ordinary Toast: media (44) or tone badge (32) · title/description/progress/
|
|
174
|
+
action · close (44). The two-row banner, the title-row glyph and the full-width action footer of the 2026-10-02
|
|
175
|
+
redesign are retired; the action is the start-aligned tinted pill under the copy. The liquid chrome (transparent RN
|
|
176
|
+
body, Skia fill/outline, raised shadow) and the circular origin, neck, timing and fallbacks are unchanged. Without a
|
|
177
|
+
profile the settled corner is now 24 (`radius.xl`, `liquidToastRecipe.radius`); with one, the profile's `radius.xl`.
|
|
178
|
+
`buildLiquidToastGeometry`'s default fourth argument follows (24). Device visual acceptance is still pending.
|
|
179
|
+
Contract: [Toast panel](../../design-contracts/docs/toast.md#패널-toast--미게시1172-이후).
|
|
180
|
+
|
|
181
|
+
## Whole-card navigation (unreleased)
|
|
182
|
+
|
|
183
|
+
Use `press: { accessibilityLabel: t('reply.open'), onPress: openReply }` on the existing descriptor.
|
|
184
|
+
The card's text, media and padding activate it; action and close remain independent buttons.
|
|
185
|
+
An upward swipe cancels the tap. The shared session executes a visible revision once and begins
|
|
186
|
+
exit with reason `press` after the callback; an update inside that callback keeps its new revision.
|
|
187
|
+
Pressable notices persist unless `durationMs` is explicit, including standard fallback and Web.
|
|
188
|
+
See the [Toast contract](../../design-contracts/docs/toast.md) for source analysis and verification limits.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hjmds/react-native",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"description": "Expo-independent React Native renderers for HJM design contracts.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -22,6 +22,12 @@
|
|
|
22
22
|
"import": "./dist/index.js",
|
|
23
23
|
"default": "./dist/index.js"
|
|
24
24
|
},
|
|
25
|
+
"./status-text": {
|
|
26
|
+
"types": "./dist/status-text.d.ts",
|
|
27
|
+
"react-native": "./dist/status-text.js",
|
|
28
|
+
"import": "./dist/status-text.js",
|
|
29
|
+
"default": "./dist/status-text.js"
|
|
30
|
+
},
|
|
25
31
|
"./provider": {
|
|
26
32
|
"types": "./dist/provider.d.ts",
|
|
27
33
|
"react-native": "./dist/provider.js",
|
|
@@ -519,6 +525,12 @@
|
|
|
519
525
|
"react-native": "./dist/collection-rail.js",
|
|
520
526
|
"import": "./dist/collection-rail.js",
|
|
521
527
|
"default": "./dist/collection-rail.js"
|
|
528
|
+
},
|
|
529
|
+
"./activity-chip": {
|
|
530
|
+
"types": "./dist/activity-chip.d.ts",
|
|
531
|
+
"react-native": "./dist/activity-chip.js",
|
|
532
|
+
"import": "./dist/activity-chip.js",
|
|
533
|
+
"default": "./dist/activity-chip.js"
|
|
522
534
|
}
|
|
523
535
|
},
|
|
524
536
|
"files": [
|
|
@@ -530,7 +542,7 @@
|
|
|
530
542
|
],
|
|
531
543
|
"peerDependencies": {
|
|
532
544
|
"@gorhom/bottom-sheet": "5.2.14",
|
|
533
|
-
"@hjmds/design-contracts": ">=1.
|
|
545
|
+
"@hjmds/design-contracts": ">=1.19.0 <1.20.0",
|
|
534
546
|
"@react-native-menu/menu": "1.2.2",
|
|
535
547
|
"@shopify/react-native-skia": "^2.6.2",
|
|
536
548
|
"react": ">=19",
|
|
@@ -589,7 +601,7 @@
|
|
|
589
601
|
"blobatar": "2.7.0",
|
|
590
602
|
"@blobatar/react-native": "2.7.0",
|
|
591
603
|
"lucide-react-native": "1.49.0",
|
|
592
|
-
"@hjmds/design-contracts": "1.
|
|
604
|
+
"@hjmds/design-contracts": "1.19.0"
|
|
593
605
|
},
|
|
594
606
|
"engines": {
|
|
595
607
|
"node": ">=20"
|
|
@@ -667,6 +679,7 @@
|
|
|
667
679
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
668
680
|
"test": "vitest run",
|
|
669
681
|
"bundle:check": "pnpm build && node scripts/check-metro-bundle.mjs",
|
|
670
|
-
"check": "pnpm typecheck && pnpm test && pnpm bundle:check"
|
|
682
|
+
"check": "pnpm typecheck && pnpm test && pnpm bundle:check",
|
|
683
|
+
"bundle:check:built": "node scripts/check-metro-bundle.mjs"
|
|
671
684
|
}
|
|
672
685
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare function isDevelopment(): boolean;
|
|
2
|
-
/** Development-only console.warn deduplicated by key for the lifetime of the JS runtime. */
|
|
3
|
-
export declare function warnOnce(key: string, message: string): void;
|
|
4
|
-
/** Warns once per component/prop pair for each deprecated visual style prop the caller passed. */
|
|
5
|
-
export declare function warnDeprecatedStyleProps(component: string, props: Readonly<Record<string, unknown>>, replacement: string): void;
|
|
6
|
-
/** Test seam: the once-per-runtime memo would otherwise hide warnings across test cases. */
|
|
7
|
-
export declare function resetDeprecatedStyleWarningsForTest(): void;
|
|
8
|
-
//# sourceMappingURL=deprecated-style.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecated-style.d.ts","sourceRoot":"","sources":["../../src/internal/deprecated-style.ts"],"names":[],"mappings":"AAQA,wBAAgB,aAAa,IAAI,OAAO,CAKvC;AAED,4FAA4F;AAC5F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3D;AAED,kGAAkG;AAClG,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,WAAW,EAAE,MAAM,GAClB,IAAI,CAUN;AAED,4FAA4F;AAC5F,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// Raw visual style props that survived 1.11 keep working (removing or throwing like Button would
|
|
2
|
-
// break 1.x callers in a minor) and warn once per component/prop until the next major. Per-render
|
|
3
|
-
// warnings were rejected because list rows flood Metro. See migration-native-legacy-removal.md.
|
|
4
|
-
const warned = new Set();
|
|
5
|
-
export function isDevelopment() {
|
|
6
|
-
const globals = globalThis;
|
|
7
|
-
// React Native defines __DEV__; Node tests fall back to NODE_ENV.
|
|
8
|
-
if (typeof globals.__DEV__ === "boolean")
|
|
9
|
-
return globals.__DEV__;
|
|
10
|
-
return globals.process?.env?.NODE_ENV !== "production";
|
|
11
|
-
}
|
|
12
|
-
/** Development-only console.warn deduplicated by key for the lifetime of the JS runtime. */
|
|
13
|
-
export function warnOnce(key, message) {
|
|
14
|
-
if (!isDevelopment() || warned.has(key))
|
|
15
|
-
return;
|
|
16
|
-
warned.add(key);
|
|
17
|
-
console.warn(`[@hjmds/react-native] ${message}`);
|
|
18
|
-
}
|
|
19
|
-
/** Warns once per component/prop pair for each deprecated visual style prop the caller passed. */
|
|
20
|
-
export function warnDeprecatedStyleProps(component, props, replacement) {
|
|
21
|
-
if (!isDevelopment())
|
|
22
|
-
return;
|
|
23
|
-
for (const [name, value] of Object.entries(props)) {
|
|
24
|
-
if (value === undefined || value === null || value === false)
|
|
25
|
-
continue;
|
|
26
|
-
warnOnce(`${component}.${name}`, `${component}.${name} is deprecated and will be removed in the next major. ` +
|
|
27
|
-
`Use ${replacement}. See docs/migration-native-legacy-removal.md.`);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/** Test seam: the once-per-runtime memo would otherwise hide warnings across test cases. */
|
|
31
|
-
export function resetDeprecatedStyleWarningsForTest() {
|
|
32
|
-
warned.clear();
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=deprecated-style.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecated-style.js","sourceRoot":"","sources":["../../src/internal/deprecated-style.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,kGAAkG;AAClG,gGAAgG;AAIhG,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,UAAwB,CAAC;IACzC,kEAAkE;IAClE,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IACjE,OAAO,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC;AACzD,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAe;IACnD,IAAI,CAAC,aAAa,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAChD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,KAAwC,EACxC,WAAmB;IAEnB,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;YAAE,SAAS;QACvE,QAAQ,CACN,GAAG,SAAS,IAAI,IAAI,EAAE,EACtB,GAAG,SAAS,IAAI,IAAI,wDAAwD;YAC1E,OAAO,WAAW,gDAAgD,CACrE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,mCAAmC;IACjD,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
|