@astral/ui 4.25.1 → 4.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/components/BottomDrawer/BottomDrawer.d.ts +6 -2
  2. package/components/BottomDrawer/BottomDrawer.js +2 -2
  3. package/components/DashboardSidebarPopover/styles.d.ts +1 -0
  4. package/components/Dialog/Dialog.d.ts +6 -2
  5. package/components/Dialog/Dialog.js +3 -3
  6. package/components/DialogTitle/DialogTitle.d.ts +6 -1
  7. package/components/DialogTitle/DialogTitle.js +2 -2
  8. package/components/PageHeader/HeaderContent/HeaderContent.d.ts +2 -2
  9. package/components/PageHeader/HeaderContent/HeaderContent.js +3 -3
  10. package/components/PageHeader/HeaderContent/styles.d.ts +4 -0
  11. package/components/PageHeader/HeaderContent/styles.js +4 -0
  12. package/components/PageHeader/PageHeader.js +2 -2
  13. package/components/PageHeader/types.d.ts +6 -2
  14. package/components/RadioGroup/types.d.ts +0 -3
  15. package/components/SideDialogTitle/styles.d.ts +2 -0
  16. package/components/Tree/types.d.ts +0 -3
  17. package/components/TreeLikeAutocomplete/types.d.ts +0 -3
  18. package/hook-form/FormFilters/FormFilters.d.ts +5 -0
  19. package/hook-form/FormFilters/FormFilters.js +20 -0
  20. package/hook-form/FormFilters/FormFiltersDialog/FormFiltersDialog.d.ts +5 -0
  21. package/hook-form/FormFilters/FormFiltersDialog/FormFiltersDialog.js +15 -0
  22. package/hook-form/FormFilters/FormFiltersDialog/index.d.ts +1 -0
  23. package/hook-form/FormFilters/FormFiltersDialog/index.js +1 -0
  24. package/hook-form/FormFilters/FormFiltersDialog/styles.d.ts +29 -0
  25. package/hook-form/FormFilters/FormFiltersDialog/styles.js +33 -0
  26. package/hook-form/FormFilters/FormFiltersDialog/types.d.ts +20 -0
  27. package/hook-form/FormFilters/FormFiltersDialog/types.js +1 -0
  28. package/hook-form/FormFilters/FormFiltersDialog/useLogic/index.d.ts +1 -0
  29. package/hook-form/FormFilters/FormFiltersDialog/useLogic/index.js +1 -0
  30. package/hook-form/FormFilters/FormFiltersDialog/useLogic/useLogic.d.ts +18 -0
  31. package/hook-form/FormFilters/FormFiltersDialog/useLogic/useLogic.js +38 -0
  32. package/hook-form/FormFilters/FormFiltersSkeleton/FormFiltersSkeleton.d.ts +1 -0
  33. package/hook-form/FormFilters/FormFiltersSkeleton/FormFiltersSkeleton.js +6 -0
  34. package/hook-form/FormFilters/FormFiltersSkeleton/index.d.ts +1 -0
  35. package/hook-form/FormFilters/FormFiltersSkeleton/index.js +1 -0
  36. package/hook-form/FormFilters/FormFiltersSkeleton/styles.d.ts +5 -0
  37. package/hook-form/FormFilters/FormFiltersSkeleton/styles.js +24 -0
  38. package/hook-form/FormFilters/constants.d.ts +10 -0
  39. package/hook-form/FormFilters/constants.js +11 -0
  40. package/hook-form/FormFilters/index.d.ts +3 -0
  41. package/hook-form/FormFilters/index.js +2 -0
  42. package/hook-form/FormFilters/public.d.ts +3 -0
  43. package/hook-form/FormFilters/public.js +2 -0
  44. package/hook-form/FormFilters/styles.d.ts +33 -0
  45. package/hook-form/FormFilters/styles.js +101 -0
  46. package/hook-form/FormFilters/types.d.ts +92 -0
  47. package/hook-form/FormFilters/types.js +1 -0
  48. package/hook-form/FormFilters/useLogic/hooks/index.d.ts +1 -0
  49. package/hook-form/FormFilters/useLogic/hooks/index.js +1 -0
  50. package/hook-form/FormFilters/useLogic/hooks/useFirstMountAfterLoading.d.ts +1 -0
  51. package/hook-form/FormFilters/useLogic/hooks/useFirstMountAfterLoading.js +9 -0
  52. package/hook-form/FormFilters/useLogic/index.d.ts +1 -0
  53. package/hook-form/FormFilters/useLogic/index.js +1 -0
  54. package/hook-form/FormFilters/useLogic/useLogic.d.ts +18 -0
  55. package/hook-form/FormFilters/useLogic/useLogic.js +120 -0
  56. package/hook-form/FormFiltersModalGroup/FormFiltersModalGroup.d.ts +10 -0
  57. package/hook-form/FormFiltersModalGroup/FormFiltersModalGroup.js +13 -0
  58. package/hook-form/FormFiltersModalGroup/index.d.ts +2 -0
  59. package/hook-form/FormFiltersModalGroup/index.js +1 -0
  60. package/hook-form/FormFiltersModalGroup/public.d.ts +2 -0
  61. package/hook-form/FormFiltersModalGroup/public.js +1 -0
  62. package/hook-form/FormFiltersModalGroup/styles.d.ts +4 -0
  63. package/hook-form/FormFiltersModalGroup/styles.js +23 -0
  64. package/hook-form/FormFiltersModalGroup/types.d.ts +9 -0
  65. package/hook-form/FormFiltersModalGroup/types.js +1 -0
  66. package/hook-form/FormFiltersSearchField/FormFiltersSearchField.d.ts +9 -0
  67. package/hook-form/FormFiltersSearchField/FormFiltersSearchField.js +17 -0
  68. package/hook-form/FormFiltersSearchField/constants.d.ts +1 -0
  69. package/hook-form/FormFiltersSearchField/constants.js +1 -0
  70. package/hook-form/FormFiltersSearchField/index.d.ts +1 -0
  71. package/hook-form/FormFiltersSearchField/index.js +1 -0
  72. package/hook-form/FormFiltersSearchField/public.d.ts +1 -0
  73. package/hook-form/FormFiltersSearchField/public.js +1 -0
  74. package/hook-form/FormFiltersSearchField/styles.d.ts +7 -0
  75. package/hook-form/FormFiltersSearchField/styles.js +8 -0
  76. package/hook-form/FormPageLayoutBase/useLogic/useLogic.d.ts +1 -0
  77. package/hook-form/FormSearchField/FormSearchField.d.ts +5 -0
  78. package/hook-form/FormSearchField/FormSearchField.js +15 -0
  79. package/hook-form/FormSearchField/index.d.ts +1 -0
  80. package/hook-form/FormSearchField/index.js +1 -0
  81. package/hook-form/FormSearchField/public.d.ts +1 -0
  82. package/hook-form/FormSearchField/public.js +1 -0
  83. package/node/components/BottomDrawer/BottomDrawer.d.ts +6 -2
  84. package/node/components/BottomDrawer/BottomDrawer.js +2 -2
  85. package/node/components/DashboardSidebarPopover/styles.d.ts +1 -0
  86. package/node/components/Dialog/Dialog.d.ts +6 -2
  87. package/node/components/Dialog/Dialog.js +3 -3
  88. package/node/components/DialogTitle/DialogTitle.d.ts +6 -1
  89. package/node/components/DialogTitle/DialogTitle.js +2 -2
  90. package/node/components/PageHeader/HeaderContent/HeaderContent.d.ts +2 -2
  91. package/node/components/PageHeader/HeaderContent/HeaderContent.js +2 -2
  92. package/node/components/PageHeader/HeaderContent/styles.d.ts +4 -0
  93. package/node/components/PageHeader/HeaderContent/styles.js +5 -1
  94. package/node/components/PageHeader/PageHeader.js +2 -2
  95. package/node/components/PageHeader/types.d.ts +6 -2
  96. package/node/components/RadioGroup/types.d.ts +0 -3
  97. package/node/components/SideDialogTitle/styles.d.ts +2 -0
  98. package/node/components/Tree/types.d.ts +0 -3
  99. package/node/components/TreeLikeAutocomplete/types.d.ts +0 -3
  100. package/node/hook-form/FormFilters/FormFilters.d.ts +5 -0
  101. package/node/hook-form/FormFilters/FormFilters.js +24 -0
  102. package/node/hook-form/FormFilters/FormFiltersDialog/FormFiltersDialog.d.ts +5 -0
  103. package/node/hook-form/FormFilters/FormFiltersDialog/FormFiltersDialog.js +19 -0
  104. package/node/hook-form/FormFilters/FormFiltersDialog/index.d.ts +1 -0
  105. package/node/hook-form/FormFilters/FormFiltersDialog/index.js +5 -0
  106. package/node/hook-form/FormFilters/FormFiltersDialog/styles.d.ts +29 -0
  107. package/node/hook-form/FormFilters/FormFiltersDialog/styles.js +36 -0
  108. package/node/hook-form/FormFilters/FormFiltersDialog/types.d.ts +20 -0
  109. package/node/hook-form/FormFilters/FormFiltersDialog/types.js +2 -0
  110. package/node/hook-form/FormFilters/FormFiltersDialog/useLogic/index.d.ts +1 -0
  111. package/node/hook-form/FormFilters/FormFiltersDialog/useLogic/index.js +17 -0
  112. package/node/hook-form/FormFilters/FormFiltersDialog/useLogic/useLogic.d.ts +18 -0
  113. package/node/hook-form/FormFilters/FormFiltersDialog/useLogic/useLogic.js +42 -0
  114. package/node/hook-form/FormFilters/FormFiltersSkeleton/FormFiltersSkeleton.d.ts +1 -0
  115. package/node/hook-form/FormFilters/FormFiltersSkeleton/FormFiltersSkeleton.js +10 -0
  116. package/node/hook-form/FormFilters/FormFiltersSkeleton/index.d.ts +1 -0
  117. package/node/hook-form/FormFilters/FormFiltersSkeleton/index.js +5 -0
  118. package/node/hook-form/FormFilters/FormFiltersSkeleton/styles.d.ts +5 -0
  119. package/node/hook-form/FormFilters/FormFiltersSkeleton/styles.js +27 -0
  120. package/node/hook-form/FormFilters/constants.d.ts +10 -0
  121. package/node/hook-form/FormFilters/constants.js +14 -0
  122. package/node/hook-form/FormFilters/index.d.ts +3 -0
  123. package/node/hook-form/FormFilters/index.js +7 -0
  124. package/node/hook-form/FormFilters/public.d.ts +3 -0
  125. package/node/hook-form/FormFilters/public.js +7 -0
  126. package/node/hook-form/FormFilters/styles.d.ts +33 -0
  127. package/node/hook-form/FormFilters/styles.js +104 -0
  128. package/node/hook-form/FormFilters/types.d.ts +92 -0
  129. package/node/hook-form/FormFilters/types.js +2 -0
  130. package/node/hook-form/FormFilters/useLogic/hooks/index.d.ts +1 -0
  131. package/node/hook-form/FormFilters/useLogic/hooks/index.js +5 -0
  132. package/node/hook-form/FormFilters/useLogic/hooks/useFirstMountAfterLoading.d.ts +1 -0
  133. package/node/hook-form/FormFilters/useLogic/hooks/useFirstMountAfterLoading.js +13 -0
  134. package/node/hook-form/FormFilters/useLogic/index.d.ts +1 -0
  135. package/node/hook-form/FormFilters/useLogic/index.js +17 -0
  136. package/node/hook-form/FormFilters/useLogic/useLogic.d.ts +18 -0
  137. package/node/hook-form/FormFilters/useLogic/useLogic.js +124 -0
  138. package/node/hook-form/FormFiltersModalGroup/FormFiltersModalGroup.d.ts +10 -0
  139. package/node/hook-form/FormFiltersModalGroup/FormFiltersModalGroup.js +17 -0
  140. package/node/hook-form/FormFiltersModalGroup/index.d.ts +2 -0
  141. package/node/hook-form/FormFiltersModalGroup/index.js +5 -0
  142. package/node/hook-form/FormFiltersModalGroup/public.d.ts +2 -0
  143. package/node/hook-form/FormFiltersModalGroup/public.js +5 -0
  144. package/node/hook-form/FormFiltersModalGroup/styles.d.ts +4 -0
  145. package/node/hook-form/FormFiltersModalGroup/styles.js +26 -0
  146. package/node/hook-form/FormFiltersModalGroup/types.d.ts +9 -0
  147. package/node/hook-form/FormFiltersModalGroup/types.js +2 -0
  148. package/node/hook-form/FormFiltersSearchField/FormFiltersSearchField.d.ts +9 -0
  149. package/node/hook-form/FormFiltersSearchField/FormFiltersSearchField.js +20 -0
  150. package/node/hook-form/FormFiltersSearchField/constants.d.ts +1 -0
  151. package/node/hook-form/FormFiltersSearchField/constants.js +4 -0
  152. package/node/hook-form/FormFiltersSearchField/index.d.ts +1 -0
  153. package/node/hook-form/FormFiltersSearchField/index.js +5 -0
  154. package/node/hook-form/FormFiltersSearchField/public.d.ts +1 -0
  155. package/node/hook-form/FormFiltersSearchField/public.js +5 -0
  156. package/node/hook-form/FormFiltersSearchField/styles.d.ts +7 -0
  157. package/node/hook-form/FormFiltersSearchField/styles.js +11 -0
  158. package/node/hook-form/FormPageLayoutBase/useLogic/useLogic.d.ts +1 -0
  159. package/node/hook-form/FormSearchField/FormSearchField.d.ts +5 -0
  160. package/node/hook-form/FormSearchField/FormSearchField.js +18 -0
  161. package/node/hook-form/FormSearchField/index.d.ts +1 -0
  162. package/node/hook-form/FormSearchField/index.js +5 -0
  163. package/node/hook-form/FormSearchField/public.d.ts +1 -0
  164. package/node/hook-form/FormSearchField/public.js +5 -0
  165. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import type { DrawerProps as MuiDrawerProps } from '@mui/material/Drawer';
