@snack-uikit/list 0.30.2-preview-92d6fde1.0 → 0.31.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
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.31.1 (2025-07-07)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **PDS-2556:** prop closeOnPopstate for dropdown ([139dc62](https://github.com/cloud-ru-tech/snack-uikit/commit/139dc62e1e03212a748977f197e1e5dca8736789))
12
+
13
+
14
+
15
+
16
+
17
+ # 0.31.0 (2025-07-07)
18
+
19
+
20
+ ### Features
21
+
22
+ * **PDS-2556:** add closeOnPopstate prop ([7f56996](https://github.com/cloud-ru-tech/snack-uikit/commit/7f5699646fd3c3eee2c00bd0c0d4dc94ccc019f8))
23
+
24
+
25
+
26
+
27
+
6
28
  ## 0.30.1 (2025-06-27)
7
29
 
8
30
  ### Only dependencies have been changed
@@ -1,2 +1,2 @@
1
1
  import { DroplistProps } from '../types';
2
- export declare function Droplist({ items: itemsProp, search, pinBottom: pinBottomProp, pinTop: pinTopProp, footerActiveElementsRefs, children, trigger, placement, widthStrategy, triggerElemRef: triggerElemRefProp, open: openProp, onOpenChange, collapse, triggerClassName, selection, contentRender, size, marker, closeDroplistOnItemClick, className, listRef: listRefProp, untouchableScrollbars, virtualized, ...props }: DroplistProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Droplist({ items: itemsProp, search, pinBottom: pinBottomProp, pinTop: pinTopProp, footerActiveElementsRefs, children, trigger, placement, widthStrategy, triggerElemRef: triggerElemRefProp, open: openProp, onOpenChange, collapse, triggerClassName, selection, contentRender, size, marker, closeDroplistOnItemClick, className, listRef: listRefProp, untouchableScrollbars, virtualized, closeOnPopstate, ...props }: DroplistProps): import("react/jsx-runtime").JSX.Element;
@@ -54,9 +54,10 @@ function Droplist(_a) {
54
54
  className,
55
55
  listRef: listRefProp,
56
56
  untouchableScrollbars = false,
57
- virtualized = false
57
+ virtualized = false,
58
+ closeOnPopstate
58
59
  } = _a,
59
- props = __rest(_a, ["items", "search", "pinBottom", "pinTop", "footerActiveElementsRefs", "children", "trigger", "placement", "widthStrategy", "triggerElemRef", "open", "onOpenChange", "collapse", "triggerClassName", "selection", "contentRender", "size", "marker", "closeDroplistOnItemClick", "className", "listRef", "untouchableScrollbars", "virtualized"]);
60
+ props = __rest(_a, ["items", "search", "pinBottom", "pinTop", "footerActiveElementsRefs", "children", "trigger", "placement", "widthStrategy", "triggerElemRef", "open", "onOpenChange", "collapse", "triggerClassName", "selection", "contentRender", "size", "marker", "closeDroplistOnItemClick", "className", "listRef", "untouchableScrollbars", "virtualized", "closeOnPopstate"]);
60
61
  const hasSearch = (0, react_1.useMemo)(() => Boolean(search), [search]);
61
62
  const [openCollapseItems = [], setOpenCollapsedItems] = (0, utils_1.useValueControl)(collapse);
62
63
  const toggleOpenCollapseItem = (0, react_1.useCallback)(id => setOpenCollapsedItems(items => (items === null || items === void 0 ? void 0 : items.includes(id)) ? items.filter(item => item !== id) : (items !== null && items !== void 0 ? items : []).concat([id])), [setOpenCollapsedItems]);
@@ -262,6 +263,7 @@ function Droplist(_a) {
262
263
  triggerRef: !triggerElemRefProp ? triggerElemRef : isValid && triggerElemRefProp || undefined,
263
264
  open: open,
264
265
  onOpenChange: handleOpenChange,
266
+ closeOnPopstate: closeOnPopstate,
265
267
  children: triggerElem
266
268
  })
267
269
  })
@@ -1,2 +1,2 @@
1
1
  import { DroplistProps } from '../types';
2
- export declare function Droplist({ items: itemsProp, search, pinBottom: pinBottomProp, pinTop: pinTopProp, footerActiveElementsRefs, children, trigger, placement, widthStrategy, triggerElemRef: triggerElemRefProp, open: openProp, onOpenChange, collapse, triggerClassName, selection, contentRender, size, marker, closeDroplistOnItemClick, className, listRef: listRefProp, untouchableScrollbars, virtualized, ...props }: DroplistProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Droplist({ items: itemsProp, search, pinBottom: pinBottomProp, pinTop: pinTopProp, footerActiveElementsRefs, children, trigger, placement, widthStrategy, triggerElemRef: triggerElemRefProp, open: openProp, onOpenChange, collapse, triggerClassName, selection, contentRender, size, marker, closeDroplistOnItemClick, className, listRef: listRefProp, untouchableScrollbars, virtualized, closeOnPopstate, ...props }: DroplistProps): import("react/jsx-runtime").JSX.Element;
@@ -23,7 +23,7 @@ import { ListPrivate } from '../ListPrivate';
23
23
  import styles from '../styles.module.css';
24
24
  const DEFAULT_FALLBACK_PLACEMENTS = ['top', 'right', 'bottom', 'left'];
25
25
  export function Droplist(_a) {
26
- var { items: itemsProp, search, pinBottom: pinBottomProp = [], pinTop: pinTopProp = [], footerActiveElementsRefs, children, trigger, placement, widthStrategy, triggerElemRef: triggerElemRefProp, open: openProp, onOpenChange, collapse = {}, triggerClassName, selection, contentRender, size = 's', marker = true, closeDroplistOnItemClick = false, className, listRef: listRefProp, untouchableScrollbars = false, virtualized = false } = _a, props = __rest(_a, ["items", "search", "pinBottom", "pinTop", "footerActiveElementsRefs", "children", "trigger", "placement", "widthStrategy", "triggerElemRef", "open", "onOpenChange", "collapse", "triggerClassName", "selection", "contentRender", "size", "marker", "closeDroplistOnItemClick", "className", "listRef", "untouchableScrollbars", "virtualized"]);
26
+ var { items: itemsProp, search, pinBottom: pinBottomProp = [], pinTop: pinTopProp = [], footerActiveElementsRefs, children, trigger, placement, widthStrategy, triggerElemRef: triggerElemRefProp, open: openProp, onOpenChange, collapse = {}, triggerClassName, selection, contentRender, size = 's', marker = true, closeDroplistOnItemClick = false, className, listRef: listRefProp, untouchableScrollbars = false, virtualized = false, closeOnPopstate } = _a, props = __rest(_a, ["items", "search", "pinBottom", "pinTop", "footerActiveElementsRefs", "children", "trigger", "placement", "widthStrategy", "triggerElemRef", "open", "onOpenChange", "collapse", "triggerClassName", "selection", "contentRender", "size", "marker", "closeDroplistOnItemClick", "className", "listRef", "untouchableScrollbars", "virtualized", "closeOnPopstate"]);
27
27
  const hasSearch = useMemo(() => Boolean(search), [search]);
28
28
  const [openCollapseItems = [], setOpenCollapsedItems] = useValueControl(collapse);
29
29
  const toggleOpenCollapseItem = useCallback((id) => setOpenCollapsedItems((items) => (items === null || items === void 0 ? void 0 : items.includes(id)) ? items.filter(item => item !== id) : (items !== null && items !== void 0 ? items : []).concat([id])), [setOpenCollapsedItems]);
@@ -146,5 +146,5 @@ export function Droplist(_a) {
146
146
  }, children: _jsx(Dropdown, { content: _jsx("div", { className: cn(styles.wrapper, className), children: _jsx(ListPrivate, Object.assign({}, props, { items: memorizedItems.items.focusCloseChildIds, pinTop: memorizedItems.pinTop.focusCloseChildIds, pinBottom: memorizedItems.pinBottom.focusCloseChildIds, virtualized: virtualized, onKeyDown: handleListKeyDown, searchItem: searchItem, tabIndex: 0, ref: mergeRefs(listRef, listRefProp), search: search, onFocus: e => {
147
147
  e.stopPropagation();
148
148
  forceUpdateActiveItemId === null || forceUpdateActiveItemId === void 0 ? void 0 : forceUpdateActiveItemId(ids[0]);
149
- }, limitedScrollHeight: true, untouchableScrollbars: untouchableScrollbars })) }), outsideClick: true, triggerClassName: triggerClassName, fallbackPlacements: DEFAULT_FALLBACK_PLACEMENTS, trigger: trigger, placement: placement, widthStrategy: widthStrategy, triggerRef: !triggerElemRefProp ? triggerElemRef : (isValid && triggerElemRefProp) || undefined, open: open, onOpenChange: handleOpenChange, children: triggerElem }) }) }) }) })) }));
149
+ }, limitedScrollHeight: true, untouchableScrollbars: untouchableScrollbars })) }), outsideClick: true, triggerClassName: triggerClassName, fallbackPlacements: DEFAULT_FALLBACK_PLACEMENTS, trigger: trigger, placement: placement, widthStrategy: widthStrategy, triggerRef: !triggerElemRefProp ? triggerElemRef : (isValid && triggerElemRefProp) || undefined, open: open, onOpenChange: handleOpenChange, closeOnPopstate: closeOnPopstate, children: triggerElem }) }) }) }) })) }));
150
150
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "title": "List",
7
- "version": "0.30.2-preview-92d6fde1.0",
7
+ "version": "0.31.1",
8
8
  "sideEffects": [
9
9
  "*.css",
10
10
  "*.woff",
@@ -36,17 +36,17 @@
36
36
  "license": "Apache-2.0",
37
37
  "scripts": {},
38
38
  "dependencies": {
39
- "@snack-uikit/button": "0.19.12-preview-92d6fde1.0",
40
- "@snack-uikit/divider": "3.2.7-preview-92d6fde1.0",
41
- "@snack-uikit/dropdown": "0.4.9-preview-92d6fde1.0",
42
- "@snack-uikit/icons": "0.27.1-preview-92d6fde1.0",
43
- "@snack-uikit/info-block": "0.6.27-preview-92d6fde1.0",
44
- "@snack-uikit/loaders": "0.9.6-preview-92d6fde1.0",
45
- "@snack-uikit/scroll": "0.10.2-preview-92d6fde1.0",
46
- "@snack-uikit/search-private": "0.4.23-preview-92d6fde1.0",
47
- "@snack-uikit/toggles": "0.13.17-preview-92d6fde1.0",
48
- "@snack-uikit/truncate-string": "0.6.23-preview-92d6fde1.0",
49
- "@snack-uikit/utils": "3.8.3-preview-92d6fde1.0",
39
+ "@snack-uikit/button": "0.19.12",
40
+ "@snack-uikit/divider": "3.2.7",
41
+ "@snack-uikit/dropdown": "0.5.0",
42
+ "@snack-uikit/icons": "0.27.1",
43
+ "@snack-uikit/info-block": "0.6.27",
44
+ "@snack-uikit/loaders": "0.9.6",
45
+ "@snack-uikit/scroll": "0.10.2",
46
+ "@snack-uikit/search-private": "0.4.23",
47
+ "@snack-uikit/toggles": "0.13.17",
48
+ "@snack-uikit/truncate-string": "0.6.23",
49
+ "@snack-uikit/utils": "3.9.0",
50
50
  "@tanstack/react-virtual": "3.11.2",
51
51
  "classnames": "2.5.1",
52
52
  "merge-refs": "1.3.0"
@@ -54,5 +54,5 @@
54
54
  "peerDependencies": {
55
55
  "@snack-uikit/locale": "*"
56
56
  },
57
- "gitHead": "b69eea8eab30c5cf2d251a9985c6310aac3192b8"
57
+ "gitHead": "9c9cc64e6c8016b01773e9a3a7233729eafc727c"
58
58
  }
@@ -45,6 +45,7 @@ export function Droplist({
45
45
  listRef: listRefProp,
46
46
  untouchableScrollbars = false,
47
47
  virtualized = false,
48
+ closeOnPopstate,
48
49
  ...props
49
50
  }: DroplistProps) {
50
51
  const hasSearch = useMemo(() => Boolean(search), [search]);
@@ -267,6 +268,7 @@ export function Droplist({
267
268
  triggerRef={!triggerElemRefProp ? triggerElemRef : (isValid && triggerElemRefProp) || undefined}
268
269
  open={open}
269
270
  onOpenChange={handleOpenChange}
271
+ closeOnPopstate={closeOnPopstate}
270
272
  >
271
273
  {triggerElem}
272
274
  </Dropdown>