@hjmds/react-native 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +12 -0
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +4 -2
  4. package/dist/actions.js.map +1 -1
  5. package/dist/agreement.d.ts +18 -0
  6. package/dist/agreement.d.ts.map +1 -0
  7. package/dist/agreement.js +51 -0
  8. package/dist/agreement.js.map +1 -0
  9. package/dist/asset.d.ts +27 -0
  10. package/dist/asset.d.ts.map +1 -0
  11. package/dist/asset.js +40 -0
  12. package/dist/asset.js.map +1 -0
  13. package/dist/bottom-info.d.ts +9 -0
  14. package/dist/bottom-info.d.ts.map +1 -0
  15. package/dist/bottom-info.js +16 -0
  16. package/dist/bottom-info.js.map +1 -0
  17. package/dist/calendar.d.ts +21 -0
  18. package/dist/calendar.d.ts.map +1 -0
  19. package/dist/calendar.js +63 -0
  20. package/dist/calendar.js.map +1 -0
  21. package/dist/carousel.d.ts +21 -0
  22. package/dist/carousel.d.ts.map +1 -0
  23. package/dist/carousel.js +67 -0
  24. package/dist/carousel.js.map +1 -0
  25. package/dist/collapsible.d.ts +12 -0
  26. package/dist/collapsible.d.ts.map +1 -0
  27. package/dist/collapsible.js +18 -0
  28. package/dist/collapsible.js.map +1 -0
  29. package/dist/date-picker.d.ts.map +1 -1
  30. package/dist/date-picker.js +12 -5
  31. package/dist/date-picker.js.map +1 -1
  32. package/dist/date-range.d.ts +23 -0
  33. package/dist/date-range.d.ts.map +1 -0
  34. package/dist/date-range.js +45 -0
  35. package/dist/date-range.js.map +1 -0
  36. package/dist/evidence.d.ts +226 -1
  37. package/dist/evidence.d.ts.map +1 -1
  38. package/dist/evidence.js +16 -1
  39. package/dist/evidence.js.map +1 -1
  40. package/dist/feedback.d.ts +10 -2
  41. package/dist/feedback.d.ts.map +1 -1
  42. package/dist/feedback.js +26 -3
  43. package/dist/feedback.js.map +1 -1
  44. package/dist/floating-action-button.d.ts +33 -0
  45. package/dist/floating-action-button.d.ts.map +1 -0
  46. package/dist/floating-action-button.js +53 -0
  47. package/dist/floating-action-button.js.map +1 -0
  48. package/dist/heading.d.ts +9 -0
  49. package/dist/heading.d.ts.map +1 -0
  50. package/dist/heading.js +24 -0
  51. package/dist/heading.js.map +1 -0
  52. package/dist/index.d.ts +16 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +16 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/inputs.d.ts +3 -1
  57. package/dist/inputs.d.ts.map +1 -1
  58. package/dist/inputs.js +3 -3
  59. package/dist/inputs.js.map +1 -1
  60. package/dist/keyboard.d.ts +17 -0
  61. package/dist/keyboard.d.ts.map +1 -0
  62. package/dist/keyboard.js +42 -0
  63. package/dist/keyboard.js.map +1 -0
  64. package/dist/mentions.d.ts +28 -0
  65. package/dist/mentions.d.ts.map +1 -0
  66. package/dist/mentions.js +41 -0
  67. package/dist/mentions.js.map +1 -0
  68. package/dist/provider-button.d.ts +12 -0
  69. package/dist/provider-button.d.ts.map +1 -0
  70. package/dist/provider-button.js +35 -0
  71. package/dist/provider-button.js.map +1 -0
  72. package/dist/provider.d.ts.map +1 -1
  73. package/dist/provider.js +13 -4
  74. package/dist/provider.js.map +1 -1
  75. package/dist/tags-input.d.ts +23 -0
  76. package/dist/tags-input.d.ts.map +1 -0
  77. package/dist/tags-input.js +58 -0
  78. package/dist/tags-input.js.map +1 -0
  79. package/dist/toggle-group.d.ts +12 -0
  80. package/dist/toggle-group.d.ts.map +1 -0
  81. package/dist/toggle-group.js +39 -0
  82. package/dist/toggle-group.js.map +1 -0
  83. package/dist/top.d.ts +11 -0
  84. package/dist/top.d.ts.map +1 -0
  85. package/dist/top.js +30 -0
  86. package/dist/top.js.map +1 -0
  87. package/dist/transfer-list.d.ts +23 -0
  88. package/dist/transfer-list.d.ts.map +1 -0
  89. package/dist/transfer-list.js +46 -0
  90. package/dist/transfer-list.js.map +1 -0
  91. package/package.json +111 -3
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { removeTagAt, resolveTagsInputCommit, tagsInputRecipe, } from "@hjmds/design-contracts/components/tags-input";
3
+ import { resolveColorReference } from "@hjmds/design-contracts/color-references";
4
+ import { radius, spacing } from "@hjmds/design-contracts/foundations";
5
+ import { useState } from "react";
6
+ import { Pressable, TextInput, View } from "react-native";
7
+ import { Text } from "./primitives.js";
8
+ import { useHjmNativeTheme } from "./provider.js";
9
+ export function TagsInput({ label, tags: controlledTags, defaultTags, onTagsChange, onReject, onDraftChange, policy, suggestions, suggestionsLabel, composeRemoveLabel, placeholder, description, disabled = false, style, }) {
10
+ const { palette } = useHjmNativeTheme();
11
+ const [internal, setInternal] = useState(defaultTags ?? []);
12
+ const tags = controlledTags ?? internal;
13
+ const [draft, setDraft] = useState("");
14
+ const border = resolveColorReference(tagsInputRecipe.frame.border, palette);
15
+ const surface = resolveColorReference(tagsInputRecipe.tag.background, palette);
16
+ const content = resolveColorReference(tagsInputRecipe.tag.color, palette);
17
+ const setTags = (next) => {
18
+ if (controlledTags === undefined)
19
+ setInternal(next);
20
+ onTagsChange?.(next);
21
+ };
22
+ const changeDraft = (next) => { setDraft(next); onDraftChange?.(next); };
23
+ const commit = (value) => {
24
+ const result = resolveTagsInputCommit(tags, value, policy ?? {});
25
+ if (!result.accepted) {
26
+ onReject?.(result);
27
+ return;
28
+ }
29
+ setTags([...tags, result.value]);
30
+ changeDraft("");
31
+ };
32
+ return (_jsxs(View, { style: [{ gap: tagsInputRecipe.frame.gap }, style], children: [_jsx(Text, { variant: "label", children: label }), _jsxs(View, { style: {
33
+ minHeight: tagsInputRecipe.frame.minHeight,
34
+ flexDirection: "row",
35
+ flexWrap: "wrap",
36
+ alignItems: "center",
37
+ gap: tagsInputRecipe.frame.gap,
38
+ padding: spacing.xs,
39
+ borderWidth: 1,
40
+ borderColor: border,
41
+ borderRadius: radius.md,
42
+ opacity: disabled ? 0.5 : 1,
43
+ }, children: [tags.map((tag, index) => (_jsxs(View, { style: {
44
+ minHeight: tagsInputRecipe.tag.minHeight,
45
+ flexDirection: "row",
46
+ alignItems: "center",
47
+ gap: spacing.xxs,
48
+ paddingHorizontal: spacing.xs,
49
+ borderRadius: 999,
50
+ backgroundColor: surface,
51
+ }, children: [_jsx(Text, { style: { color: content }, children: tag }), _jsx(Pressable, { accessibilityRole: "button", accessibilityLabel: composeRemoveLabel(tag), disabled: disabled,
52
+ // The visible chip is small; the touch target is not.
53
+ hitSlop: tagsInputRecipe.remove.minTouchTarget / 2, onPress: () => setTags(removeTagAt(tags, index)), children: _jsx(Text, { style: { color: content }, children: "\u00D7" }) })] }, `${tag}-${index}`))), _jsx(TextInput, { accessibilityLabel: label, editable: !disabled, placeholder: placeholder, value: draft, onChangeText: changeDraft,
54
+ // There is no keyboard commit vocabulary here: the return key is the
55
+ // only reliable one on a phone, so Comma/Space/Blur stay Web-only.
56
+ onSubmitEditing: () => commit(draft), onBlur: () => commit(draft), style: { flexGrow: 1, minWidth: 80, color: content } })] }), suggestions !== undefined && suggestions.length > 0 && draft.trim().length > 0 ? (_jsx(View, { accessibilityLabel: suggestionsLabel, style: { gap: spacing.xxs }, children: suggestions.map((item) => (_jsx(Pressable, { accessibilityRole: "button", accessibilityState: { disabled: item.disabled === true }, disabled: item.disabled === true || disabled, onPress: () => commit(item.value ?? item.label), style: { minHeight: tagsInputRecipe.tag.minHeight, justifyContent: "center", paddingHorizontal: spacing.xs }, children: _jsx(Text, { style: { color: content }, children: item.label }) }, item.id))) })) : null, description ? _jsx(Text, { tone: "muted", variant: "caption", children: description }) : null] }));
57
+ }
58
+ //# sourceMappingURL=tags-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags-input.js","sourceRoot":"","sources":["../src/tags-input.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type ToggleGroupDescriptor, type ToggleGroupSize } from "@hjmds/design-contracts/components/toggle-group";
2
+ import { type StyleProp, type ViewStyle } from "react-native";
3
+ export type ToggleGroupProps<Id extends string = string> = Readonly<{
4
+ descriptor: ToggleGroupDescriptor<Id>;
5
+ pressedIds?: ReadonlySet<Id>;
6
+ defaultPressedIds?: ReadonlySet<Id>;
7
+ onPressedIdsChange?: (ids: ReadonlySet<Id>) => void;
8
+ size?: ToggleGroupSize;
9
+ style?: StyleProp<ViewStyle>;
10
+ }>;
11
+ export declare function ToggleGroup<Id extends string = string>({ descriptor, pressedIds: controlledPressed, defaultPressedIds, onPressedIdsChange, size, style, }: ToggleGroupProps<Id>): import("react").JSX.Element;
12
+ //# sourceMappingURL=toggle-group.d.ts.map
@@ -0,0 +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;AAGzD,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI/E,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,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,wBAAgB,WAAW,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EACtD,UAAU,EACV,UAAU,EAAE,iBAAiB,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,IAAsC,EACtC,KAAK,GACN,EAAE,gBAAgB,CAAC,EAAE,CAAC,+BAmDtB"}
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { reconcileToggleGroupSelection, toggleGroupRecipe, toggleGroupSelection, validateToggleGroupDescriptor, } from "@hjmds/design-contracts/components/toggle-group";
3
+ import { resolveColorReference } from "@hjmds/design-contracts/color-references";
4
+ import { useMemo, useState } from "react";
5
+ import { Pressable, View } from "react-native";
6
+ import { Text } from "./primitives.js";
7
+ import { useHjmNativeTheme } from "./provider.js";
8
+ export function ToggleGroup({ descriptor, pressedIds: controlledPressed, defaultPressedIds, onPressedIdsChange, size = toggleGroupRecipe.defaults.size, style, }) {
9
+ validateToggleGroupDescriptor(descriptor);
10
+ const theme = useHjmNativeTheme();
11
+ const [internal, setInternal] = useState(defaultPressedIds ?? new Set());
12
+ const raw = controlledPressed ?? internal;
13
+ const pressed = useMemo(() => reconcileToggleGroupSelection(descriptor, raw), [descriptor, raw]);
14
+ const metrics = toggleGroupRecipe.sizes[size];
15
+ const commit = (next) => {
16
+ if (controlledPressed === undefined)
17
+ setInternal(next);
18
+ onPressedIdsChange?.(next);
19
+ };
20
+ return (_jsx(View, { accessibilityLabel: descriptor.accessibilityLabel, style: [{ flexDirection: "row", flexWrap: "wrap", gap: toggleGroupRecipe.gap }, style], children: descriptor.items.map((item) => {
21
+ const on = pressed.has(item.id);
22
+ const tone = on ? toggleGroupRecipe.pressed : toggleGroupRecipe.idle;
23
+ return (_jsx(Pressable, { accessibilityRole: "button",
24
+ // Native announces a toggle through `selected`, the counterpart of
25
+ // aria-pressed; colour alone would say nothing.
26
+ accessibilityState: { disabled: item.disabled === true, selected: on }, disabled: item.disabled === true, onPress: () => commit(toggleGroupSelection(descriptor, pressed, item.id)), style: {
27
+ alignItems: "center",
28
+ backgroundColor: resolveColorReference(tone.background, theme.palette),
29
+ borderColor: resolveColorReference(tone.border, theme.palette),
30
+ borderRadius: toggleGroupRecipe.radius,
31
+ borderWidth: 1,
32
+ justifyContent: "center",
33
+ minHeight: metrics.minHeight,
34
+ opacity: item.disabled === true ? 0.5 : 1,
35
+ paddingHorizontal: metrics.paddingHorizontal,
36
+ }, children: _jsx(Text, { style: { color: resolveColorReference(tone.color, theme.palette) }, variant: metrics.textVariant, children: item.label }) }, item.id));
37
+ }) }));
38
+ }
39
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.js","sourceRoot":"","sources":["../src/toggle-group.tsx"],"names":[],"mappings":"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"}
package/dist/top.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { type TopDescriptor } from "@hjmds/design-contracts/components/top";
2
+ import type { ReactNode } from "react";
3
+ import { type StyleProp, type ViewStyle } from "react-native";
4
+ export type TopProps = Readonly<{
5
+ descriptor: TopDescriptor;
6
+ /** Secondary action sharing the title row; stacks below it at large text. */
7
+ trailing?: ReactNode;
8
+ style?: StyleProp<ViewStyle>;
9
+ }>;
10
+ export declare function Top({ descriptor, trailing, style }: TopProps): import("react").JSX.Element;
11
+ //# sourceMappingURL=top.d.ts.map
@@ -0,0 +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;AACvC,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,aAAa,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,wBAAgB,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,+BA0D5D"}
package/dist/top.js ADDED
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { topDefaults, topRecipe, validateTopDescriptor, } from "@hjmds/design-contracts/components/top";
3
+ import { resolveColorReference } from "@hjmds/design-contracts/color-references";
4
+ import { View } from "react-native";
5
+ import { Text } from "./primitives.js";
6
+ import { useHjmNativeTheme } from "./provider.js";
7
+ export function Top({ descriptor, trailing, style }) {
8
+ validateTopDescriptor(descriptor);
9
+ const theme = useHjmNativeTheme();
10
+ const size = descriptor.size ?? topDefaults.size;
11
+ const metrics = topRecipe.sizes[size];
12
+ // Large text stacks the trailing action instead of squeezing the title, the
13
+ // same rule Section already applies to its own header row.
14
+ const stack = theme.environment.textScale >= 1.6;
15
+ return (_jsxs(View, { style: [
16
+ { gap: topRecipe.gap, paddingBottom: metrics.paddingBottom, paddingTop: metrics.paddingTop },
17
+ style,
18
+ ], children: [descriptor.eyebrow ? (_jsx(Text, { style: { color: resolveColorReference(topRecipe.eyebrow.color, theme.palette) }, variant: topRecipe.eyebrow.textVariant, children: descriptor.eyebrow })) : null, _jsxs(View, { style: {
19
+ alignItems: stack ? "stretch" : "center",
20
+ flexDirection: stack ? "column" : "row",
21
+ gap: topRecipe.trailing.gap,
22
+ }, children: [_jsx(Text, { accessibilityRole: "header", style: {
23
+ color: resolveColorReference(topRecipe.title.color, theme.palette),
24
+ flex: stack ? undefined : 1,
25
+ fontSize: metrics.title.fontSize,
26
+ fontWeight: metrics.title.fontWeight,
27
+ lineHeight: metrics.title.lineHeight,
28
+ }, children: descriptor.title }), trailing ? _jsx(View, { children: trailing }) : null] }), descriptor.description ? (_jsx(Text, { style: { color: resolveColorReference(topRecipe.description.color, theme.palette) }, variant: topRecipe.description.textVariant, children: descriptor.description })) : null] }));
29
+ }
30
+ //# sourceMappingURL=top.js.map
@@ -0,0 +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,EAAkC,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AASlD,MAAM,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAY;IAC3D,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,IAAI,GAAG,CAAC;IACjD,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAE;YACL,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;YAC5F,KAAK;SACN,aAEA,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CACpB,KAAC,IAAI,IACH,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAC/E,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,YAErC,UAAU,CAAC,OAAO,GACd,CACR,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,IAAI,IACH,KAAK,EAAE;oBACL,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;oBACxC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;oBACvC,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG;iBAC5B,aAMD,KAAC,IAAI,IACH,iBAAiB,EAAC,QAAQ,EAC1B,KAAK,EAAE;4BACL,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;4BAClE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BAC3B,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;4BAChC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;4BACpC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;yBACrC,YAEA,UAAU,CAAC,KAAK,GACZ,EACN,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,IACrC,EACN,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CACxB,KAAC,IAAI,IACH,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EACnF,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,WAAW,YAEzC,UAAU,CAAC,WAAW,GAClB,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type TransferListMoveDirection } from "@hjmds/design-contracts/components/transfer-list";
2
+ import type { SelectItemDescriptor } from "@hjmds/design-contracts/behaviors";
3
+ import { type StyleProp, type ViewStyle } from "react-native";
4
+ export type TransferListLabels = Readonly<{
5
+ source: string;
6
+ target: string;
7
+ toTarget: string;
8
+ toSource: string;
9
+ selectAll: string;
10
+ empty: string;
11
+ }>;
12
+ export type TransferListProps<Id extends string = string> = Readonly<{
13
+ items: readonly SelectItemDescriptor<Id>[];
14
+ labels: TransferListLabels;
15
+ targetKeys?: ReadonlySet<Id>;
16
+ defaultTargetKeys?: ReadonlySet<Id>;
17
+ onTargetKeysChange?: (keys: ReadonlySet<Id>) => void;
18
+ /** Receives which ids moved, in origin-panel order, so the product announces it. */
19
+ onMove?: (movedIds: readonly Id[], direction: TransferListMoveDirection) => void;
20
+ style?: StyleProp<ViewStyle>;
21
+ }>;
22
+ export declare function TransferList<Id extends string = string>({ items, labels, targetKeys: controlledTargetKeys, defaultTargetKeys, onTargetKeysChange, onMove, style, }: TransferListProps<Id>): import("react").JSX.Element;
23
+ //# sourceMappingURL=transfer-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-list.d.ts","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,yBAAyB,EAG/B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAM3F,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,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAOH,wBAAgB,YAAY,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EACvD,KAAK,EACL,MAAM,EACN,UAAU,EAAE,oBAAoB,EAChC,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,KAAK,GACN,EAAE,iBAAiB,CAAC,EAAE,CAAC,+BAsFvB"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { moveTransferListSelection, reconcileTransferListSelection, resolveTransferListPanels, resolveTransferListSelectAllState, toggleTransferListSelectAll, toggleTransferListSelection, } from "@hjmds/design-contracts/components/transfer-list";
3
+ import { spacing } from "@hjmds/design-contracts/foundations";
4
+ import { useMemo, useState } from "react";
5
+ import { Pressable, ScrollView, View } from "react-native";
6
+ import { Button } from "./actions.js";
7
+ import { Text } from "./primitives.js";
8
+ import { useControllableState } from "./internal/state.js";
9
+ import { useHjmNativeTheme } from "./provider.js";
10
+ const emptySelection = () => ({
11
+ source: new Set(),
12
+ target: new Set(),
13
+ });
14
+ export function TransferList({ items, labels, targetKeys: controlledTargetKeys, defaultTargetKeys, onTargetKeysChange, onMove, style, }) {
15
+ const { colors } = useHjmNativeTheme();
16
+ const [targetKeys, setTargetKeys] = useControllableState({
17
+ ...(controlledTargetKeys === undefined ? {} : { value: controlledTargetKeys }),
18
+ defaultValue: defaultTargetKeys ?? new Set(),
19
+ ...(onTargetKeysChange === undefined ? {} : { onChange: onTargetKeysChange }),
20
+ });
21
+ const [rawSelection, setSelection] = useState((emptySelection));
22
+ const descriptor = useMemo(() => ({ items, targetKeys }), [items, targetKeys]);
23
+ // A row that left the list entirely must not keep a pending check mark.
24
+ const selection = useMemo(() => reconcileTransferListSelection(descriptor, rawSelection), [descriptor, rawSelection]);
25
+ const panels = resolveTransferListPanels(descriptor);
26
+ const move = (direction) => {
27
+ const result = moveTransferListSelection(descriptor, selection, direction);
28
+ setTargetKeys(result.targetKeys);
29
+ setSelection(result.selection);
30
+ if (result.movedIds.length > 0)
31
+ onMove?.(result.movedIds, direction);
32
+ };
33
+ const renderPanel = (panel) => {
34
+ const rows = panels[panel];
35
+ const selectAll = resolveTransferListSelectAllState(descriptor, selection, panel);
36
+ return (_jsxs(View, { style: { flex: 1, gap: spacing.xs }, children: [_jsx(Pressable, { accessibilityRole: "checkbox",
37
+ // `mixed` is the contract's answer, not a third visual state invented
38
+ // here: some rows checked is neither on nor off.
39
+ accessibilityState: { checked: selectAll }, accessibilityLabel: `${panel === "source" ? labels.source : labels.target}, ${labels.selectAll}`, disabled: rows.length === 0, onPress: () => setSelection(toggleTransferListSelectAll(descriptor, selection, panel)), style: { minHeight: 44, justifyContent: "center" }, children: _jsx(Text, { variant: "label", children: labels.selectAll }) }), _jsx(ScrollView, { style: { borderWidth: 1, borderColor: colors.border, borderRadius: 12 }, children: rows.length === 0 ? (_jsx(Text, { tone: "muted", variant: "caption", style: { padding: spacing.sm }, children: labels.empty })) : (rows.map((item) => {
40
+ const checked = selection[panel].has(item.id);
41
+ return (_jsx(Pressable, { accessibilityRole: "checkbox", accessibilityState: { checked, disabled: item.disabled === true }, disabled: item.disabled === true, onPress: () => setSelection(toggleTransferListSelection(descriptor, selection, panel, item.id)), style: { minHeight: 44, justifyContent: "center", paddingHorizontal: spacing.sm }, children: _jsxs(Text, { children: [checked ? "✓ " : "", item.label] }) }, item.id));
42
+ })) })] }));
43
+ };
44
+ return (_jsxs(View, { style: [{ gap: spacing.sm }, style], 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: selection.source.size === 0, onPress: () => move("toTarget"), children: labels.toTarget }), _jsx(Button, { tone: "secondary", disabled: selection.target.size === 0, onPress: () => move("toSource"), children: labels.toSource })] }), _jsx(Text, { variant: "label", children: labels.target }), renderPanel("target")] }));
45
+ }
46
+ //# sourceMappingURL=transfer-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-list.js","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hjmds/react-native",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "Expo-independent React Native renderers for HJM design contracts.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -28,6 +28,30 @@
28
28
  "import": "./dist/provider.js",
