@hjmds/react-native 1.34.0 → 1.35.1
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 +12 -72
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +1 -1
- package/dist/actions.js.map +1 -1
- package/dist/auth-screen.d.ts.map +1 -1
- package/dist/auth-screen.js +3 -2
- package/dist/auth-screen.js.map +1 -1
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js.map +1 -1
- package/dist/carousel.d.ts +10 -2
- package/dist/carousel.d.ts.map +1 -1
- package/dist/carousel.js +12 -6
- package/dist/carousel.js.map +1 -1
- package/dist/collapsible.d.ts +7 -1
- package/dist/collapsible.d.ts.map +1 -1
- package/dist/collapsible.js +14 -12
- package/dist/collapsible.js.map +1 -1
- package/dist/collection-editing.d.ts +3 -1
- package/dist/collection-editing.d.ts.map +1 -1
- package/dist/collection-editing.js +6 -6
- package/dist/collection-editing.js.map +1 -1
- package/dist/collection-rail.d.ts +4 -4
- package/dist/collection-rail.d.ts.map +1 -1
- package/dist/collection-rail.js.map +1 -1
- package/dist/communication.d.ts.map +1 -1
- package/dist/communication.js.map +1 -1
- package/dist/conversation-row.d.ts.map +1 -1
- package/dist/conversation-row.js +4 -1
- package/dist/conversation-row.js.map +1 -1
- package/dist/data-display.d.ts +62 -8
- package/dist/data-display.d.ts.map +1 -1
- package/dist/data-display.js +135 -90
- package/dist/data-display.js.map +1 -1
- package/dist/data-table.d.ts +3 -1
- package/dist/data-table.d.ts.map +1 -1
- package/dist/data-table.js +15 -3
- package/dist/data-table.js.map +1 -1
- package/dist/date-picker.d.ts.map +1 -1
- package/dist/date-picker.js +1 -1
- package/dist/date-picker.js.map +1 -1
- package/dist/effect-surface.js.map +1 -1
- package/dist/evidence.d.ts +1 -1
- package/dist/evidence.d.ts.map +1 -1
- package/dist/evidence.js +2 -1
- package/dist/evidence.js.map +1 -1
- package/dist/feedback.d.ts +6 -1
- package/dist/feedback.d.ts.map +1 -1
- package/dist/feedback.js +7 -5
- package/dist/feedback.js.map +1 -1
- package/dist/floating-action-button.d.ts +3 -12
- package/dist/floating-action-button.d.ts.map +1 -1
- package/dist/floating-action-button.js +1 -1
- package/dist/floating-action-button.js.map +1 -1
- package/dist/forms.d.ts +2 -1
- package/dist/forms.d.ts.map +1 -1
- package/dist/forms.js +36 -3
- package/dist/forms.js.map +1 -1
- package/dist/image-choice.d.ts.map +1 -1
- package/dist/image-choice.js +8 -6
- package/dist/image-choice.js.map +1 -1
- package/dist/image-viewer.d.ts.map +1 -1
- package/dist/image-viewer.js +7 -4
- package/dist/image-viewer.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/inputs.d.ts +26 -8
- package/dist/inputs.d.ts.map +1 -1
- package/dist/inputs.js +102 -51
- package/dist/inputs.js.map +1 -1
- package/dist/internal/accessible-focus.d.ts +2 -1
- package/dist/internal/accessible-focus.d.ts.map +1 -1
- package/dist/internal/accessible-focus.js +1 -1
- package/dist/internal/accessible-focus.js.map +1 -1
- package/dist/internal/field-frame.d.ts +8 -4
- package/dist/internal/field-frame.d.ts.map +1 -1
- package/dist/internal/field-frame.js +6 -6
- package/dist/internal/field-frame.js.map +1 -1
- package/dist/internal/field-private.d.ts +1 -0
- package/dist/internal/field-private.d.ts.map +1 -1
- package/dist/internal/field-visibility.d.ts +6 -0
- package/dist/internal/field-visibility.d.ts.map +1 -0
- package/dist/internal/field-visibility.js +13 -0
- package/dist/internal/field-visibility.js.map +1 -0
- package/dist/internal/initial-focus.d.ts +8 -1
- package/dist/internal/initial-focus.d.ts.map +1 -1
- package/dist/internal/initial-focus.js +17 -8
- package/dist/internal/initial-focus.js.map +1 -1
- package/dist/internal/message-reactions.d.ts.map +1 -1
- package/dist/internal/message-reactions.js.map +1 -1
- package/dist/internal/modal-lifecycle.d.ts.map +1 -1
- package/dist/internal/modal-lifecycle.js +5 -2
- package/dist/internal/modal-lifecycle.js.map +1 -1
- package/dist/internal/pending-content.d.ts +11 -0
- package/dist/internal/pending-content.d.ts.map +1 -0
- package/dist/internal/pending-content.js +16 -0
- package/dist/internal/pending-content.js.map +1 -0
- package/dist/internal/recipe-button.d.ts +8 -31
- package/dist/internal/recipe-button.d.ts.map +1 -1
- package/dist/internal/recipe-button.js +49 -12
- package/dist/internal/recipe-button.js.map +1 -1
- package/dist/internal/screen-dismiss.d.ts +10 -0
- package/dist/internal/screen-dismiss.d.ts.map +1 -0
- package/dist/internal/screen-dismiss.js +62 -0
- package/dist/internal/screen-dismiss.js.map +1 -0
- package/dist/internal/screen-footer.d.ts +1 -1
- package/dist/internal/text-align.d.ts +2 -2
- package/dist/internal/text-align.d.ts.map +1 -1
- package/dist/keyboard.d.ts +3 -2
- package/dist/keyboard.d.ts.map +1 -1
- package/dist/keyboard.js +3 -1
- package/dist/keyboard.js.map +1 -1
- package/dist/mentions.js.map +1 -1
- package/dist/navigation.d.ts +3 -1
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +29 -8
- package/dist/navigation.js.map +1 -1
- package/dist/number-field.d.ts +3 -26
- package/dist/number-field.d.ts.map +1 -1
- package/dist/number-field.js +2 -1
- package/dist/number-field.js.map +1 -1
- package/dist/overlays.d.ts +11 -6
- package/dist/overlays.d.ts.map +1 -1
- package/dist/overlays.js +19 -14
- package/dist/overlays.js.map +1 -1
- package/dist/primitives.d.ts +5 -31
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +9 -2
- package/dist/provider.js.map +1 -1
- package/dist/public-exports.generated.d.ts +6 -0
- package/dist/public-exports.generated.d.ts.map +1 -1
- package/dist/public-exports.generated.js +18 -0
- package/dist/public-exports.generated.js.map +1 -1
- package/dist/screen-flows.d.ts +13 -5
- package/dist/screen-flows.d.ts.map +1 -1
- package/dist/screen-flows.js +25 -14
- package/dist/screen-flows.js.map +1 -1
- package/dist/screens.d.ts +33 -8
- package/dist/screens.d.ts.map +1 -1
- package/dist/screens.js +37 -15
- package/dist/screens.js.map +1 -1
- package/dist/sheet-gesture.d.ts +5 -2
- package/dist/sheet-gesture.d.ts.map +1 -1
- package/dist/sheet-gesture.js.map +1 -1
- package/dist/sheet-panel.d.ts +24 -0
- package/dist/sheet-panel.d.ts.map +1 -0
- package/dist/sheet-panel.js +111 -0
- package/dist/sheet-panel.js.map +1 -0
- package/dist/shortcut-rail.d.ts +28 -0
- package/dist/shortcut-rail.d.ts.map +1 -0
- package/dist/shortcut-rail.js +50 -0
- package/dist/shortcut-rail.js.map +1 -0
- package/dist/slider.d.ts +3 -20
- package/dist/slider.d.ts.map +1 -1
- package/dist/slider.js.map +1 -1
- package/dist/status-text.d.ts +3 -6
- package/dist/status-text.d.ts.map +1 -1
- package/dist/status-text.js.map +1 -1
- package/dist/steps.d.ts +2 -1
- package/dist/steps.d.ts.map +1 -1
- package/dist/steps.js +8 -5
- package/dist/steps.js.map +1 -1
- package/dist/table-family.d.ts.map +1 -1
- package/dist/table-family.js.map +1 -1
- package/dist/task-list.d.ts +3 -1
- package/dist/task-list.d.ts.map +1 -1
- package/dist/task-list.js +2 -2
- package/dist/task-list.js.map +1 -1
- package/dist/time-picker.d.ts +9 -0
- package/dist/time-picker.d.ts.map +1 -0
- package/dist/time-picker.js +59 -0
- package/dist/time-picker.js.map +1 -0
- package/package.json +44 -25
package/dist/inputs.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import type { ComponentRef } from "react";
|
|
1
2
|
import { type FieldAlign, type FieldShape, type FieldVariant } from "@hjmds/design-contracts/recipes/base";
|
|
2
3
|
import { type ChipSize, type SearchFieldSize, type SegmentedControlSize, type SelectionControlPresentation, type SelectionControlSize, type SwitchSize, type SwitchPresentation } from "@hjmds/design-contracts/recipes";
|
|
3
4
|
import { type PasswordFieldAutofillHint, type PasswordFieldSize } from "@hjmds/design-contracts/components/password-field";
|
|
4
5
|
import { type OtpFieldSize, type OtpFieldPresentation } from "@hjmds/design-contracts/components/otp-field";
|
|
5
6
|
import { type CheckboxGroupSelection, type CheckboxState, type SelectionItemDescriptor, type SelectionOrientation } from "@hjmds/design-contracts/behaviors";
|
|
6
|
-
import { type ReactNode } from "react";
|
|
7
|
+
import { forwardRef, type ReactNode } from "react";
|
|
7
8
|
import { TextInput, View, type GestureResponderEvent, type SwitchProps as NativeSwitchProps, type TextInputProps } from "react-native";
|
|
9
|
+
import type { GridDescriptor } from "@hjmds/design-contracts/grid";
|
|
8
10
|
import type { HjmCompositionStyleProp } from "./composition-style.js";
|
|
9
11
|
type FieldAccessibleName = Readonly<{
|
|
10
12
|
label: string;
|
|
@@ -53,12 +55,12 @@ type BaseFieldProps = Omit<TextInputProps, "accessibilityLabel" | "defaultValue"
|
|
|
53
55
|
}>;
|
|
54
56
|
type AccessibleFieldProps = BaseFieldProps & FieldAccessibleName;
|
|
55
57
|
export type TextFieldProps = AccessibleFieldProps;
|
|
56
|
-
export declare const TextField:
|
|
58
|
+
export declare const TextField: ReturnType<typeof forwardRef<ComponentRef<typeof TextInput>, TextFieldProps>>;
|
|
57
59
|
export type TextAreaProps = AccessibleFieldProps & Readonly<{
|
|
58
60
|
trailing?: ReactNode;
|
|
59
61
|
leadingAction?: ReactNode;
|
|
60
62
|
}>;
|
|
61
|
-
export declare const TextArea:
|
|
63
|
+
export declare const TextArea: ReturnType<typeof forwardRef<ComponentRef<typeof TextInput>, TextAreaProps>>;
|
|
62
64
|
export type SearchFieldAffordanceRenderProps = Readonly<{
|
|
63
65
|
color: string;
|
|
64
66
|
size: number;
|
|
@@ -79,7 +81,7 @@ export type SearchFieldProps = AccessibleFieldProps & Readonly<{
|
|
|
79
81
|
renderClearIcon?: (props: SearchFieldAffordanceRenderProps) => ReactNode;
|
|
80
82
|
renderBusyIndicator?: (props: SearchFieldAffordanceRenderProps) => ReactNode;
|
|
81
83
|
}>;
|
|
82
|
-
export declare const SearchField:
|
|
84
|
+
export declare const SearchField: ReturnType<typeof forwardRef<ComponentRef<typeof TextInput>, SearchFieldProps>>;
|
|
83
85
|
export type PasswordFieldToggleRenderProps = Readonly<{
|
|
84
86
|
name: "visibility" | "visibilityOff";
|
|
85
87
|
color: string;
|
|
@@ -101,7 +103,7 @@ export type PasswordFieldProps = Omit<BaseFieldProps, "autoComplete" | "defaultV
|
|
|
101
103
|
renderToggleIcon?: (props: PasswordFieldToggleRenderProps) => ReactNode;
|
|
102
104
|
}>;
|
|
103
105
|
/** Password input with independent reveal state and native autofill translation. */
|
|
104
|
-
export declare const PasswordField:
|
|
106
|
+
export declare const PasswordField: ReturnType<typeof forwardRef<ComponentRef<typeof TextInput>, PasswordFieldProps>>;
|
|
105
107
|
export type OtpFieldProps = Omit<BaseFieldProps, "autoComplete" | "defaultValue" | "inputStyle" | "keyboardType" | "multiline" | "onChangeText" | "secureTextEntry" | "textContentType" | "value"> & FieldAccessibleName & Readonly<{
|
|
106
108
|
length: number;
|
|
107
109
|
value?: string;
|
|
@@ -112,7 +114,7 @@ export type OtpFieldProps = Omit<BaseFieldProps, "autoComplete" | "defaultValue"
|
|
|
112
114
|
presentation?: OtpFieldPresentation;
|
|
113
115
|
}>;
|
|
114
116
|
/** One accessible numeric TextInput rendered through decorative OTP slots. */
|
|
115
|
-
export declare const OtpField:
|
|
117
|
+
export declare const OtpField: ReturnType<typeof forwardRef<ComponentRef<typeof TextInput>, OtpFieldProps>>;
|
|
116
118
|
export type ChoiceVisualRenderProps = Readonly<{
|
|
117
119
|
checked: CheckboxState;
|
|
118
120
|
selected: boolean;
|
|
@@ -174,9 +176,17 @@ export type RadioGroupItem<Value extends string = string> = Readonly<{
|
|
|
174
176
|
disabled?: boolean;
|
|
175
177
|
accessibilityHint?: string;
|
|
176
178
|
leading?: ReactNode;
|
|
179
|
+
action?: Readonly<{
|
|
180
|
+
label: string;
|
|
181
|
+
accessibilityLabel?: string;
|
|
182
|
+
onAction: () => void;
|
|
183
|
+
disabled?: boolean;
|
|
184
|
+
}>;
|
|
177
185
|
}>;
|
|
178
186
|
type ChoiceGroupVisualProps = ChoiceVisualProps & Readonly<{
|
|
179
187
|
orientation?: SelectionOrientation;
|
|
188
|
+
/** Equal-width responsive options, measured and arranged by the shared Grid. */
|
|
189
|
+
grid?: GridDescriptor;
|
|
180
190
|
disabled?: boolean;
|
|
181
191
|
readOnly?: boolean;
|
|
182
192
|
invalid?: boolean;
|
|
@@ -196,6 +206,8 @@ export type RadioGroupProps<Value extends string = string> = ChoiceGroupVisualPr
|
|
|
196
206
|
value?: Value | null;
|
|
197
207
|
defaultValue?: Value | null;
|
|
198
208
|
onValueChange?: (value: Value | null) => void;
|
|
209
|
+
/** Visual preview only; the string label remains the accessible name. */
|
|
210
|
+
renderLabel?: (item: RadioGroupItem<Value>) => ReactNode;
|
|
199
211
|
renderLeading?: (item: RadioGroupItem<Value>, props: ChoiceVisualRenderProps) => ReactNode;
|
|
200
212
|
renderIndicator?: (item: RadioGroupItem<Value>, props: ChoiceVisualRenderProps) => ReactNode;
|
|
201
213
|
}>;
|
|
@@ -208,7 +220,7 @@ export type CheckboxGroupProps<Value extends string = string> = ChoiceGroupVisua
|
|
|
208
220
|
renderIndicator?: (item: SelectionItemDescriptor<Value>, props: ChoiceVisualRenderProps) => ReactNode;
|
|
209
221
|
}>;
|
|
210
222
|
/** Validated controlled/uncontrolled checkbox collection using immutable Sets. */
|
|
211
|
-
export declare function CheckboxGroup<Value extends string = string>({ label, accessibilityLabel, items, value, defaultValue, onValueChange, required, disabled, readOnly, invalid, description, error, requiredLabel, readOnlyLabel, invalidLabel, orientation, presentation, size, indicator, renderLeading, renderIndicator, layoutStyle, ...slotStyles }: CheckboxGroupProps<Value>): import("react").JSX.Element;
|
|
223
|
+
export declare function CheckboxGroup<Value extends string = string>({ label, accessibilityLabel, items, value, defaultValue, onValueChange, required, disabled, readOnly, invalid, description, error, requiredLabel, readOnlyLabel, invalidLabel, orientation, grid, presentation, size, indicator, renderLeading, renderIndicator, layoutStyle, ...slotStyles }: CheckboxGroupProps<Value>): import("react").JSX.Element;
|
|
212
224
|
type SwitchBaseProps = Omit<NativeSwitchProps, "accessibilityHint" | "accessibilityLabel" | "defaultValue" | "onValueChange" | "style" | "value"> & Readonly<{
|
|
213
225
|
label: string;
|
|
214
226
|
/** Use inside a labelled ListRow; the accessible name and hint remain present. */
|
|
@@ -234,6 +246,8 @@ export declare function Switch({ label, labelVisibility, presentation, testID, d
|
|
|
234
246
|
export type SegmentedControlItem<Value extends string = string> = Readonly<{
|
|
235
247
|
value: Value;
|
|
236
248
|
label: string;
|
|
249
|
+
/** Full spoken name when the visible label is abbreviated. */
|
|
250
|
+
accessibilityLabel?: string;
|
|
237
251
|
disabled?: boolean;
|
|
238
252
|
leading?: ReactNode;
|
|
239
253
|
renderLeading?: (props: SegmentedControlLeadingRenderProps) => ReactNode;
|
|
@@ -258,6 +272,10 @@ export type SegmentedControlProps<Value extends string = string> = SegmentedCont
|
|
|
258
272
|
/** Move only decorative selection artwork, never labels or hit targets. */
|
|
259
273
|
selectionMotion?: "none" | "slide";
|
|
260
274
|
disabled?: boolean;
|
|
275
|
+
/** Pills wrap by default; a rail keeps one row while actions remain outside the selection group. */
|
|
276
|
+
overflow?: "wrap" | "scroll";
|
|
277
|
+
actions?: ReactNode;
|
|
278
|
+
testID?: string;
|
|
261
279
|
/** Canonical layout-only placement. Controlled visual keys are excluded. */
|
|
262
280
|
layoutStyle?: HjmCompositionStyleProp;
|
|
263
281
|
}>;
|
|
@@ -295,6 +313,6 @@ type SelectionChipProps = Readonly<{
|
|
|
295
313
|
export type ChipProps = ChipBaseProps & (ActionChipProps | SelectionChipProps);
|
|
296
314
|
/** Action/filter chip with role-specific, controlled selection semantics. */
|
|
297
315
|
/** Forwards the host View ref so a chip can be a focus-return target (2026-10-16, DiscoveryGallery). */
|
|
298
|
-
export declare const Chip:
|
|
316
|
+
export declare const Chip: ReturnType<typeof forwardRef<ComponentRef<typeof View>, ChipProps>>;
|
|
299
317
|
export {};
|
|
300
318
|
//# sourceMappingURL=inputs.d.ts.map
|
package/dist/inputs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.tsx"],"names":[],"mappings":"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"}
|
package/dist/inputs.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { createElement as _createElement } from "react";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from "./actions.js";
|
|
3
4
|
import { useInitialFocusTarget } from "./internal/initial-focus.js";
|
|
5
|
+
import { setInputVisibilityFrame } from "./internal/field-visibility.js";
|
|
4
6
|
import { assertNoRemovedStyleProps } from "./internal/diagnostics.js";
|
|
5
7
|
import { FixedGlyph } from "./internal/fixed-glyph.js";
|
|
6
8
|
import { SelectionMark } from "./internal/selection-mark.js";
|
|
@@ -16,9 +18,9 @@ import { getCheckboxNextState, reconcileCheckboxSelection, resolveControlAccessi
|
|
|
16
18
|
import { forwardRef, useCallback, useEffect, useId, useImperativeHandle, useLayoutEffect, useRef, useState, } from "react";
|
|
17
19
|
import { ActivityIndicator, Animated, AppState, Easing, Platform, Pressable, ScrollView, Switch as NativeSwitch, Text as NativeText, TextInput, View, } from "react-native";
|
|
18
20
|
import { mixedCheckboxState, useControllableState } from "./internal/state.js";
|
|
19
|
-
import { webChoiceProps, webOnly } from "./internal/web-a11y.js";
|
|
21
|
+
import { isWebRenderer, webChoiceProps, webOnly } from "./internal/web-a11y.js";
|
|
20
22
|
import { logicalTextAlign, minimumTargetStyle, resolveNativeFontStyle, resolveNativeTextScaleProps, } from "./internal/styles.js";
|
|
21
|
-
import { Text } from "./primitives.js";
|
|
23
|
+
import { Grid, Text } from "./primitives.js";
|
|
22
24
|
import { useHjmNativeTheme } from "./provider.js";
|
|
23
25
|
function resolveFieldAccessibleName(label, accessibilityLabel) {
|
|
24
26
|
const visibleLabel = label?.trim();
|
|
@@ -32,19 +34,24 @@ function resolveFieldAccessibleName(label, accessibilityLabel) {
|
|
|
32
34
|
...(visibleLabel ? { visibleLabel } : {}),
|
|
33
35
|
};
|
|
34
36
|
}
|
|
35
|
-
const FieldRenderer = forwardRef(function FieldRenderer({ label, value, defaultValue = "", onValueChange, description, error, invalid = false, accessibilityHint, required = false, disabled = false, busy = false, variant = fieldRecipe.defaults.variant, shape, accessibilityLabel, layoutStyle, allowFontScaling, multiline, maxVisibleLines, minVisibleLines, align = fieldRecipe.defaults.align, search, recipeMinHeight, recipeTextVariant, disabledOpacity, searchSize = searchFieldRecipe.defaults.size, leading, trailing, leadingAction, hjmCompactMultiline = false, initialFocusTarget, onBlur, onFocus, onContentSizeChange, onSelectionChange, ...props }, ref) {
|
|
37
|
+
const FieldRenderer = forwardRef(function FieldRenderer({ label, value, defaultValue = "", onValueChange, description, error, invalid = false, accessibilityHint, required = false, disabled = false, busy = false, variant = fieldRecipe.defaults.variant, shape, accessibilityLabel, layoutStyle, allowFontScaling, multiline, maxVisibleLines, minVisibleLines, align = fieldRecipe.defaults.align, search, recipeMinHeight, recipeTextVariant, disabledOpacity, searchSize = searchFieldRecipe.defaults.size, leading, trailing, leadingAction, hjmCompactMultiline = false, hjmDescriptionAlign = "start", initialFocusTarget, onBlur, onFocus, onContentSizeChange, onSelectionChange, ...props }, ref) {
|
|
36
38
|
const resolvedDisabledOpacity = disabledOpacity ?? (search ? searchFieldRecipe.states.disabledOpacity : fieldRecipe.disabledOpacity);
|
|
37
39
|
const theme = useHjmNativeTheme();
|
|
38
40
|
const { colors, environment, textScaling } = theme;
|
|
39
41
|
const [focused, setFocused] = useState(false);
|
|
40
42
|
const [contentHeight, setContentHeight] = useState(0);
|
|
41
43
|
const inputRef = useRef(null);
|
|
44
|
+
const fieldFrameRef = useRef(null);
|
|
42
45
|
const restoreFocusRef = useRef(false);
|
|
43
46
|
const selectionRef = useRef(null);
|
|
44
47
|
const attachInput = useCallback((node) => {
|
|
45
48
|
if (node === null)
|
|
46
49
|
restoreFocusRef.current = inputRef.current?.isFocused?.() ?? false;
|
|
50
|
+
if (inputRef.current)
|
|
51
|
+
setInputVisibilityFrame(inputRef.current, null);
|
|
47
52
|
inputRef.current = node;
|
|
53
|
+
if (node)
|
|
54
|
+
setInputVisibilityFrame(node, fieldFrameRef);
|
|
48
55
|
}, []);
|
|
49
56
|
const [currentValue, setCurrentValue] = useControllableState({
|
|
50
57
|
...(value === undefined ? {} : { value }),
|
|
@@ -60,9 +67,8 @@ const FieldRenderer = forwardRef(function FieldRenderer({ label, value, defaultV
|
|
|
60
67
|
(search ? searchFieldRecipe.defaults.shape : fieldRecipe.defaults.shape);
|
|
61
68
|
const searchSizing = searchFieldRecipe.sizes[searchSize];
|
|
62
69
|
const resolvedMaxVisibleLines = maxVisibleLines ?? fieldRecipe.multilineMaxVisibleLines;
|
|
63
|
-
const borderWidth =
|
|
64
|
-
? searchFieldRecipe.borderWidth
|
|
65
|
-
: fieldRecipe.borderWidth;
|
|
70
|
+
const borderWidth = error || invalid ? fieldRecipe.states.invalid.borderWidth
|
|
71
|
+
: search ? searchFieldRecipe.borderWidth : fieldRecipe.borderWidth;
|
|
66
72
|
const borderColor = search
|
|
67
73
|
? resolveColorReference(error || invalid
|
|
68
74
|
? searchFieldRecipe.colors.invalid
|
|
@@ -170,7 +176,7 @@ const FieldRenderer = forwardRef(function FieldRenderer({ label, value, defaultV
|
|
|
170
176
|
setFocused(true);
|
|
171
177
|
onFocus?.(event);
|
|
172
178
|
}, placeholderTextColor: placeholderColor, value: currentValue }, editorKey));
|
|
173
|
-
return (_jsx(NativeFieldFrame, { ...(visibleLabel === undefined ? {} : { label: visibleLabel }), required: required, ...(error === undefined ? {} : { error }), ...(supportText === undefined ? {} : { description: supportText }), ...(disabled ? { disabledOpacity: resolvedDisabledOpacity } : {}), style: layoutStyle, children: _jsxs(View, { style: {
|
|
179
|
+
return (_jsx(NativeFieldFrame, { frameRef: fieldFrameRef, descriptionAlign: hjmDescriptionAlign, ...(visibleLabel === undefined ? {} : { label: visibleLabel }), required: required, ...(error === undefined ? {} : { error }), ...(supportText === undefined ? {} : { description: supportText }), ...(disabled ? { disabledOpacity: resolvedDisabledOpacity } : {}), style: layoutStyle, children: _jsxs(View, { style: {
|
|
174
180
|
opacity: disabled ? resolvedDisabledOpacity : 1,
|
|
175
181
|
alignItems: multiline ? "stretch" : "center",
|
|
176
182
|
backgroundColor,
|
|
@@ -404,12 +410,15 @@ layoutStyle, allowFontScaling, onBlur, onFocus, ...props }, ref) {
|
|
|
404
410
|
}) })] }), _jsx(FieldMessage, { ...(error === undefined ? {} : { error }), ...(supportText === undefined ? {} : { supportText }) })] })] }));
|
|
405
411
|
});
|
|
406
412
|
// UI control labels keep the ui font even when their metric variant is body; content still uses reading.
|
|
407
|
-
function ChoiceRow({ kind, label, description, checked, disabled, readOnly, required, invalid, readOnlyLabel, requiredLabel, invalidLabel, accessibilityHint, presentation = selectionControlRecipe.defaults.presentation, size = selectionControlRecipe.defaults.size, indicator = "default", leading, renderLeading, renderIndicator, onActivate, webTabIndex, layoutStyle, }) {
|
|
413
|
+
function ChoiceRow({ kind, label, labelContent, action, description, checked, disabled, readOnly, required, invalid, readOnlyLabel, requiredLabel, invalidLabel, accessibilityHint, presentation = selectionControlRecipe.defaults.presentation, size = selectionControlRecipe.defaults.size, indicator = "default", leading, renderLeading, renderIndicator, onActivate, webTabIndex, layoutStyle, }) {
|
|
408
414
|
const theme = useHjmNativeTheme();
|
|
409
415
|
const metrics = selectionControlRecipe.sizes[size];
|
|
416
|
+
const chips = presentation === "chips", chipMetrics = chipRecipe.sizes[size];
|
|
417
|
+
const rowMinHeight = chips ? visibleControlHeight(chipMetrics.height, theme.environment.minimumVisualTarget) : metrics.rowMinHeight;
|
|
410
418
|
const plate = selectionControlRecipe.presentations[presentation];
|
|
411
419
|
const selected = checked === true || checked === "mixed";
|
|
412
|
-
const
|
|
420
|
+
const chipState = chipRecipe.states[selected ? "selected" : "idle"];
|
|
421
|
+
const indicatorColor = resolveColorReference(chips ? chipState.content : selectionControlRecipe.states.indicator, theme.palette);
|
|
413
422
|
const appearance = {
|
|
414
423
|
checked,
|
|
415
424
|
selected,
|
|
@@ -419,21 +428,28 @@ function ChoiceRow({ kind, label, description, checked, disabled, readOnly, requ
|
|
|
419
428
|
size: metrics.control,
|
|
420
429
|
};
|
|
421
430
|
const resolvedLeading = leading ?? renderLeading?.(appearance);
|
|
422
|
-
const plateBackground = selected
|
|
431
|
+
const plateBackground = chips ? chipState.background : selected
|
|
423
432
|
? selectionControlRecipe.states.selectedBackground
|
|
424
433
|
: plate.background ?? selectionControlRecipe.states.idleBackground;
|
|
425
434
|
const plateBorder = invalid
|
|
426
435
|
? selectionControlRecipe.states.invalidBorder
|
|
427
|
-
: selected
|
|
436
|
+
: chips ? chipState.border : selected
|
|
428
437
|
? selectionControlRecipe.states.selectedBorder
|
|
429
438
|
: plate.border;
|
|
439
|
+
const frameStyle = {
|
|
440
|
+
...(chips ? { maxWidth: "100%" } : {}),
|
|
441
|
+
backgroundColor: resolveColorReference(plateBackground, theme.palette),
|
|
442
|
+
borderColor: plateBorder ? resolveColorReference(plateBorder, theme.palette) : "transparent",
|
|
443
|
+
borderRadius: theme.tokens.radius[plate.radius],
|
|
444
|
+
borderWidth: plate.borderWidth,
|
|
445
|
+
};
|
|
430
446
|
const resolvedHint = [
|
|
431
447
|
accessibilityHint ?? description,
|
|
432
448
|
required ? requiredLabel : undefined,
|
|
433
449
|
readOnly ? readOnlyLabel : undefined,
|
|
434
450
|
invalid ? invalidLabel : undefined,
|
|
435
451
|
].filter(Boolean).join(". ") || undefined;
|
|
436
|
-
|
|
452
|
+
const target = (_jsxs(Pressable, { accessibilityHint: resolvedHint, accessibilityLabel: label, accessibilityRole: kind,
|
|
437
453
|
// See mixedCheckboxState: a checkbox leaving "mixed" kept the suffix on Android.
|
|
438
454
|
accessibilityState: kind === "checkbox" ? mixedCheckboxState(checked, { disabled: disabled || readOnly }) : { checked, disabled: disabled || readOnly }, ...webOnly(webChoiceProps({
|
|
439
455
|
kind,
|
|
@@ -442,44 +458,52 @@ function ChoiceRow({ kind, label, description, checked, disabled, readOnly, requ
|
|
|
442
458
|
readOnly,
|
|
443
459
|
onActivate,
|
|
444
460
|
...(webTabIndex === undefined ? {} : { tabIndex: webTabIndex }),
|
|
445
|
-
})), disabled: disabled || readOnly, hitSlop: plate.useSizePadding ? 0 : metrics.hitSlop, onPress: () => {
|
|
461
|
+
})), disabled: disabled || readOnly, hitSlop: chips ? chipMetrics.hitSlop : plate.useSizePadding ? 0 : metrics.hitSlop, onPress: () => {
|
|
446
462
|
if (!readOnly)
|
|
447
463
|
onActivate();
|
|
448
464
|
}, style: ({ pressed }) => [
|
|
449
465
|
{
|
|
450
466
|
alignItems: "center",
|
|
451
|
-
alignSelf: "stretch",
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
: "transparent",
|
|
456
|
-
borderRadius: theme.tokens.radius[plate.radius],
|
|
457
|
-
borderWidth: plate.borderWidth,
|
|
467
|
+
alignSelf: chips ? "flex-start" : "stretch",
|
|
468
|
+
// Grid cells stretch to the tallest sibling; the visible card must fill that cell too.
|
|
469
|
+
flexGrow: presentation === "card" ? 1 : undefined,
|
|
470
|
+
...frameStyle,
|
|
458
471
|
direction: theme.environment.direction,
|
|
459
472
|
flexDirection: "row",
|
|
460
|
-
gap: metrics.gap,
|
|
461
|
-
minHeight:
|
|
473
|
+
gap: chips ? chipMetrics.gap : metrics.gap,
|
|
474
|
+
minHeight: rowMinHeight,
|
|
462
475
|
opacity: disabled
|
|
463
476
|
? selectionControlRecipe.states.disabledOpacity
|
|
464
477
|
: pressed && !readOnly
|
|
465
478
|
? 0.86
|
|
466
479
|
: 1,
|
|
467
|
-
paddingHorizontal: plate.useSizePadding ? metrics.paddingHorizontal : 0,
|
|
468
|
-
paddingVertical: plate.useSizePadding ? metrics.paddingVertical : 0,
|
|
480
|
+
paddingHorizontal: chips ? chipMetrics.paddingHorizontal : plate.useSizePadding ? metrics.paddingHorizontal : 0,
|
|
481
|
+
paddingVertical: chips ? 0 : plate.useSizePadding ? metrics.paddingVertical : 0,
|
|
469
482
|
},
|
|
470
|
-
layoutStyle,
|
|
471
|
-
], children: [indicator === "default" ? (_jsx(SelectionMark, { kind: kind, checked: checked, size: size, invalid: invalid ?? false, children: renderIndicator?.(appearance) })) : null, resolvedLeading ? (_jsx(View, { accessibilityElementsHidden: true, accessible: false, importantForAccessibility: "no-hide-descendants", children: resolvedLeading })) : null, _jsxs(View, { style: [{ flexGrow: 1, flexShrink: 1, gap: spacing.xxs, minWidth: 0 }], children: [_jsx(Text, { fontRole: "ui", style: [
|
|
483
|
+
action ? { flex: 1, minWidth: 0, backgroundColor: "transparent", borderWidth: 0, borderRadius: 0, opacity: pressed && !readOnly && !disabled ? 0.86 : 1 } : layoutStyle,
|
|
484
|
+
], children: [chips && indicator === "default" && renderIndicator ? (_jsx(View, { accessible: false, accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", children: renderIndicator(appearance) })) : !chips && indicator === "default" ? (_jsx(SelectionMark, { kind: kind, checked: checked, size: size, invalid: invalid ?? false, children: renderIndicator?.(appearance) })) : null, resolvedLeading ? (_jsx(View, { accessibilityElementsHidden: true, accessible: false, importantForAccessibility: "no-hide-descendants", children: resolvedLeading })) : null, _jsxs(View, { style: [{ flexGrow: chips ? 0 : 1, flexShrink: 1, gap: spacing.xxs, minWidth: 0 }], children: [labelContent != null && typeof labelContent !== "string" && typeof labelContent !== "number" ? labelContent : _jsx(Text, { fontRole: "ui", style: [
|
|
472
485
|
{
|
|
473
|
-
color: resolveColorReference(selectionControlRecipe.label.color, theme.palette),
|
|
486
|
+
color: resolveColorReference(chips ? chipState.content : selectionControlRecipe.label.color, theme.palette),
|
|
474
487
|
fontWeight: selected
|
|
475
488
|
? selectionControlRecipe.label.checkedFontWeight
|
|
476
489
|
: selectionControlRecipe.label.fontWeight,
|
|
477
490
|
},
|
|
478
|
-
], variant: metrics.labelVariant, children: label }), description ? (_jsx(Text, { style: [
|
|
491
|
+
], variant: chips ? chipMetrics.textVariant : metrics.labelVariant, children: labelContent ?? label }), description ? (_jsx(Text, { style: [
|
|
479
492
|
{
|
|
480
493
|
color: resolveColorReference(selectionControlRecipe.description.color, theme.palette),
|
|
481
494
|
},
|
|
482
495
|
], variant: metrics.descriptionVariant, children: description })) : null] })] }));
|
|
496
|
+
if (!action)
|
|
497
|
+
return target;
|
|
498
|
+
// The selection target owns its accessible label; the action is a separate sibling
|
|
499
|
+
// so rename/manage never changes the selected option or nests a button in a radio.
|
|
500
|
+
return _jsxs(View, { style: [{
|
|
501
|
+
alignItems: "center", alignSelf: chips ? "flex-start" : "stretch", flexDirection: "row", direction: theme.environment.direction,
|
|
502
|
+
minHeight: rowMinHeight,
|
|
503
|
+
flexGrow: presentation === "card" ? 1 : undefined,
|
|
504
|
+
...frameStyle,
|
|
505
|
+
opacity: disabled ? selectionControlRecipe.states.disabledOpacity : 1,
|
|
506
|
+
}, layoutStyle], children: [target, _jsx(View, { style: { paddingEnd: spacing.xs }, children: _jsx(Button, { tone: "ghost", size: "small", disabled: disabled || action.disabled === true, accessibilityLabel: action.accessibilityLabel, onPress: action.onAction, children: action.label }) })] });
|
|
483
507
|
}
|
|
484
508
|
export function Checkbox({ label, checked, defaultChecked = false, onCheckedChange, disabled = false, readOnly = false, required = false, invalid = false, description, readOnlyLabel, requiredLabel, invalidLabel, leading, renderLeading, renderIndicator, accessibilityHint, ...visual }) {
|
|
485
509
|
const [selected, setSelected] = useControllableState({
|
|
@@ -502,7 +526,7 @@ export function Radio({ label, checked, defaultChecked = false, onCheckedChange,
|
|
|
502
526
|
});
|
|
503
527
|
return (_jsx(ChoiceRow, { ...visual, accessibilityHint: accessibilityHint, checked: selected, description: description, disabled: disabled, indicator: visual.indicator ?? "default", invalid: invalid, invalidLabel: invalidLabel, kind: "radio", label: label, leading: leading, onActivate: () => setSelected(true), readOnly: readOnly, readOnlyLabel: readOnlyLabel, renderIndicator: renderIndicator, renderLeading: renderLeading, required: required, requiredLabel: requiredLabel }));
|
|
504
528
|
}
|
|
505
|
-
function ChoiceGroupFrame({ label, accessibilityLabel, required, requiredLabel, readOnly, readOnlyLabel, disabled, description, error, role, orientation, presentation, layoutStyle, children, }) {
|
|
529
|
+
function ChoiceGroupFrame({ label, accessibilityLabel, required, requiredLabel, readOnly, readOnlyLabel, disabled, description, error, role, orientation, presentation, grid, layoutStyle, children, }) {
|
|
506
530
|
const theme = useHjmNativeTheme();
|
|
507
531
|
const id = useId().replaceAll(":", "");
|
|
508
532
|
const labelId = `${id}-label`;
|
|
@@ -515,16 +539,15 @@ function ChoiceGroupFrame({ label, accessibilityLabel, required, requiredLabel,
|
|
|
515
539
|
const gap = selectionGroupRecipe.orientations[orientation].gap[presentation];
|
|
516
540
|
useFieldErrorAnnouncement(error);
|
|
517
541
|
return (_jsxs(View, { accessibilityHint: [error ?? description, readOnly ? readOnlyLabel : undefined]
|
|
518
|
-
.filter(Boolean).join(". ") || undefined, accessibilityLabel: announcedName, accessibilityLabelledBy: label ? labelId : undefined, accessibilityRole: role, accessibilityState: { disabled: disabled || readOnly }, accessibilityValue: error ? { text: error } : undefined, style: [{ direction: theme.environment.direction, gap: selectionGroupRecipe.supportGap }, layoutStyle], children: [label ? (_jsxs(Text, { nativeID: labelId, tone: "primary", variant: selectionGroupRecipe.label.textVariant, children: [label, required ? requiredLabel ? ` (${requiredLabel})` : " *" : ""] })) : null, description && !error ? (_jsx(Text, { tone: "muted", variant: selectionGroupRecipe.description.textVariant, children: description })) : null, _jsx(View, { style: {
|
|
542
|
+
.filter(Boolean).join(". ") || undefined, accessibilityLabel: announcedName, accessibilityLabelledBy: label ? labelId : undefined, accessibilityRole: role, accessibilityState: { disabled: disabled || readOnly }, accessibilityValue: error ? { text: error } : undefined, style: [{ direction: theme.environment.direction, gap: selectionGroupRecipe.supportGap }, layoutStyle], children: [label ? (_jsxs(Text, { nativeID: labelId, tone: "primary", variant: selectionGroupRecipe.label.textVariant, children: [label, required ? requiredLabel ? ` (${requiredLabel})` : " *" : ""] })) : null, description && !error ? (_jsx(Text, { tone: "muted", variant: selectionGroupRecipe.description.textVariant, children: description })) : null, grid ? _jsx(Grid, { ...grid, children: children }) : (_jsx(View, { style: {
|
|
519
543
|
direction: theme.environment.direction,
|
|
520
|
-
flexDirection: orientation === "horizontal" && theme.environment.textScale < 1.6
|
|
521
|
-
|
|
522
|
-
: "column",
|
|
544
|
+
flexDirection: presentation === "chips" || (orientation === "horizontal" && theme.environment.textScale < 1.6) ? "row" : "column",
|
|
545
|
+
flexWrap: presentation === "chips" ? "wrap" : undefined,
|
|
523
546
|
gap,
|
|
524
|
-
}, children: children }), error ? (_jsx(Text, { accessibilityLiveRegion: "assertive", accessibilityRole: "alert", tone: "danger", variant: selectionGroupRecipe.error.textVariant, children: error })) : null] }));
|
|
547
|
+
}, children: children })), error ? (_jsx(Text, { accessibilityLiveRegion: "assertive", accessibilityRole: "alert", tone: "danger", variant: selectionGroupRecipe.error.textVariant, children: error })) : null] }));
|
|
525
548
|
}
|
|
526
549
|
export function RadioGroup(props) {
|
|
527
|
-
const { label, accessibilityLabel, items, value, defaultValue, onValueChange, required = false, disabled = false, readOnly = false, invalid = false, description, error, requiredLabel, readOnlyLabel, invalidLabel, orientation = selectionGroupBehaviorDefaults.orientation, presentation = selectionGroupRecipe.defaults.presentation, size = selectionControlRecipe.defaults.size, indicator = "default", renderLeading, renderIndicator, layoutStyle, ...slotStyles } = props;
|
|
550
|
+
const { label, accessibilityLabel, items, value, defaultValue, onValueChange, required = false, disabled = false, readOnly = false, invalid = false, description, error, requiredLabel, readOnlyLabel, invalidLabel, orientation = selectionGroupBehaviorDefaults.orientation, grid, presentation = selectionGroupRecipe.defaults.presentation, size = selectionControlRecipe.defaults.size, indicator = "default", renderLeading, renderLabel, renderIndicator, layoutStyle, ...slotStyles } = props;
|
|
528
551
|
// Removed aliases must not silently change the selected collection in JavaScript callers.
|
|
529
552
|
if ("options" in props || !Array.isArray(items))
|
|
530
553
|
throw new TypeError("RadioGroup requires items; options was removed");
|
|
@@ -556,14 +579,14 @@ export function RadioGroup(props) {
|
|
|
556
579
|
setSelected(selected);
|
|
557
580
|
}, [selected, setSelected, storedValue, value]);
|
|
558
581
|
const hasError = invalid || error !== undefined;
|
|
559
|
-
return (_jsx(ChoiceGroupFrame, { accessibilityLabel: accessibilityLabel, description: description, disabled: disabled, error: error, label: label, orientation: orientation, presentation: presentation, readOnly: readOnly, readOnlyLabel: readOnlyLabel, required: required, requiredLabel: requiredLabel, role: "radiogroup", layoutStyle: layoutStyle, children: resolvedItems.map((item) => {
|
|
582
|
+
return (_jsx(ChoiceGroupFrame, { accessibilityLabel: accessibilityLabel, description: description, disabled: disabled, error: error, label: label, orientation: orientation, grid: grid, presentation: presentation, readOnly: readOnly, readOnlyLabel: readOnlyLabel, required: required, requiredLabel: requiredLabel, role: "radiogroup", layoutStyle: layoutStyle, children: resolvedItems.map((item) => {
|
|
560
583
|
const optionDisabled = disabled || item.disabled === true;
|
|
561
584
|
const optionSelected = selected === item.value;
|
|
562
|
-
return (_createElement(ChoiceRow, { ...slotStyles, key: item.value, accessibilityHint: item.accessibilityHint, checked: optionSelected, description: item.description, disabled: optionDisabled, indicator: indicator, invalid: hasError, invalidLabel: invalidLabel ?? error, kind: "radio", label: item.label, leading: item.leading, onActivate: () => setSelected(item.value), webTabIndex: !optionDisabled && !readOnly && item.value === webTabStop ? 0 : -1, presentation: presentation, readOnly: readOnly, readOnlyLabel: readOnlyLabel, renderIndicator: renderIndicator ? (props) => renderIndicator(item, props) : undefined, renderLeading: renderLeading ? (props) => renderLeading(item, props) : undefined, required: required, requiredLabel: requiredLabel, size: size }));
|
|
585
|
+
return (_createElement(ChoiceRow, { ...slotStyles, key: item.value, accessibilityHint: item.accessibilityHint, checked: optionSelected, description: item.description, disabled: optionDisabled, indicator: indicator, invalid: hasError, invalidLabel: invalidLabel ?? error, kind: "radio", label: item.label, labelContent: renderLabel?.(item), ...(item.action ? { action: item.action } : {}), leading: item.leading, onActivate: () => setSelected(item.value), webTabIndex: !optionDisabled && !readOnly && item.value === webTabStop ? 0 : -1, presentation: presentation, readOnly: readOnly, readOnlyLabel: readOnlyLabel, renderIndicator: renderIndicator ? (props) => renderIndicator(item, props) : undefined, renderLeading: renderLeading ? (props) => renderLeading(item, props) : undefined, required: required, requiredLabel: requiredLabel, size: size }));
|
|
563
586
|
}) }));
|
|
564
587
|
}
|
|
565
588
|
/** Validated controlled/uncontrolled checkbox collection using immutable Sets. */
|
|
566
|
-
export function CheckboxGroup({ label, accessibilityLabel, items, value, defaultValue = new Set(), onValueChange, required = false, disabled = false, readOnly = false, invalid = false, description, error, requiredLabel, readOnlyLabel, invalidLabel, orientation = selectionGroupBehaviorDefaults.orientation, presentation = selectionGroupRecipe.defaults.presentation, size = selectionControlRecipe.defaults.size, indicator = "default", renderLeading, renderIndicator, layoutStyle, ...slotStyles }) {
|
|
589
|
+
export function CheckboxGroup({ label, accessibilityLabel, items, value, defaultValue = new Set(), onValueChange, required = false, disabled = false, readOnly = false, invalid = false, description, error, requiredLabel, readOnlyLabel, invalidLabel, orientation = selectionGroupBehaviorDefaults.orientation, grid, presentation = selectionGroupRecipe.defaults.presentation, size = selectionControlRecipe.defaults.size, indicator = "default", renderLeading, renderIndicator, layoutStyle, ...slotStyles }) {
|
|
567
590
|
validateSelectionItems(items);
|
|
568
591
|
if (value !== undefined)
|
|
569
592
|
validateCheckboxSelection(items, value);
|
|
@@ -578,7 +601,7 @@ export function CheckboxGroup({ label, accessibilityLabel, items, value, default
|
|
|
578
601
|
setSelected(selected);
|
|
579
602
|
}, [selected, setSelected, storedValue, value]);
|
|
580
603
|
const hasError = invalid || error !== undefined;
|
|
581
|
-
return (_jsx(ChoiceGroupFrame, { accessibilityLabel: accessibilityLabel, description: description, disabled: disabled, error: error, label: label, orientation: orientation, presentation: presentation, readOnly: readOnly, readOnlyLabel: readOnlyLabel, required: required, requiredLabel: requiredLabel, layoutStyle: layoutStyle, children: items.map((item) => {
|
|
604
|
+
return (_jsx(ChoiceGroupFrame, { accessibilityLabel: accessibilityLabel, description: description, disabled: disabled, error: error, label: label, orientation: orientation, grid: grid, presentation: presentation, readOnly: readOnly, readOnlyLabel: readOnlyLabel, required: required, requiredLabel: requiredLabel, layoutStyle: layoutStyle, children: items.map((item) => {
|
|
582
605
|
const optionDisabled = disabled || item.disabled === true;
|
|
583
606
|
const optionSelected = selected.has(item.id);
|
|
584
607
|
return (_createElement(ChoiceRow, { ...slotStyles, key: item.id, checked: optionSelected, description: item.description, disabled: optionDisabled, indicator: indicator, invalid: hasError, invalidLabel: invalidLabel ?? error, kind: "checkbox", label: item.label, onActivate: () => setSelected(toggleCheckboxSelection(items, selected, item.id)), presentation: presentation, readOnly: readOnly, readOnlyLabel: readOnlyLabel, renderIndicator: renderIndicator ? (props) => renderIndicator(item, props) : undefined, renderLeading: renderLeading ? (props) => renderLeading(item, props) : undefined, required: required, requiredLabel: requiredLabel, size: size }));
|
|
@@ -611,7 +634,8 @@ export function Switch({ label, labelVisibility = "visible", presentation = swit
|
|
|
611
634
|
? {}
|
|
612
635
|
: { onChange: onCheckedChange }),
|
|
613
636
|
});
|
|
614
|
-
return (_jsxs(Pressable, { testID: testID, accessibilityHint: accessibilityHint ?? description, accessibilityLabel: accessibilityLabel ?? label, accessibilityRole: "switch", accessibilityState: { checked: enabled, disabled },
|
|
637
|
+
return (_jsxs(Pressable, { testID: testID, accessibilityHint: accessibilityHint ?? description, accessibilityLabel: accessibilityLabel ?? label, accessibilityRole: "switch", accessibilityState: { checked: enabled, disabled }, ...webOnly(webChoiceProps({ kind: "checkbox", checked: enabled, disabled, readOnly: false,
|
|
638
|
+
onActivate: () => setEnabled(!enabled) })), disabled: disabled, onPress: () => setEnabled(!enabled), style: ({ pressed }) => [
|
|
615
639
|
minimumTargetStyle,
|
|
616
640
|
{
|
|
617
641
|
alignItems: stacked ? "flex-start" : "center",
|
|
@@ -632,7 +656,14 @@ export function Switch({ label, labelVisibility = "visible", presentation = swit
|
|
|
632
656
|
flex: stacked || presentation === "inline" ? undefined : 1,
|
|
633
657
|
gap: spacing.xxs,
|
|
634
658
|
opacity: disabled ? switchRecipe.states.disabledOpacity : 1,
|
|
635
|
-
}, children: [_jsx(Text, { fontRole: "ui", tone: "body", variant: presentation === "row" ? switchRecipe.rowLabelTextVariant : "bodyLarge", children: label }), description ? (_jsx(Text, { tone: "muted", variant: "caption", children: description })) : null] }) : null, _jsx(
|
|
659
|
+
}, children: [_jsx(Text, { fontRole: "ui", tone: "body", variant: presentation === "row" ? switchRecipe.rowLabelTextVariant : "bodyLarge", children: label }), description ? (_jsx(Text, { tone: "muted", variant: "caption", children: description })) : null] }) : null, isWebRenderer ? _jsx(View, { ...props, "aria-hidden": true, accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", pointerEvents: "none", style: { width: dimensions.width, height: dimensions.height, flexDirection: "row", alignItems: "center",
|
|
660
|
+
justifyContent: enabled ? "flex-end" : "flex-start", direction: environment.direction,
|
|
661
|
+
borderRadius: dimensions.height / 2, borderWidth: 1, padding: dimensions.inset - 1,
|
|
662
|
+
borderColor: resolveColorReference(disabled ? enabled ? switchColors.trackOnBorderDisabled : switchColors.trackOffBorderDisabled : enabled ? switchColors.trackOnBorder : switchColors.trackOffBorder, palette),
|
|
663
|
+
backgroundColor: enabled ? trackOn : trackOff }, children: _jsx(View, { style: { width: dimensions.thumb, height: dimensions.thumb, borderRadius: dimensions.thumb / 2,
|
|
664
|
+
borderWidth: enabled && !disabled ? 0 : 1,
|
|
665
|
+
borderColor: resolveColorReference(disabled ? switchColors.thumbDisabledBorder : switchColors.thumbOffBorder, palette),
|
|
666
|
+
backgroundColor: resolveColorReference(disabled ? switchColors.thumbDisabled : enabled ? switchColors.thumbOn : switchColors.thumbOff, palette) } }) }) : _jsx(NativeSwitch, { ...props, accessible: false, disabled: disabled, ios_backgroundColor: trackOff, pointerEvents: "none", style: Platform.OS === "ios"
|
|
636
667
|
? { alignSelf: stacked ? "flex-start" : "center" }
|
|
637
668
|
: { height: dimensions.height, width: dimensions.width }, thumbColor: thumb, trackColor: { false: trackOff, true: trackOn }, value: enabled })] }));
|
|
638
669
|
}
|
|
@@ -664,7 +695,7 @@ function NativeSelectionHighlight({ rect, selection, reducedMotion, pills, disab
|
|
|
664
695
|
return _jsx(Animated.View, { pointerEvents: "none", accessible: false, accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", style: { position: "absolute", left: positions.x, top: positions.y, width: positions.width, height: positions.height, borderRadius: pills ? segmentedControlRecipe.pills.radius : theme.tokens.radius[segmentedControlRecipe.item.radius], backgroundColor: resolveColorReference(pills ? segmentedControlRecipe.pills.selectedBackground : segmentedControlRecipe.item.selectedBackground, theme.palette), borderColor: resolveColorReference(segmentedControlRecipe.item.selectedBorder, theme.palette), borderWidth: pills ? 0 : segmentedControlRecipe.item.selectedBorderWidth, opacity: disabled ? segmentedControlRecipe.item.disabledOpacity : 1 } });
|
|
665
696
|
}
|
|
666
697
|
export function SegmentedControl(props) {
|
|
667
|
-
const { label, items, value, defaultValue, onValueChange, size = segmentedControlRecipe.defaults.size, presentation = "connected", textEmphasis = "strong", selectionMotion: suppliedSelectionMotion, disabled = false, layoutStyle, } = props;
|
|
698
|
+
const { label, items, value, defaultValue, onValueChange, size = segmentedControlRecipe.defaults.size, presentation = "connected", textEmphasis = "strong", selectionMotion: suppliedSelectionMotion, disabled = false, layoutStyle, overflow = "wrap", actions, testID, } = props;
|
|
668
699
|
// Removed aliases must not silently change the selected collection in JavaScript callers.
|
|
669
700
|
if ("options" in props || !Array.isArray(items))
|
|
670
701
|
throw new TypeError("SegmentedControl requires items; options was removed");
|
|
@@ -724,8 +755,22 @@ export function SegmentedControl(props) {
|
|
|
724
755
|
// Connected rows follow Web .hjm-segmented__items: items never shrink below their label (min-inline-size:
|
|
725
756
|
// max-content), spare width is shared, and an over-wide row scrolls instead of breaking labels mid-word
|
|
726
757
|
// (2026-10-17 review N6). Labels are not truncated; the horizontal scroll content leaves them unconstrained.
|
|
727
|
-
const scrollRow = !stacked && !pills && !textOnly;
|
|
758
|
+
const scrollRow = overflow === "scroll" || (!stacked && !pills && !textOnly);
|
|
728
759
|
const [trackWidth, setTrackWidth] = useState(0);
|
|
760
|
+
const railRef = useRef(null);
|
|
761
|
+
const railOffset = useRef(0);
|
|
762
|
+
const reveal = (rect) => {
|
|
763
|
+
if (!scrollRow || !rect || trackWidth <= 0)
|
|
764
|
+
return;
|
|
765
|
+
const offset = railOffset.current;
|
|
766
|
+
const next = rect.x < offset ? Math.max(0, rect.x) : rect.x + rect.width > offset + trackWidth
|
|
767
|
+
? Math.max(0, rect.x + rect.width - trackWidth) : offset;
|
|
768
|
+
if (next !== offset) {
|
|
769
|
+
railOffset.current = next;
|
|
770
|
+
railRef.current?.scrollTo({ x: next, animated: false });
|
|
771
|
+
}
|
|
772
|
+
};
|
|
773
|
+
useEffect(() => { reveal(selectedRect); }, [selectedRect, trackWidth, scrollRow]);
|
|
729
774
|
const borderWidth = pills || textOnly ? 0 : segmentedControlRecipe.container.borderWidth;
|
|
730
775
|
const containerStyle = {
|
|
731
776
|
backgroundColor: pills || textOnly ? "transparent" : resolveColorReference(segmentedControlRecipe.container.background, theme.palette),
|
|
@@ -736,7 +781,7 @@ export function SegmentedControl(props) {
|
|
|
736
781
|
};
|
|
737
782
|
const rowStyle = {
|
|
738
783
|
flexDirection: stacked ? "column" : "row",
|
|
739
|
-
flexWrap: pills ? "wrap" : "nowrap",
|
|
784
|
+
flexWrap: pills && !scrollRow ? "wrap" : "nowrap",
|
|
740
785
|
gap: textOnly ? segmentedControlRecipe.text.gap : pills ? segmentedControlRecipe.pills.gap : segmentedControlRecipe.container.gap,
|
|
741
786
|
padding: pills || textOnly ? 0 : segmentedControlRecipe.container.padding,
|
|
742
787
|
};
|
|
@@ -752,7 +797,7 @@ export function SegmentedControl(props) {
|
|
|
752
797
|
color: textOnly ? (isSelected ? theme.colors.text : theme.colors.textMuted) : contentColor,
|
|
753
798
|
size: glyph.sm,
|
|
754
799
|
});
|
|
755
|
-
return (_jsxs(Pressable, { onLayout: selectionMotion === "slide" ? event => {
|
|
800
|
+
return (_jsxs(Pressable, { onFocus: () => reveal(itemRects[item.value]), onLayout: selectionMotion === "slide" || scrollRow ? event => {
|
|
756
801
|
const { x, y, width, height } = event.nativeEvent.layout;
|
|
757
802
|
if (width <= 0 || height <= 0)
|
|
758
803
|
return;
|
|
@@ -760,7 +805,9 @@ export function SegmentedControl(props) {
|
|
|
760
805
|
const old = previous[item.value];
|
|
761
806
|
return old && old.x === x && old.y === y && old.width === width && old.height === height ? previous : { ...previous, [item.value]: { x, y, width, height } };
|
|
762
807
|
});
|
|
763
|
-
} : undefined, accessibilityLabel: item.label, accessibilityRole: "radio", accessibilityState: { checked: isSelected, disabled: optionDisabled },
|
|
808
|
+
} : undefined, accessibilityLabel: item.accessibilityLabel ?? item.label, accessibilityRole: "radio", accessibilityState: { checked: isSelected, disabled: optionDisabled }, ...webOnly(webChoiceProps({ kind: "radio", checked: isSelected, disabled: optionDisabled,
|
|
809
|
+
readOnly: false, tabIndex: isSelected && !optionDisabled ? 0 : -1,
|
|
810
|
+
onActivate: () => setSelected(item.value) })), disabled: optionDisabled, hitSlop: pills || textOnly ? undefined : { top: itemHitSlop, bottom: itemHitSlop }, onPress: () => setSelected(item.value), style: ({ pressed }) => [
|
|
764
811
|
{
|
|
765
812
|
alignItems: "center",
|
|
766
813
|
backgroundColor: !textOnly && !movingHighlight && !pills && isSelected
|
|
@@ -774,20 +821,20 @@ export function SegmentedControl(props) {
|
|
|
774
821
|
? segmentedControlRecipe.item.selectedBorderWidth
|
|
775
822
|
: 0,
|
|
776
823
|
flexBasis: scrollRow ? "auto" : undefined,
|
|
777
|
-
flexGrow: scrollRow ? 1 : undefined,
|
|
824
|
+
flexGrow: scrollRow && !pills && !textOnly ? 1 : undefined,
|
|
778
825
|
flexShrink: scrollRow ? 0 : undefined,
|
|
779
826
|
maxWidth: pills ? "100%" : undefined,
|
|
780
827
|
// Leading artwork and its label share a row; column layout squeezed theme options.
|
|
781
828
|
flexDirection: textOnly ? "column" : "row",
|
|
782
829
|
gap: segmentedControlRecipe.item.gap,
|
|
783
830
|
justifyContent: "center",
|
|
784
|
-
minHeight: pills ? segmentedControlRecipe.pills.minHeight : textOnly ? segmentedControlRecipe.text.minHeight : itemMinHeight,
|
|
831
|
+
minHeight: pills ? Math.max(segmentedControlRecipe.pills.minHeight, outerHeight + 2 * segmentedControlRecipe.pills.inset) : textOnly ? segmentedControlRecipe.text.minHeight : itemMinHeight,
|
|
785
832
|
opacity: optionDisabled
|
|
786
833
|
? segmentedControlRecipe.item.disabledOpacity
|
|
787
834
|
: pressed
|
|
788
835
|
? segmentedControlRecipe.item.pressedOpacity
|
|
789
836
|
: 1,
|
|
790
|
-
paddingHorizontal: textOnly ? 0 : pills ?
|
|
837
|
+
paddingHorizontal: textOnly ? 0 : pills ? chipRecipe.sizes[size].paddingHorizontal : sizeContract.paddingHorizontal,
|
|
791
838
|
paddingVertical: pills ? segmentedControlRecipe.pills.inset : undefined,
|
|
792
839
|
width: stacked ? "100%" : undefined,
|
|
793
840
|
},
|
|
@@ -796,11 +843,15 @@ export function SegmentedControl(props) {
|
|
|
796
843
|
fontWeight: textOnly ? segmentedControlRecipe.text[textEmphasis][isSelected ? "selected" : "idle"] : isSelected
|
|
797
844
|
? segmentedControlRecipe.item.selectedFontWeight
|
|
798
845
|
: segmentedControlRecipe.item.fontWeight,
|
|
799
|
-
}, tone: isSelected ? "brand" : "muted", variant: textOnly ? "bodyLarge" : sizeContract.textVariant, children: item.label }), textOnly ? _jsx(View, { accessible: false, style: { width: segmentedControlRecipe.text.indicatorWidth, height: segmentedControlRecipe.text.indicatorHeight, borderRadius: segmentedControlRecipe.text.indicatorRadius, backgroundColor: isSelected ? theme.colors.contentBrand : "transparent" } }) : null] }, item.value));
|
|
846
|
+
}, tone: isSelected ? "brand" : "muted", variant: textOnly ? "bodyLarge" : pills ? chipRecipe.sizes[size].textVariant : sizeContract.textVariant, children: item.label }), textOnly ? _jsx(View, { accessible: false, style: { width: segmentedControlRecipe.text.indicatorWidth, height: segmentedControlRecipe.text.indicatorHeight, borderRadius: segmentedControlRecipe.text.indicatorRadius, backgroundColor: isSelected ? theme.colors.contentBrand : "transparent" } }) : null] }, item.value));
|
|
800
847
|
})] }));
|
|
801
848
|
// The scroller clips its content, so it reaches `outerSlop` past the 36 track on each block side (negative
|
|
802
849
|
// margin, no layout growth) and the options' vertical slop can complete the 44 target like Chip's hitSlop.
|
|
803
|
-
|
|
850
|
+
// An explicit flexGrow:0 overrides Yoga's flex:1 shorthand. Apply it only without actions,
|
|
851
|
+
// otherwise the radio rail collapses to zero while its fixed actions remain visible.
|
|
852
|
+
const group = scrollRow ? (_jsx(View, { accessibilityLabel: label, accessibilityRole: "radiogroup", testID: actions == null ? testID : undefined, style: [actions == null ? { flexGrow: 0 } : { flex: 1, minWidth: 0 }, actions == null ? layoutStyle : undefined], children: _jsx(ScrollView, { ref: railRef, horizontal: true, keyboardShouldPersistTaps: "handled", onScroll: event => { railOffset.current = event.nativeEvent.contentOffset.x; }, scrollEventThrottle: 16, showsHorizontalScrollIndicator: false, onLayout: event => setTrackWidth(event.nativeEvent.layout.width), style: { direction: "ltr", flexGrow: 0, marginVertical: pills || textOnly ? 0 : -outerSlop }, contentContainerStyle: { minWidth: pills || textOnly ? undefined : trackWidth, paddingVertical: pills || textOnly ? 0 : outerSlop }, children: _jsx(View, { style: [containerStyle, rowStyle, { flexGrow: 1 }], children: content }) }) })) : (_jsx(View, { accessibilityLabel: label, accessibilityRole: "radiogroup", testID: actions == null ? testID : undefined, style: [containerStyle, rowStyle, actions == null ? layoutStyle : { flex: 1, minWidth: 0 }], children: content }));
|
|
853
|
+
// Actions are siblings, not radio options, and stay visible while the filter row scrolls (Spint spot rail).
|
|
854
|
+
return actions == null ? group : _jsxs(View, { testID: testID, style: [{ flexDirection: "row", direction: environment.direction, alignItems: "center", gap: spacing.xs }, layoutStyle], children: [group, actions] });
|
|
804
855
|
}
|
|
805
856
|
/** Action/filter chip with role-specific, controlled selection semantics. */
|
|
806
857
|
/** Forwards the host View ref so a chip can be a focus-return target (2026-10-16, DiscoveryGallery). */
|