@kanso-labs/react-native-kanso-ui 0.6.0 → 0.8.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 +37 -0
- package/dist/badge/index.js +25 -23
- package/dist/badge/index.js.map +1 -1
- package/dist/button/index.d.ts +2 -1
- package/dist/button/index.js.map +1 -1
- package/dist/button/pending.js +17 -21
- package/dist/button/pending.js.map +1 -1
- package/dist/calendar/index.js +1182 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/calendar/styles.js +120 -0
- package/dist/calendar/styles.js.map +1 -0
- package/dist/components/autocomplete/index.js +28 -26
- package/dist/components/autocomplete/index.js.map +1 -1
- package/dist/components/avatar/index.d.ts +2 -2
- package/dist/components/avatar/index.js +2 -2
- package/dist/components/avatar/index.js.map +1 -1
- package/dist/components/calendar/index.d.ts +51 -0
- package/dist/components/calendar/index.js +121 -0
- package/dist/components/calendar/index.js.map +1 -0
- package/dist/components/chip-group/index.d.ts +4 -3
- package/dist/components/chip-group/index.js +47 -45
- package/dist/components/chip-group/index.js.map +1 -1
- package/dist/components/copy-field/index.d.ts +5 -5
- package/dist/components/copy-field/index.js +30 -28
- package/dist/components/copy-field/index.js.map +1 -1
- package/dist/components/currency/index.d.ts +2 -2
- package/dist/components/currency/index.js +3 -1
- package/dist/components/currency/index.js.map +1 -1
- package/dist/components/list/index.d.ts +6 -5
- package/dist/components/list/index.js +97 -106
- package/dist/components/list/index.js.map +1 -1
- package/dist/components/menu/index.d.ts +4 -3
- package/dist/components/menu/index.js +33 -40
- package/dist/components/menu/index.js.map +1 -1
- package/dist/components/meter/index.d.ts +2 -1
- package/dist/components/meter/index.js +9 -7
- package/dist/components/meter/index.js.map +1 -1
- package/dist/components/navigation-bar/index.d.ts +3 -9
- package/dist/components/navigation-bar/index.js +10 -34
- package/dist/components/navigation-bar/index.js.map +1 -1
- package/dist/components/navigation-rail/index.d.ts +68 -0
- package/dist/components/navigation-rail/index.js +294 -0
- package/dist/components/navigation-rail/index.js.map +1 -0
- package/dist/components/number-field/index.d.ts +7 -3
- package/dist/components/number-field/index.js +214 -192
- package/dist/components/number-field/index.js.map +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/product-icon/index.d.ts +2 -2
- package/dist/components/product-icon/index.js +2 -2
- package/dist/components/product-icon/index.js.map +1 -1
- package/dist/components/progress-indicator/index.d.ts +2 -1
- package/dist/components/progress-indicator/index.js +15 -13
- package/dist/components/progress-indicator/index.js.map +1 -1
- package/dist/components/search-field/index.d.ts +3 -3
- package/dist/components/search-field/index.js +105 -104
- package/dist/components/search-field/index.js.map +1 -1
- package/dist/components/sheet/index.d.ts +2 -2
- package/dist/components/sheet/index.js +22 -26
- package/dist/components/sheet/index.js.map +1 -1
- package/dist/components/snackbar/index.d.ts +3 -3
- package/dist/components/snackbar/index.js +36 -34
- package/dist/components/snackbar/index.js.map +1 -1
- package/dist/components/tag/index.d.ts +58 -0
- package/dist/components/tag/index.js +205 -0
- package/dist/components/tag/index.js.map +1 -0
- package/dist/components/text-field/index.d.ts +6 -3
- package/dist/components/text-field/index.js +3 -0
- package/dist/components/text-field/index.js.map +1 -1
- package/dist/field/index.js +39 -36
- package/dist/field/index.js.map +1 -1
- package/dist/glyphs/index.js +19 -1
- package/dist/glyphs/index.js.map +1 -1
- package/dist/i18n/index.js +12 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/messages.js +741 -0
- package/dist/i18n/messages.js.map +1 -1
- package/dist/i18n/provider.d.ts +53 -0
- package/dist/i18n/provider.js +96 -0
- package/dist/i18n/provider.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +6 -2
- package/dist/indicator/index.js +1 -2
- package/dist/indicator/index.js.map +1 -1
- package/dist/mark/index.js +77 -117
- package/dist/mark/index.js.map +1 -1
- package/dist/mark/initials.js.map +1 -1
- package/dist/navigation/index.d.ts +8 -1
- package/dist/navigation/index.js +113 -64
- package/dist/navigation/index.js.map +1 -1
- package/dist/navigation/styles.js +22 -0
- package/dist/navigation/styles.js.map +1 -1
- package/dist/number/count.js +15 -0
- package/dist/number/count.js.map +1 -0
- package/dist/number/locale.js.map +1 -1
- package/dist/overlay/host.js +30 -21
- package/dist/overlay/host.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ComponentRef","ReactNode","Ref","StyleProp","TextInput","TextInputProps","ViewStyle","useId","useImperativeHandle","useRef","useState","View","FieldVariant","ValidationResult","describedBy","FieldBox","FieldInput","FieldMessage","useFieldFocus","useFieldValidation","TextFieldProps","Omit","characterCount","characterLimitLabel","defaultValue","description","error","floatingLabel","inputRef","isDisabled","isReadOnly","isRequired","label","leadingIcon","name","numeric","onChange","value","prefix","ref","style","suffix","trailingIcon","validate","variant","blurThen","onBlur","then","event","editInto","setOwn","onEdit","text","TextField","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","onFocus","t8","props","undefined","id","control","own","current","t9","t10","isEmpty","submitted","validation","t11","t12","focus","shownError","t13","t14","Symbol","for","T0","T1","t15","focused","t16","t17","T2","t18","handlers","t19","maxLength","t20","t21","t22","t23","t24","length","t25","_c"],"sources":["../../../src/components/text-field/index.tsx"],"sourcesContent":["import type { ComponentRef, ReactNode, Ref } from 'react'\nimport type {\n StyleProp,\n TextInput,\n TextInputProps,\n ViewStyle,\n} from 'react-native'\n\nimport { useId, useImperativeHandle, useRef, useState } from 'react'\nimport { View } from 'react-native'\n\nimport type { FieldVariant } from '../../field'\nimport type { ValidationResult } from '../../form'\n\nimport {\n describedBy,\n FieldBox,\n FieldInput,\n FieldMessage,\n useFieldFocus,\n} from '../../field'\nimport { useFieldValidation } from '../../form'\n\n// kanso-ui's TextField, drawn through the field chrome in src/field: the box\n// with its label and icons, the control on the value's line with its prefix\n// and suffix, and the supporting line under it with the count. What the\n// chrome draws, and how it draws it, is written there.\n//\n// The value is the field's own or the call site's. Given `value` it shows\n// that and reports edits through `onChange`; given `defaultValue`, or\n// nothing, it keeps what is typed itself. `onChange` is handed the string, as\n// web's is, rather than React Native's event.\n//\n// **Web's `isInvalid` is not a prop here either.** The error is what puts the\n// field in its error state, the message and the colours and the invalid\n// state a screen reader reads following from it, so a field cannot be\n// invalid with nothing to say why. The error shown is `error`, or what the\n// field's `validate` and the `Form` around it say, which src/form decides.\n\ntype TextFieldProps = Omit<\n TextInputProps,\n | 'accessibilityHint'\n | 'accessibilityLabel'\n | 'aria-disabled'\n | 'aria-label'\n | 'children'\n | 'cursorColor'\n | 'defaultValue'\n | 'editable'\n | 'multiline'\n | 'numberOfLines'\n | 'onChange'\n | 'onChangeText'\n | 'placeholder'\n | 'placeholderTextColor'\n | 'readOnly'\n | 'selectionColor'\n | 'style'\n | 'underlineColorAndroid'\n | 'value'\n> & {\n /**\n * Counts the characters the field holds at the end of the supporting line,\n * against `maxLength` where there is one, as the text fields page's\n * character counter does. The count is written in the device's digits.\n * @default false\n */\n readonly characterCount?: boolean\n /**\n * How the limit is said to a screen reader, where there is a `maxLength`.\n * Read with the field rather than as the value changes, so it names the\n * limit and not what is left of it; the visible count is hidden from\n * screen readers, which is what this replaces. Left out, it is the English\n * sentence, \"Up to 20 characters\", singular for a limit of one.\n */\n readonly characterLimitLabel?: string\n /** The value the field opens with, when it keeps its own. */\n readonly defaultValue?: string\n /**\n * A hint shown under the field. Replaced by `error` when there is one, so\n * the two never stack.\n */\n readonly description?: string\n /**\n * The problem with the current value, in words. Its presence is what puts\n * the field in its error state: the message, the error colours, and the\n * invalid state a screen reader reads all follow from it. The line under\n * the field arrives with the message, so the field grows when this does,\n * unless it is inside a `Form`, which keeps the line drawn. It wins over\n * what `validate` and the form say, and holds a `native` form back.\n */\n readonly error?: string\n /**\n * Whether the label sits in the empty box and floats to the top once the\n * field is focused or holds a value, as the text fields page draws it.\n * `false` keeps it small at the top in every state.\n * @default true\n */\n readonly floatingLabel?: boolean\n /**\n * A ref to the field's own `TextInput`, which is what a call site moves\n * focus to, after a server's error, say. `ref` is the field as a whole.\n */\n readonly inputRef?: Ref<ComponentRef<typeof TextInput>>\n /**\n * Draws the field disabled: it takes no focus and no input.\n * @default false\n */\n readonly isDisabled?: boolean\n /**\n * Shows the value and takes focus, but takes no input.\n * @default false\n */\n readonly isReadOnly?: boolean\n /**\n * Marks the label with an asterisk, as the text fields page marks a field\n * that must be filled.\n * @default false\n */\n readonly isRequired?: boolean\n /**\n * What the field is for, and the name a screen reader reads for it.\n * Required, since a text field with no label is a box nobody can name.\n */\n readonly label: string\n /**\n * An icon at the start of the box, before the label and the value: the\n * page's 24dp leading icon, in the muted role. The slot hands it that\n * colour and size through `useIconStyle()`.\n */\n readonly leadingIcon?: ReactNode\n /**\n * The name the value is submitted under by the `Form` around the field,\n * and the key its `validationErrors` reach the field by.\n */\n readonly name?: string\n /**\n * Renders the value in the mono face with tabular figures, for amounts and\n * other numbers meant to be compared down a column.\n * @default false\n */\n readonly numeric?: boolean\n /** Called with the new value as it is edited. */\n readonly onChange?: (value: string) => void\n /**\n * Text before the value on its line, in the muted role, shown while the\n * field is focused or holds a value.\n */\n readonly prefix?: ReactNode\n readonly ref?: Ref<ComponentRef<typeof View>>\n /** Positions and sizes the field as a whole. */\n readonly style?: StyleProp<ViewStyle>\n /**\n * Text after the value on its line, in the muted role, shown while the\n * field is focused or holds a value.\n */\n readonly suffix?: ReactNode\n /**\n * An icon at the end of the box, after the value: the page's 24dp trailing\n * icon, in the muted role and the error role while the field has an\n * error. The slot hands it that colour and size through `useIconStyle()`.\n */\n readonly trailingIcon?: ReactNode\n /**\n * Checks the value, and returns its problem in words, or several, where\n * there is one, and `true`, `null` or `undefined` where there is none.\n * Under the default `aria` validation the error shows as the value\n * changes; inside a `native` form it shows once a submission is tried, or\n * once the field loses focus after an edit, and holds the form back.\n */\n readonly validate?: (value: string) => ValidationResult\n /** The value, when the call site keeps it. */\n readonly value?: string\n /**\n * The filled box, or the outlined one: no fill, an outline that thickens\n * and takes the primary role while focused, and the label cutting it once\n * it floats, the text fields page's two fields.\n * @default 'filled'\n */\n readonly variant?: FieldVariant\n}\n\n// The field's own blur handling, then the call site's.\nfunction blurThen(\n onBlur: () => void,\n then: TextInputProps['onBlur'],\n): TextInputProps['onBlur'] {\n return (event) => {\n onBlur()\n then?.(event)\n }\n}\n\n// Keeps an edit as the field's own value and reports it, so a field the call\n// site controls is told and one it does not still shows what was typed, and\n// tells the field's validation it was edited.\nfunction editInto(\n setOwn: (value: string) => void,\n onChange: ((value: string) => void) | undefined,\n onEdit: () => void,\n) {\n return (text: string) => {\n setOwn(text)\n onEdit()\n onChange?.(text)\n }\n}\n\n/**\n * A labelled single-line input, the text fields page's filled or outlined\n * field. Pass `value` with `onChange` to control it, or `defaultValue` to let\n * it keep its own; `onChange` is handed the string.\n *\n * The page's configurations are props: `leadingIcon` and `trailingIcon` at\n * the box's ends, `prefix` and `suffix` on the value's line, and\n * `characterCount` opposite the supporting text, counting against\n * `maxLength`. React Native's own `TextInput` props, the keyboard and the\n * return key among them, reach the control; `style` and `ref` are the field\n * as a whole, and `inputRef` the control.\n *\n * ```tsx\n * <TextField label=\"Label\" description=\"Supporting line\" />\n * ```\n */\nfunction TextField({\n characterCount = false,\n characterLimitLabel,\n defaultValue = '',\n description,\n error,\n floatingLabel = true,\n inputRef,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n label,\n leadingIcon,\n name,\n numeric = false,\n onBlur,\n onChange,\n onFocus,\n prefix,\n ref,\n style,\n suffix,\n trailingIcon,\n validate,\n value,\n variant = 'filled',\n ...props\n}: TextFieldProps) {\n const id = useId()\n const control = useRef<ComponentRef<typeof TextInput>>(null)\n const [own, setOwn] = useState(defaultValue)\n const current = value ?? own\n const validation = useFieldValidation({\n control,\n error,\n isDisabled,\n isEmpty: current === '',\n isReadOnly,\n isRequired,\n name,\n submitted: current,\n validate,\n value: current,\n })\n const focus = useFieldFocus({\n onBlur: blurThen(validation.onBlur, onBlur),\n onFocus,\n })\n const shownError = validation.error\n\n useImperativeHandle<\n ComponentRef<typeof TextInput> | null,\n ComponentRef<typeof TextInput> | null\n >(inputRef, () => control.current, [])\n\n return (\n <View ref={ref} style={style}>\n <FieldBox\n control={control}\n floatingLabel={floatingLabel}\n isDisabled={isDisabled}\n isFocused={focus.focused}\n isInvalid={shownError !== undefined}\n isPopulated={current !== ''}\n isRequired={isRequired}\n label={label}\n leading={leadingIcon}\n trailing={trailingIcon}\n variant={variant}\n >\n <FieldInput\n {...props}\n {...focus.handlers}\n aria-label={label}\n described={describedBy(id, {\n characterLimitLabel,\n description,\n error: shownError,\n maxLength: props.maxLength,\n })}\n editable={!isDisabled && !isReadOnly}\n numeric={numeric}\n onChangeText={editInto(setOwn, onChange, validation.onEdit)}\n prefix={prefix}\n ref={control}\n suffix={suffix}\n value={current}\n />\n </FieldBox>\n <FieldMessage\n characterCount={characterCount}\n characterLimitLabel={characterLimitLabel}\n description={description}\n error={shownError}\n id={id}\n length={current.length}\n maxLength={props.maxLength}\n />\n </View>\n )\n}\n\nexport { TextField }\nexport type { TextFieldProps }\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["ComponentRef","ReactNode","Ref","StyleProp","TextInput","TextInputProps","ViewStyle","useId","useImperativeHandle","useRef","useState","View","FieldVariant","ValidationResult","describedBy","FieldBox","FieldInput","FieldMessage","useFieldFocus","useFieldValidation","useLocaleOf","TextFieldProps","Omit","characterCount","characterLimitLabel","defaultValue","description","error","floatingLabel","inputRef","isDisabled","isReadOnly","isRequired","label","leadingIcon","name","numeric","onChange","value","prefix","ref","style","suffix","trailingIcon","validate","variant","blurThen","onBlur","then","event","editInto","setOwn","onEdit","text","TextField","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","onFocus","t8","props","undefined","id","control","own","current","t9","t10","isEmpty","submitted","validation","t11","t12","focus","shownError","locale","t13","t14","Symbol","for","T0","T1","t15","focused","t16","t17","T2","t18","handlers","t19","maxLength","t20","t21","t22","t23","t24","length","t25","_c"],"sources":["../../../src/components/text-field/index.tsx"],"sourcesContent":["import type { ComponentRef, ReactNode, Ref } from 'react'\nimport type {\n StyleProp,\n TextInput,\n TextInputProps,\n ViewStyle,\n} from 'react-native'\n\nimport { useId, useImperativeHandle, useRef, useState } from 'react'\nimport { View } from 'react-native'\n\nimport type { FieldVariant } from '../../field'\nimport type { ValidationResult } from '../../form'\n\nimport {\n describedBy,\n FieldBox,\n FieldInput,\n FieldMessage,\n useFieldFocus,\n} from '../../field'\nimport { useFieldValidation } from '../../form'\nimport { useLocaleOf } from '../../i18n/provider'\n\n// kanso-ui's TextField, drawn through the field chrome in src/field: the box\n// with its label and icons, the control on the value's line with its prefix\n// and suffix, and the supporting line under it with the count. What the\n// chrome draws, and how it draws it, is written there.\n//\n// The value is the field's own or the call site's. Given `value` it shows\n// that and reports edits through `onChange`; given `defaultValue`, or\n// nothing, it keeps what is typed itself. `onChange` is handed the string, as\n// web's is, rather than React Native's event.\n//\n// **Web's `isInvalid` is not a prop here either.** The error is what puts the\n// field in its error state, the message and the colours and the invalid\n// state a screen reader reads following from it, so a field cannot be\n// invalid with nothing to say why. The error shown is `error`, or what the\n// field's `validate` and the `Form` around it say, which src/form decides.\n\ntype TextFieldProps = Omit<\n TextInputProps,\n | 'accessibilityHint'\n | 'accessibilityLabel'\n | 'aria-disabled'\n | 'aria-label'\n | 'children'\n | 'cursorColor'\n | 'defaultValue'\n | 'editable'\n | 'multiline'\n | 'numberOfLines'\n | 'onChange'\n | 'onChangeText'\n | 'placeholder'\n | 'placeholderTextColor'\n | 'readOnly'\n | 'selectionColor'\n | 'style'\n | 'underlineColorAndroid'\n | 'value'\n> & {\n /**\n * Counts the characters the field holds at the end of the supporting line,\n * against `maxLength` where there is one, as the text fields page's\n * character counter does. The count is written in the digits of the\n * `I18nProvider`'s locale, or the device's outside one.\n * @default false\n */\n readonly characterCount?: boolean\n /**\n * How the limit is said to a screen reader, where there is a `maxLength`.\n * Read with the field rather than as the value changes, so it names the\n * limit and not what is left of it; the visible count is hidden from\n * screen readers, which is what this replaces. Left out, it is the\n * library's sentence in the `I18nProvider`'s locale, or the device's\n * outside one, in the plural form the limit takes there: \"Up to 20\n * characters\" in English, singular for a limit of one.\n */\n readonly characterLimitLabel?: string\n /** The value the field opens with, when it keeps its own. */\n readonly defaultValue?: string\n /**\n * A hint shown under the field. Replaced by `error` when there is one, so\n * the two never stack.\n */\n readonly description?: string\n /**\n * The problem with the current value, in words. Its presence is what puts\n * the field in its error state: the message, the error colours, and the\n * invalid state a screen reader reads all follow from it. The line under\n * the field arrives with the message, so the field grows when this does,\n * unless it is inside a `Form`, which keeps the line drawn. It wins over\n * what `validate` and the form say, and holds a `native` form back.\n */\n readonly error?: string\n /**\n * Whether the label sits in the empty box and floats to the top once the\n * field is focused or holds a value, as the text fields page draws it.\n * `false` keeps it small at the top in every state.\n * @default true\n */\n readonly floatingLabel?: boolean\n /**\n * A ref to the field's own `TextInput`, which is what a call site moves\n * focus to, after a server's error, say. `ref` is the field as a whole.\n */\n readonly inputRef?: Ref<ComponentRef<typeof TextInput>>\n /**\n * Draws the field disabled: it takes no focus and no input.\n * @default false\n */\n readonly isDisabled?: boolean\n /**\n * Shows the value and takes focus, but takes no input.\n * @default false\n */\n readonly isReadOnly?: boolean\n /**\n * Marks the label with an asterisk, as the text fields page marks a field\n * that must be filled.\n * @default false\n */\n readonly isRequired?: boolean\n /**\n * What the field is for, and the name a screen reader reads for it.\n * Required, since a text field with no label is a box nobody can name.\n */\n readonly label: string\n /**\n * An icon at the start of the box, before the label and the value: the\n * page's 24dp leading icon, in the muted role. The slot hands it that\n * colour and size through `useIconStyle()`.\n */\n readonly leadingIcon?: ReactNode\n /**\n * The name the value is submitted under by the `Form` around the field,\n * and the key its `validationErrors` reach the field by.\n */\n readonly name?: string\n /**\n * Renders the value in the mono face with tabular figures, for amounts and\n * other numbers meant to be compared down a column.\n * @default false\n */\n readonly numeric?: boolean\n /** Called with the new value as it is edited. */\n readonly onChange?: (value: string) => void\n /**\n * Text before the value on its line, in the muted role, shown while the\n * field is focused or holds a value.\n */\n readonly prefix?: ReactNode\n readonly ref?: Ref<ComponentRef<typeof View>>\n /** Positions and sizes the field as a whole. */\n readonly style?: StyleProp<ViewStyle>\n /**\n * Text after the value on its line, in the muted role, shown while the\n * field is focused or holds a value.\n */\n readonly suffix?: ReactNode\n /**\n * An icon at the end of the box, after the value: the page's 24dp trailing\n * icon, in the muted role and the error role while the field has an\n * error. The slot hands it that colour and size through `useIconStyle()`.\n */\n readonly trailingIcon?: ReactNode\n /**\n * Checks the value, and returns its problem in words, or several, where\n * there is one, and `true`, `null` or `undefined` where there is none.\n * Under the default `aria` validation the error shows as the value\n * changes; inside a `native` form it shows once a submission is tried, or\n * once the field loses focus after an edit, and holds the form back.\n */\n readonly validate?: (value: string) => ValidationResult\n /** The value, when the call site keeps it. */\n readonly value?: string\n /**\n * The filled box, or the outlined one: no fill, an outline that thickens\n * and takes the primary role while focused, and the label cutting it once\n * it floats, the text fields page's two fields.\n * @default 'filled'\n */\n readonly variant?: FieldVariant\n}\n\n// The field's own blur handling, then the call site's.\nfunction blurThen(\n onBlur: () => void,\n then: TextInputProps['onBlur'],\n): TextInputProps['onBlur'] {\n return (event) => {\n onBlur()\n then?.(event)\n }\n}\n\n// Keeps an edit as the field's own value and reports it, so a field the call\n// site controls is told and one it does not still shows what was typed, and\n// tells the field's validation it was edited.\nfunction editInto(\n setOwn: (value: string) => void,\n onChange: ((value: string) => void) | undefined,\n onEdit: () => void,\n) {\n return (text: string) => {\n setOwn(text)\n onEdit()\n onChange?.(text)\n }\n}\n\n/**\n * A labelled single-line input, the text fields page's filled or outlined\n * field. Pass `value` with `onChange` to control it, or `defaultValue` to let\n * it keep its own; `onChange` is handed the string.\n *\n * The page's configurations are props: `leadingIcon` and `trailingIcon` at\n * the box's ends, `prefix` and `suffix` on the value's line, and\n * `characterCount` opposite the supporting text, counting against\n * `maxLength`. React Native's own `TextInput` props, the keyboard and the\n * return key among them, reach the control; `style` and `ref` are the field\n * as a whole, and `inputRef` the control.\n *\n * ```tsx\n * <TextField label=\"Label\" description=\"Supporting line\" />\n * ```\n */\nfunction TextField({\n characterCount = false,\n characterLimitLabel,\n defaultValue = '',\n description,\n error,\n floatingLabel = true,\n inputRef,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n label,\n leadingIcon,\n name,\n numeric = false,\n onBlur,\n onChange,\n onFocus,\n prefix,\n ref,\n style,\n suffix,\n trailingIcon,\n validate,\n value,\n variant = 'filled',\n ...props\n}: TextFieldProps) {\n const id = useId()\n const control = useRef<ComponentRef<typeof TextInput>>(null)\n const [own, setOwn] = useState(defaultValue)\n const current = value ?? own\n const validation = useFieldValidation({\n control,\n error,\n isDisabled,\n isEmpty: current === '',\n isReadOnly,\n isRequired,\n name,\n submitted: current,\n validate,\n value: current,\n })\n const focus = useFieldFocus({\n onBlur: blurThen(validation.onBlur, onBlur),\n onFocus,\n })\n const shownError = validation.error\n const locale = useLocaleOf(undefined)\n\n useImperativeHandle<\n ComponentRef<typeof TextInput> | null,\n ComponentRef<typeof TextInput> | null\n >(inputRef, () => control.current, [])\n\n return (\n <View ref={ref} style={style}>\n <FieldBox\n control={control}\n floatingLabel={floatingLabel}\n isDisabled={isDisabled}\n isFocused={focus.focused}\n isInvalid={shownError !== undefined}\n isPopulated={current !== ''}\n isRequired={isRequired}\n label={label}\n leading={leadingIcon}\n trailing={trailingIcon}\n variant={variant}\n >\n <FieldInput\n {...props}\n {...focus.handlers}\n aria-label={label}\n described={describedBy(id, {\n characterLimitLabel,\n description,\n error: shownError,\n locale,\n maxLength: props.maxLength,\n })}\n editable={!isDisabled && !isReadOnly}\n numeric={numeric}\n onChangeText={editInto(setOwn, onChange, validation.onEdit)}\n prefix={prefix}\n ref={control}\n suffix={suffix}\n value={current}\n />\n </FieldBox>\n <FieldMessage\n characterCount={characterCount}\n characterLimitLabel={characterLimitLabel}\n description={description}\n error={shownError}\n id={id}\n length={current.length}\n maxLength={props.maxLength}\n />\n </View>\n )\n}\n\nexport { TextField }\nexport type { TextFieldProps }\n"],"mappings":"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"}
|
package/dist/field/index.js
CHANGED
|
@@ -5,6 +5,9 @@ import { usePressFeedback } from "../press/index.js";
|
|
|
5
5
|
import { useFontFamily } from "../typography/fonts.js";
|
|
6
6
|
import { useTypeRole } from "../typography/roles.js";
|
|
7
7
|
import { withOpacity } from "../theme/color.js";
|
|
8
|
+
import { formatCount } from "../number/count.js";
|
|
9
|
+
import { limitFor } from "../i18n/index.js";
|
|
10
|
+
import { useLocaleOf } from "../i18n/provider.js";
|
|
8
11
|
import { useInsideForm } from "../form/index.js";
|
|
9
12
|
import { fieldStylesOf } from "./styles.js";
|
|
10
13
|
import { c } from "react/compiler-runtime";
|
|
@@ -24,14 +27,13 @@ const OUTSIDE_BOX = {
|
|
|
24
27
|
};
|
|
25
28
|
const BoxContext = createContext(OUTSIDE_BOX);
|
|
26
29
|
const NO_PARTS = [];
|
|
27
|
-
let counterFormat;
|
|
28
30
|
/**
|
|
29
31
|
* How a field's control is described by the line under it: the error while
|
|
30
32
|
* there is one, otherwise the description, then the limit where there is a
|
|
31
33
|
* `maxLength`. Hand the result to {@link FieldInput} as `described`, and the
|
|
32
34
|
* same `id` to {@link FieldMessage}.
|
|
33
35
|
*/
|
|
34
|
-
function describedBy(id, { characterLimitLabel, description, error, maxLength }) {
|
|
36
|
+
function describedBy(id, { characterLimitLabel, description, error, locale, maxLength }) {
|
|
35
37
|
const ids = idsOf(id);
|
|
36
38
|
const message = error === void 0 ? {
|
|
37
39
|
id: ids.description,
|
|
@@ -40,7 +42,7 @@ function describedBy(id, { characterLimitLabel, description, error, maxLength })
|
|
|
40
42
|
id: ids.error,
|
|
41
43
|
text: error
|
|
42
44
|
};
|
|
43
|
-
const limit = limitOf(maxLength, characterLimitLabel);
|
|
45
|
+
const limit = limitOf(maxLength, characterLimitLabel, locale);
|
|
44
46
|
return [...message.text === "" ? [] : [message], ...limit === void 0 ? [] : [{
|
|
45
47
|
id: ids.limit,
|
|
46
48
|
text: limit
|
|
@@ -449,7 +451,7 @@ function FieldInput(t0) {
|
|
|
449
451
|
* once in the control's description instead.
|
|
450
452
|
*/
|
|
451
453
|
function FieldMessage(t0) {
|
|
452
|
-
const $ = c(
|
|
454
|
+
const $ = c(19);
|
|
453
455
|
const { characterCount: t1, characterLimitLabel, description, error, id, length: t2, maxLength } = t0;
|
|
454
456
|
const characterCount = t1 === void 0 ? false : t1;
|
|
455
457
|
const length = t2 === void 0 ? 0 : t2;
|
|
@@ -465,13 +467,15 @@ function FieldMessage(t0) {
|
|
|
465
467
|
} else t3 = $[1];
|
|
466
468
|
const ids = t3;
|
|
467
469
|
const invalid = error !== void 0;
|
|
470
|
+
const locale = useLocaleOf(void 0);
|
|
468
471
|
let t4;
|
|
469
|
-
if ($[2] !== characterLimitLabel || $[3] !== maxLength) {
|
|
470
|
-
t4 = limitOf(maxLength, characterLimitLabel);
|
|
472
|
+
if ($[2] !== characterLimitLabel || $[3] !== locale || $[4] !== maxLength) {
|
|
473
|
+
t4 = limitOf(maxLength, characterLimitLabel, locale);
|
|
471
474
|
$[2] = characterLimitLabel;
|
|
472
|
-
$[3] =
|
|
473
|
-
$[4] =
|
|
474
|
-
|
|
475
|
+
$[3] = locale;
|
|
476
|
+
$[4] = maxLength;
|
|
477
|
+
$[5] = t4;
|
|
478
|
+
} else t4 = $[5];
|
|
475
479
|
const limit = t4;
|
|
476
480
|
const insideForm = useInsideForm();
|
|
477
481
|
const collapsed = !invalid && description === void 0 && !characterCount && !insideForm;
|
|
@@ -487,7 +491,7 @@ function FieldMessage(t0) {
|
|
|
487
491
|
children: error
|
|
488
492
|
}) : null;
|
|
489
493
|
let t8;
|
|
490
|
-
if ($[
|
|
494
|
+
if ($[6] !== t6 || $[7] !== t7) {
|
|
491
495
|
t8 = /* @__PURE__ */ jsx(View, {
|
|
492
496
|
"aria-live": "polite",
|
|
493
497
|
...Platform.OS === "web" ? ATOMIC : void 0,
|
|
@@ -495,10 +499,10 @@ function FieldMessage(t0) {
|
|
|
495
499
|
style: t6,
|
|
496
500
|
children: t7
|
|
497
501
|
});
|
|
498
|
-
$[
|
|
499
|
-
$[
|
|
500
|
-
$[
|
|
501
|
-
} else t8 = $[
|
|
502
|
+
$[6] = t6;
|
|
503
|
+
$[7] = t7;
|
|
504
|
+
$[8] = t8;
|
|
505
|
+
} else t8 = $[8];
|
|
502
506
|
const t9 = invalid || description === void 0 ? null : /* @__PURE__ */ jsx(Text, {
|
|
503
507
|
...Platform.OS === "web" ? void 0 : HIDDEN,
|
|
504
508
|
id: ids.description,
|
|
@@ -506,23 +510,23 @@ function FieldMessage(t0) {
|
|
|
506
510
|
children: description
|
|
507
511
|
});
|
|
508
512
|
let t10;
|
|
509
|
-
if ($[
|
|
513
|
+
if ($[9] !== ids || $[10] !== limit) {
|
|
510
514
|
t10 = limit === void 0 || Platform.OS !== "web" ? null : /* @__PURE__ */ jsx(Text, {
|
|
511
515
|
id: ids.limit,
|
|
512
516
|
style: NOT_DRAWN,
|
|
513
517
|
children: limit
|
|
514
518
|
});
|
|
515
|
-
$[
|
|
516
|
-
$[
|
|
517
|
-
$[
|
|
518
|
-
} else t10 = $[
|
|
519
|
+
$[9] = ids;
|
|
520
|
+
$[10] = limit;
|
|
521
|
+
$[11] = t10;
|
|
522
|
+
} else t10 = $[11];
|
|
519
523
|
const t11 = characterCount ? /* @__PURE__ */ jsx(Text, {
|
|
520
524
|
"aria-hidden": true,
|
|
521
525
|
style: composeStyles(messageStyle, styles.counter),
|
|
522
|
-
children: countOf(length, maxLength)
|
|
526
|
+
children: countOf(length, maxLength, locale)
|
|
523
527
|
}) : null;
|
|
524
528
|
let t12;
|
|
525
|
-
if ($[
|
|
529
|
+
if ($[12] !== T0 || $[13] !== t10 || $[14] !== t11 || $[15] !== t5 || $[16] !== t8 || $[17] !== t9) {
|
|
526
530
|
t12 = /* @__PURE__ */ jsxs(T0, {
|
|
527
531
|
style: t5,
|
|
528
532
|
children: [
|
|
@@ -532,14 +536,14 @@ function FieldMessage(t0) {
|
|
|
532
536
|
t11
|
|
533
537
|
]
|
|
534
538
|
});
|
|
535
|
-
$[
|
|
536
|
-
$[
|
|
537
|
-
$[
|
|
538
|
-
$[
|
|
539
|
-
$[
|
|
540
|
-
$[
|
|
541
|
-
$[
|
|
542
|
-
} else t12 = $[
|
|
539
|
+
$[12] = T0;
|
|
540
|
+
$[13] = t10;
|
|
541
|
+
$[14] = t11;
|
|
542
|
+
$[15] = t5;
|
|
543
|
+
$[16] = t8;
|
|
544
|
+
$[17] = t9;
|
|
545
|
+
$[18] = t12;
|
|
546
|
+
} else t12 = $[18];
|
|
543
547
|
return t12;
|
|
544
548
|
}
|
|
545
549
|
/**
|
|
@@ -772,9 +776,8 @@ function BoxLabel(t0) {
|
|
|
772
776
|
function colorOf(color) {
|
|
773
777
|
return { color };
|
|
774
778
|
}
|
|
775
|
-
function countOf(length, maxLength) {
|
|
776
|
-
|
|
777
|
-
return maxLength === void 0 ? counterFormat.format(length) : `${counterFormat.format(length)}/${counterFormat.format(maxLength)}`;
|
|
779
|
+
function countOf(length, maxLength, locale) {
|
|
780
|
+
return maxLength === void 0 ? formatCount(length, locale) : `${formatCount(length, locale)}/${formatCount(maxLength, locale)}`;
|
|
778
781
|
}
|
|
779
782
|
function descriptionOf(parts) {
|
|
780
783
|
if (Platform.OS === "web") return parts.length === 0 ? void 0 : { "aria-describedby": parts.map((part) => part.id).join(" ") };
|
|
@@ -800,12 +803,12 @@ function idsOf(id) {
|
|
|
800
803
|
};
|
|
801
804
|
}
|
|
802
805
|
/**
|
|
803
|
-
* The limit in words where there is one: the field's own, or
|
|
804
|
-
*
|
|
806
|
+
* The limit in words where there is one: the field's own, or the library's
|
|
807
|
+
* in `locale`.
|
|
805
808
|
*/
|
|
806
|
-
function limitOf(maxLength, label) {
|
|
809
|
+
function limitOf(maxLength, label, locale) {
|
|
807
810
|
if (maxLength === void 0) return;
|
|
808
|
-
return label ?? (maxLength
|
|
811
|
+
return label ?? limitFor(maxLength, locale);
|
|
809
812
|
}
|
|
810
813
|
function marginTopOf(marginTop) {
|
|
811
814
|
return { marginTop };
|
package/dist/field/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ComponentRef","ReactNode","Ref","RefObject","LayoutChangeEvent","StyleProp","TextInputProps","TextStyle","ViewProps","ViewStyle","AnimatedStyle","DerivedValue","createContext","use","useEffect","useId","useMemo","useRef","useState","AccessibilityInfo","Text","NativeText","Platform","Pressable","TextInput","useWindowDimensions","View","Animated","Easing","useAnimatedStyle","useDerivedValue","useReducedMotion","withTiming","IconStyle","ResolvedTheme","useInsideForm","IconStyleContext","usePressFeedback","withOpacity","useTheme","composeStyles","useFontFamily","useTypeRole","fieldStylesOf","BoxControl","disabled","floated","invalid","label","required","underLabel","DescribedBy","Pick","FieldBoxProps","children","control","end","floatingLabel","isDisabled","isFocused","isInvalid","isPopulated","isRequired","leading","trailing","variant","FieldVariant","FieldDescriptionPart","id","text","FieldInputProps","Omit","described","numeric","prefix","ref","suffix","FieldMessageProps","characterCount","characterLimitLabel","description","error","length","maxLength","FieldState","focused","hovered","FieldStatesProps","FieldStrokeProps","StrokeMotion","sides","style","LabelPlace","fontSize","letterSpacing","lineHeight","top","color","width","WebState","ICON_SIZE","OUTSIDE_BOX","BoxContext","NO_PARTS","counterFormat","Intl","NumberFormat","describedBy","ids","idsOf","message","undefined","limit","limitOf","FieldBox","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","theme","styles","fontScale","notch","setNotch","colors","radii","spacing","stateLayerOpacity","typography","t8","xs","borderTopEndRadius","borderTopStartRadius","t9","onSurface","corners","disableRipple","feedback","outlined","t10","state","rule","useRuleMotion","t11","t12","boxControlOf","boxControl","t13","disabledContent","T0","t14","t15","t16","handlers","onHoverIn","t17","onHoverOut","t18","focusOf","t19","box","boxLeading","boxTrailing","boxOutlined","boxDisabled","minHeightOf","lg","bodyLargeLineHeight","sm","bodySmallLineHeight","t20","outline","outlineStart","widthOf","outlineInset","outlineStartBox","outlineNotch","outlineNotchBox","outlineEnd","minWidthOf","outlineEndBox","layer","indicator","t21","onSurfaceVariant","icon","iconStyleOf","t22","t23","t24","t25","column","t26","t27","FieldInput","props","role","mono","fontFamilyMono","content","caret","primary","muted","affixed","clearance","marginTopOf","affixStyle","colorOf","descriptionOf","affixPart","webStateOf","OS","INHERITS_DIRECTION","input","numericOf","affixLine","FieldMessage","insideForm","collapsed","messageStyle","SHRINKS","useErrorAnnouncement","messageLine","messageLineCollapsed","OUT_OF_FLOW","ATOMIC","HIDDEN","NOT_DRAWN","counter","countOf","FieldStates","states","useFieldFocus","onBlur","onFocus","setFocused","event","event_0","const","dir","display","position","flexShrink","Affix","motion","reduceMotion","opacity","timing","duration","durationShort3","easing","bezier","easingStandard","fade","affix","String","BoxLabel","large","small","smallRole","place","bodyLargeSize","bodyLargeTracking","motionStyle","labelOutlined","labelTextOutlined","REQUIRED_MARK","format","parts","map","part","join","said","filter","accessibilityHint","current","focus","size","marginTop","minHeight","minWidth","NotchMeasure","onMeasure","notchMeasure","T1","widthTo","fontFamily","fontVariant","md","FieldStroke","stroke","borderColor","get","borderWidth","borderTopWidth","announceForAccessibility","onErrorContainer","disabledContainer","useStrokeMotion","durationShort2","nativeEvent","layout","_c","state","NativeText","color"],"sources":["../../src/field/index.tsx"],"sourcesContent":["import type { ComponentRef, ReactNode, Ref, RefObject } from 'react'\nimport type {\n LayoutChangeEvent,\n StyleProp,\n TextInputProps,\n TextStyle,\n ViewProps,\n ViewStyle,\n} from 'react-native'\nimport type { AnimatedStyle, DerivedValue } from 'react-native-reanimated'\n\nimport {\n createContext,\n use,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n AccessibilityInfo,\n Text as NativeText,\n Platform,\n Pressable,\n TextInput,\n useWindowDimensions,\n View,\n} from 'react-native'\nimport Animated, {\n Easing,\n useAnimatedStyle,\n useDerivedValue,\n useReducedMotion,\n withTiming,\n} from 'react-native-reanimated'\n\nimport type { IconStyle } from '../glyphs/icon-style'\nimport type { ResolvedTheme } from '../theme/scope'\n\nimport { useInsideForm } from '../form'\nimport { IconStyleContext } from '../glyphs/icon-style'\nimport { usePressFeedback } from '../press'\nimport { withOpacity } from '../theme/color'\nimport { useTheme } from '../theme/scope'\nimport { composeStyles } from '../theme/styles'\nimport { useFontFamily } from '../typography/fonts'\nimport { useTypeRole } from '../typography/roles'\nimport { fieldStylesOf } from './styles'\n\n// The chrome every field shares, as on web: the box with its label, the\n// control inside it, and the line of supporting text under it. Each field is\n// the parts it renders inside a root of its own, and these are not exported\n// from the package.\n//\n// The text fields page draws two boxes. The filled one carries surface\n// container highest with an active indicator along its bottom, 1dp in the\n// outline role at rest and 2dp in primary while focused, and its label floats\n// within it. The outlined one has no fill and a 1dp outline all round that\n// thickens the same way, and its label floats up onto the outline, cutting a\n// notch in it.\n//\n// **The label floats by changing its type and its place**, eased by\n// Reanimated over `durationShort3` on the standard curve, as web transitions\n// them: body large on the value's line while the field is empty and\n// unfocused, body small at the top once it is focused or holds a value.\n// `floatingLabel={false}` keeps it small at the top in label medium, as web's\n// fixed label is. Under reduced motion it moves at once.\n//\n// **The box grows with the device's text size.** Its height is a floor rather\n// than a height, the padding above and below plus the lines it holds, and the\n// lines are the type tokens' line heights at the device's font scale, which\n// is what React Native draws the text at. So the 56dp the page gives is the\n// floor at the default text size, and a larger one makes the box taller\n// rather than running the value out of it.\n//\n// **The outline is drawn from views**, since there is no fieldset to cut it:\n// three pieces in a row, the stretch before the label, the notch under it,\n// which draws only the bottom of the outline, and the stretch after it. The\n// notch is the label's width in its floated type, measured from a copy of it\n// out of sight, as web's legend holds one. Before the label floats it is\n// closed, and the two stretches meet.\n//\n// **A pointer over the filled box draws the state layer**, the one every\n// control draws through `usePressFeedback`, on surface at the hover opacity,\n// and turns the indicator on surface, as the page's hovered state does; one\n// over the outlined box turns the outline on surface. Web's filled box draws\n// neither. Focus wins over hover, and an error takes the\n// error role, or on error container under a pointer.\n//\n// **Disabled is the page's colour at an opacity, translucent**: the filled\n// container and the rule are on surface at the `disabledContainer` opacity,\n// and the label, the value and the icons on surface at `disabledContent`,\n// over whatever the field sits on rather than mixed over the surface role as\n// web's are.\n\n// What a control needs to know about the box around it: how the label is\n// drawn, whether the control clears it, and the states it takes its colours\n// from.\ntype BoxControl = {\n readonly disabled: boolean\n readonly floated: boolean\n readonly invalid: boolean\n readonly label: 'fixed' | 'floating' | 'none'\n readonly required: boolean\n readonly underLabel: boolean\n}\n\ntype DescribedBy = Pick<ViewProps, 'accessibilityHint'> & {\n readonly 'aria-describedby'?: string\n}\n\ntype FieldBoxProps = {\n readonly children?: ReactNode\n /**\n * The control the box focuses when it is pressed anywhere, as the whole\n * of a native text field's box takes a press.\n */\n readonly control: RefObject<ComponentRef<typeof TextInput> | null>\n /**\n * What the box holds after the label and the control's column, drawn as\n * it is rather than in an icon's slot, for a part laid out against the\n * box's own edges: a number field's steppers. The column, and the label\n * in it, end where this starts, 16dp before it.\n */\n readonly end?: ReactNode\n /**\n * Whether the label sits in the empty box and floats to the top once the\n * field is focused or holds a value. `false` keeps it small at the top.\n * @default true\n */\n readonly floatingLabel?: boolean\n /** @default false */\n readonly isDisabled?: boolean\n /** Whether the control has focus, which the box draws. */\n readonly isFocused?: boolean\n /** @default false */\n readonly isInvalid?: boolean\n /** Whether the control holds anything, which floats the label. */\n readonly isPopulated?: boolean\n /**\n * Marks the label with an asterisk, as the text fields page marks a field\n * that must be filled.\n * @default false\n */\n readonly isRequired?: boolean\n /** What the field is for. */\n readonly label: string\n /** An icon at the start of the box, before the label and the control. */\n readonly leading?: ReactNode\n /** An icon at the end of the box, after the control. */\n readonly trailing?: ReactNode\n /** @default 'filled' */\n readonly variant?: FieldVariant\n}\n\n/**\n * One piece of what describes a field's control: the text a screen reader\n * hears on iOS and Android, and the id of the element showing it, which the\n * control points at under React Native Web.\n */\ntype FieldDescriptionPart = {\n readonly id: string\n readonly text: string\n}\n\ntype FieldInputProps = Omit<\n TextInputProps,\n | 'accessibilityHint'\n | 'cursorColor'\n | 'multiline'\n | 'placeholderTextColor'\n | 'selectionColor'\n | 'style'\n | 'underlineColorAndroid'\n> & {\n /** What describes the control, after its prefix and suffix. */\n readonly described?: readonly FieldDescriptionPart[]\n /**\n * The value in the mono face with tabular figures.\n * @default false\n */\n readonly numeric?: boolean\n /** Text before the value on its line. */\n readonly prefix?: ReactNode\n readonly ref?: Ref<ComponentRef<typeof TextInput>>\n /** Text after the value on its line. */\n readonly suffix?: ReactNode\n}\n\ntype FieldMessageProps = {\n /**\n * Counts the characters, against `maxLength` where there is one.\n * @default false\n */\n readonly characterCount?: boolean\n /** How the limit is said to a screen reader. */\n readonly characterLimitLabel?: string | undefined\n /** The hint, which the error replaces while there is one. */\n readonly description?: string | undefined\n /** The problem with the value, in words. */\n readonly error?: string | undefined\n /** The field's id, as handed to {@link describedBy}. */\n readonly id: string\n /** How many characters the control holds. */\n readonly length?: number\n readonly maxLength?: number | undefined\n}\n\ntype FieldState = {\n readonly disabled: boolean\n readonly focused: boolean\n readonly hovered: boolean\n readonly invalid: boolean\n}\n\ntype FieldStatesProps = {\n readonly children?: ReactNode\n /** @default false */\n readonly isDisabled?: boolean\n /** @default false */\n readonly isInvalid?: boolean\n /** @default false */\n readonly isRequired?: boolean\n}\n\ntype FieldStrokeProps = StrokeMotion & {\n /** Every side of the view, or the top alone. */\n readonly sides: 'all' | 'top'\n readonly style: StyleProp<ViewStyle>\n}\n\n/**\n * The filled box, or the outlined one: no fill, an outline that thickens and\n * takes the primary role while focused, and the label cutting it once it\n * floats, the text fields page's two fields.\n */\ntype FieldVariant = 'filled' | 'outlined'\n\n// Where the label is and what type it is in, at rest or floated.\ntype LabelPlace = {\n readonly fontSize: number\n readonly letterSpacing: number\n readonly lineHeight: number\n readonly top: number\n}\n\n// The control's state as React Native Web hands it to a browser, which reads\n// `aria-invalid` and `aria-required` off the input. React Native has neither.\n// A rule's colour and width as they ease.\ntype StrokeMotion = {\n readonly color: DerivedValue<string>\n readonly width: DerivedValue<number>\n}\n\ntype WebState = {\n readonly 'aria-invalid'?: true\n readonly 'aria-required'?: true\n}\n\n// The page's icon, which the box's outline is laid out around.\nconst ICON_SIZE = 24\n\n// A control outside any box has no label over it.\nconst OUTSIDE_BOX: BoxControl = {\n disabled: false,\n floated: true,\n invalid: false,\n label: 'none',\n required: false,\n underLabel: false,\n}\n\nconst BoxContext = createContext<BoxControl>(OUTSIDE_BOX)\n\nconst NO_PARTS: readonly FieldDescriptionPart[] = []\n\nlet counterFormat: Intl.NumberFormat | undefined\n\n/**\n * How a field's control is described by the line under it: the error while\n * there is one, otherwise the description, then the limit where there is a\n * `maxLength`. Hand the result to {@link FieldInput} as `described`, and the\n * same `id` to {@link FieldMessage}.\n */\nfunction describedBy(\n id: string,\n {\n characterLimitLabel,\n description,\n error,\n maxLength,\n }: Pick<\n FieldMessageProps,\n 'characterLimitLabel' | 'description' | 'error' | 'maxLength'\n >,\n): readonly FieldDescriptionPart[] {\n const ids = idsOf(id)\n const message =\n error === undefined\n ? { id: ids.description, text: description ?? '' }\n : { id: ids.error, text: error }\n const limit = limitOf(maxLength, characterLimitLabel)\n\n return [\n ...(message.text === '' ? [] : [message]),\n ...(limit === undefined ? [] : [{ id: ids.limit, text: limit }]),\n ]\n}\n\n/**\n * The box a control sits in, filled or outlined, with its label. Pressed\n * anywhere, it focuses its control. The states it draws are handed to it,\n * since the field around it is what knows them.\n */\nfunction FieldBox({\n children,\n control,\n end,\n floatingLabel = true,\n isDisabled = false,\n isFocused = false,\n isInvalid = false,\n isPopulated = false,\n isRequired = false,\n label,\n leading,\n trailing,\n variant = 'filled',\n}: FieldBoxProps) {\n const theme = useTheme()\n const styles = fieldStylesOf(theme)\n const { fontScale } = useWindowDimensions()\n const [notch, setNotch] = useState(0)\n const { colors, radii, spacing, stateLayerOpacity, typography } = theme\n // The hover layer alone: a text field's box takes no pressed or focus\n // layer, since the indicator and the label are what mark its focus.\n const feedback = usePressFeedback({\n color: colors.onSurface,\n corners: {\n borderTopEndRadius: radii.xs,\n borderTopStartRadius: radii.xs,\n },\n disabled: isDisabled,\n disableRipple: true,\n })\n const outlined = variant === 'outlined'\n const floated = !floatingLabel || isFocused || isPopulated\n const state: FieldState = {\n disabled: isDisabled,\n focused: isFocused,\n hovered: feedback.hovered,\n invalid: isInvalid,\n }\n const rule = useRuleMotion(theme, state)\n const boxControl = useMemo(\n () =>\n boxControlOf(\n floatingLabel,\n floated,\n isDisabled,\n isInvalid,\n isRequired,\n !outlined,\n ),\n [floatingLabel, floated, isDisabled, isInvalid, isRequired, outlined],\n )\n const disabledContent = withOpacity(\n colors.onSurface,\n stateLayerOpacity.disabledContent,\n )\n\n return (\n <Pressable\n accessible={false}\n disabled={isDisabled}\n focusable={false}\n onHoverIn={feedback.handlers.onHoverIn}\n onHoverOut={feedback.handlers.onHoverOut}\n onPress={focusOf(control)}\n style={composeStyles<ViewStyle>(\n styles.box,\n leading === undefined ? undefined : styles.boxLeading,\n trailing === undefined ? undefined : styles.boxTrailing,\n outlined ? styles.boxOutlined : undefined,\n isDisabled && !outlined ? styles.boxDisabled : undefined,\n minHeightOf(\n outlined\n ? 2 * spacing.lg + typography.bodyLargeLineHeight * fontScale\n : 2 * spacing.sm +\n (typography.bodySmallLineHeight +\n typography.bodyLargeLineHeight) *\n fontScale,\n ),\n )}\n >\n {outlined ? (\n <View aria-hidden style={styles.outline}>\n <View\n style={composeStyles<ViewStyle>(\n styles.outlineStart,\n widthOf(outlineInset(spacing, leading)),\n )}\n >\n <FieldStroke\n color={rule.color}\n sides=\"all\"\n style={styles.outlineStartBox}\n width={rule.width}\n />\n </View>\n <View\n style={composeStyles<ViewStyle>(\n styles.outlineNotch,\n widthOf(floated ? notch : 0),\n )}\n >\n <FieldStroke\n color={rule.color}\n sides=\"all\"\n style={styles.outlineNotchBox}\n width={rule.width}\n />\n </View>\n <View\n style={composeStyles<ViewStyle>(\n styles.outlineEnd,\n minWidthOf(outlineInset(spacing, trailing)),\n )}\n >\n <FieldStroke\n color={rule.color}\n sides=\"all\"\n style={styles.outlineEndBox}\n width={rule.width}\n />\n </View>\n </View>\n ) : (\n <>\n {feedback.layer}\n <FieldStroke\n color={rule.color}\n sides=\"top\"\n style={styles.indicator}\n width={rule.width}\n />\n </>\n )}\n {leading === undefined ? null : (\n <View style={styles.icon}>\n <IconStyleContext\n value={iconStyleOf(\n isDisabled ? disabledContent : colors.onSurfaceVariant,\n )}\n >\n {leading}\n </IconStyleContext>\n </View>\n )}\n <View style={styles.column}>\n <BoxLabel\n floated={floated}\n floatingLabel={floatingLabel}\n isDisabled={isDisabled}\n isFocused={isFocused}\n isInvalid={isInvalid}\n isRequired={isRequired}\n variant={variant}\n >\n {label}\n </BoxLabel>\n {outlined ? (\n <NotchMeasure\n floatingLabel={floatingLabel}\n isRequired={isRequired}\n onMeasure={setNotch}\n >\n {label}\n </NotchMeasure>\n ) : null}\n <BoxContext value={boxControl}>{children}</BoxContext>\n </View>\n {end}\n {trailing === undefined ? null : (\n <View style={styles.icon}>\n <IconStyleContext\n value={iconStyleOf(\n isDisabled\n ? disabledContent\n : isInvalid\n ? colors.error\n : colors.onSurfaceVariant,\n )}\n >\n {trailing}\n </IconStyleContext>\n </View>\n )}\n </Pressable>\n )\n}\n\n/**\n * A field's text control, in a {@link FieldBox}, or in {@link FieldStates}\n * inside a container of a field's own. In a box it clears the label at the\n * top where the box is filled, and shows a prefix and a suffix only while the\n * label has floated, since at rest the label sits on their line. It takes the\n * error role for its caret while the field has an error, and draws a\n * placeholder in the muted role.\n *\n * It is described by its prefix and suffix, ahead of what the field hands it\n * in `described`, so a reader hears the unit the value is read against as a\n * sighted one sees it beside the value: on iOS and Android as its hint, and\n * under React Native Web through `aria-describedby`, which drops the hint.\n */\nfunction FieldInput({\n described = NO_PARTS,\n numeric = false,\n prefix,\n suffix,\n ...props\n}: FieldInputProps) {\n const box = use(BoxContext)\n const theme = useTheme()\n const styles = fieldStylesOf(theme)\n const { fontScale } = useWindowDimensions()\n const role = useTypeRole('bodyLarge')\n const mono = useFontFamily(theme.typography.fontFamilyMono)\n const id = useId()\n const { colors, stateLayerOpacity, typography } = theme\n const content = box.disabled\n ? withOpacity(colors.onSurface, stateLayerOpacity.disabledContent)\n : colors.onSurface\n const caret = box.invalid ? colors.error : colors.primary\n const muted = box.disabled\n ? withOpacity(colors.onSurface, stateLayerOpacity.disabledContent)\n : colors.onSurfaceVariant\n const affixed = prefix !== undefined || suffix !== undefined\n const clearance = box.underLabel\n ? marginTopOf(typography.bodySmallLineHeight * fontScale)\n : undefined\n const affixStyle = composeStyles<TextStyle>(role, colorOf(muted))\n\n const control = (\n <TextInput\n {...(Platform.OS === 'web' ? INHERITS_DIRECTION : undefined)}\n {...props}\n {...descriptionOf([\n ...affixPart(`${id}-prefix`, prefix),\n ...affixPart(`${id}-suffix`, suffix),\n ...described,\n ])}\n {...webStateOf(box)}\n aria-disabled={box.disabled}\n cursorColor={caret}\n placeholderTextColor={muted}\n selectionColor={caret}\n style={composeStyles<TextStyle>(\n role,\n styles.input,\n colorOf(content),\n numeric ? numericOf(mono) : undefined,\n minHeightOf(typography.bodyLargeLineHeight * fontScale),\n affixed ? undefined : clearance,\n )}\n underlineColorAndroid=\"transparent\"\n />\n )\n\n if (!affixed) {\n return control\n }\n\n return (\n <View style={composeStyles<ViewStyle>(styles.affixLine, clearance)}>\n {prefix === undefined ? null : (\n <Affix floated={box.floated} id={`${id}-prefix`} style={affixStyle}>\n {prefix}\n </Affix>\n )}\n {control}\n {suffix === undefined ? null : (\n <Affix floated={box.floated} id={`${id}-suffix`} style={affixStyle}>\n {suffix}\n </Affix>\n )}\n </View>\n )\n}\n\n/**\n * The line under a field: the error while there is one, the description\n * otherwise, and the count of characters at its end. With nothing to show it\n * is out of the flow, so the field ends at its box. Inside a form it is drawn\n * anyway, empty, since a form is where an error arrives after the fact, from\n * a server or on a submission, and every field below this one would\n * otherwise move by the line's height when it does.\n *\n * On iOS and Android the control reads the line out as its hint, so the line\n * itself is hidden from VoiceOver and TalkBack rather than read twice. An\n * error is announced as it arrives, since a hint that changes is not read\n * again: on iOS through `announceForAccessibility`, and on Android, where the\n * error is left reachable for it, by a polite live region around it, which\n * is also what announces it under React Native Web. An error the field opens\n * with is not announced, as a live region in a browser does not read what it\n * was mounted holding.\n *\n * The count is hidden everywhere. It changes on every keystroke, and read\n * back at that rate it is worse than not hearing it, so the limit is said\n * once in the control's description instead.\n */\nfunction FieldMessage({\n characterCount = false,\n characterLimitLabel,\n description,\n error,\n id,\n length = 0,\n maxLength,\n}: FieldMessageProps) {\n const theme = useTheme()\n const styles = fieldStylesOf(theme)\n const role = useTypeRole('bodySmall')\n const { fontScale } = useWindowDimensions()\n const ids = idsOf(id)\n const invalid = error !== undefined\n const limit = limitOf(maxLength, characterLimitLabel)\n const insideForm = useInsideForm()\n const collapsed =\n !invalid && description === undefined && !characterCount && !insideForm\n const { colors, typography } = theme\n const messageStyle = composeStyles<TextStyle>(\n role,\n colorOf(invalid ? colors.error : colors.onSurfaceVariant),\n SHRINKS,\n )\n\n useErrorAnnouncement(error)\n\n return (\n <View\n style={composeStyles<ViewStyle>(\n styles.messageLine,\n collapsed\n ? styles.messageLineCollapsed\n : minHeightOf(typography.bodySmallLineHeight * fontScale),\n )}\n >\n <View\n aria-live=\"polite\"\n {...(Platform.OS === 'web' ? ATOMIC : undefined)}\n {...(Platform.OS === 'ios' ? HIDDEN : undefined)}\n style={invalid && error !== '' ? SHRINKS : OUT_OF_FLOW}\n >\n {invalid && error !== '' ? (\n <NativeText id={ids.error} style={messageStyle}>\n {error}\n </NativeText>\n ) : null}\n </View>\n {invalid || description === undefined ? null : (\n <NativeText\n {...(Platform.OS === 'web' ? undefined : HIDDEN)}\n id={ids.description}\n style={messageStyle}\n >\n {description}\n </NativeText>\n )}\n {limit === undefined || Platform.OS !== 'web' ? null : (\n <NativeText id={ids.limit} style={NOT_DRAWN}>\n {limit}\n </NativeText>\n )}\n {characterCount ? (\n <NativeText\n aria-hidden\n style={composeStyles<TextStyle>(messageStyle, styles.counter)}\n >\n {countOf(length, maxLength)}\n </NativeText>\n ) : null}\n </View>\n )\n}\n\n/**\n * Hands a control outside a box the states it is drawn in, for a field that\n * draws a container of its own around the control, as SearchField's bar is.\n * The control takes its colours and the state a screen reader reads from\n * these, as it does from the box around it.\n */\nfunction FieldStates({\n children,\n isDisabled = false,\n isInvalid = false,\n isRequired = false,\n}: FieldStatesProps) {\n const states = useMemo(\n () => ({\n ...OUTSIDE_BOX,\n disabled: isDisabled,\n invalid: isInvalid,\n required: isRequired,\n }),\n [isDisabled, isInvalid, isRequired],\n )\n\n return <BoxContext value={states}>{children}</BoxContext>\n}\n\n/**\n * Tracks whether the control has focus, around the handlers the field was\n * given, which are called after.\n */\nfunction useFieldFocus({\n onBlur,\n onFocus,\n}: Pick<TextInputProps, 'onBlur' | 'onFocus'>) {\n const [focused, setFocused] = useState(false)\n\n return {\n focused,\n handlers: {\n onBlur: ((event) => {\n setFocused(false)\n onBlur?.(event)\n }) satisfies TextInputProps['onBlur'],\n onFocus: ((event) => {\n setFocused(true)\n onFocus?.(event)\n }) satisfies TextInputProps['onFocus'],\n },\n }\n}\n\n// What a web-only atomic live region adds, so a changed message is read whole.\n// React Native's types carry no `aria-atomic`, which React Native Web takes.\nconst ATOMIC = { 'aria-atomic': true } as const\n\n// What hides a part of the line under a field from VoiceOver and TalkBack,\n// where the control reads it out as its hint.\nconst HIDDEN = { 'aria-hidden': true } as const\n\n// What leaves the control's writing direction to the page under React Native\n// Web, which gives a TextInput `dir=\"auto\"` otherwise and so aligns a value by\n// its own script: a Latin value at the left of a right-to-left field, away\n// from its label. Null rather than left out, since left out is what it writes\n// `auto` for. React Native's types carry no `dir`.\nconst INHERITS_DIRECTION = { dir: null } as const\n\n// The limit under React Native Web: in the document for the control to point\n// at, and drawn nowhere.\nconst NOT_DRAWN: TextStyle = { display: 'none' }\n\n// The live region with nothing in it, which takes no place in the line.\nconst OUT_OF_FLOW: ViewStyle = { position: 'absolute' }\n\nconst SHRINKS: TextStyle = { flexShrink: 1 }\n\n/**\n * A prefix or a suffix, faded in once the label has floated and out when it\n * comes back to rest, over the label's own `durationShort3`.\n */\nfunction Affix({\n children,\n floated,\n id,\n style,\n}: {\n readonly children: ReactNode\n readonly floated: boolean\n readonly id: string\n readonly style: StyleProp<TextStyle>\n}) {\n const { motion } = useTheme()\n const reduceMotion = useReducedMotion()\n const opacity = floated ? 1 : 0\n const timing = {\n duration: motion.durationShort3,\n easing: Easing.bezier(...motion.easingStandard),\n }\n const fade = useAnimatedStyle(() => {\n 'worklet'\n return {\n opacity: reduceMotion ? opacity : withTiming(opacity, timing),\n }\n })\n\n return (\n <Animated.Text\n id={id}\n style={composeStyles<AnimatedStyle<TextStyle>>(style, fade)}\n >\n {children}\n </Animated.Text>\n )\n}\n\nfunction affixPart(\n id: string,\n affix: ReactNode,\n): readonly FieldDescriptionPart[] {\n if (affix === undefined) {\n return []\n }\n\n return [\n {\n id,\n text:\n typeof affix === 'string' || typeof affix === 'number'\n ? String(affix)\n : '',\n },\n ]\n}\n\nfunction boxControlOf(\n floatingLabel: boolean,\n floated: boolean,\n disabled: boolean,\n invalid: boolean,\n required: boolean,\n underLabel: boolean,\n): BoxControl {\n return {\n disabled,\n floated,\n invalid,\n label: floatingLabel ? 'floating' : 'fixed',\n required,\n underLabel,\n }\n}\n\n/**\n * The box's label: one line, cut short with an ellipsis, moving between its\n * resting place and its floated one. Hidden from screen readers, since the\n * control is named by the same words.\n */\nfunction BoxLabel({\n children,\n floated,\n floatingLabel,\n isDisabled,\n isFocused,\n isInvalid,\n isRequired,\n variant,\n}: {\n readonly children: string\n readonly floated: boolean\n readonly floatingLabel: boolean\n readonly isDisabled: boolean\n readonly isFocused: boolean\n readonly isInvalid: boolean\n readonly isRequired: boolean\n readonly variant: FieldVariant\n}) {\n const theme = useTheme()\n const styles = fieldStylesOf(theme)\n const { fontScale } = useWindowDimensions()\n const reduceMotion = useReducedMotion()\n const large = useTypeRole('bodyLarge')\n const small = useTypeRole(floatingLabel ? 'bodySmall' : 'labelMedium')\n const { colors, motion, spacing, stateLayerOpacity, typography } = theme\n const outlined = variant === 'outlined'\n const smallRole = floatingLabel ? 'bodySmall' : 'labelMedium'\n const place: LabelPlace = floated\n ? {\n fontSize: typography[`${smallRole}Size`],\n letterSpacing: typography[`${smallRole}Tracking`],\n lineHeight: typography[`${smallRole}LineHeight`],\n top: outlined\n ? -(\n spacing.lg +\n (typography[`${smallRole}LineHeight`] * fontScale) / 2\n )\n : 0,\n }\n : {\n fontSize: typography.bodyLargeSize,\n letterSpacing: typography.bodyLargeTracking,\n lineHeight: typography.bodyLargeLineHeight,\n top: outlined ? 0 : (typography.bodySmallLineHeight * fontScale) / 2,\n }\n const color = isDisabled\n ? withOpacity(colors.onSurface, stateLayerOpacity.disabledContent)\n : isInvalid\n ? colors.error\n : isFocused\n ? colors.primary\n : colors.onSurfaceVariant\n const timing = {\n duration: motion.durationShort3,\n easing: Easing.bezier(...motion.easingStandard),\n }\n\n const motionStyle = useAnimatedStyle(() => {\n 'worklet'\n return {\n color: reduceMotion ? color : withTiming(color, timing),\n fontSize: reduceMotion\n ? place.fontSize\n : withTiming(place.fontSize, timing),\n letterSpacing: reduceMotion\n ? place.letterSpacing\n : withTiming(place.letterSpacing, timing),\n lineHeight: reduceMotion\n ? place.lineHeight\n : withTiming(place.lineHeight, timing),\n top: reduceMotion ? place.top : withTiming(place.top, timing),\n }\n })\n\n return (\n <View\n aria-hidden\n style={composeStyles<ViewStyle>(\n styles.label,\n outlined ? styles.labelOutlined : undefined,\n )}\n >\n <Animated.Text\n numberOfLines={1}\n style={composeStyles<AnimatedStyle<TextStyle>>(\n floated ? small : large,\n outlined ? styles.labelTextOutlined : undefined,\n motionStyle,\n )}\n >\n {children}\n {isRequired ? REQUIRED_MARK : null}\n </Animated.Text>\n </View>\n )\n}\n\nfunction colorOf(color: string): TextStyle {\n return { color }\n}\n\n// The count in the device's digits and grouping, as web writes it in the\n// reader's locale. One formatter, since the count changes on every keystroke.\nfunction countOf(length: number, maxLength: number | undefined) {\n counterFormat ??= new Intl.NumberFormat()\n\n return maxLength === undefined\n ? counterFormat.format(length)\n : `${counterFormat.format(length)}/${counterFormat.format(maxLength)}`\n}\n\nfunction descriptionOf(\n parts: readonly FieldDescriptionPart[],\n): DescribedBy | undefined {\n if (Platform.OS === 'web') {\n return parts.length === 0\n ? undefined\n : { 'aria-describedby': parts.map((part) => part.id).join(' ') }\n }\n\n const said = parts.map((part) => part.text).filter((text) => text !== '')\n\n return said.length === 0 ? undefined : { accessibilityHint: said.join(' ') }\n}\n\nfunction focusOf(control: RefObject<ComponentRef<typeof TextInput> | null>) {\n return () => {\n control.current?.focus()\n }\n}\n\nfunction iconStyleOf(color: string): IconStyle {\n return { color, size: ICON_SIZE }\n}\n\nfunction idsOf(id: string) {\n return {\n description: `${id}-description`,\n error: `${id}-error`,\n limit: `${id}-limit`,\n }\n}\n\n/**\n * The limit in words where there is one: the field's own, or English, which\n * an app in another language replaces through `characterLimitLabel`.\n */\nfunction limitOf(maxLength: number | undefined, label: string | undefined) {\n if (maxLength === undefined) {\n return undefined\n }\n\n return (\n label ??\n (maxLength === 1\n ? 'Up to 1 character'\n : `Up to ${String(maxLength)} characters`)\n )\n}\n\nfunction marginTopOf(marginTop: number): ViewStyle {\n return { marginTop }\n}\n\nfunction minHeightOf(minHeight: number): ViewStyle {\n return { minHeight }\n}\n\nfunction minWidthOf(minWidth: number): ViewStyle {\n return { minWidth }\n}\n\n/**\n * The label's text in its floated type, out of sight, measured for the\n * outlined box's notch.\n */\nfunction NotchMeasure({\n children,\n floatingLabel,\n isRequired,\n onMeasure,\n}: {\n readonly children: string\n readonly floatingLabel: boolean\n readonly isRequired: boolean\n readonly onMeasure: (width: number) => void\n}) {\n const styles = fieldStylesOf(useTheme())\n const small = useTypeRole(floatingLabel ? 'bodySmall' : 'labelMedium')\n\n return (\n <View\n aria-hidden\n style={composeStyles<ViewStyle>(\n styles.label,\n styles.labelOutlined,\n styles.notchMeasure,\n )}\n >\n <NativeText\n numberOfLines={1}\n onLayout={widthTo(onMeasure)}\n style={composeStyles<TextStyle>(small, styles.labelTextOutlined)}\n >\n {children}\n {isRequired ? REQUIRED_MARK : null}\n </NativeText>\n </View>\n )\n}\n\nfunction numericOf(fontFamily: string | undefined): TextStyle {\n return { fontFamily, fontVariant: ['tabular-nums'] }\n}\n\n// How far an outline stretch reaches along the box before the label's place\n// begins or after it ends: the box's padding at that end, and past an icon\n// the page's 12dp, the icon and its 16dp, less the notch's own 4dp beside the\n// label.\nfunction outlineInset(spacing: ResolvedTheme['spacing'], icon: ReactNode) {\n return (\n (icon === undefined ? spacing.lg : spacing.md + ICON_SIZE + spacing.lg) -\n spacing.xs\n )\n}\n\n// The asterisk after a required field's label, which is how the text fields\n// page marks one. In the label rather than beside it, so it floats and takes\n// the label's colour with it.\nconst REQUIRED_MARK = '*'\n\n/**\n * One view drawing a field's rule in its eased colour and width, from\n * {@link useStrokeMotion}: on every side, for the outlined box's outline,\n * which the piece around it clips, and a bar's ring, or on the top alone,\n * for the filled box's indicator.\n */\nfunction FieldStroke({ color, sides, style, width }: FieldStrokeProps) {\n const stroke = useAnimatedStyle(() => {\n 'worklet'\n return sides === 'all'\n ? { borderColor: color.get(), borderWidth: width.get() }\n : { borderColor: color.get(), borderTopWidth: width.get() }\n })\n\n return (\n <Animated.View\n aria-hidden\n style={composeStyles<AnimatedStyle<ViewStyle>>(style, stroke)}\n />\n )\n}\n\n// Says an error on iOS as it arrives. An error the field opened with is not\n// said, and neither is one that has not changed.\nfunction useErrorAnnouncement(error: string | undefined) {\n const said = useRef(error)\n\n useEffect(() => {\n if (\n Platform.OS === 'ios' &&\n error !== undefined &&\n error !== '' &&\n error !== said.current\n ) {\n AccessibilityInfo.announceForAccessibility(error)\n }\n said.current = error\n }, [error])\n}\n\n/**\n * The rule the box draws, the filled box's indicator or the outlined box's\n * outline: its colour and its width by state.\n */\nfunction useRuleMotion(theme: ResolvedTheme, state: FieldState) {\n const { colors, stateLayerOpacity } = theme\n const width = !state.disabled && state.focused ? 2 : 1\n const color = state.disabled\n ? withOpacity(colors.onSurface, stateLayerOpacity.disabledContainer)\n : state.focused\n ? state.invalid\n ? colors.error\n : colors.primary\n : state.hovered\n ? state.invalid\n ? colors.onErrorContainer\n : colors.onSurface\n : state.invalid\n ? colors.error\n : colors.outline\n\n return useStrokeMotion(color, width)\n}\n\n/**\n * A rule's colour and width, eased to each new pair over `durationShort2` as\n * web transitions them, and moved at once under reduced motion. Hand the\n * result to {@link FieldStroke}.\n */\nfunction useStrokeMotion(color: string, width: number): StrokeMotion {\n const { motion } = useTheme()\n const reduceMotion = useReducedMotion()\n const timing = {\n duration: motion.durationShort2,\n easing: Easing.bezier(...motion.easingStandard),\n }\n\n return {\n color: useDerivedValue<string>(() =>\n reduceMotion ? color : withTiming(color, timing),\n ),\n width: useDerivedValue<number>(() =>\n reduceMotion ? width : withTiming(width, timing),\n ),\n }\n}\n\nfunction webStateOf(box: BoxControl): undefined | WebState {\n if (Platform.OS !== 'web') {\n return undefined\n }\n\n return {\n ...(box.invalid ? { 'aria-invalid': true } : undefined),\n ...(box.required ? { 'aria-required': true } : undefined),\n }\n}\n\nfunction widthOf(width: number): ViewStyle {\n return { width }\n}\n\nfunction widthTo(onMeasure: (width: number) => void) {\n return (event: LayoutChangeEvent) => {\n onMeasure(event.nativeEvent.layout.width)\n }\n}\n\nexport {\n describedBy,\n FieldBox,\n FieldInput,\n FieldMessage,\n FieldStates,\n FieldStroke,\n useFieldFocus,\n useStrokeMotion,\n}\nexport type {\n FieldBoxProps,\n FieldDescriptionPart,\n FieldInputProps,\n FieldMessageProps,\n FieldStatesProps,\n FieldStrokeProps,\n FieldVariant,\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["ComponentRef","ReactNode","Ref","RefObject","LayoutChangeEvent","StyleProp","TextInputProps","TextStyle","ViewProps","ViewStyle","AnimatedStyle","DerivedValue","createContext","use","useEffect","useId","useMemo","useRef","useState","AccessibilityInfo","Text","NativeText","Platform","Pressable","TextInput","useWindowDimensions","View","Animated","Easing","useAnimatedStyle","useDerivedValue","useReducedMotion","withTiming","IconStyle","ResolvedTheme","useInsideForm","IconStyleContext","limitFor","useLocaleOf","formatCount","usePressFeedback","withOpacity","useTheme","composeStyles","useFontFamily","useTypeRole","fieldStylesOf","BoxControl","disabled","floated","invalid","label","required","underLabel","DescribedBy","Pick","FieldBoxProps","children","control","end","floatingLabel","isDisabled","isFocused","isInvalid","isPopulated","isRequired","leading","trailing","variant","FieldVariant","FieldDescriptionPart","id","text","FieldInputProps","Omit","described","numeric","prefix","ref","suffix","FieldMessageProps","characterCount","characterLimitLabel","description","error","length","maxLength","FieldState","focused","hovered","FieldStatesProps","FieldStrokeProps","StrokeMotion","sides","style","LabelPlace","fontSize","letterSpacing","lineHeight","top","color","width","WebState","ICON_SIZE","OUTSIDE_BOX","BoxContext","NO_PARTS","describedBy","locale","ids","idsOf","message","undefined","limit","limitOf","FieldBox","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","theme","styles","fontScale","notch","setNotch","colors","radii","spacing","stateLayerOpacity","typography","t8","xs","borderTopEndRadius","borderTopStartRadius","t9","onSurface","corners","disableRipple","feedback","outlined","t10","state","rule","useRuleMotion","t11","t12","boxControlOf","boxControl","t13","disabledContent","T0","t14","t15","t16","handlers","onHoverIn","t17","onHoverOut","t18","focusOf","t19","box","boxLeading","boxTrailing","boxOutlined","boxDisabled","minHeightOf","lg","bodyLargeLineHeight","sm","bodySmallLineHeight","t20","outline","outlineStart","widthOf","outlineInset","outlineStartBox","outlineNotch","outlineNotchBox","outlineEnd","minWidthOf","outlineEndBox","layer","indicator","t21","onSurfaceVariant","icon","iconStyleOf","t22","t23","t24","t25","column","t26","t27","FieldInput","props","role","mono","fontFamilyMono","content","caret","primary","muted","affixed","clearance","marginTopOf","affixStyle","colorOf","descriptionOf","affixPart","webStateOf","OS","INHERITS_DIRECTION","input","numericOf","affixLine","FieldMessage","insideForm","collapsed","messageStyle","SHRINKS","useErrorAnnouncement","messageLine","messageLineCollapsed","OUT_OF_FLOW","ATOMIC","HIDDEN","NOT_DRAWN","counter","countOf","FieldStates","states","useFieldFocus","onBlur","onFocus","setFocused","event","event_0","const","dir","display","position","flexShrink","Affix","motion","reduceMotion","opacity","timing","duration","durationShort3","easing","bezier","easingStandard","fade","affix","String","BoxLabel","large","small","smallRole","place","bodyLargeSize","bodyLargeTracking","motionStyle","labelOutlined","labelTextOutlined","REQUIRED_MARK","parts","map","part","join","said","filter","accessibilityHint","current","focus","size","marginTop","minHeight","minWidth","NotchMeasure","onMeasure","notchMeasure","T1","widthTo","fontFamily","fontVariant","md","FieldStroke","stroke","borderColor","get","borderWidth","borderTopWidth","announceForAccessibility","onErrorContainer","disabledContainer","useStrokeMotion","durationShort2","nativeEvent","layout","_c","state","NativeText","color"],"sources":["../../src/field/index.tsx"],"sourcesContent":["import type { ComponentRef, ReactNode, Ref, RefObject } from 'react'\nimport type {\n LayoutChangeEvent,\n StyleProp,\n TextInputProps,\n TextStyle,\n ViewProps,\n ViewStyle,\n} from 'react-native'\nimport type { AnimatedStyle, DerivedValue } from 'react-native-reanimated'\n\nimport {\n createContext,\n use,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n AccessibilityInfo,\n Text as NativeText,\n Platform,\n Pressable,\n TextInput,\n useWindowDimensions,\n View,\n} from 'react-native'\nimport Animated, {\n Easing,\n useAnimatedStyle,\n useDerivedValue,\n useReducedMotion,\n withTiming,\n} from 'react-native-reanimated'\n\nimport type { IconStyle } from '../glyphs/icon-style'\nimport type { ResolvedTheme } from '../theme/scope'\n\nimport { useInsideForm } from '../form'\nimport { IconStyleContext } from '../glyphs/icon-style'\nimport { limitFor } from '../i18n'\nimport { useLocaleOf } from '../i18n/provider'\nimport { formatCount } from '../number/count'\nimport { usePressFeedback } from '../press'\nimport { withOpacity } from '../theme/color'\nimport { useTheme } from '../theme/scope'\nimport { composeStyles } from '../theme/styles'\nimport { useFontFamily } from '../typography/fonts'\nimport { useTypeRole } from '../typography/roles'\nimport { fieldStylesOf } from './styles'\n\n// The chrome every field shares, as on web: the box with its label, the\n// control inside it, and the line of supporting text under it. Each field is\n// the parts it renders inside a root of its own, and these are not exported\n// from the package.\n//\n// The text fields page draws two boxes. The filled one carries surface\n// container highest with an active indicator along its bottom, 1dp in the\n// outline role at rest and 2dp in primary while focused, and its label floats\n// within it. The outlined one has no fill and a 1dp outline all round that\n// thickens the same way, and its label floats up onto the outline, cutting a\n// notch in it.\n//\n// **The label floats by changing its type and its place**, eased by\n// Reanimated over `durationShort3` on the standard curve, as web transitions\n// them: body large on the value's line while the field is empty and\n// unfocused, body small at the top once it is focused or holds a value.\n// `floatingLabel={false}` keeps it small at the top in label medium, as web's\n// fixed label is. Under reduced motion it moves at once.\n//\n// **The box grows with the device's text size.** Its height is a floor rather\n// than a height, the padding above and below plus the lines it holds, and the\n// lines are the type tokens' line heights at the device's font scale, which\n// is what React Native draws the text at. So the 56dp the page gives is the\n// floor at the default text size, and a larger one makes the box taller\n// rather than running the value out of it.\n//\n// **The outline is drawn from views**, since there is no fieldset to cut it:\n// three pieces in a row, the stretch before the label, the notch under it,\n// which draws only the bottom of the outline, and the stretch after it. The\n// notch is the label's width in its floated type, measured from a copy of it\n// out of sight, as web's legend holds one. Before the label floats it is\n// closed, and the two stretches meet.\n//\n// **A pointer over the filled box draws the state layer**, the one every\n// control draws through `usePressFeedback`, on surface at the hover opacity,\n// and turns the indicator on surface, as the page's hovered state does; one\n// over the outlined box turns the outline on surface. Web's filled box draws\n// neither. Focus wins over hover, and an error takes the\n// error role, or on error container under a pointer.\n//\n// **Disabled is the page's colour at an opacity, translucent**: the filled\n// container and the rule are on surface at the `disabledContainer` opacity,\n// and the label, the value and the icons on surface at `disabledContent`,\n// over whatever the field sits on rather than mixed over the surface role as\n// web's are.\n\n// What a control needs to know about the box around it: how the label is\n// drawn, whether the control clears it, and the states it takes its colours\n// from.\ntype BoxControl = {\n readonly disabled: boolean\n readonly floated: boolean\n readonly invalid: boolean\n readonly label: 'fixed' | 'floating' | 'none'\n readonly required: boolean\n readonly underLabel: boolean\n}\n\ntype DescribedBy = Pick<ViewProps, 'accessibilityHint'> & {\n readonly 'aria-describedby'?: string\n}\n\ntype FieldBoxProps = {\n readonly children?: ReactNode\n /**\n * The control the box focuses when it is pressed anywhere, as the whole\n * of a native text field's box takes a press.\n */\n readonly control: RefObject<ComponentRef<typeof TextInput> | null>\n /**\n * What the box holds after the label and the control's column, drawn as\n * it is rather than in an icon's slot, for a part laid out against the\n * box's own edges: a number field's steppers. The column, and the label\n * in it, end where this starts, 16dp before it.\n */\n readonly end?: ReactNode\n /**\n * Whether the label sits in the empty box and floats to the top once the\n * field is focused or holds a value. `false` keeps it small at the top.\n * @default true\n */\n readonly floatingLabel?: boolean\n /** @default false */\n readonly isDisabled?: boolean\n /** Whether the control has focus, which the box draws. */\n readonly isFocused?: boolean\n /** @default false */\n readonly isInvalid?: boolean\n /** Whether the control holds anything, which floats the label. */\n readonly isPopulated?: boolean\n /**\n * Marks the label with an asterisk, as the text fields page marks a field\n * that must be filled.\n * @default false\n */\n readonly isRequired?: boolean\n /** What the field is for. */\n readonly label: string\n /** An icon at the start of the box, before the label and the control. */\n readonly leading?: ReactNode\n /** An icon at the end of the box, after the control. */\n readonly trailing?: ReactNode\n /** @default 'filled' */\n readonly variant?: FieldVariant\n}\n\n/**\n * One piece of what describes a field's control: the text a screen reader\n * hears on iOS and Android, and the id of the element showing it, which the\n * control points at under React Native Web.\n */\ntype FieldDescriptionPart = {\n readonly id: string\n readonly text: string\n}\n\ntype FieldInputProps = Omit<\n TextInputProps,\n | 'accessibilityHint'\n | 'cursorColor'\n | 'multiline'\n | 'placeholderTextColor'\n | 'selectionColor'\n | 'style'\n | 'underlineColorAndroid'\n> & {\n /** What describes the control, after its prefix and suffix. */\n readonly described?: readonly FieldDescriptionPart[]\n /**\n * The value in the mono face with tabular figures.\n * @default false\n */\n readonly numeric?: boolean\n /** Text before the value on its line. */\n readonly prefix?: ReactNode\n readonly ref?: Ref<ComponentRef<typeof TextInput>>\n /** Text after the value on its line. */\n readonly suffix?: ReactNode\n}\n\ntype FieldMessageProps = {\n /**\n * Counts the characters, against `maxLength` where there is one.\n * @default false\n */\n readonly characterCount?: boolean\n /** How the limit is said to a screen reader. */\n readonly characterLimitLabel?: string | undefined\n /** The hint, which the error replaces while there is one. */\n readonly description?: string | undefined\n /** The problem with the value, in words. */\n readonly error?: string | undefined\n /** The field's id, as handed to {@link describedBy}. */\n readonly id: string\n /** How many characters the control holds. */\n readonly length?: number\n readonly maxLength?: number | undefined\n}\n\ntype FieldState = {\n readonly disabled: boolean\n readonly focused: boolean\n readonly hovered: boolean\n readonly invalid: boolean\n}\n\ntype FieldStatesProps = {\n readonly children?: ReactNode\n /** @default false */\n readonly isDisabled?: boolean\n /** @default false */\n readonly isInvalid?: boolean\n /** @default false */\n readonly isRequired?: boolean\n}\n\ntype FieldStrokeProps = StrokeMotion & {\n /** Every side of the view, or the top alone. */\n readonly sides: 'all' | 'top'\n readonly style: StyleProp<ViewStyle>\n}\n\n/**\n * The filled box, or the outlined one: no fill, an outline that thickens and\n * takes the primary role while focused, and the label cutting it once it\n * floats, the text fields page's two fields.\n */\ntype FieldVariant = 'filled' | 'outlined'\n\n// Where the label is and what type it is in, at rest or floated.\ntype LabelPlace = {\n readonly fontSize: number\n readonly letterSpacing: number\n readonly lineHeight: number\n readonly top: number\n}\n\n// The control's state as React Native Web hands it to a browser, which reads\n// `aria-invalid` and `aria-required` off the input. React Native has neither.\n// A rule's colour and width as they ease.\ntype StrokeMotion = {\n readonly color: DerivedValue<string>\n readonly width: DerivedValue<number>\n}\n\ntype WebState = {\n readonly 'aria-invalid'?: true\n readonly 'aria-required'?: true\n}\n\n// The page's icon, which the box's outline is laid out around.\nconst ICON_SIZE = 24\n\n// A control outside any box has no label over it.\nconst OUTSIDE_BOX: BoxControl = {\n disabled: false,\n floated: true,\n invalid: false,\n label: 'none',\n required: false,\n underLabel: false,\n}\n\nconst BoxContext = createContext<BoxControl>(OUTSIDE_BOX)\n\nconst NO_PARTS: readonly FieldDescriptionPart[] = []\n\n/**\n * How a field's control is described by the line under it: the error while\n * there is one, otherwise the description, then the limit where there is a\n * `maxLength`. Hand the result to {@link FieldInput} as `described`, and the\n * same `id` to {@link FieldMessage}.\n */\nfunction describedBy(\n id: string,\n {\n characterLimitLabel,\n description,\n error,\n locale,\n maxLength,\n }: Pick<\n FieldMessageProps,\n 'characterLimitLabel' | 'description' | 'error' | 'maxLength'\n > & {\n /**\n * The locale the limit is said in, the field's `useLocaleOf`, or the\n * device's when left out.\n */\n readonly locale?: string\n },\n): readonly FieldDescriptionPart[] {\n const ids = idsOf(id)\n const message =\n error === undefined\n ? { id: ids.description, text: description ?? '' }\n : { id: ids.error, text: error }\n const limit = limitOf(maxLength, characterLimitLabel, locale)\n\n return [\n ...(message.text === '' ? [] : [message]),\n ...(limit === undefined ? [] : [{ id: ids.limit, text: limit }]),\n ]\n}\n\n/**\n * The box a control sits in, filled or outlined, with its label. Pressed\n * anywhere, it focuses its control. The states it draws are handed to it,\n * since the field around it is what knows them.\n */\nfunction FieldBox({\n children,\n control,\n end,\n floatingLabel = true,\n isDisabled = false,\n isFocused = false,\n isInvalid = false,\n isPopulated = false,\n isRequired = false,\n label,\n leading,\n trailing,\n variant = 'filled',\n}: FieldBoxProps) {\n const theme = useTheme()\n const styles = fieldStylesOf(theme)\n const { fontScale } = useWindowDimensions()\n const [notch, setNotch] = useState(0)\n const { colors, radii, spacing, stateLayerOpacity, typography } = theme\n // The hover layer alone: a text field's box takes no pressed or focus\n // layer, since the indicator and the label are what mark its focus.\n const feedback = usePressFeedback({\n color: colors.onSurface,\n corners: {\n borderTopEndRadius: radii.xs,\n borderTopStartRadius: radii.xs,\n },\n disabled: isDisabled,\n disableRipple: true,\n })\n const outlined = variant === 'outlined'\n const floated = !floatingLabel || isFocused || isPopulated\n const state: FieldState = {\n disabled: isDisabled,\n focused: isFocused,\n hovered: feedback.hovered,\n invalid: isInvalid,\n }\n const rule = useRuleMotion(theme, state)\n const boxControl = useMemo(\n () =>\n boxControlOf(\n floatingLabel,\n floated,\n isDisabled,\n isInvalid,\n isRequired,\n !outlined,\n ),\n [floatingLabel, floated, isDisabled, isInvalid, isRequired, outlined],\n )\n const disabledContent = withOpacity(\n colors.onSurface,\n stateLayerOpacity.disabledContent,\n )\n\n return (\n <Pressable\n accessible={false}\n disabled={isDisabled}\n focusable={false}\n onHoverIn={feedback.handlers.onHoverIn}\n onHoverOut={feedback.handlers.onHoverOut}\n onPress={focusOf(control)}\n style={composeStyles<ViewStyle>(\n styles.box,\n leading === undefined ? undefined : styles.boxLeading,\n trailing === undefined ? undefined : styles.boxTrailing,\n outlined ? styles.boxOutlined : undefined,\n isDisabled && !outlined ? styles.boxDisabled : undefined,\n minHeightOf(\n outlined\n ? 2 * spacing.lg + typography.bodyLargeLineHeight * fontScale\n : 2 * spacing.sm +\n (typography.bodySmallLineHeight +\n typography.bodyLargeLineHeight) *\n fontScale,\n ),\n )}\n >\n {outlined ? (\n <View aria-hidden style={styles.outline}>\n <View\n style={composeStyles<ViewStyle>(\n styles.outlineStart,\n widthOf(outlineInset(spacing, leading)),\n )}\n >\n <FieldStroke\n color={rule.color}\n sides=\"all\"\n style={styles.outlineStartBox}\n width={rule.width}\n />\n </View>\n <View\n style={composeStyles<ViewStyle>(\n styles.outlineNotch,\n widthOf(floated ? notch : 0),\n )}\n >\n <FieldStroke\n color={rule.color}\n sides=\"all\"\n style={styles.outlineNotchBox}\n width={rule.width}\n />\n </View>\n <View\n style={composeStyles<ViewStyle>(\n styles.outlineEnd,\n minWidthOf(outlineInset(spacing, trailing)),\n )}\n >\n <FieldStroke\n color={rule.color}\n sides=\"all\"\n style={styles.outlineEndBox}\n width={rule.width}\n />\n </View>\n </View>\n ) : (\n <>\n {feedback.layer}\n <FieldStroke\n color={rule.color}\n sides=\"top\"\n style={styles.indicator}\n width={rule.width}\n />\n </>\n )}\n {leading === undefined ? null : (\n <View style={styles.icon}>\n <IconStyleContext\n value={iconStyleOf(\n isDisabled ? disabledContent : colors.onSurfaceVariant,\n )}\n >\n {leading}\n </IconStyleContext>\n </View>\n )}\n <View style={styles.column}>\n <BoxLabel\n floated={floated}\n floatingLabel={floatingLabel}\n isDisabled={isDisabled}\n isFocused={isFocused}\n isInvalid={isInvalid}\n isRequired={isRequired}\n variant={variant}\n >\n {label}\n </BoxLabel>\n {outlined ? (\n <NotchMeasure\n floatingLabel={floatingLabel}\n isRequired={isRequired}\n onMeasure={setNotch}\n >\n {label}\n </NotchMeasure>\n ) : null}\n <BoxContext value={boxControl}>{children}</BoxContext>\n </View>\n {end}\n {trailing === undefined ? null : (\n <View style={styles.icon}>\n <IconStyleContext\n value={iconStyleOf(\n isDisabled\n ? disabledContent\n : isInvalid\n ? colors.error\n : colors.onSurfaceVariant,\n )}\n >\n {trailing}\n </IconStyleContext>\n </View>\n )}\n </Pressable>\n )\n}\n\n/**\n * A field's text control, in a {@link FieldBox}, or in {@link FieldStates}\n * inside a container of a field's own. In a box it clears the label at the\n * top where the box is filled, and shows a prefix and a suffix only while the\n * label has floated, since at rest the label sits on their line. It takes the\n * error role for its caret while the field has an error, and draws a\n * placeholder in the muted role.\n *\n * It is described by its prefix and suffix, ahead of what the field hands it\n * in `described`, so a reader hears the unit the value is read against as a\n * sighted one sees it beside the value: on iOS and Android as its hint, and\n * under React Native Web through `aria-describedby`, which drops the hint.\n */\nfunction FieldInput({\n described = NO_PARTS,\n numeric = false,\n prefix,\n suffix,\n ...props\n}: FieldInputProps) {\n const box = use(BoxContext)\n const theme = useTheme()\n const styles = fieldStylesOf(theme)\n const { fontScale } = useWindowDimensions()\n const role = useTypeRole('bodyLarge')\n const mono = useFontFamily(theme.typography.fontFamilyMono)\n const id = useId()\n const { colors, stateLayerOpacity, typography } = theme\n const content = box.disabled\n ? withOpacity(colors.onSurface, stateLayerOpacity.disabledContent)\n : colors.onSurface\n const caret = box.invalid ? colors.error : colors.primary\n const muted = box.disabled\n ? withOpacity(colors.onSurface, stateLayerOpacity.disabledContent)\n : colors.onSurfaceVariant\n const affixed = prefix !== undefined || suffix !== undefined\n const clearance = box.underLabel\n ? marginTopOf(typography.bodySmallLineHeight * fontScale)\n : undefined\n const affixStyle = composeStyles<TextStyle>(role, colorOf(muted))\n\n const control = (\n <TextInput\n {...(Platform.OS === 'web' ? INHERITS_DIRECTION : undefined)}\n {...props}\n {...descriptionOf([\n ...affixPart(`${id}-prefix`, prefix),\n ...affixPart(`${id}-suffix`, suffix),\n ...described,\n ])}\n {...webStateOf(box)}\n aria-disabled={box.disabled}\n cursorColor={caret}\n placeholderTextColor={muted}\n selectionColor={caret}\n style={composeStyles<TextStyle>(\n role,\n styles.input,\n colorOf(content),\n numeric ? numericOf(mono) : undefined,\n minHeightOf(typography.bodyLargeLineHeight * fontScale),\n affixed ? undefined : clearance,\n )}\n underlineColorAndroid=\"transparent\"\n />\n )\n\n if (!affixed) {\n return control\n }\n\n return (\n <View style={composeStyles<ViewStyle>(styles.affixLine, clearance)}>\n {prefix === undefined ? null : (\n <Affix floated={box.floated} id={`${id}-prefix`} style={affixStyle}>\n {prefix}\n </Affix>\n )}\n {control}\n {suffix === undefined ? null : (\n <Affix floated={box.floated} id={`${id}-suffix`} style={affixStyle}>\n {suffix}\n </Affix>\n )}\n </View>\n )\n}\n\n/**\n * The line under a field: the error while there is one, the description\n * otherwise, and the count of characters at its end. With nothing to show it\n * is out of the flow, so the field ends at its box. Inside a form it is drawn\n * anyway, empty, since a form is where an error arrives after the fact, from\n * a server or on a submission, and every field below this one would\n * otherwise move by the line's height when it does.\n *\n * On iOS and Android the control reads the line out as its hint, so the line\n * itself is hidden from VoiceOver and TalkBack rather than read twice. An\n * error is announced as it arrives, since a hint that changes is not read\n * again: on iOS through `announceForAccessibility`, and on Android, where the\n * error is left reachable for it, by a polite live region around it, which\n * is also what announces it under React Native Web. An error the field opens\n * with is not announced, as a live region in a browser does not read what it\n * was mounted holding.\n *\n * The count is hidden everywhere. It changes on every keystroke, and read\n * back at that rate it is worse than not hearing it, so the limit is said\n * once in the control's description instead.\n */\nfunction FieldMessage({\n characterCount = false,\n characterLimitLabel,\n description,\n error,\n id,\n length = 0,\n maxLength,\n}: FieldMessageProps) {\n const theme = useTheme()\n const styles = fieldStylesOf(theme)\n const role = useTypeRole('bodySmall')\n const { fontScale } = useWindowDimensions()\n const ids = idsOf(id)\n const invalid = error !== undefined\n const locale = useLocaleOf(undefined)\n const limit = limitOf(maxLength, characterLimitLabel, locale)\n const insideForm = useInsideForm()\n const collapsed =\n !invalid && description === undefined && !characterCount && !insideForm\n const { colors, typography } = theme\n const messageStyle = composeStyles<TextStyle>(\n role,\n colorOf(invalid ? colors.error : colors.onSurfaceVariant),\n SHRINKS,\n )\n\n useErrorAnnouncement(error)\n\n return (\n <View\n style={composeStyles<ViewStyle>(\n styles.messageLine,\n collapsed\n ? styles.messageLineCollapsed\n : minHeightOf(typography.bodySmallLineHeight * fontScale),\n )}\n >\n <View\n aria-live=\"polite\"\n {...(Platform.OS === 'web' ? ATOMIC : undefined)}\n {...(Platform.OS === 'ios' ? HIDDEN : undefined)}\n style={invalid && error !== '' ? SHRINKS : OUT_OF_FLOW}\n >\n {invalid && error !== '' ? (\n <NativeText id={ids.error} style={messageStyle}>\n {error}\n </NativeText>\n ) : null}\n </View>\n {invalid || description === undefined ? null : (\n <NativeText\n {...(Platform.OS === 'web' ? undefined : HIDDEN)}\n id={ids.description}\n style={messageStyle}\n >\n {description}\n </NativeText>\n )}\n {limit === undefined || Platform.OS !== 'web' ? null : (\n <NativeText id={ids.limit} style={NOT_DRAWN}>\n {limit}\n </NativeText>\n )}\n {characterCount ? (\n <NativeText\n aria-hidden\n style={composeStyles<TextStyle>(messageStyle, styles.counter)}\n >\n {countOf(length, maxLength, locale)}\n </NativeText>\n ) : null}\n </View>\n )\n}\n\n/**\n * Hands a control outside a box the states it is drawn in, for a field that\n * draws a container of its own around the control, as SearchField's bar is.\n * The control takes its colours and the state a screen reader reads from\n * these, as it does from the box around it.\n */\nfunction FieldStates({\n children,\n isDisabled = false,\n isInvalid = false,\n isRequired = false,\n}: FieldStatesProps) {\n const states = useMemo(\n () => ({\n ...OUTSIDE_BOX,\n disabled: isDisabled,\n invalid: isInvalid,\n required: isRequired,\n }),\n [isDisabled, isInvalid, isRequired],\n )\n\n return <BoxContext value={states}>{children}</BoxContext>\n}\n\n/**\n * Tracks whether the control has focus, around the handlers the field was\n * given, which are called after.\n */\nfunction useFieldFocus({\n onBlur,\n onFocus,\n}: Pick<TextInputProps, 'onBlur' | 'onFocus'>) {\n const [focused, setFocused] = useState(false)\n\n return {\n focused,\n handlers: {\n onBlur: ((event) => {\n setFocused(false)\n onBlur?.(event)\n }) satisfies TextInputProps['onBlur'],\n onFocus: ((event) => {\n setFocused(true)\n onFocus?.(event)\n }) satisfies TextInputProps['onFocus'],\n },\n }\n}\n\n// What a web-only atomic live region adds, so a changed message is read whole.\n// React Native's types carry no `aria-atomic`, which React Native Web takes.\nconst ATOMIC = { 'aria-atomic': true } as const\n\n// What hides a part of the line under a field from VoiceOver and TalkBack,\n// where the control reads it out as its hint.\nconst HIDDEN = { 'aria-hidden': true } as const\n\n// What leaves the control's writing direction to the page under React Native\n// Web, which gives a TextInput `dir=\"auto\"` otherwise and so aligns a value by\n// its own script: a Latin value at the left of a right-to-left field, away\n// from its label. Null rather than left out, since left out is what it writes\n// `auto` for. React Native's types carry no `dir`.\nconst INHERITS_DIRECTION = { dir: null } as const\n\n// The limit under React Native Web: in the document for the control to point\n// at, and drawn nowhere.\nconst NOT_DRAWN: TextStyle = { display: 'none' }\n\n// The live region with nothing in it, which takes no place in the line.\nconst OUT_OF_FLOW: ViewStyle = { position: 'absolute' }\n\nconst SHRINKS: TextStyle = { flexShrink: 1 }\n\n/**\n * A prefix or a suffix, faded in once the label has floated and out when it\n * comes back to rest, over the label's own `durationShort3`.\n */\nfunction Affix({\n children,\n floated,\n id,\n style,\n}: {\n readonly children: ReactNode\n readonly floated: boolean\n readonly id: string\n readonly style: StyleProp<TextStyle>\n}) {\n const { motion } = useTheme()\n const reduceMotion = useReducedMotion()\n const opacity = floated ? 1 : 0\n const timing = {\n duration: motion.durationShort3,\n easing: Easing.bezier(...motion.easingStandard),\n }\n const fade = useAnimatedStyle(() => {\n 'worklet'\n return {\n opacity: reduceMotion ? opacity : withTiming(opacity, timing),\n }\n })\n\n return (\n <Animated.Text\n id={id}\n style={composeStyles<AnimatedStyle<TextStyle>>(style, fade)}\n >\n {children}\n </Animated.Text>\n )\n}\n\nfunction affixPart(\n id: string,\n affix: ReactNode,\n): readonly FieldDescriptionPart[] {\n if (affix === undefined) {\n return []\n }\n\n return [\n {\n id,\n text:\n typeof affix === 'string' || typeof affix === 'number'\n ? String(affix)\n : '',\n },\n ]\n}\n\nfunction boxControlOf(\n floatingLabel: boolean,\n floated: boolean,\n disabled: boolean,\n invalid: boolean,\n required: boolean,\n underLabel: boolean,\n): BoxControl {\n return {\n disabled,\n floated,\n invalid,\n label: floatingLabel ? 'floating' : 'fixed',\n required,\n underLabel,\n }\n}\n\n/**\n * The box's label: one line, cut short with an ellipsis, moving between its\n * resting place and its floated one. Hidden from screen readers, since the\n * control is named by the same words.\n */\nfunction BoxLabel({\n children,\n floated,\n floatingLabel,\n isDisabled,\n isFocused,\n isInvalid,\n isRequired,\n variant,\n}: {\n readonly children: string\n readonly floated: boolean\n readonly floatingLabel: boolean\n readonly isDisabled: boolean\n readonly isFocused: boolean\n readonly isInvalid: boolean\n readonly isRequired: boolean\n readonly variant: FieldVariant\n}) {\n const theme = useTheme()\n const styles = fieldStylesOf(theme)\n const { fontScale } = useWindowDimensions()\n const reduceMotion = useReducedMotion()\n const large = useTypeRole('bodyLarge')\n const small = useTypeRole(floatingLabel ? 'bodySmall' : 'labelMedium')\n const { colors, motion, spacing, stateLayerOpacity, typography } = theme\n const outlined = variant === 'outlined'\n const smallRole = floatingLabel ? 'bodySmall' : 'labelMedium'\n const place: LabelPlace = floated\n ? {\n fontSize: typography[`${smallRole}Size`],\n letterSpacing: typography[`${smallRole}Tracking`],\n lineHeight: typography[`${smallRole}LineHeight`],\n top: outlined\n ? -(\n spacing.lg +\n (typography[`${smallRole}LineHeight`] * fontScale) / 2\n )\n : 0,\n }\n : {\n fontSize: typography.bodyLargeSize,\n letterSpacing: typography.bodyLargeTracking,\n lineHeight: typography.bodyLargeLineHeight,\n top: outlined ? 0 : (typography.bodySmallLineHeight * fontScale) / 2,\n }\n const color = isDisabled\n ? withOpacity(colors.onSurface, stateLayerOpacity.disabledContent)\n : isInvalid\n ? colors.error\n : isFocused\n ? colors.primary\n : colors.onSurfaceVariant\n const timing = {\n duration: motion.durationShort3,\n easing: Easing.bezier(...motion.easingStandard),\n }\n\n const motionStyle = useAnimatedStyle(() => {\n 'worklet'\n return {\n color: reduceMotion ? color : withTiming(color, timing),\n fontSize: reduceMotion\n ? place.fontSize\n : withTiming(place.fontSize, timing),\n letterSpacing: reduceMotion\n ? place.letterSpacing\n : withTiming(place.letterSpacing, timing),\n lineHeight: reduceMotion\n ? place.lineHeight\n : withTiming(place.lineHeight, timing),\n top: reduceMotion ? place.top : withTiming(place.top, timing),\n }\n })\n\n return (\n <View\n aria-hidden\n style={composeStyles<ViewStyle>(\n styles.label,\n outlined ? styles.labelOutlined : undefined,\n )}\n >\n <Animated.Text\n numberOfLines={1}\n style={composeStyles<AnimatedStyle<TextStyle>>(\n floated ? small : large,\n outlined ? styles.labelTextOutlined : undefined,\n motionStyle,\n )}\n >\n {children}\n {isRequired ? REQUIRED_MARK : null}\n </Animated.Text>\n </View>\n )\n}\n\nfunction colorOf(color: string): TextStyle {\n return { color }\n}\n\n// The count in the locale's digits and grouping, as web writes it in the\n// provider's.\nfunction countOf(\n length: number,\n maxLength: number | undefined,\n locale: string,\n) {\n return maxLength === undefined\n ? formatCount(length, locale)\n : `${formatCount(length, locale)}/${formatCount(maxLength, locale)}`\n}\n\nfunction descriptionOf(\n parts: readonly FieldDescriptionPart[],\n): DescribedBy | undefined {\n if (Platform.OS === 'web') {\n return parts.length === 0\n ? undefined\n : { 'aria-describedby': parts.map((part) => part.id).join(' ') }\n }\n\n const said = parts.map((part) => part.text).filter((text) => text !== '')\n\n return said.length === 0 ? undefined : { accessibilityHint: said.join(' ') }\n}\n\nfunction focusOf(control: RefObject<ComponentRef<typeof TextInput> | null>) {\n return () => {\n control.current?.focus()\n }\n}\n\nfunction iconStyleOf(color: string): IconStyle {\n return { color, size: ICON_SIZE }\n}\n\nfunction idsOf(id: string) {\n return {\n description: `${id}-description`,\n error: `${id}-error`,\n limit: `${id}-limit`,\n }\n}\n\n/**\n * The limit in words where there is one: the field's own, or the library's\n * in `locale`.\n */\nfunction limitOf(\n maxLength: number | undefined,\n label: string | undefined,\n locale: string | undefined,\n) {\n if (maxLength === undefined) {\n return undefined\n }\n\n return label ?? limitFor(maxLength, locale)\n}\n\nfunction marginTopOf(marginTop: number): ViewStyle {\n return { marginTop }\n}\n\nfunction minHeightOf(minHeight: number): ViewStyle {\n return { minHeight }\n}\n\nfunction minWidthOf(minWidth: number): ViewStyle {\n return { minWidth }\n}\n\n/**\n * The label's text in its floated type, out of sight, measured for the\n * outlined box's notch.\n */\nfunction NotchMeasure({\n children,\n floatingLabel,\n isRequired,\n onMeasure,\n}: {\n readonly children: string\n readonly floatingLabel: boolean\n readonly isRequired: boolean\n readonly onMeasure: (width: number) => void\n}) {\n const styles = fieldStylesOf(useTheme())\n const small = useTypeRole(floatingLabel ? 'bodySmall' : 'labelMedium')\n\n return (\n <View\n aria-hidden\n style={composeStyles<ViewStyle>(\n styles.label,\n styles.labelOutlined,\n styles.notchMeasure,\n )}\n >\n <NativeText\n numberOfLines={1}\n onLayout={widthTo(onMeasure)}\n style={composeStyles<TextStyle>(small, styles.labelTextOutlined)}\n >\n {children}\n {isRequired ? REQUIRED_MARK : null}\n </NativeText>\n </View>\n )\n}\n\nfunction numericOf(fontFamily: string | undefined): TextStyle {\n return { fontFamily, fontVariant: ['tabular-nums'] }\n}\n\n// How far an outline stretch reaches along the box before the label's place\n// begins or after it ends: the box's padding at that end, and past an icon\n// the page's 12dp, the icon and its 16dp, less the notch's own 4dp beside the\n// label.\nfunction outlineInset(spacing: ResolvedTheme['spacing'], icon: ReactNode) {\n return (\n (icon === undefined ? spacing.lg : spacing.md + ICON_SIZE + spacing.lg) -\n spacing.xs\n )\n}\n\n// The asterisk after a required field's label, which is how the text fields\n// page marks one. In the label rather than beside it, so it floats and takes\n// the label's colour with it.\nconst REQUIRED_MARK = '*'\n\n/**\n * One view drawing a field's rule in its eased colour and width, from\n * {@link useStrokeMotion}: on every side, for the outlined box's outline,\n * which the piece around it clips, and a bar's ring, or on the top alone,\n * for the filled box's indicator.\n */\nfunction FieldStroke({ color, sides, style, width }: FieldStrokeProps) {\n const stroke = useAnimatedStyle(() => {\n 'worklet'\n return sides === 'all'\n ? { borderColor: color.get(), borderWidth: width.get() }\n : { borderColor: color.get(), borderTopWidth: width.get() }\n })\n\n return (\n <Animated.View\n aria-hidden\n style={composeStyles<AnimatedStyle<ViewStyle>>(style, stroke)}\n />\n )\n}\n\n// Says an error on iOS as it arrives. An error the field opened with is not\n// said, and neither is one that has not changed.\nfunction useErrorAnnouncement(error: string | undefined) {\n const said = useRef(error)\n\n useEffect(() => {\n if (\n Platform.OS === 'ios' &&\n error !== undefined &&\n error !== '' &&\n error !== said.current\n ) {\n AccessibilityInfo.announceForAccessibility(error)\n }\n said.current = error\n }, [error])\n}\n\n/**\n * The rule the box draws, the filled box's indicator or the outlined box's\n * outline: its colour and its width by state.\n */\nfunction useRuleMotion(theme: ResolvedTheme, state: FieldState) {\n const { colors, stateLayerOpacity } = theme\n const width = !state.disabled && state.focused ? 2 : 1\n const color = state.disabled\n ? withOpacity(colors.onSurface, stateLayerOpacity.disabledContainer)\n : state.focused\n ? state.invalid\n ? colors.error\n : colors.primary\n : state.hovered\n ? state.invalid\n ? colors.onErrorContainer\n : colors.onSurface\n : state.invalid\n ? colors.error\n : colors.outline\n\n return useStrokeMotion(color, width)\n}\n\n/**\n * A rule's colour and width, eased to each new pair over `durationShort2` as\n * web transitions them, and moved at once under reduced motion. Hand the\n * result to {@link FieldStroke}.\n */\nfunction useStrokeMotion(color: string, width: number): StrokeMotion {\n const { motion } = useTheme()\n const reduceMotion = useReducedMotion()\n const timing = {\n duration: motion.durationShort2,\n easing: Easing.bezier(...motion.easingStandard),\n }\n\n return {\n color: useDerivedValue<string>(() =>\n reduceMotion ? color : withTiming(color, timing),\n ),\n width: useDerivedValue<number>(() =>\n reduceMotion ? width : withTiming(width, timing),\n ),\n }\n}\n\nfunction webStateOf(box: BoxControl): undefined | WebState {\n if (Platform.OS !== 'web') {\n return undefined\n }\n\n return {\n ...(box.invalid ? { 'aria-invalid': true } : undefined),\n ...(box.required ? { 'aria-required': true } : undefined),\n }\n}\n\nfunction widthOf(width: number): ViewStyle {\n return { width }\n}\n\nfunction widthTo(onMeasure: (width: number) => void) {\n return (event: LayoutChangeEvent) => {\n onMeasure(event.nativeEvent.layout.width)\n }\n}\n\nexport {\n describedBy,\n FieldBox,\n FieldInput,\n FieldMessage,\n FieldStates,\n FieldStroke,\n useFieldFocus,\n useStrokeMotion,\n}\nexport type {\n FieldBoxProps,\n FieldDescriptionPart,\n FieldInputProps,\n FieldMessageProps,\n FieldStatesProps,\n FieldStrokeProps,\n FieldVariant,\n}\n"],"mappings":"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"}
|
package/dist/glyphs/index.js
CHANGED
|
@@ -6,6 +6,24 @@ import { I18nManager, StyleSheet } from "react-native";
|
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
import Svg, { Path } from "react-native-svg";
|
|
8
8
|
//#region src/glyphs/index.tsx
|
|
9
|
+
function ArrowDropDownGlyph(props) {
|
|
10
|
+
const $ = c(3);
|
|
11
|
+
let t0;
|
|
12
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
13
|
+
t0 = /* @__PURE__ */ jsx(Path, { d: "M7 10l5 5 5-5z" });
|
|
14
|
+
$[0] = t0;
|
|
15
|
+
} else t0 = $[0];
|
|
16
|
+
let t1;
|
|
17
|
+
if ($[1] !== props) {
|
|
18
|
+
t1 = /* @__PURE__ */ jsx(Glyph, {
|
|
19
|
+
...props,
|
|
20
|
+
children: t0
|
|
21
|
+
});
|
|
22
|
+
$[1] = props;
|
|
23
|
+
$[2] = t1;
|
|
24
|
+
} else t1 = $[2];
|
|
25
|
+
return t1;
|
|
26
|
+
}
|
|
9
27
|
function CheckGlyph(props) {
|
|
10
28
|
const $ = c(3);
|
|
11
29
|
let t0;
|
|
@@ -178,6 +196,6 @@ function SearchGlyph(props) {
|
|
|
178
196
|
return t1;
|
|
179
197
|
}
|
|
180
198
|
//#endregion
|
|
181
|
-
export { CheckGlyph, ChevronEndGlyph, CloseGlyph, IndeterminateGlyph, MinusGlyph, PersonGlyph, PlusGlyph, SearchGlyph };
|
|
199
|
+
export { ArrowDropDownGlyph, CheckGlyph, ChevronEndGlyph, CloseGlyph, IndeterminateGlyph, MinusGlyph, PersonGlyph, PlusGlyph, SearchGlyph };
|
|
182
200
|
|
|
183
201
|
//# sourceMappingURL=index.js.map
|