29
29
  "default": "./dist/provider.js"
30
30
  },
31
+ "./carousel": {
32
+ "types": "./dist/carousel.d.ts",
33
+ "react-native": "./dist/carousel.js",
34
+ "import": "./dist/carousel.js",
35
+ "default": "./dist/carousel.js"
36
+ },
37
+ "./floating-action-button": {
38
+ "types": "./dist/floating-action-button.d.ts",
39
+ "react-native": "./dist/floating-action-button.js",
40
+ "import": "./dist/floating-action-button.js",
41
+ "default": "./dist/floating-action-button.js"
42
+ },
43
+ "./top-bar": {
44
+ "types": "./dist/navigation.d.ts",
45
+ "react-native": "./dist/navigation.js",
46
+ "import": "./dist/navigation.js",
47
+ "default": "./dist/navigation.js"
48
+ },
49
+ "./bottom-cta": {
50
+ "types": "./dist/actions.d.ts",
51
+ "react-native": "./dist/actions.js",
52
+ "import": "./dist/actions.js",
53
+ "default": "./dist/actions.js"
54
+ },
31
55
  "./composition-style": {
32
56
  "types": "./dist/composition-style.d.ts",
33
57
  "react-native": "./dist/composition-style.js",
@@ -82,6 +106,90 @@
82
106
  "import": "./dist/date-picker.js",
83
107
  "default": "./dist/date-picker.js"
84
108
  },
