@@ -222,17 +222,17 @@ export const CalendarRange = ({
onNextMonth={setNextMonth}
disablePickers={disablePickers}
className={styles['CalendarRange__header']}
- prevMonthAriaLabel={prevMonthAriaLabel}
- nextMonthAriaLabel={nextMonthAriaLabel}
- changeMonthAriaLabel={changeMonthAriaLabel}
- changeYearAriaLabel={changeYearAriaLabel}
+ prevMonthLabel={prevMonthLabel}
+ nextMonthLabel={nextMonthLabel}
+ changeMonthLabel={changeMonthLabel}
+ changeYearLabel={changeYearLabel}
nextMonthIcon={nextMonthIcon}
/>
{
const localHours = isDayDisabled
@@ -72,7 +72,7 @@ export const CalendarTime = ({
options={localHours}
onChange={onHoursChange}
forceDropdownPortal={false}
- aria-label={changeHoursAriaLabel}
+ aria-label={changeHoursLabel}
/>
@@ -84,13 +84,13 @@ export const CalendarTime = ({
options={localMinutes}
onChange={onMinutesChange}
forceDropdownPortal={false}
- aria-label={changeMinutesAriaLabel}
+ aria-label={changeMinutesLabel}
/>
-
diff --git a/packages/vkui/src/components/Cell/Cell.tsx b/packages/vkui/src/components/Cell/Cell.tsx
index 59e7e94dca..bdb91d8ebf 100644
--- a/packages/vkui/src/components/Cell/Cell.tsx
+++ b/packages/vkui/src/components/Cell/Cell.tsx
@@ -40,7 +40,7 @@ export interface CellProps
*/
onDragFinish?(swappedItemRange: SwappedItemRange): void;
/**
- * aria-label для кнопки перетаскивания ячейки
+ * Текст для кнопки перетаскивания ячейки
*/
draggerLabel?: string;
}
@@ -84,11 +84,12 @@ export const Cell = ({
+ >
+ {draggerLabel}
+
) : null;
let checkbox;
diff --git a/packages/vkui/src/components/Cell/CellDragger/CellDragger.tsx b/packages/vkui/src/components/Cell/CellDragger/CellDragger.tsx
index b6ebb543de..c730f66b12 100644
--- a/packages/vkui/src/components/Cell/CellDragger/CellDragger.tsx
+++ b/packages/vkui/src/components/Cell/CellDragger/CellDragger.tsx
@@ -10,6 +10,7 @@ import { usePlatform } from '../../../hooks/usePlatform';
import { useIsomorphicLayoutEffect } from '../../../lib/useIsomorphicLayoutEffect';
import { HTMLAttributesWithRootRef } from '../../../types';
import { Touch } from '../../Touch/Touch';
+import { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden';
import styles from './CellDragger.module.css';
interface CellDraggerProps
@@ -25,6 +26,7 @@ export const CellDragger = ({
className,
onDragStateChange,
onDragFinish,
+ children,
...restProps
}: CellDraggerProps) => {
const platform = usePlatform();
@@ -49,6 +51,7 @@ export const CellDragger = ({
onEnd={disabled ? undefined : onDragEnd}
{...restProps}
>
+ {children &&
{children}}
);
diff --git a/packages/vkui/src/components/Chip/Chip.tsx b/packages/vkui/src/components/Chip/Chip.tsx
index fc91edb39c..94cd17aa68 100644
--- a/packages/vkui/src/components/Chip/Chip.tsx
+++ b/packages/vkui/src/components/Chip/Chip.tsx
@@ -2,7 +2,7 @@ import * as React from 'react';
import { Icon16Cancel } from '@vkontakte/icons';
import { classNames, hasReactNode, noop } from '@vkontakte/vkjs';
import { useAdaptivity } from '../../hooks/useAdaptivity';
-import { getTitleFromChildren } from '../../lib/utils';
+import { getTextFromChildren } from '../../lib/children';
import { HTMLAttributesWithRootRef } from '../../types';
import { RootComponent } from '../RootComponent/RootComponent';
import { Tappable } from '../Tappable/Tappable';
@@ -58,7 +58,7 @@ export const Chip = ({
},
[onRemove, value],
);
- const title = getTitleFromChildren(children);
+ const title = getTextFromChildren(children);
return (
+
) : (
-
+
)
@@ -249,7 +249,7 @@ export const DateInput = ({
index={0}
onElementSelect={setFocusedElement}
value={internalValue[0]}
- aria-label={changeDayAriaLabel}
+ label={changeDayLabel}
/>
.
.
{enableTime && (
@@ -280,7 +280,7 @@ export const DateInput = ({
index={3}
onElementSelect={setFocusedElement}
value={internalValue[3]}
- aria-label={changeHoursAriaLabel}
+ label={changeHoursLabel}
/>
:
)}
@@ -307,13 +307,13 @@ export const DateInput = ({
getRootRef={calendarRef}
doneButtonText={doneButtonText}
disablePickers={disablePickers}
- changeHoursAriaLabel={changeHoursAriaLabel}
- changeMinutesAriaLabel={changeMinutesAriaLabel}
- prevMonthAriaLabel={prevMonthAriaLabel}
- nextMonthAriaLabel={nextMonthAriaLabel}
- changeMonthAriaLabel={changeMonthAriaLabel}
- changeYearAriaLabel={changeYearAriaLabel}
- changeDayAriaLabel={changeDayAriaLabel}
+ changeHoursLabel={changeHoursLabel}
+ changeMinutesLabel={changeMinutesLabel}
+ prevMonthLabel={prevMonthLabel}
+ nextMonthLabel={nextMonthLabel}
+ changeMonthLabel={changeMonthLabel}
+ changeYearLabel={changeYearLabel}
+ changeDayLabel={changeDayLabel}
showNeighboringMonth={showNeighboringMonth}
size={size}
viewDate={viewDate}
diff --git a/packages/vkui/src/components/DateRangeInput/DateRangeInput.tsx b/packages/vkui/src/components/DateRangeInput/DateRangeInput.tsx
index 5da6ad8b72..301a288a5b 100644
--- a/packages/vkui/src/components/DateRangeInput/DateRangeInput.tsx
+++ b/packages/vkui/src/components/DateRangeInput/DateRangeInput.tsx
@@ -15,6 +15,7 @@ import { InputLike } from '../InputLike/InputLike';
import { InputLikeDivider } from '../InputLike/InputLikeDivider';
import { Popper } from '../Popper/Popper';
import { Text } from '../Typography/Text/Text';
+import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
import styles from './DateRangeInput.module.css';
import dateInputStyles from '../DateInput/DateInput.module.css';
@@ -34,11 +35,11 @@ export interface DateRangeInputProps
| 'value'
| 'weekStartsOn'
| 'disablePickers'
- | 'prevMonthAriaLabel'
- | 'nextMonthAriaLabel'
- | 'changeMonthAriaLabel'
- | 'changeYearAriaLabel'
- | 'changeDayAriaLabel'
+ | 'prevMonthLabel'
+ | 'nextMonthLabel'
+ | 'changeMonthLabel'
+ | 'changeYearLabel'
+ | 'changeDayLabel'
| 'prevMonthIcon'
| 'nextMonthIcon'
>,
@@ -46,14 +47,14 @@ export interface DateRangeInputProps
FormFieldProps {
calendarPlacement?: PlacementWithAuto;
closeOnChange?: boolean;
- clearFieldAriaLabel?: string;
- showCalendarAriaLabel?: string;
- changeStartDayAriaLabel?: string;
- changeStartMonthAriaLabel?: string;
- changeStartYearAriaLabel?: string;
- changeEndDayAriaLabel?: string;
- changeEndMonthAriaLabel?: string;
- changeEndYearAriaLabel?: string;
+ clearFieldLabel?: string;
+ showCalendarLabel?: string;
+ changeStartDayLabel?: string;
+ changeStartMonthLabel?: string;
+ changeStartYearLabel?: string;
+ changeEndDayLabel?: string;
+ changeEndMonthLabel?: string;
+ changeEndYearLabel?: string;
disableCalendar?: boolean;
}
@@ -117,19 +118,19 @@ export const DateRangeInput = ({
disabled,
onClick,
onFocus,
- prevMonthAriaLabel,
- nextMonthAriaLabel,
- changeDayAriaLabel,
- changeMonthAriaLabel,
- changeYearAriaLabel,
- changeStartDayAriaLabel = 'Изменить день начала',
- changeStartMonthAriaLabel = 'Изменить месяц начала',
- changeStartYearAriaLabel = 'Изменить год начала',
- changeEndDayAriaLabel = 'Изменить день окончания',
- changeEndMonthAriaLabel = 'Изменить месяц окончания',
- changeEndYearAriaLabel = 'Изменить год окончания',
- clearFieldAriaLabel = 'Очистить поле',
- showCalendarAriaLabel = 'Показать календарь',
+ prevMonthLabel = 'Предыдущий месяц',
+ nextMonthLabel = 'Следующий месяц',
+ changeDayLabel = 'Изменить день',
+ changeMonthLabel = 'Изменить месяц',
+ changeYearLabel = 'Изменить год',
+ changeStartDayLabel = 'Изменить день начала',
+ changeStartMonthLabel = 'Изменить месяц начала',
+ changeStartYearLabel = 'Изменить год начала',
+ changeEndDayLabel = 'Изменить день окончания',
+ changeEndMonthLabel = 'Изменить месяц окончания',
+ changeEndYearLabel = 'Изменить год окончания',
+ clearFieldLabel = 'Очистить поле',
+ showCalendarLabel = 'Показать календарь',
prevMonthIcon,
nextMonthIcon,
disableCalendar = false,
@@ -236,11 +237,13 @@ export const DateRangeInput = ({
getRootRef={handleRootRef}
after={
value ? (
-
+
+ {clearFieldLabel}
) : (
-
+
+ {showCalendarLabel}
)
@@ -268,7 +271,7 @@ export const DateRangeInput = ({
index={0}
onElementSelect={setFocusedElement}
value={internalValue[0]}
- aria-label={changeStartDayAriaLabel}
+ label={changeStartDayLabel}
/>
.
.
{' — '}
.
.
{open && !disableCalendar && (
@@ -327,11 +330,11 @@ export const DateRangeInput = ({
onClose={closeCalendar}
getRootRef={calendarRef}
disablePickers={disablePickers}
- prevMonthAriaLabel={prevMonthAriaLabel}
- nextMonthAriaLabel={nextMonthAriaLabel}
- changeMonthAriaLabel={changeMonthAriaLabel}
- changeYearAriaLabel={changeYearAriaLabel}
- changeDayAriaLabel={changeDayAriaLabel}
+ prevMonthLabel={prevMonthLabel}
+ nextMonthLabel={nextMonthLabel}
+ changeMonthLabel={changeMonthLabel}
+ changeYearLabel={changeYearLabel}
+ changeDayLabel={changeDayLabel}
prevMonthIcon={prevMonthIcon}
nextMonthIcon={nextMonthIcon}
/>
diff --git a/packages/vkui/src/components/InputLike/InputLike.tsx b/packages/vkui/src/components/InputLike/InputLike.tsx
index 80571bcc28..06873e04b7 100644
--- a/packages/vkui/src/components/InputLike/InputLike.tsx
+++ b/packages/vkui/src/components/InputLike/InputLike.tsx
@@ -1,14 +1,15 @@
import * as React from 'react';
import { callMultiple } from '../../lib/callMultiple';
import { stopPropagation } from '../../lib/utils';
-import { HTMLAttributesWithRootRef } from '../../types';
-import { RootComponent } from '../RootComponent/RootComponent';
+import { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';
+import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
import styles from './InputLike.module.css';
-export interface InputLikeProps extends HTMLAttributesWithRootRef {
+export interface InputLikeProps extends RootComponentProps {
length: number;
index: number;
value?: string;
+ label?: string;
onElementSelect?(index: number): void;
}
@@ -33,7 +34,8 @@ export const InputLike = ({
onElementSelect,
onClick,
onFocus,
- ...props
+ label,
+ ...restProps
}: InputLikeProps) => {
const handleElementSelect = React.useCallback(
(event: React.MouseEvent) => {
@@ -50,8 +52,9 @@ export const InputLike = ({
tabIndex={0}
onClick={callMultiple(onClick, handleElementSelect)}
onFocus={callMultiple(stopPropagation, onFocus)}
- {...props}
+ {...restProps}
>
+ {label && {label}}
{value?.slice(0, length - 1)}
{value?.slice(length - 1) && (
diff --git a/packages/vkui/src/components/ModalCardBase/ModalCardBase.tsx b/packages/vkui/src/components/ModalCardBase/ModalCardBase.tsx
index a7994ec898..e678b1993f 100644
--- a/packages/vkui/src/components/ModalCardBase/ModalCardBase.tsx
+++ b/packages/vkui/src/components/ModalCardBase/ModalCardBase.tsx
@@ -49,7 +49,7 @@ export interface ModalCardBaseProps extends HTMLAttributesWithRootRef{actions} }