@snack-uikit/toolbar 0.12.3-preview-a879b9ed.0 → 0.12.3

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/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 0.12.3 (2025-03-05)
7
+
8
+ ### Only dependencies have been changed
9
+ * [@snack-uikit/chips@0.26.0](https://github.com/cloud-ru-tech/snack-uikit/blob/master/packages/chips/CHANGELOG.md)
10
+ * [@snack-uikit/list@0.26.4](https://github.com/cloud-ru-tech/snack-uikit/blob/master/packages/list/CHANGELOG.md)
11
+
12
+
13
+
14
+
15
+
6
16
  ## 0.12.2 (2025-03-04)
7
17
 
8
18
  ### Only dependencies have been changed
package/README.md CHANGED
@@ -13,6 +13,18 @@ Toolbar
13
13
  ### Props
14
14
  | name | type | default value | description |
15
15
  |------|------|---------------|-------------|
16
+ | search | `{ value: string; onChange(value: string): void; onSubmit?(value: string): void; placeholder?: string; loading?: boolean; }` | - | Параметры отвечают за строку поиска <br> <strong>value</strong>: Значение строки поиска <br> <strong>onChange</strong>: Колбэк смены значения <br> <strong>onSubmit</strong>: Колбэк на подтверждение поиска по строке <strong>placeholder</strong>: Плейсхолдер <br> <strong>loading</strong>: Состояние загрузки <br> |
17
+ | className | `string` | - | Класснейм |
18
+ | outline | `boolean` | - | Внешний бордер |
19
+ | onCheck | `() => void` | - | Колбек смены значения чекбокса |
20
+ | checked | `boolean` | - | Значение чекбокса |
21
+ | indeterminate | `boolean` | - | Состояние частичного выбора |
22
+ | selectionMode | enum SelectionMode: `"single"`, `"multiple"` | 'multiple' | Режим выбора |
23
+ | bulkActions | `BulkAction[]` | - | Список массовых действий |
24
+ | onRefresh | `() => void` | - | Колбек обновления |
25
+ | after | `ReactNode` | - | Дополнительный слот в конце тулбара |
26
+ | moreActions | `Action[]` | - | Элементы выпадающего списка кнопки с действиями |
27
+ | filterRow | `FilterRow<TState>` | - | |
16
28
 
17
29
 
18
30
  [//]: DOCUMENTATION_SECTION_END
@@ -3,6 +3,5 @@ import { WithSupportProps } from '@snack-uikit/utils';
3
3
  import { CheckedToolbarProps, DefaultToolbarProps, FilterRow } from './types';
4
4
  export type ToolbarProps<TState extends FiltersState = Record<string, unknown>> = WithSupportProps<DefaultToolbarProps | CheckedToolbarProps> & {
5
5
  filterRow?: FilterRow<TState>;
6
- filtersDefaultOpen?: boolean;
7
6
  };
8
- export declare function Toolbar<TState extends FiltersState = Record<string, unknown>>({ className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, filtersDefaultOpen, ...rest }: ToolbarProps<TState>): import("react/jsx-runtime").JSX.Element;
7
+ export declare function Toolbar<TState extends FiltersState = Record<string, unknown>>({ className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, ...rest }: ToolbarProps<TState>): import("react/jsx-runtime").JSX.Element;
@@ -38,10 +38,9 @@ function Toolbar(_a) {
38
38
  moreActions,
39
39
  onRefresh,
40
40
  search,
41
- filterRow: filterRowProps,
42
- filtersDefaultOpen
41
+ filterRow: filterRowProps
43
42
  } = _a,
44
- rest = __rest(_a, ["className", "after", "outline", "moreActions", "onRefresh", "search", "filterRow", "filtersDefaultOpen"]);
43
+ rest = __rest(_a, ["className", "after", "outline", "moreActions", "onRefresh", "search", "filterRow"]);
45
44
  const needsBulkActions = (0, helpers_1.isBulkActionsProps)(rest);
46
45
  const hasLeftSideElements = Boolean(needsBulkActions || onRefresh);
47
46
  const resizingContainerRef = (0, react_1.useRef)(null);
@@ -49,8 +48,7 @@ function Toolbar(_a) {
49
48
  filterButton,
50
49
  filterRow
51
50
  } = (0, hooks_1.useFilters)({
52
- filterRow: filterRowProps,
53
- defaultOpen: filtersDefaultOpen
51
+ filterRow: filterRowProps
54
52
  });
55
53
  return (0, jsx_runtime_1.jsxs)("div", Object.assign({
56
54
  className: styles_module_scss_1.default.containerWrapper
@@ -3,11 +3,10 @@ import { FilterButtonProps } from '../../helperComponents';
3
3
  import { FilterRow } from './types';
4
4
  type UseFiltersProps<TState extends FiltersState> = {
5
5
  filterRow?: FilterRow<TState>;
6
- defaultOpen?: boolean;
7
6
  };
8
7
  type UseFiltersReturnType<TState extends FiltersState> = {
9
8
  filterButton?: FilterButtonProps;
10
9
  filterRow?: FilterRow<TState>;
11
10
  };
12
- export declare function useFilters<TState extends FiltersState>({ filterRow, defaultOpen, }: UseFiltersProps<TState>): UseFiltersReturnType<TState>;
11
+ export declare function useFilters<TState extends FiltersState>({ filterRow, }: UseFiltersProps<TState>): UseFiltersReturnType<TState>;
13
12
  export {};
@@ -16,11 +16,10 @@ const chips_1 = require("@snack-uikit/chips");
16
16
  const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
17
17
  function useFilters(_ref) {
18
18
  let {
19
- filterRow,
20
- defaultOpen = false
19
+ filterRow
21
20
  } = _ref;
22
21
  var _a;
23
- const [filtersOpen, setFiltersOpen] = (0, uncontrollable_1.useUncontrolledProp)(filterRow === null || filterRow === void 0 ? void 0 : filterRow.open, defaultOpen, newValue => {
22
+ const [filtersOpen, setFiltersOpen] = (0, uncontrollable_1.useUncontrolledProp)(filterRow === null || filterRow === void 0 ? void 0 : filterRow.open, false, newValue => {
24
23
  var _a;
25
24
  const result = typeof newValue === 'function' ? newValue(filtersOpen) : newValue;
26
25
  (_a = filterRow === null || filterRow === void 0 ? void 0 : filterRow.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(filterRow, result);
@@ -3,6 +3,5 @@ import { WithSupportProps } from '@snack-uikit/utils';
3
3
  import { CheckedToolbarProps, DefaultToolbarProps, FilterRow } from './types';
4
4
  export type ToolbarProps<TState extends FiltersState = Record<string, unknown>> = WithSupportProps<DefaultToolbarProps | CheckedToolbarProps> & {
5
5
  filterRow?: FilterRow<TState>;
6
- filtersDefaultOpen?: boolean;
7
6
  };
8
- export declare function Toolbar<TState extends FiltersState = Record<string, unknown>>({ className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, filtersDefaultOpen, ...rest }: ToolbarProps<TState>): import("react/jsx-runtime").JSX.Element;
7
+ export declare function Toolbar<TState extends FiltersState = Record<string, unknown>>({ className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, ...rest }: ToolbarProps<TState>): import("react/jsx-runtime").JSX.Element;
@@ -23,13 +23,10 @@ import { extractBulkActionsProps, isBulkActionsProps } from './helpers';
23
23
  import { useFilters } from './hooks';
24
24
  import styles from './styles.module.css';
25
25
  export function Toolbar(_a) {
26
- var { className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps, filtersDefaultOpen } = _a, rest = __rest(_a, ["className", "after", "outline", "moreActions", "onRefresh", "search", "filterRow", "filtersDefaultOpen"]);
26
+ var { className, after, outline, moreActions, onRefresh, search, filterRow: filterRowProps } = _a, rest = __rest(_a, ["className", "after", "outline", "moreActions", "onRefresh", "search", "filterRow"]);
27
27
  const needsBulkActions = isBulkActionsProps(rest);
28
28
  const hasLeftSideElements = Boolean(needsBulkActions || onRefresh);
29
29
  const resizingContainerRef = useRef(null);
30
- const { filterButton, filterRow } = useFilters({
31
- filterRow: filterRowProps,
32
- defaultOpen: filtersDefaultOpen,
33
- });
30
+ const { filterButton, filterRow } = useFilters({ filterRow: filterRowProps });
34
31
  return (_jsxs("div", Object.assign({ className: styles.containerWrapper }, extractSupportProps(rest), { children: [_jsxs("div", { className: cn(styles.container, className), "data-outline": outline || undefined, ref: resizingContainerRef, children: [hasLeftSideElements && (_jsxs("div", { className: styles.beforeSearch, children: [needsBulkActions && (_jsxs(_Fragment, { children: [_jsx(BulkActions, Object.assign({}, extractBulkActionsProps(rest), { resizingContainerRef: resizingContainerRef })), _jsx(Separator, {})] })), onRefresh && (_jsxs(_Fragment, { children: [_jsx(ButtonFunction, { icon: _jsx(UpdateSVG, {}), size: 'm', className: styles.updateButton, onClick: onRefresh, "data-test-id": TEST_IDS.refreshButton }), _jsx(Separator, {})] }))] })), search && _jsx(SearchPrivate, Object.assign({}, search, { className: styles.search, size: 'm', "data-test-id": TEST_IDS.search })), (moreActions || after || filterButton) && (_jsxs("div", { className: styles.flexRow, "data-align-right": (!search && !hasLeftSideElements) || undefined, children: [after && (_jsxs(_Fragment, { children: [(search || hasLeftSideElements) && _jsx(Separator, {}), _jsx("div", { "data-test-id": TEST_IDS.after, className: styles.actions, children: after })] })), (moreActions || filterButton) && _jsx(Separator, {}), filterButton && _jsx(FilterButton, Object.assign({}, filterButton)), moreActions && _jsx(MoreActions, { moreActions: moreActions })] }))] }), filterRow && _jsx(ChipChoiceRow, Object.assign({}, filterRow, { size: 'xs', "data-test-id": TEST_IDS.filterRow }))] })));
35
32
  }
@@ -3,11 +3,10 @@ import { FilterButtonProps } from '../../helperComponents';
3
3
  import { FilterRow } from './types';
4
4
  type UseFiltersProps<TState extends FiltersState> = {
5
5
  filterRow?: FilterRow<TState>;
6
- defaultOpen?: boolean;
7
6
  };
8
7
  type UseFiltersReturnType<TState extends FiltersState> = {
9
8
  filterButton?: FilterButtonProps;
10
9
  filterRow?: FilterRow<TState>;
11
10
  };
12
- export declare function useFilters<TState extends FiltersState>({ filterRow, defaultOpen, }: UseFiltersProps<TState>): UseFiltersReturnType<TState>;
11
+ export declare function useFilters<TState extends FiltersState>({ filterRow, }: UseFiltersProps<TState>): UseFiltersReturnType<TState>;
13
12
  export {};
@@ -3,9 +3,9 @@ import { useMemo } from 'react';
3
3
  import { useUncontrolledProp } from 'uncontrollable';
4
4
  import { hasFilterBeenApplied } from '@snack-uikit/chips';
5
5
  import styles from './styles.module.css';
6
- export function useFilters({ filterRow, defaultOpen = false, }) {
6
+ export function useFilters({ filterRow, }) {
7
7
  var _a;
8
- const [filtersOpen, setFiltersOpen] = useUncontrolledProp(filterRow === null || filterRow === void 0 ? void 0 : filterRow.open, defaultOpen, newValue => {
8
+ const [filtersOpen, setFiltersOpen] = useUncontrolledProp(filterRow === null || filterRow === void 0 ? void 0 : filterRow.open, false, newValue => {
9
9
  var _a;
10
10
  const result = typeof newValue === 'function' ? newValue(filtersOpen) : newValue;
11
11
  (_a = filterRow === null || filterRow === void 0 ? void 0 : filterRow.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(filterRow, result);
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "title": "Toolbar",
7
- "version": "0.12.3-preview-a879b9ed.0",
7
+ "version": "0.12.3",
8
8
  "sideEffects": [
9
9
  "*.css",
10
10
  "*.woff",
@@ -37,9 +37,9 @@
37
37
  "scripts": {},
38
38
  "dependencies": {
39
39
  "@snack-uikit/button": "0.19.8",
40
- "@snack-uikit/chips": "0.25.7",
40
+ "@snack-uikit/chips": "0.26.0",
41
41
  "@snack-uikit/icons": "0.25.1",
42
- "@snack-uikit/list": "0.26.3",
42
+ "@snack-uikit/list": "0.26.4",
43
43
  "@snack-uikit/search-private": "0.4.12",
44
44
  "@snack-uikit/tag": "0.12.7",
45
45
  "@snack-uikit/toggles": "0.13.8",
@@ -51,5 +51,5 @@
51
51
  "peerDependencies": {
52
52
  "@snack-uikit/locale": "*"
53
53
  },
54
- "gitHead": "fe6e582495064f88a840c966c0cbd3381c2482a3"
54
+ "gitHead": "245f761e18557fddf0d10e8277e6b2e2740a81a4"
55
55
  }
@@ -18,7 +18,6 @@ export type ToolbarProps<TState extends FiltersState = Record<string, unknown>>
18
18
  DefaultToolbarProps | CheckedToolbarProps
19
19
  > & {
20
20
  filterRow?: FilterRow<TState>;
21
- filtersDefaultOpen?: boolean;
22
21
  };
23
22
 
24
23
  export function Toolbar<TState extends FiltersState = Record<string, unknown>>({
@@ -29,17 +28,13 @@ export function Toolbar<TState extends FiltersState = Record<string, unknown>>({
29
28
  onRefresh,
30
29
  search,
31
30
  filterRow: filterRowProps,
32
- filtersDefaultOpen,
33
31
  ...rest
34
32
  }: ToolbarProps<TState>) {
35
33
  const needsBulkActions = isBulkActionsProps(rest);
36
34
  const hasLeftSideElements = Boolean(needsBulkActions || onRefresh);
37
35
  const resizingContainerRef = useRef<HTMLDivElement>(null);
38
36
 
39
- const { filterButton, filterRow } = useFilters<TState>({
40
- filterRow: filterRowProps,
41
- defaultOpen: filtersDefaultOpen,
42
- });
37
+ const { filterButton, filterRow } = useFilters<TState>({ filterRow: filterRowProps });
43
38
 
44
39
  return (
45
40
  <div className={styles.containerWrapper} {...extractSupportProps(rest)}>
@@ -10,7 +10,6 @@ import { FilterRow } from './types';
10
10
 
11
11
  type UseFiltersProps<TState extends FiltersState> = {
12
12
  filterRow?: FilterRow<TState>;
13
- defaultOpen?: boolean;
14
13
  };
15
14
 
16
15
  type UseFiltersReturnType<TState extends FiltersState> = {
@@ -20,9 +19,8 @@ type UseFiltersReturnType<TState extends FiltersState> = {
20
19
 
21
20
  export function useFilters<TState extends FiltersState>({
22
21
  filterRow,
23
- defaultOpen = false,
24
22
  }: UseFiltersProps<TState>): UseFiltersReturnType<TState> {
25
- const [filtersOpen, setFiltersOpen] = useUncontrolledProp<boolean>(filterRow?.open, defaultOpen, newValue => {
23
+ const [filtersOpen, setFiltersOpen] = useUncontrolledProp<boolean>(filterRow?.open, false, newValue => {
26
24
  const result = typeof newValue === 'function' ? newValue(filtersOpen) : newValue;
27
25
  filterRow?.onOpenChange?.(result);
28
26
  });