109
+ "./calendar": {
110
+ "types": "./dist/calendar.d.ts",
111
+ "react-native": "./dist/calendar.js",
112
+ "import": "./dist/calendar.js",
113
+ "default": "./dist/calendar.js"
114
+ },
115
+ "./agreement": {
116
+ "types": "./dist/agreement.d.ts",
117
+ "react-native": "./dist/agreement.js",
118
+ "import": "./dist/agreement.js",
119
+ "default": "./dist/agreement.js"
120
+ },
121
+ "./top": {
122
+ "types": "./dist/top.d.ts",
123
+ "react-native": "./dist/top.js",
124
+ "import": "./dist/top.js",
125
+ "default": "./dist/top.js"
126
+ },
127
+ "./heading": {
128
+ "types": "./dist/heading.d.ts",
129
+ "react-native": "./dist/heading.js",
130
+ "import": "./dist/heading.js",
131
+ "default": "./dist/heading.js"
132
+ },
133
+ "./toggle-group": {
134
+ "types": "./dist/toggle-group.d.ts",
135
+ "react-native": "./dist/toggle-group.js",
136
+ "import": "./dist/toggle-group.js",
137
+ "default": "./dist/toggle-group.js"
138
+ },
139
+ "./bottom-info": {
140
+ "types": "./dist/bottom-info.d.ts",
141
+ "react-native": "./dist/bottom-info.js",
142
+ "import": "./dist/bottom-info.js",
143
+ "default": "./dist/bottom-info.js"
144
+ },
145
+ "./collapsible": {
146
+ "types": "./dist/collapsible.d.ts",
147
+ "react-native": "./dist/collapsible.js",
148
+ "import": "./dist/collapsible.js",
149
+ "default": "./dist/collapsible.js"
150
+ },
151
+ "./asset": {
152
+ "types": "./dist/asset.d.ts",
153
+ "react-native": "./dist/asset.js",
154
+ "import": "./dist/asset.js",
155
+ "default": "./dist/asset.js"
156
+ },
157
+ "./tags-input": {
158
+ "types": "./dist/tags-input.d.ts",
159
+ "react-native": "./dist/tags-input.js",
160
+ "import": "./dist/tags-input.js",
161
+ "default": "./dist/tags-input.js"
162
+ },
163
+ "./date-range": {
164
+ "types": "./dist/date-range.d.ts",
165
+ "react-native": "./dist/date-range.js",
166
+ "import": "./dist/date-range.js",
167
+ "default": "./dist/date-range.js"
168
+ },
169
+ "./mentions": {
170
+ "types": "./dist/mentions.d.ts",
171
+ "react-native": "./dist/mentions.js",
172
+ "import": "./dist/mentions.js",
173
+ "default": "./dist/mentions.js"
174
+ },
175
+ "./transfer-list": {
176
+ "types": "./dist/transfer-list.d.ts",
177
+ "react-native": "./dist/transfer-list.js",
178
+ "import": "./dist/transfer-list.js",
179
+ "default": "./dist/transfer-list.js"
180
+ },
181
+ "./keyboard": {
182
+ "types": "./dist/keyboard.d.ts",
183
+ "react-native": "./dist/keyboard.js",
184
+ "import": "./dist/keyboard.js",
185
+ "default": "./dist/keyboard.js"
186
+ },
187
+ "./provider-button": {
188
+ "types": "./dist/provider-button.d.ts",
189
+ "react-native": "./dist/provider-button.js",
190
+ "import": "./dist/provider-button.js",
191
+ "default": "./dist/provider-button.js"
192
+ },
85
193
  "./file-picker": {
86
194
  "types": "./dist/file-picker.d.ts",
87
195
  "react-native": "./dist/file-picker.js",
@@ -143,7 +251,7 @@
143
251
  "LICENSE"
144
252
  ],
145
253
  "peerDependencies": {
146
- "@hjmds/design-contracts": ">=1.1.0 <1.2.0",
254
+ "@hjmds/design-contracts": ">=1.2.0 <1.3.0",
147
255
  "react": ">=19",
148
256
  "react-native": ">=0.81"
149
257
  },
@@ -159,7 +267,7 @@
159
267
  "react-test-renderer": "19.2.3",
160
268
  "typescript": "^5.9.3",
161
269
  "vitest": "^4.1.11",
162
- "@hjmds/design-contracts": "1.1.1"
270
+ "@hjmds/design-contracts": "1.2.0"
163
271
  },
164
272
  "engines": {
165
273
  "node": ">=20"