@astral/ui 4.49.0 → 4.51.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/components/NewStepper/NewStepper.d.ts +2 -0
- package/components/NewStepper/NewStepper.js +30 -0
- package/components/NewStepper/Step/Description/Description.d.ts +7 -0
- package/components/NewStepper/Step/Description/Description.js +8 -0
- package/components/NewStepper/Step/Description/index.d.ts +1 -0
- package/components/NewStepper/Step/Description/index.js +1 -0
- package/components/NewStepper/Step/Description/styles.d.ts +11 -0
- package/components/NewStepper/Step/Description/styles.js +18 -0
- package/components/NewStepper/Step/Label/Label.d.ts +7 -0
- package/components/NewStepper/Step/Label/Label.js +9 -0
- package/components/NewStepper/Step/Label/index.d.ts +1 -0
- package/components/NewStepper/Step/Label/index.js +1 -0
- package/components/NewStepper/Step/Label/styles.d.ts +25 -0
- package/components/NewStepper/Step/Label/styles.js +23 -0
- package/components/NewStepper/Step/Step.d.ts +2 -0
- package/components/NewStepper/Step/Step.js +80 -0
- package/components/NewStepper/Step/constants.d.ts +28 -0
- package/components/NewStepper/Step/constants.js +25 -0
- package/components/NewStepper/Step/index.d.ts +3 -0
- package/components/NewStepper/Step/index.js +2 -0
- package/components/NewStepper/Step/styles.d.ts +38 -0
- package/components/NewStepper/Step/styles.js +312 -0
- package/components/NewStepper/Step/types.d.ts +44 -0
- package/components/NewStepper/Step/types.js +1 -0
- package/components/NewStepper/Step/useLogic/index.d.ts +1 -0
- package/components/NewStepper/Step/useLogic/index.js +1 -0
- package/components/NewStepper/Step/useLogic/useLogic.d.ts +23 -0
- package/components/NewStepper/Step/useLogic/useLogic.js +55 -0
- package/components/NewStepper/StepIcon/StepIcon.d.ts +28 -0
- package/components/NewStepper/StepIcon/StepIcon.js +34 -0
- package/components/NewStepper/StepIcon/constants.d.ts +7 -0
- package/components/NewStepper/StepIcon/constants.js +8 -0
- package/components/NewStepper/StepIcon/index.d.ts +2 -0
- package/components/NewStepper/StepIcon/index.js +2 -0
- package/components/NewStepper/StepperContext/StepperContext.d.ts +10 -0
- package/components/NewStepper/StepperContext/StepperContext.js +9 -0
- package/components/NewStepper/StepperContext/StepperContextProvider/StepperContextProvider.d.ts +7 -0
- package/components/NewStepper/StepperContext/StepperContextProvider/StepperContextProvider.js +21 -0
- package/components/NewStepper/StepperContext/StepperContextProvider/index.d.ts +1 -0
- package/components/NewStepper/StepperContext/StepperContextProvider/index.js +1 -0
- package/components/NewStepper/StepperContext/index.d.ts +2 -0
- package/components/NewStepper/StepperContext/index.js +2 -0
- package/components/NewStepper/constants.d.ts +13 -0
- package/components/NewStepper/constants.js +14 -0
- package/components/NewStepper/index.d.ts +4 -0
- package/components/NewStepper/index.js +3 -0
- package/components/NewStepper/public.d.ts +4 -0
- package/components/NewStepper/public.js +3 -0
- package/components/NewStepper/styles.d.ts +5 -0
- package/components/NewStepper/styles.js +44 -0
- package/components/NewStepper/types.d.ts +33 -0
- package/components/NewStepper/types.js +1 -0
- package/components/NewStepper/useLogic/index.d.ts +1 -0
- package/components/NewStepper/useLogic/index.js +1 -0
- package/components/NewStepper/useLogic/useLogic.d.ts +15 -0
- package/components/NewStepper/useLogic/useLogic.js +47 -0
- package/components/NewStepper/useLogic/utils/index.d.ts +1 -0
- package/components/NewStepper/useLogic/utils/index.js +1 -0
- package/components/NewStepper/useLogic/utils/validateStepperProps/index.d.ts +1 -0
- package/components/NewStepper/useLogic/utils/validateStepperProps/index.js +1 -0
- package/components/NewStepper/useLogic/utils/validateStepperProps/validateStepperProps.d.ts +5 -0
- package/components/NewStepper/useLogic/utils/validateStepperProps/validateStepperProps.js +16 -0
- package/components/Stepper/Stepper.d.ts +3 -0
- package/components/Stepper/Stepper.js +3 -0
- package/components/StepperWizard/StepperWizard.d.ts +3 -0
- package/components/StepperWizard/StepperWizard.js +3 -0
- package/components/Typography/Typography.js +1 -1
- package/components/Typography/constants.d.ts +1 -0
- package/components/Typography/constants.js +2 -0
- package/hook-form/FormWizard/FormWizard.js +4 -3
- package/hook-form/FormWizard/styles.d.ts +1 -4
- package/hook-form/FormWizard/styles.js +4 -6
- package/hook-form/FormWizard/useLogic/useLogic.d.ts +5 -6
- package/hook-form/FormWizard/useLogic/useLogic.js +4 -5
- package/hook-form/useFormWizard/useFormWizard.js +4 -2
- package/node/components/NewStepper/NewStepper.d.ts +2 -0
- package/node/components/NewStepper/NewStepper.js +34 -0
- package/node/components/NewStepper/Step/Description/Description.d.ts +7 -0
- package/node/components/NewStepper/Step/Description/Description.js +12 -0
- package/node/components/NewStepper/Step/Description/index.d.ts +1 -0
- package/node/components/NewStepper/Step/Description/index.js +17 -0
- package/node/components/NewStepper/Step/Description/styles.d.ts +11 -0
- package/node/components/NewStepper/Step/Description/styles.js +21 -0
- package/node/components/NewStepper/Step/Label/Label.d.ts +7 -0
- package/node/components/NewStepper/Step/Label/Label.js +13 -0
- package/node/components/NewStepper/Step/Label/index.d.ts +1 -0
- package/node/components/NewStepper/Step/Label/index.js +5 -0
- package/node/components/NewStepper/Step/Label/styles.d.ts +25 -0
- package/node/components/NewStepper/Step/Label/styles.js +26 -0
- package/node/components/NewStepper/Step/Step.d.ts +2 -0
- package/node/components/NewStepper/Step/Step.js +84 -0
- package/node/components/NewStepper/Step/constants.d.ts +28 -0
- package/node/components/NewStepper/Step/constants.js +28 -0
- package/node/components/NewStepper/Step/index.d.ts +3 -0
- package/node/components/NewStepper/Step/index.js +7 -0
- package/node/components/NewStepper/Step/styles.d.ts +38 -0
- package/node/components/NewStepper/Step/styles.js +315 -0
- package/node/components/NewStepper/Step/types.d.ts +44 -0
- package/node/components/NewStepper/Step/types.js +2 -0
- package/node/components/NewStepper/Step/useLogic/index.d.ts +1 -0
- package/node/components/NewStepper/Step/useLogic/index.js +17 -0
- package/node/components/NewStepper/Step/useLogic/useLogic.d.ts +23 -0
- package/node/components/NewStepper/Step/useLogic/useLogic.js +59 -0
- package/node/components/NewStepper/StepIcon/StepIcon.d.ts +28 -0
- package/node/components/NewStepper/StepIcon/StepIcon.js +38 -0
- package/node/components/NewStepper/StepIcon/constants.d.ts +7 -0
- package/node/components/NewStepper/StepIcon/constants.js +11 -0
- package/node/components/NewStepper/StepIcon/index.d.ts +2 -0
- package/node/components/NewStepper/StepIcon/index.js +7 -0
- package/node/components/NewStepper/StepperContext/StepperContext.d.ts +10 -0
- package/node/components/NewStepper/StepperContext/StepperContext.js +12 -0
- package/node/components/NewStepper/StepperContext/StepperContextProvider/StepperContextProvider.d.ts +7 -0
- package/node/components/NewStepper/StepperContext/StepperContextProvider/StepperContextProvider.js +25 -0
- package/node/components/NewStepper/StepperContext/StepperContextProvider/index.d.ts +1 -0
- package/node/components/NewStepper/StepperContext/StepperContextProvider/index.js +17 -0
- package/node/components/NewStepper/StepperContext/index.d.ts +2 -0
- package/node/components/NewStepper/StepperContext/index.js +18 -0
- package/node/components/NewStepper/constants.d.ts +13 -0
- package/node/components/NewStepper/constants.js +17 -0
- package/node/components/NewStepper/index.d.ts +4 -0
- package/node/components/NewStepper/index.js +10 -0
- package/node/components/NewStepper/public.d.ts +4 -0
- package/node/components/NewStepper/public.js +10 -0
- package/node/components/NewStepper/styles.d.ts +5 -0
- package/node/components/NewStepper/styles.js +47 -0
- package/node/components/NewStepper/types.d.ts +33 -0
- package/node/components/NewStepper/types.js +2 -0
- package/node/components/NewStepper/useLogic/index.d.ts +1 -0
- package/node/components/NewStepper/useLogic/index.js +17 -0
- package/node/components/NewStepper/useLogic/useLogic.d.ts +15 -0
- package/node/components/NewStepper/useLogic/useLogic.js +51 -0
- package/node/components/NewStepper/useLogic/utils/index.d.ts +1 -0
- package/node/components/NewStepper/useLogic/utils/index.js +17 -0
- package/node/components/NewStepper/useLogic/utils/validateStepperProps/index.d.ts +1 -0
- package/node/components/NewStepper/useLogic/utils/validateStepperProps/index.js +17 -0
- package/node/components/NewStepper/useLogic/utils/validateStepperProps/validateStepperProps.d.ts +5 -0
- package/node/components/NewStepper/useLogic/utils/validateStepperProps/validateStepperProps.js +20 -0
- package/node/components/Stepper/Stepper.d.ts +3 -0
- package/node/components/Stepper/Stepper.js +3 -0
- package/node/components/StepperWizard/StepperWizard.d.ts +3 -0
- package/node/components/StepperWizard/StepperWizard.js +3 -0
- package/node/components/Typography/Typography.js +1 -1
- package/node/components/Typography/constants.d.ts +1 -0
- package/node/components/Typography/constants.js +2 -0
- package/node/hook-form/FormWizard/FormWizard.js +3 -2
- package/node/hook-form/FormWizard/styles.d.ts +1 -4
- package/node/hook-form/FormWizard/styles.js +5 -7
- package/node/hook-form/FormWizard/useLogic/useLogic.d.ts +5 -6
- package/node/hook-form/FormWizard/useLogic/useLogic.js +4 -5
- package/node/hook-form/useFormWizard/useFormWizard.js +4 -2
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const stepperClassnames: {
|
|
2
|
+
root: string;
|
|
3
|
+
lineConnector: string;
|
|
4
|
+
arrowConnector: string;
|
|
5
|
+
orientationHorizontal: string;
|
|
6
|
+
orientationVertical: string;
|
|
7
|
+
alternativeLabel: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const STEPPER_ORDER_COUNTER_NAME = "astral-ui-stepper-order";
|
|
10
|
+
/**
|
|
11
|
+
* Задержка перед scrollIntoView после смены activeStep, что бы анимация появления текста завершилась
|
|
12
|
+
*/
|
|
13
|
+
export declare const MOBILE_ACTIVE_STEP_SCROLL_DEFER_MS = 300;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MOBILE_ACTIVE_STEP_SCROLL_DEFER_MS = exports.STEPPER_ORDER_COUNTER_NAME = exports.stepperClassnames = void 0;
|
|
4
|
+
const createUIKitClassname_1 = require("../utils/createUIKitClassname");
|
|
5
|
+
exports.stepperClassnames = {
|
|
6
|
+
root: (0, createUIKitClassname_1.createUIKitClassname)('stepper'),
|
|
7
|
+
lineConnector: (0, createUIKitClassname_1.createUIKitClassname)('stepper_connector-line'),
|
|
8
|
+
arrowConnector: (0, createUIKitClassname_1.createUIKitClassname)('stepper_connector-arrow'),
|
|
9
|
+
orientationHorizontal: (0, createUIKitClassname_1.createUIKitClassname)('stepper_orientation-horizontal'),
|
|
10
|
+
orientationVertical: (0, createUIKitClassname_1.createUIKitClassname)('stepper_orientation-vertical'),
|
|
11
|
+
alternativeLabel: (0, createUIKitClassname_1.createUIKitClassname)('stepper_alternative-label'),
|
|
12
|
+
};
|
|
13
|
+
exports.STEPPER_ORDER_COUNTER_NAME = 'astral-ui-stepper-order';
|
|
14
|
+
/**
|
|
15
|
+
* Задержка перед scrollIntoView после смены activeStep, что бы анимация появления текста завершилась
|
|
16
|
+
*/
|
|
17
|
+
exports.MOBILE_ACTIVE_STEP_SCROLL_DEFER_MS = 300;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stepIconClassnames = exports.stepClassnames = exports.Step = exports.NewStepper = void 0;
|
|
4
|
+
var NewStepper_1 = require("./NewStepper");
|
|
5
|
+
Object.defineProperty(exports, "NewStepper", { enumerable: true, get: function () { return NewStepper_1.NewStepper; } });
|
|
6
|
+
var Step_1 = require("./Step");
|
|
7
|
+
Object.defineProperty(exports, "Step", { enumerable: true, get: function () { return Step_1.Step; } });
|
|
8
|
+
Object.defineProperty(exports, "stepClassnames", { enumerable: true, get: function () { return Step_1.stepClassnames; } });
|
|
9
|
+
var StepIcon_1 = require("./StepIcon");
|
|
10
|
+
Object.defineProperty(exports, "stepIconClassnames", { enumerable: true, get: function () { return StepIcon_1.stepIconClassnames; } });
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stepIconClassnames = exports.stepClassnames = exports.Step = exports.NewStepper = void 0;
|
|
4
|
+
var NewStepper_1 = require("./NewStepper");
|
|
5
|
+
Object.defineProperty(exports, "NewStepper", { enumerable: true, get: function () { return NewStepper_1.NewStepper; } });
|
|
6
|
+
var Step_1 = require("./Step");
|
|
7
|
+
Object.defineProperty(exports, "Step", { enumerable: true, get: function () { return Step_1.Step; } });
|
|
8
|
+
Object.defineProperty(exports, "stepClassnames", { enumerable: true, get: function () { return Step_1.stepClassnames; } });
|
|
9
|
+
var StepIcon_1 = require("./StepIcon");
|
|
10
|
+
Object.defineProperty(exports, "stepIconClassnames", { enumerable: true, get: function () { return StepIcon_1.stepIconClassnames; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Wrapper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
|
|
3
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
4
|
+
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
5
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Wrapper = void 0;
|
|
4
|
+
const styled_1 = require("../styled");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
exports.Wrapper = styled_1.styled.div `
|
|
7
|
+
counter-reset: ${constants_1.STEPPER_ORDER_COUNTER_NAME} 0;
|
|
8
|
+
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: flex-start;
|
|
11
|
+
|
|
12
|
+
&.${constants_1.stepperClassnames.orientationHorizontal} {
|
|
13
|
+
flex-direction: row;
|
|
14
|
+
|
|
15
|
+
&.${constants_1.stepperClassnames.arrowConnector} {
|
|
16
|
+
align-items: center;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&.${constants_1.stepperClassnames.lineConnector} {
|
|
20
|
+
&:not(.${constants_1.stepperClassnames.alternativeLabel}) {
|
|
21
|
+
align-items: center;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&.${constants_1.stepperClassnames.orientationVertical} {
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
|
|
29
|
+
&.${constants_1.stepperClassnames.lineConnector} {
|
|
30
|
+
gap: ${({ theme }) => theme.microSpacing(1)};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
35
|
+
/* Убираем видимую полосу прокрутки в firefox */
|
|
36
|
+
scrollbar-width: none;
|
|
37
|
+
|
|
38
|
+
overflow-x: auto;
|
|
39
|
+
|
|
40
|
+
width: 100%;
|
|
41
|
+
|
|
42
|
+
/* Убираем видимую полосу прокрутки в chrome */
|
|
43
|
+
&::-webkit-scrollbar {
|
|
44
|
+
display: none;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
`;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type StepperProps = {
|
|
3
|
+
activeStep?: number;
|
|
4
|
+
className?: string;
|
|
5
|
+
/**
|
|
6
|
+
* Тип соединителя между шагами
|
|
7
|
+
*/
|
|
8
|
+
connector?: 'arrow' | 'line';
|
|
9
|
+
orientation?: 'horizontal' | 'vertical';
|
|
10
|
+
/**
|
|
11
|
+
* Отображение названия шага под иконкой
|
|
12
|
+
*
|
|
13
|
+
* Работает только с `orientation="horizontal"` и типом `connector: "line"`.
|
|
14
|
+
*/
|
|
15
|
+
alternativeLabel?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Функция вызываемая при клике на предыдущий шаг. Делает кликабельными только предыдущие шаги.
|
|
18
|
+
*/
|
|
19
|
+
onClickPrevStep?: (index: number) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Функция вызываемая при клике на шаг. Делает все шаги кликабельными.
|
|
22
|
+
*/
|
|
23
|
+
onClickStep?: (index: number) => void;
|
|
24
|
+
/**
|
|
25
|
+
* @example
|
|
26
|
+
* <NewStepper>
|
|
27
|
+
* <Step label="Step 1" stepId={1} />
|
|
28
|
+
* <Step label="Step 2" stepId={2} />
|
|
29
|
+
* <Step label="Step 3" stepId={3} />
|
|
30
|
+
* </NewStepper>
|
|
31
|
+
*/
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useLogic';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useLogic"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { StepperProps } from '../types';
|
|
3
|
+
type UseLogicParams = StepperProps;
|
|
4
|
+
export declare const useLogic: ({ orientation, connector, alternativeLabel, activeStep, onClickPrevStep, onClickStep, className, children, }: UseLogicParams) => {
|
|
5
|
+
containerRef: import("react").RefObject<HTMLDivElement | null>;
|
|
6
|
+
stepperConnector: "line" | "arrow";
|
|
7
|
+
stepperAlternativeLabel: boolean;
|
|
8
|
+
activeStep: number;
|
|
9
|
+
onClickPrevStep: ((index: number) => void) | undefined;
|
|
10
|
+
orientation: "horizontal" | "vertical";
|
|
11
|
+
onClickStep: ((index: number) => void) | undefined;
|
|
12
|
+
className: string | undefined;
|
|
13
|
+
children: import("react").ReactNode;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLogic = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useViewportType_1 = require("../../useViewportType");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const utils_1 = require("./utils");
|
|
8
|
+
const useLogic = ({ orientation = 'horizontal', connector = 'line', alternativeLabel = false, activeStep = 0, onClickPrevStep, onClickStep, className, children, }) => {
|
|
9
|
+
(0, react_1.useEffect)(() => {
|
|
10
|
+
(0, utils_1.validateStepperProps)({ orientation, connector, alternativeLabel });
|
|
11
|
+
}, []);
|
|
12
|
+
const { isMobile } = (0, useViewportType_1.useViewportType)();
|
|
13
|
+
// На разрешении sm и ниже connector line + alternativeLabel выглядит как connector arrow без alternativeLabel
|
|
14
|
+
const isMobileDisplayStepper = isMobile && orientation === 'horizontal' && connector === 'line';
|
|
15
|
+
const stepperConnector = isMobileDisplayStepper ? 'arrow' : connector;
|
|
16
|
+
const stepperAlternativeLabel = isMobileDisplayStepper
|
|
17
|
+
? false
|
|
18
|
+
: alternativeLabel;
|
|
19
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
20
|
+
(0, react_1.useEffect)(() => {
|
|
21
|
+
if (!isMobile || !containerRef.current) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const container = containerRef.current;
|
|
25
|
+
const runScroll = () => {
|
|
26
|
+
const activeStepElement = container.querySelector('[data-active-step="true"]');
|
|
27
|
+
if (activeStepElement) {
|
|
28
|
+
activeStepElement.scrollIntoView({
|
|
29
|
+
behavior: 'smooth',
|
|
30
|
+
block: 'nearest',
|
|
31
|
+
inline: 'center',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
runScroll();
|
|
37
|
+
}, constants_1.MOBILE_ACTIVE_STEP_SCROLL_DEFER_MS);
|
|
38
|
+
}, [activeStep, isMobile, orientation]);
|
|
39
|
+
return {
|
|
40
|
+
containerRef,
|
|
41
|
+
stepperConnector,
|
|
42
|
+
stepperAlternativeLabel,
|
|
43
|
+
activeStep,
|
|
44
|
+
onClickPrevStep,
|
|
45
|
+
orientation,
|
|
46
|
+
onClickStep,
|
|
47
|
+
className,
|
|
48
|
+
children,
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
exports.useLogic = useLogic;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './validateStepperProps';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./validateStepperProps"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './validateStepperProps';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./validateStepperProps"), exports);
|
package/node/components/NewStepper/useLogic/utils/validateStepperProps/validateStepperProps.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** biome-ignore-all lint/suspicious/noConsole: Сообщение для интеграторов */
|
|
2
|
+
import type { StepperProps } from '../../../types';
|
|
3
|
+
type ValidateStepperPropsParams = Pick<StepperProps, 'orientation' | 'connector' | 'alternativeLabel'>;
|
|
4
|
+
export declare const validateStepperProps: ({ orientation, connector, alternativeLabel, }: ValidateStepperPropsParams) => void;
|
|
5
|
+
export {};
|
package/node/components/NewStepper/useLogic/utils/validateStepperProps/validateStepperProps.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateStepperProps = void 0;
|
|
4
|
+
const VALID_COMBINATIONS = [
|
|
5
|
+
{ orientation: 'horizontal', connector: 'line', alternativeLabel: true },
|
|
6
|
+
{ orientation: 'vertical', connector: 'line', alternativeLabel: false },
|
|
7
|
+
{ orientation: 'horizontal', connector: 'arrow', alternativeLabel: false },
|
|
8
|
+
];
|
|
9
|
+
const validateStepperProps = ({ orientation, connector, alternativeLabel, }) => {
|
|
10
|
+
const isValid = VALID_COMBINATIONS.some((combo) => combo.orientation === orientation &&
|
|
11
|
+
combo.connector === connector &&
|
|
12
|
+
combo.alternativeLabel === alternativeLabel);
|
|
13
|
+
if (!isValid) {
|
|
14
|
+
console.error('Stepper: Неподдерживаемая комбинация параметров. Допустимые варианты:\n' +
|
|
15
|
+
'1) orientation="horizontal", connector="line", alternativeLabel=true\n' +
|
|
16
|
+
'2) orientation="vertical", connector="line", alternativeLabel=false\n' +
|
|
17
|
+
'3) orientation="horizontal", connector="arrow", alternativeLabel=false');
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.validateStepperProps = validateStepperProps;
|
|
@@ -8,5 +8,8 @@ type ConnectorProp = `${ConnectorTypes}` | ReactElement<StepConnectorProps> | nu
|
|
|
8
8
|
export type StepperProps = Omit<StepperPropsWithoutEmotionSpecific, 'connector'> & {
|
|
9
9
|
connector?: ConnectorProp;
|
|
10
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Причина отказа от поддержки: Отказ от MUI. Используйте компонент `NewStepper`.
|
|
13
|
+
*/
|
|
11
14
|
export declare const Stepper: (props: StepperProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
15
|
export {};
|
|
@@ -5,6 +5,9 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const ArrowConnector_1 = require("./ArrowConnector");
|
|
7
7
|
const styles_1 = require("./styles");
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Причина отказа от поддержки: Отказ от MUI. Используйте компонент `NewStepper`.
|
|
10
|
+
*/
|
|
8
11
|
const Stepper = (props) => {
|
|
9
12
|
const { connector, ...restProps } = props;
|
|
10
13
|
const connectorMemo = (0, react_1.useMemo)(() => {
|
|
@@ -4,6 +4,9 @@ exports.StepperWizard = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const Stepper_1 = require("../Stepper");
|
|
6
6
|
const useLogic_1 = require("./useLogic");
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Причина отказа от поддержки: Отказ от MUI. Используйте компонент `NewStepper`.
|
|
9
|
+
*/
|
|
7
10
|
const StepperWizard = (props) => {
|
|
8
11
|
const { clickableSteps, normalSteps, getStepButtonProps, getStepLabelProps } = (0, useLogic_1.useLogic)(props);
|
|
9
12
|
const { steps, onClickPrevStep, ...stepperProps } = props;
|
|
@@ -9,7 +9,7 @@ const hooks_1 = require("./hooks");
|
|
|
9
9
|
const styles_1 = require("./styles");
|
|
10
10
|
exports.Typography = (0, react_1.forwardRef)(({ children, color, colorIntensity = '800', component, withoutCalt, className, ...props }, ref) => {
|
|
11
11
|
const typographyColor = (0, hooks_1.useTypographyColor)({ color, colorIntensity });
|
|
12
|
-
return ((0, jsx_runtime_1.jsx)(styles_1.TypographyWrapper, { ref: ref, ...props, component: component, color: typographyColor, className: (0, classNames_1.classNames)(className, {
|
|
12
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.TypographyWrapper, { ref: ref, ...props, component: component, color: typographyColor, className: (0, classNames_1.classNames)(constants_1.typographyClassnames.root, className, {
|
|
13
13
|
[constants_1.typographyClassnames.withoutCalt]: withoutCalt,
|
|
14
14
|
}), children: children }));
|
|
15
15
|
});
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.typographyClassnames = void 0;
|
|
4
|
+
const createUIKitClassname_1 = require("../utils/createUIKitClassname");
|
|
4
5
|
exports.typographyClassnames = {
|
|
6
|
+
root: (0, createUIKitClassname_1.createUIKitClassname)('typography'),
|
|
5
7
|
withoutCalt: 'typography_without-calt',
|
|
6
8
|
};
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FormWizard = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const ContentState_1 = require("../../components/ContentState");
|
|
6
|
+
const NewStepper_1 = require("../../components/NewStepper");
|
|
6
7
|
const Form_1 = require("../Form");
|
|
7
8
|
const Footer_1 = require("./Footer");
|
|
8
9
|
const styles_1 = require("./styles");
|
|
@@ -11,7 +12,7 @@ const useLogic_1 = require("./useLogic");
|
|
|
11
12
|
* FormWizard предназначен для построения форм со степпером.
|
|
12
13
|
*/
|
|
13
14
|
const FormWizard = (props) => {
|
|
14
|
-
const { Component, footerProps,
|
|
15
|
+
const { Component, footerProps, activeStep, steps } = (0, useLogic_1.useLogic)(props);
|
|
15
16
|
const { className, isFirstStep, isLastStep, isDisabled, isLoading, isError, form, customFooter, errorMsg, onRetry, onClickStep, onPrevStep, onSubmit, onSubmitError, beforeContent, } = props;
|
|
16
17
|
const renderFooter = () => {
|
|
17
18
|
if (customFooter) {
|
|
@@ -25,7 +26,7 @@ const FormWizard = (props) => {
|
|
|
25
26
|
}
|
|
26
27
|
return ((0, jsx_runtime_1.jsx)(Footer_1.Footer, { isDisabled: isDisabled, isFirstStep: isFirstStep, isLastStep: isLastStep, onPrevStep: onPrevStep, ...footerProps }));
|
|
27
28
|
};
|
|
28
|
-
return ((0, jsx_runtime_1.jsxs)(styles_1.Wrapper, { className: className, children: [beforeContent && ((0, jsx_runtime_1.jsx)(styles_1.BeforeContentWrapper, { children: beforeContent })), (0, jsx_runtime_1.jsx)(styles_1.
|
|
29
|
+
return ((0, jsx_runtime_1.jsxs)(styles_1.Wrapper, { className: className, children: [beforeContent && ((0, jsx_runtime_1.jsx)(styles_1.BeforeContentWrapper, { children: beforeContent })), (0, jsx_runtime_1.jsx)(styles_1.StyledNewStepper, { connector: "arrow", onClickPrevStep: onClickStep, activeStep: activeStep, children: steps.map((step) => ((0, jsx_runtime_1.jsx)(NewStepper_1.Step, { ...step }, step.stepId))) }), (0, jsx_runtime_1.jsx)(ContentState_1.ContentState, { isLoading: isLoading, isError: isError,
|
|
29
30
|
// biome-ignore lint/suspicious/noTsIgnore: onRetry не требуется, если форма не инициализируется данными, получаемыми с backend
|
|
30
31
|
// @ts-ignore
|
|
31
32
|
errorState: { errorList: [errorMsg || ''], onRetry }, children: (0, jsx_runtime_1.jsxs)(Form_1.Form, { form: form, isDisabled: isDisabled, onSubmit: form.handleSubmit(onSubmit, onSubmitError), children: [(0, jsx_runtime_1.jsx)(styles_1.FormContent, { children: (0, jsx_runtime_1.jsx)(Component, {}) }), renderFooter()] }) })] }));
|
|
@@ -7,10 +7,7 @@ export declare const BeforeContentWrapper: import("@emotion/styled/dist/declarat
|
|
|
7
7
|
theme?: import("@emotion/react").Theme | undefined;
|
|
8
8
|
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
9
9
|
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
10
|
-
export declare const
|
|
11
|
-
steps: import("../../components/StepperWizard").StepWizard[];
|
|
12
|
-
onClickPrevStep?: ((index: number) => void) | undefined;
|
|
13
|
-
} & {
|
|
10
|
+
export declare const StyledNewStepper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<import("../../components/NewStepper").StepperProps & {
|
|
14
11
|
theme?: import("@emotion/react").Theme | undefined;
|
|
15
12
|
}, {}, {}>;
|
|
16
13
|
export declare const FormContent: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormContent = exports.
|
|
4
|
-
const
|
|
3
|
+
exports.FormContent = exports.StyledNewStepper = exports.BeforeContentWrapper = exports.Wrapper = void 0;
|
|
4
|
+
const NewStepper_1 = require("../../components/NewStepper");
|
|
5
5
|
const styled_1 = require("../../components/styled");
|
|
6
6
|
exports.Wrapper = styled_1.styled.section `
|
|
7
7
|
display: flex;
|
|
@@ -16,14 +16,12 @@ exports.BeforeContentWrapper = styled_1.styled.div `
|
|
|
16
16
|
padding: ${({ theme }) => theme.spacing(0, 4)};
|
|
17
17
|
}
|
|
18
18
|
`;
|
|
19
|
-
exports.
|
|
20
|
-
margin-bottom: ${({ theme }) => theme.spacing(
|
|
19
|
+
exports.StyledNewStepper = (0, styled_1.styled)(NewStepper_1.NewStepper) `
|
|
20
|
+
margin-bottom: ${({ theme }) => theme.spacing(5)};
|
|
21
21
|
padding: ${({ theme }) => theme.spacing(0, 6)};
|
|
22
22
|
|
|
23
23
|
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
margin-bottom: ${({ theme }) => theme.spacing(6)};
|
|
24
|
+
margin-bottom: ${({ theme }) => theme.spacing(4)};
|
|
27
25
|
padding: ${({ theme }) => theme.spacing(0, 4)};
|
|
28
26
|
}
|
|
29
27
|
`;
|
|
@@ -3,12 +3,11 @@ import { type FormWizardProps } from '../FormWizard';
|
|
|
3
3
|
type UseLogicParams<TFormValues extends Record<string, unknown>> = FormWizardProps<TFormValues>;
|
|
4
4
|
export declare const useLogic: <TFormValues extends Record<string, unknown>>({ currentStepId, steps, submitButtonText, isLastStep, }: UseLogicParams<TFormValues>) => {
|
|
5
5
|
Component: import("react").FunctionComponent<{}>;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
6
|
+
steps: {
|
|
7
|
+
label: string;
|
|
8
|
+
stepId: number;
|
|
9
|
+
}[];
|
|
10
|
+
activeStep: number;
|
|
12
11
|
footerProps: {
|
|
13
12
|
prevButtonText: string;
|
|
14
13
|
submitButtonText: string;
|
|
@@ -8,17 +8,16 @@ const useLogic = ({ currentStepId, steps, submitButtonText, isLastStep, }) => {
|
|
|
8
8
|
? steps?.findIndex(({ id }) => Object.is(id, currentStepId))
|
|
9
9
|
: 0, [currentStepId, steps]);
|
|
10
10
|
const currentStep = steps[indexStep];
|
|
11
|
-
const stepsByLabel = steps.map(({ label }) => ({
|
|
11
|
+
const stepsByLabel = steps.map(({ label }, index) => ({
|
|
12
12
|
label,
|
|
13
|
+
stepId: index,
|
|
13
14
|
}));
|
|
14
15
|
const prevButtonText = currentStep.prevButtonText || constants_1.DEFAULT_PREV_BUTTON_TEXT;
|
|
15
16
|
const nextButtonText = currentStep.nextButtonText || constants_1.DEFAULT_NEXT_BUTTON_TEXT;
|
|
16
17
|
return {
|
|
17
18
|
Component: currentStep.component,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
steps: stepsByLabel,
|
|
21
|
-
},
|
|
19
|
+
steps: stepsByLabel,
|
|
20
|
+
activeStep: indexStep,
|
|
22
21
|
footerProps: {
|
|
23
22
|
prevButtonText,
|
|
24
23
|
submitButtonText: isLastStep ? submitButtonText : nextButtonText,
|
|
@@ -68,8 +68,10 @@ const useFormWizard = ({ initialStepId, defaultValues, isDisabled, steps, autoSa
|
|
|
68
68
|
return;
|
|
69
69
|
};
|
|
70
70
|
const handleClickStep = (index) => {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
if (index < 0 || index >= visibleSteps.length) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
setCurrentStepId(visibleSteps[index].id);
|
|
73
75
|
};
|
|
74
76
|
const handlePrevStep = () => {
|
|
75
77
|
if (isFirstStep) {
|