2
- import { type ReactElement } from 'react';
2
+ import { type ReactElement, type ReactNode } from 'react';
3
3
  import { type WithoutEmotionSpecific } from '../types/WithoutEmotionSpecific';
4
4
  export type BottomDrawerProps = {
5
5
  /**
@@ -11,5 +11,9 @@ export type BottomDrawerProps = {
11
11
  * * @default 56
12
12
  */
13
13
  drawerHeaderHeight?: number;
14
+ /**
15
+ * Дополнительный контент хедера
16
+ */
17
+ headerContent?: ReactNode;
14
18
  } & WithoutEmotionSpecific<Omit<MuiDrawerProps, 'anchor' | 'variant' | 'title'>>;
15
- export declare const BottomDrawer: ({ title, drawerHeaderHeight, children, onClose, ...props }: BottomDrawerProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const BottomDrawer: ({ title, drawerHeaderHeight, children, onClose, headerContent, ...props }: BottomDrawerProps) => import("react/jsx-runtime").JSX.Element;
@@ -3,11 +3,11 @@ import { CrossOutlineMd } from '../../icons/CrossOutlineMd';
3
3
  import { IconButton } from '../IconButton';
4
4
  import { bottomDrawerClassnames, DEFAULT_HEADER_HEIGHT } from './constants';
5
5
  import { Body, Header, HeaderTitle, StyledDrawer } from './styles';
6
- export const BottomDrawer = ({ title, drawerHeaderHeight = DEFAULT_HEADER_HEIGHT, children, onClose, ...props }) => {
6
+ export const BottomDrawer = ({ title, drawerHeaderHeight = DEFAULT_HEADER_HEIGHT, children, onClose, headerContent, ...props }) => {
7
7
  const handleClose = (event) => {
8
8
  if (onClose) {
9
9
  onClose(event, 'escapeKeyDown');
10
10
  }
11
11
  };
12
- return (_jsxs(StyledDrawer, { ...props, anchor: "bottom", onClose: onClose, children: [_jsxs(Header, { drawerHeaderHeight: drawerHeaderHeight, children: [_jsx(HeaderTitle, { variant: "h6", noWrap: true, children: title }), _jsx(IconButton, { variant: "text", onClick: handleClose, size: "large", children: _jsx(CrossOutlineMd, {}) })] }), _jsx(Body, { className: bottomDrawerClassnames.content, children: children })] }));
12
+ return (_jsxs(StyledDrawer, { ...props, anchor: "bottom", onClose: onClose, children: [_jsxs(Header, { drawerHeaderHeight: drawerHeaderHeight, children: [_jsx(HeaderTitle, { variant: "h6", noWrap: true, children: title }), headerContent, _jsx(IconButton, { variant: "text", onClick: handleClose, size: "large", children: _jsx(CrossOutlineMd, {}) })] }), _jsx(Body, { className: bottomDrawerClassnames.content, children: children })] }));
13
13
  };
@@ -15,6 +15,7 @@ export declare const Title: import("../styled").StyledComponent<import("../Typog
15
15
  export declare const StyledBottomDrawer: import("../styled").StyledComponent<{
16
16
  title?: string | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>[] | undefined;
17
17
  drawerHeaderHeight?: number | undefined;
18
+ headerContent?: import("react").ReactNode;
18
19
  } & import("..").WithoutEmotionSpecific<Omit<import("@mui/material").DrawerProps, "title" | "anchor" | "variant">> & {
19
20
  theme?: import("@emotion/react").Theme | undefined;
20
21
  }, {}, {}>;
@@ -1,5 +1,5 @@
1
1
  import type { DialogProps as MuiDialogProps } from '@mui/material/Dialog';
2
- import { type ReactElement } from 'react';
2
+ import { type ReactElement, type ReactNode } from 'react';
3
3
  import type { WithoutEmotionSpecific } from '../types/WithoutEmotionSpecific';
4
4
  export type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
5
  export type DialogProps = WithoutEmotionSpecific<Omit<MuiDialogProps, 'title' | 'maxWidth'>> & {
@@ -16,5 +16,9 @@ export type DialogProps = WithoutEmotionSpecific<Omit<MuiDialogProps, 'title' |
16
16
  * @default md
17
17
  */
18
18
  size?: DialogSize;
19
+ /**
20
+ * Дополнительный контент хедера
21
+ */
22
+ headerContent?: ReactNode;
19
23
  };
20
- export declare const Dialog: ({ children, title, disableBackdropClick, onClose, size, ...props }: DialogProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const Dialog: ({ children, title, disableBackdropClick, onClose, size, headerContent, ...props }: DialogProps) => import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,7 @@ import { BottomDrawer } from '../BottomDrawer';
3
3
  import { DialogTitle } from '../DialogTitle';
4
4
  import { useViewportType } from '../useViewportType';
5
5
  import { StyledDialog } from './styles';
6
- export const Dialog = ({ children, title, disableBackdropClick, onClose, size = 'md', ...props }) => {
6
+ export const Dialog = ({ children, title, disableBackdropClick, onClose, size = 'md', headerContent, ...props }) => {
7
7
  const handleClose = onClose &&
8
8
  ((event, reason) => {
9
9
  if (disableBackdropClick && reason === 'backdropClick') {
@@ -13,7 +13,7 @@ export const Dialog = ({ children, title, disableBackdropClick, onClose, size =
13
13
  });
14
14
  const { isMobile } = useViewportType();
15
15
  if (isMobile) {
16
- return (_jsx(BottomDrawer, { onClose: handleClose, title: title, ...props, children: children }));
16
+ return (_jsx(BottomDrawer, { onClose: handleClose, title: title, headerContent: headerContent, ...props, children: children }));
17
17
  }
18
- return (_jsxs(StyledDialog, { "$size": size, onClose: handleClose, ...props, children: [title && _jsx(DialogTitle, { onClose: onClose, children: title }), children] }));
18
+ return (_jsxs(StyledDialog, { "$size": size, onClose: handleClose, ...props, children: [title && (_jsx(DialogTitle, { onClose: onClose, headerContent: headerContent, children: title })), children] }));
19
19
  };
@@ -1,7 +1,12 @@
1
1
  import type { DialogTitleProps as MuiDialogTitleProps } from '@mui/material/DialogTitle';
2
2
  import type { ModalProps } from '@mui/material/Modal';
3
+ import { type ReactNode } from 'react';
3
4
  import { type WithoutEmotionSpecific } from '../types/WithoutEmotionSpecific';
4
5
  export type DialogTitleProps = WithoutEmotionSpecific<MuiDialogTitleProps> & {
5
6
  onClose?: ModalProps['onClose'];
7
+ /**
8
+ * Дополнительный контент хедера
9
+ */
10
+ headerContent?: ReactNode;
6
11
  };
7
- export declare const DialogTitle: ({ children, onClose, ...props }: DialogTitleProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const DialogTitle: ({ children, onClose, headerContent, ...props }: DialogTitleProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,12 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import MuiDialogTitle from '@mui/material/DialogTitle';
3
3
  import { CrossOutlineMd } from '../../icons/CrossOutlineMd';
4
4
  import { IconButton } from '../IconButton';
5
- export const DialogTitle = ({ children, onClose, ...props }) => {
5
+ export const DialogTitle = ({ children, onClose, headerContent, ...props }) => {
6
6
  // 'escapeKeyDown' в документашке написано что это опциональный тип, и можно стрингу любую туда закидывать, а по факту либо escapeKeyDown либо backdropClick
7
7
  const handleTitleClick = (e) => {
8
8
  if (onClose) {
9
9
  onClose(e, 'escapeKeyDown');
10
10
  }
11
11
  };
12
- return (_jsxs(MuiDialogTitle, { ...props, children: [children, onClose && (_jsx(IconButton, { variant: "text", onClick: handleTitleClick, "aria-label": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0435 \u043E\u043A\u043D\u043E", children: _jsx(CrossOutlineMd, {}) }))] }));
12
+ return (_jsxs(MuiDialogTitle, { ...props, children: [children, headerContent, onClose && (_jsx(IconButton, { variant: "text", onClick: handleTitleClick, "aria-label": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0435 \u043E\u043A\u043D\u043E", children: _jsx(CrossOutlineMd, {}) }))] }));
13
13
  };
@@ -1,5 +1,5 @@
1
1
  import { type ElementType } from 'react';
2
2
  import type { PageHeaderProps } from '../types';
3
- type HeaderContentProps<TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType> = Pick<PageHeaderProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>, 'breadcrumbs' | 'backButton' | 'description' | 'actions' | 'subheader' | 'title' | 'isLoading'>;
4
- export declare const HeaderContent: <TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType>({ backButton, description, subheader, breadcrumbs, actions, title, isLoading, }: HeaderContentProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>) => import("react/jsx-runtime").JSX.Element;
3
+ type HeaderContentProps<TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType> = Pick<PageHeaderProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>, 'breadcrumbs' | 'backButton' | 'description' | 'actions' | 'subheader' | 'filters' | 'title' | 'isLoading'>;
4
+ export declare const HeaderContent: <TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType>({ backButton, description, subheader, breadcrumbs, actions, title, filters, isLoading, }: HeaderContentProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>) => import("react/jsx-runtime").JSX.Element;
5
5
  export {};
@@ -5,13 +5,13 @@ import { pageHeaderClassnames } from '../constants';
5
5
  import { PageActions } from '../PageActions';
6
6
  import { Title } from '../Title';
7
7
  import { Description } from './Description';
8
- import { BreadcrumbsWrapper, DesktopTitleWrapper, PageSubheader, } from './styles';
9
- export const HeaderContent = ({ backButton, description, subheader, breadcrumbs, actions, title, isLoading, }) => {
8
+ import { BreadcrumbsWrapper, DesktopTitleWrapper, PageFilters, PageSubheader, } from './styles';
9
+ export const HeaderContent = ({ backButton, description, subheader, breadcrumbs, actions, title, filters, isLoading, }) => {
10
10
  const renderBreadcrumbs = () => {
11
11
  if (!breadcrumbs) {
12
12
  return null;
13
13
  }
14
14
  return (_jsx(BreadcrumbsWrapper, { children: Array.isArray(breadcrumbs) ? (_jsx(Breadcrumbs, { children: breadcrumbs })) : (breadcrumbs) }));
15
15
  };
16
- return (_jsxs(_Fragment, { children: [renderBreadcrumbs(), _jsx(DesktopTitleWrapper, { children: _jsx(Title, { backButton: backButton, title: title, isLoading: isLoading, hasDescription: Boolean(description), hasBreadcrumbs: Boolean(breadcrumbs) }) }), _jsx(Description, { description: description, isLoading: isLoading }), actions && (_jsx(PageActions, { className: classNames(pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, size: "medium", ...actions })), subheader && _jsx(PageSubheader, { children: subheader })] }));
16
+ return (_jsxs(_Fragment, { children: [renderBreadcrumbs(), _jsx(DesktopTitleWrapper, { children: _jsx(Title, { backButton: backButton, title: title, isLoading: isLoading, hasDescription: Boolean(description), hasBreadcrumbs: Boolean(breadcrumbs) }) }), _jsx(Description, { description: description, isLoading: isLoading }), actions && (_jsx(PageActions, { className: classNames(pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, size: "medium", ...actions })), filters && _jsx(PageFilters, { children: filters }), subheader && _jsx(PageSubheader, { children: subheader })] }));
17
17
  };
@@ -7,6 +7,10 @@ export declare const PageSubheader: import("../../styled").StyledComponent<{
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 PageFilters: import("../../styled").StyledComponent<{
11
+ theme?: import("@emotion/react").Theme | undefined;
12
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
13
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
10
14
  export declare const DesktopTitleWrapper: import("../../styled").StyledComponent<{
11
15
  theme?: import("@emotion/react").Theme | undefined;
12
16
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
@@ -19,6 +19,10 @@ export const PageSubheader = styled.div `
19
19
  padding: ${({ theme }) => theme.spacing(0, 4, 4, 4)};
20
20
  }
21
21
  `;
22
+ export const PageFilters = styled.div `
23
+ grid-column: 1 / -1;
24
+ grid-row: 5;
25
+ `;
22
26
  export const DesktopTitleWrapper = styled.div `
23
27
  display: contents;
24
28
 
@@ -7,7 +7,7 @@ import { MobileTitleWrapper, Wrapper } from './styles';
7
7
  import { Title } from './Title';
8
8
  import { useLogic } from './useLogic';
9
9
  export const PageHeader = (props) => {
10
- const { title, description, subheader, breadcrumbs, actions, backButton, className, } = props;
10
+ const { title, description, subheader, breadcrumbs, actions, backButton, className, filters, } = props;
11
11
  const { isLoading, mobileTitleActions, isShowMobileActions, mobileClassnames, } = useLogic(props);
12
- return (_jsxs(_Fragment, { children: [_jsxs(MobileTitleWrapper, { className: mobileClassnames, children: [_jsx(Title, { backButton: backButton, title: title, isLoading: isLoading }), mobileTitleActions && mobileTitleActions] }), _jsx(Wrapper, { className: className, children: _jsx(HeaderContent, { breadcrumbs: breadcrumbs, backButton: backButton, title: title, description: description, actions: actions, subheader: subheader, isLoading: isLoading }) }), isShowMobileActions && (_jsx(MobilePageActions, { className: classNames(pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, ...actions }))] }));
12
+ return (_jsxs(_Fragment, { children: [_jsxs(MobileTitleWrapper, { className: mobileClassnames, children: [_jsx(Title, { backButton: backButton, title: title, isLoading: isLoading }), mobileTitleActions && mobileTitleActions] }), _jsx(Wrapper, { className: className, children: _jsx(HeaderContent, { breadcrumbs: breadcrumbs, backButton: backButton, title: title, description: description, actions: actions, subheader: subheader, filters: filters, isLoading: isLoading }) }), isShowMobileActions && (_jsx(MobilePageActions, { className: classNames(pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, ...actions }))] }));
13
13
  };
@@ -15,10 +15,14 @@ export type PageHeaderProps<TMainActionComponent extends ElementType = ElementTy
15
15
  description?: ReactNode;
16
16
  /**
17
17
  * Набор компонент, отображаемый в нижней части блока
18
- * @example <PageHeader subheader={<TextField placeholder="Поиск на
19
- * странице..." size="small" />} />
18
+ * @example <PageHeader subheader={<TextField placeholder="Поиск на странице..." size="small" />} />
20
19
  */
21
20
  subheader?: ReactNode;
21
+ /**
22
+ * Фильтры формы
23
+ * @example <PageHeader filters={<FormFilters values={values} onChange={handleChange} />} />
24
+ */
25
+ filters?: ReactNode;
22
26
  /**
23
27
  * Хлебные крошки
24
28
  * @example <PageHeader breadcrumbs={
@@ -1,9 +1,6 @@
1
1
  import type { ChangeEvent, CSSProperties, ReactNode, RefObject } from 'react';
2
2
  import type { FormControlProps } from '../FormControl';
3
3
  export type RadioGroupProps = {
4
- /**
5
- * Дочерние элементы (Radio компоненты)
6
- */
7
4
  children?: ReactNode;
8
5
  /**
9
6
  * Флаг состояния ошибки
@@ -1,5 +1,7 @@
1
+ /// <reference types="react" />
1
2
  export declare const StyledDialogTitle: import("../styled").StyledComponent<import("..").WithoutEmotionSpecific<import("@mui/material").DialogTitleProps> & {
2
3
  onClose?: ((event: {}, reason: "backdropClick" | "escapeKeyDown") => void) | undefined;
4
+ headerContent?: import("react").ReactNode;
3
5
  } & {
4
6
  theme?: import("@emotion/react").Theme | undefined;
5
7
  }, {}, {}>;
@@ -12,9 +12,6 @@ export type TreeListData = {
12
12
  * Подзаголовок элемента дерева
13
13
  */
14
14
  note?: ReactNode;
15
- /**
16
- * Дочерние элементы
17
- */
18
15
  children?: TreeListData[];
19
16
  /**
20
17
  * Предназначены для точечной конфигурации
@@ -7,9 +7,6 @@ export type TreeLikeListAutocompleteData = Omit<TreeListData, 'label' | 'childre
7
7
  * Подпись или иное содержимое элемента
8
8
  */
9
9
  label: string;
10
- /**
11
- * Дочерние элементы
12
- */
13
10
  children?: TreeLikeListAutocompleteData[];
14
11
  };
15
12
  export type TreeLikeAutocompleteTreeProps = Pick<TreeListProps, 'disabledItems' | 'renderItem'>;
@@ -0,0 +1,5 @@
1
+ import type { FormFiltersProps } from './types';
2
+ /**
3
+ * Компонент для отображения фильтров формы
4
+ */
5
+ export declare const FormFilters: <TFieldValues extends Record<string, unknown>>(props: FormFiltersProps<TFieldValues>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button } from '../../components/Button';
3
+ import { Filter2OutlineMd } from '../../icons/Filter2OutlineMd';
4
+ import { Form } from '../Form';
5
+ import { FormControlProvider } from '../FormControlProvider';
6
+ import { formFiltersClassnames } from './constants';
7
+ import { FormFiltersDialog } from './FormFiltersDialog';
8
+ import { FormFiltersSkeleton } from './FormFiltersSkeleton';
9
+ import { AllFiltersButtonWrapper, MainFiltersWrapper, StyledBadge, StyledCounter, SubmitButtonWrapper, Wrapper, } from './styles';
10
+ import { useLogic } from './useLogic';
11
+ /**
12
+ * Компонент для отображения фильтров формы
13
+ */
14
+ export const FormFilters = (props) => {
15
+ const { headerForm, searchField: SearchField, mainFilters: MainFilters, submitButton: SubmitButton, counter, onSubmit, onOpenModal, dialogProps, mainFiltersColumns, isLoading, allFiltersButtonClassName, } = useLogic(props);
16
+ if (isLoading) {
17
+ return _jsx(FormFiltersSkeleton, {});
18
+ }
19
+ return (_jsxs(_Fragment, { children: [_jsx(FormControlProvider, { size: "small", hideHelperText: true, children: _jsx(Form, { form: headerForm, onSubmit: headerForm.handleSubmit(onSubmit), children: _jsxs(Wrapper, { children: [SearchField && (_jsx(SearchField, { control: headerForm.control, fullWidth: true })), _jsx(AllFiltersButtonWrapper, { className: allFiltersButtonClassName, children: _jsx(StyledBadge, { color: "error", badgeContent: counter, variant: "dot", children: _jsx(Button, { onClick: onOpenModal, variant: "outlined", color: "grey", startIcon: _jsx(Filter2OutlineMd, {}), endIcon: counter ? (_jsx(StyledCounter, { color: "error", content: counter })) : null, className: formFiltersClassnames.allFiltersButton, children: "\u0412\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B" }) }) }), _jsx(MainFiltersWrapper, { className: formFiltersClassnames.pageHeaderFilters, columns: mainFiltersColumns, children: MainFilters && (_jsx(MainFilters, { control: headerForm.control, isModal: false })) }), SubmitButton && (_jsx(SubmitButtonWrapper, { children: _jsx(SubmitButton, { size: "medium", className: formFiltersClassnames.submitButton }) }))] }) }) }), _jsx(FormFiltersDialog, { ...dialogProps })] }));
20
+ };
@@ -0,0 +1,5 @@
1
+ import { type FormFiltersDialogProps } from './types';
2
+ /**
3
+ * Компонент для отображения фильтров формы
4
+ */
5
+ export declare const FormFiltersDialog: <TFieldValues extends Record<string, unknown>>(props: FormFiltersDialogProps<TFieldValues>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from '../../../components/Button';
3
+ import { DialogContent } from '../../../components/DialogContent';
4
+ import { Form } from '../../Form';
5
+ import { formFiltersClassnames } from '../constants';
6
+ import { DesktopResetButton, FiltersModalContent, MobileResetButton, StyledDialog, StyledDialogContent, } from './styles';
7
+ import { useLogic } from './useLogic';
8
+ /**
9
+ * Компонент для отображения фильтров формы
10
+ */
11
+ export const FormFiltersDialog = (props) => {
12
+ const { modalForm, onCloseModal, onResetModal, onSubmitModal, mainFilters: MainFilters, secondaryFilters: SecondaryFilters, isModalOpen, isResetButtonDisabled, } = useLogic(props);
13
+ const headerContent = (_jsx(MobileResetButton, { variant: "text", onClick: onResetModal, size: "large", disabled: isResetButtonDisabled, children: "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C" }));
14
+ return (_jsx(StyledDialog, { open: isModalOpen, onClose: onCloseModal, title: "\u0424\u0438\u043B\u044C\u0442\u0440\u044B", size: "md", headerContent: headerContent, children: _jsxs(Form, { form: modalForm, onSubmit: modalForm.handleSubmit(onSubmitModal), children: [_jsx(DialogContent, { children: _jsxs(FiltersModalContent, { className: formFiltersClassnames.modalFilters, children: [MainFilters && (_jsx(MainFilters, { control: modalForm.control, isModal: true })), SecondaryFilters && (_jsx(SecondaryFilters, { control: modalForm.control }))] }) }), _jsxs(StyledDialogContent, { children: [_jsx(DesktopResetButton, { children: _jsx(Button, { variant: "text", onClick: onResetModal, size: "large", disabled: isResetButtonDisabled, children: "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C" }) }), _jsx(Button, { variant: "text", onClick: onCloseModal, size: "large", children: "\u041E\u0442\u043C\u0435\u043D\u0430" }), _jsx(Button, { type: "submit", variant: "contained", size: "large", children: "\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C" })] })] }) }));
15
+ };
@@ -0,0 +1 @@
1
+ export { FormFiltersDialog } from './FormFiltersDialog';
@@ -0,0 +1 @@
1
+ export { FormFiltersDialog } from './FormFiltersDialog';
@@ -0,0 +1,29 @@
1
+ /// <reference types="react" />
2
+ export declare const FiltersModalContent: import("../../../components/styled").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>, {}>;
6
+ export declare const MobileResetButton: import("../../../components/styled").StyledComponent<Omit<import("../../..").WithoutEmotionSpecific<import("@mui/material").ButtonProps>, "color" | "component" | "variant" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple"> & {
7
+ variant?: "light" | "link" | "text" | "contained" | "outlined" | undefined;
8
+ loading?: boolean | undefined;
9
+ color?: "primary" | "success" | "warning" | "error" | "grey" | undefined;
10
+ component?: import("react").ElementType | undefined;
11
+ selected?: boolean | undefined;
12
+ } & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, ""> & import("react").RefAttributes<HTMLButtonElement> & {
13
+ theme?: import("@emotion/react").Theme | undefined;
14
+ }, {}, {}>;
15
+ export declare const DesktopResetButton: import("../../../components/styled").StyledComponent<{
16
+ theme?: import("@emotion/react").Theme | undefined;
17
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
18
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
19
+ export declare const StyledDialog: import("../../../components/styled").StyledComponent<import("../../..").WithoutEmotionSpecific<Omit<import("@mui/material/Dialog").DialogProps, "title" | "maxWidth">> & {
20
+ title?: string | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>[] | undefined;
21
+ disableBackdropClick?: boolean | undefined;
22
+ size?: import("../../../components/Dialog").DialogSize | undefined;
23
+ headerContent?: import("react").ReactNode;
24
+ } & {
25
+ theme?: import("@emotion/react").Theme | undefined;
26
+ }, {}, {}>;
27
+ export declare const StyledDialogContent: import("../../../components/styled").StyledComponent<import("../../../components/DialogActions").DialogActionsProps & {
28
+ theme?: import("@emotion/react").Theme | undefined;
29
+ }, {}, {}>;
@@ -0,0 +1,33 @@
1
+ import { dialogClasses } from '@mui/material/Dialog';
2
+ import { Button } from '../../../components/Button';
3
+ import { Dialog } from '../../../components/Dialog';
4
+ import { DialogActions } from '../../../components/DialogActions';
5
+ import { styled } from '../../../components/styled';
6
+ export const FiltersModalContent = styled.div `
7
+ display: grid;
8
+ `;
9
+ export const MobileResetButton = styled(Button) `
10
+ margin-left: auto;
11
+
12
+ ${({ theme }) => theme.breakpoints.up('sm')} {
13
+ display: none;
14
+ }
15
+ `;
16
+ export const DesktopResetButton = styled.div `
17
+ ${({ theme }) => theme.breakpoints.down('sm')} {
18
+ display: none;
19
+ }
20
+ `;
21
+ export const StyledDialog = styled(Dialog) `
22
+ .${dialogClasses.paper} {
23
+ min-width: 500px;
24
+ max-width: 500px;
25
+ }
26
+ `;
27
+ export const StyledDialogContent = styled(DialogActions) `
28
+ ${({ theme }) => theme.breakpoints.up('sm')} {
29
+ > div {
30
+ grid-template-columns: 1fr max-content max-content;
31
+ }
32
+ }
33
+ `;
@@ -0,0 +1,20 @@
1
+ import type { FormFiltersProps } from '../types';
2
+ export type InputsSize = 'small' | 'medium';
3
+ export type FormFiltersDialogProps<TFieldValues extends Record<string, unknown>> = Omit<FormFiltersProps<TFieldValues>, 'onChange' | 'searchField' | 'submitButton' | 'mainFiltersColumns'> & {
4
+ /**
5
+ * Открыт ли диалог
6
+ */
7
+ isModalOpen: boolean;
8
+ /**
9
+ * Установить открытый диалог
10
+ */
11
+ setIsModalOpen: (isModalOpen: boolean) => void;
12
+ /**
13
+ * Значения по умолчанию
14
+ */
15
+ defaultValues?: TFieldValues;
16
+ /**
17
+ * Функция отправки формы на кнопку "Применить" в модальном окне
18
+ */
19
+ onSubmit: (values: TFieldValues) => void;
20
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './useLogic';
@@ -0,0 +1 @@
1
+ export * from './useLogic';
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { type FormFiltersDialogProps } from '../types';
3
+ export declare const useLogic: <TFieldValues extends Record<string, unknown>>({ validationSchema, values, mainFilters, secondaryFilters, isModalOpen, setIsModalOpen, defaultValues, onSubmit, }: FormFiltersDialogProps<TFieldValues>) => {
4
+ modalForm: import("react-hook-form").UseFormReturn<TFieldValues, any>;
5
+ onCloseModal: () => void;
6
+ onResetModal: () => void;
7
+ onSubmitModal: (submittedValues: TFieldValues) => void;
8
+ mainFilters: ((props: {
9
+ control: import("react-hook-form").Control<TFieldValues>;
10
+ } & {
11
+ isModal?: boolean | undefined;
12
+ }) => import("react").ReactNode) | undefined;
13
+ secondaryFilters: ((props: {
14
+ control: import("react-hook-form").Control<TFieldValues>;
15
+ }) => import("react").ReactNode) | undefined;
16
+ isModalOpen: boolean;
17
+ isResetButtonDisabled: boolean;
18
+ };
@@ -0,0 +1,38 @@
1
+ import { useEffect } from 'react';
2
+ import { useForm } from '../../../useForm';
3
+ export const useLogic = ({ validationSchema, values, mainFilters, secondaryFilters, isModalOpen, setIsModalOpen, defaultValues, onSubmit, }) => {
4
+ const modalForm = useForm({
5
+ validationSchema,
6
+ defaultValues: values,
7
+ });
8
+ const onCloseModal = () => {
9
+ setIsModalOpen(false);
10
+ modalForm.reset();
11
+ };
12
+ const onResetModal = () => {
13
+ modalForm.reset(defaultValues);
14
+ };
15
+ const onSubmitModal = (submittedValues) => {
16
+ onSubmit(submittedValues);
17
+ setIsModalOpen(false);
18
+ };
19
+ const isResetButtonDisabled = !modalForm.formState.isDirty;
20
+ useEffect(() => {
21
+ if (isModalOpen && defaultValues) {
22
+ onResetModal();
23
+ }
24
+ }, [isModalOpen]);
25
+ useEffect(() => {
26
+ modalForm.reset(values);
27
+ }, [values]);
28
+ return {
29
+ modalForm,
30
+ onCloseModal,
31
+ onResetModal,
32
+ onSubmitModal,
33
+ mainFilters,
34
+ secondaryFilters,
35
+ isModalOpen,
36
+ isResetButtonDisabled,
37
+ };
38
+ };
@@ -0,0 +1 @@
1
+ export declare const FormFiltersSkeleton: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Skeleton } from '../../../components/Skeleton';
3
+ import { SkeletonWrapper } from './styles';
4
+ export const FormFiltersSkeleton = () => {
5
+ return (_jsxs(SkeletonWrapper, { children: [_jsx(Skeleton, { variant: "rounded" }), _jsx(Skeleton, { variant: "rounded" }), _jsx(Skeleton, { variant: "rounded" }), _jsx(Skeleton, { variant: "rounded" })] }));
6
+ };
@@ -0,0 +1 @@
1
+ export { FormFiltersSkeleton } from './FormFiltersSkeleton';
@@ -0,0 +1 @@
1
+ export { FormFiltersSkeleton } from './FormFiltersSkeleton';
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const SkeletonWrapper: import("../../../components/styled").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,24 @@
1
+ import { skeletonClasses } from '@mui/material/Skeleton';
2
+ import { styled } from '../../../components/styled';
3
+ export const SkeletonWrapper = styled.div `
4
+ display: grid;
5
+ grid-template-columns: 240px 1fr 1fr 1fr;
6
+ gap: ${({ theme }) => theme.spacing(2)};
7
+
8
+ margin-top: ${({ theme }) => theme.spacing(4)};
9
+
10
+ .${skeletonClasses.root} {
11
+ height: 32px;
12
+ }
13
+
14
+ ${({ theme }) => theme.breakpoints.down('sm')} {
15
+ grid-template-columns: 1fr 40px 0 0;
16
+
17
+ margin-top: 0;
18
+ padding: ${({ theme }) => theme.spacing(1, 0, 4, 4)};
19
+
20
+ .${skeletonClasses.root} {
21
+ height: 40px;
22
+ }
23
+ }
24
+ `;
@@ -0,0 +1,10 @@
1
+ export declare const formFiltersClassnames: {
2
+ modalFilters: string;
3
+ pageHeaderFilters: string;
4
+ submitButton: string;
5
+ allFiltersButton: string;
6
+ showAllFiltersButtonOnDesktop: string;
7
+ showAllFiltersButtonOnMobile: string;
8
+ withSearch: string;
9
+ withoutSearch: string;
10
+ };
@@ -0,0 +1,11 @@
1
+ import { createUIKitClassname } from '../../components/utils/createUIKitClassname';
2
+ export const formFiltersClassnames = {
3
+ modalFilters: createUIKitClassname('form-filters__modal-filters'),
4
+ pageHeaderFilters: createUIKitClassname('form-filters__page-header-filters'),
5
+ submitButton: createUIKitClassname('form-filters__submit-button'),
6
+ allFiltersButton: createUIKitClassname('form-filters__all-filters-button'),
7
+ showAllFiltersButtonOnDesktop: createUIKitClassname('form-filters_show-all-filters-button_desktop'),
8
+ showAllFiltersButtonOnMobile: createUIKitClassname('form-filters_show-all-filters-button_mobile'),
9
+ withSearch: createUIKitClassname('form-filters_with-search'),
10
+ withoutSearch: createUIKitClassname('form-filters_without-search'),
11
+ };
@@ -0,0 +1,3 @@
1
+ export { FormFilters } from './FormFilters';
2
+ export { FormFiltersSkeleton } from './FormFiltersSkeleton';
3
+ export type { FormFiltersProps } from './types';
@@ -0,0 +1,2 @@
1
+ export { FormFilters } from './FormFilters';
2
+ export { FormFiltersSkeleton } from './FormFiltersSkeleton';
@@ -0,0 +1,3 @@
1
+ export { FormFilters } from './FormFilters';
2
+ export { FormFiltersSkeleton } from './FormFiltersSkeleton';
3
+ export type { FormFiltersProps } from './types';
@@ -0,0 +1,2 @@
1
+ export { FormFilters } from './FormFilters';
2
+ export { FormFiltersSkeleton } from './FormFiltersSkeleton';
@@ -0,0 +1,33 @@
1
+ /// <reference types="react" />
2
+ export declare const Wrapper: import("../../components/styled").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>, {}>;
6
+ export declare const AllFiltersButtonWrapper: import("../../components/styled").StyledComponent<{
7
+ theme?: import("@emotion/react").Theme | undefined;
8
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
9
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
10
+ export declare const MainFiltersWrapper: import("../../components/styled").StyledComponent<{
11
+ theme?: import("@emotion/react").Theme | undefined;
12
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
13
+ } & {
14
+ columns?: string | undefined;
15
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
16
+ export declare const StyledBadge: import("../../components/styled").StyledComponent<Omit<import("../..").WithoutEmotionSpecific<import("@mui/material/Badge").BadgeProps>, "color"> & {
17
+ color: import("../../components/Badge").BadgeColor;
18
+ withBorder?: boolean | undefined;
19
+ variantColor?: import("../../components/Badge").BadgeVariantsColor | undefined;
20
+ } & {
21
+ theme?: import("@emotion/react").Theme | undefined;
22
+ }, {}, {}>;
23
+ export declare const StyledCounter: import("../../components/styled").StyledComponent<Omit<import("../..").WithoutEmotionSpecific<import("@mui/material/Badge").BadgeProps>, "content" | "color" | "children" | "variant" | "invisible" | "anchorOrigin" | "badgeContent" | "overlap" | "withBorder"> & {
24
+ color: import("../../components/Counter/types").CounterColor;
25
+ variant?: import("../../components/Counter/types").CounterVariants | undefined;
26
+ content?: number | undefined;
27
+ } & {
28
+ theme?: import("@emotion/react").Theme | undefined;
29
+ }, {}, {}>;
30
+ export declare const SubmitButtonWrapper: import("../../components/styled").StyledComponent<{
31
+ theme?: import("@emotion/react").Theme | undefined;
32
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
33
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;