@wallarm-org/design-system 1.28.2-rc-fix-table-window-scroll-root.2 → 1.29.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.
Files changed (80) hide show
  1. package/dist/components/FilterDropdown/FilterDropdown.d.ts +58 -0
  2. package/dist/components/FilterDropdown/FilterDropdown.js +168 -0
  3. package/dist/components/FilterDropdown/FilterDropdownAllOption.d.ts +14 -0
  4. package/dist/components/FilterDropdown/FilterDropdownAllOption.js +25 -0
  5. package/dist/components/FilterDropdown/FilterDropdownClear.d.ts +12 -0
  6. package/dist/components/FilterDropdown/FilterDropdownClear.js +33 -0
  7. package/dist/components/FilterDropdown/FilterDropdownContent.d.ts +13 -0
  8. package/dist/components/FilterDropdown/FilterDropdownContent.js +57 -0
  9. package/dist/components/FilterDropdown/FilterDropdownContext.d.ts +60 -0
  10. package/dist/components/FilterDropdown/FilterDropdownContext.js +21 -0
  11. package/dist/components/FilterDropdown/FilterDropdownEmpty.d.ts +9 -0
  12. package/dist/components/FilterDropdown/FilterDropdownEmpty.js +21 -0
  13. package/dist/components/FilterDropdown/FilterDropdownFooter.d.ts +9 -0
  14. package/dist/components/FilterDropdown/FilterDropdownFooter.js +19 -0
  15. package/dist/components/FilterDropdown/FilterDropdownFooterClear.d.ts +9 -0
  16. package/dist/components/FilterDropdown/FilterDropdownFooterClear.js +40 -0
  17. package/dist/components/FilterDropdown/FilterDropdownGroup.d.ts +5 -0
  18. package/dist/components/FilterDropdown/FilterDropdownGroup.js +8 -0
  19. package/dist/components/FilterDropdown/FilterDropdownGroupLabel.d.ts +4 -0
  20. package/dist/components/FilterDropdown/FilterDropdownGroupLabel.js +8 -0
  21. package/dist/components/FilterDropdown/FilterDropdownOption.d.ts +15 -0
  22. package/dist/components/FilterDropdown/FilterDropdownOption.js +32 -0
  23. package/dist/components/FilterDropdown/FilterDropdownSearch.d.ts +12 -0
  24. package/dist/components/FilterDropdown/FilterDropdownSearch.js +38 -0
  25. package/dist/components/FilterDropdown/FilterDropdownSelected.d.ts +16 -0
  26. package/dist/components/FilterDropdown/FilterDropdownSelected.js +38 -0
  27. package/dist/components/FilterDropdown/FilterDropdownTrigger.d.ts +16 -0
  28. package/dist/components/FilterDropdown/FilterDropdownTrigger.js +139 -0
  29. package/dist/components/FilterDropdown/classes.d.ts +16 -0
  30. package/dist/components/FilterDropdown/classes.js +43 -0
  31. package/dist/components/FilterDropdown/index.d.ts +15 -0
  32. package/dist/components/FilterDropdown/index.js +15 -0
  33. package/dist/components/FilterDropdown/lib/index.d.ts +1 -0
  34. package/dist/components/FilterDropdown/lib/index.js +1 -0
  35. package/dist/components/FilterDropdown/lib/values.d.ts +59 -0
  36. package/dist/components/FilterDropdown/lib/values.js +58 -0
  37. package/dist/components/Select/Select.d.ts +1 -1
  38. package/dist/components/Select/SelectContent.d.ts +2 -1
  39. package/dist/components/Select/SelectContent.js +3 -2
  40. package/dist/components/Select/SelectEmptyState.d.ts +1 -0
  41. package/dist/components/Select/SelectEmptyState.js +2 -1
  42. package/dist/components/Select/SelectFooter.d.ts +7 -2
  43. package/dist/components/Select/SelectFooter.js +6 -3
  44. package/dist/components/Select/SelectGroup.d.ts +8 -2
  45. package/dist/components/Select/SelectGroup.js +3 -2
  46. package/dist/components/Select/SelectGroupLabel.d.ts +5 -2
  47. package/dist/components/Select/SelectGroupLabel.js +2 -2
  48. package/dist/components/Select/SelectOption.js +1 -1
  49. package/dist/components/Select/SelectOptionHint.d.ts +11 -0
  50. package/dist/components/Select/SelectOptionHint.js +15 -0
  51. package/dist/components/Select/SelectPositioner.d.ts +13 -3
  52. package/dist/components/Select/SelectPositioner.js +2 -1
  53. package/dist/components/Select/SelectSearchInput.d.ts +5 -2
  54. package/dist/components/Select/SelectSearchInput.js +11 -1
  55. package/dist/components/Select/classes.d.ts +3 -0
  56. package/dist/components/Select/classes.js +13 -0
  57. package/dist/components/Select/index.d.ts +4 -2
  58. package/dist/components/Select/index.js +2 -0
  59. package/dist/components/Table/TableBody/TableBodyVirtualizedCore.js +1 -1
  60. package/dist/components/Table/TableBody/TableBodyVirtualizedWindow.js +8 -26
  61. package/dist/components/Table/TableInner/TableInnerWindow.js +2 -7
  62. package/dist/components/Table/hooks/index.d.ts +0 -1
  63. package/dist/components/Table/hooks/index.js +0 -1
  64. package/dist/components/Table/hooks/infiniteScroll/useInfiniteScroll.d.ts +2 -4
  65. package/dist/components/Table/hooks/infiniteScroll/useInfiniteScroll.js +1 -4
  66. package/dist/components/Table/hooks/infiniteScroll/usePrependScrollAnchor.d.ts +1 -4
  67. package/dist/components/Table/hooks/infiniteScroll/usePrependScrollAnchor.js +11 -13
  68. package/dist/components/Table/hooks/infiniteScroll/useScrollEdge.d.ts +1 -4
  69. package/dist/components/Table/hooks/infiniteScroll/useScrollEdge.js +18 -6
  70. package/dist/components/Table/lib/index.d.ts +0 -1
  71. package/dist/components/Table/lib/index.js +0 -1
  72. package/dist/components/Table/types.d.ts +1 -4
  73. package/dist/index.d.ts +2 -1
  74. package/dist/index.js +2 -1
  75. package/dist/metadata/components.json +6317 -1145
  76. package/package.json +1 -1
  77. package/dist/components/Table/hooks/useWindowScrollRoot.d.ts +0 -14
  78. package/dist/components/Table/hooks/useWindowScrollRoot.js +0 -35
  79. package/dist/components/Table/lib/scrollRoot.d.ts +0 -24
  80. package/dist/components/Table/lib/scrollRoot.js +0 -22
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wallarm-org/design-system",
3
- "version": "1.28.2-rc-fix-table-window-scroll-root.2",
3
+ "version": "1.29.0",
4
4
  "description": "Core design system library with React components and Storybook documentation",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -1,14 +0,0 @@
1
- import { type RefObject } from 'react';
2
- import { type ScrollRoot } from '../lib';
3
- /** The `virtualized='window'` scroll root, shared from the table shell to its body. */
4
- export declare const WindowScrollRootContext: import("react").Context<ScrollRoot | null>;
5
- /**
6
- * Resolves the scroll root of a `virtualized='window'` table once, for the
7
- * virtualizer, the edge detection and the prepend compensation alike.
8
- *
9
- * Starts on the window. At mount the body has no rows yet, so a pane that will
10
- * scroll does not overflow and stays on the window. While the root is the
11
- * window, a scroll of any ancestor of the table re-resolves it: a pane the user
12
- * scrolls overflows by then. An element root is final.
13
- */
14
- export declare const useWindowScrollRoot: (containerRef: RefObject<HTMLElement | null>) => ScrollRoot | null;
@@ -1,35 +0,0 @@
1
- import { createContext, useLayoutEffect, useRef, useState } from "react";
2
- import { getScrollRoot, isWindowScrollRoot } from "../lib/index.js";
3
- const WindowScrollRootContext = createContext(null);
4
- const useWindowScrollRoot = (containerRef)=>{
5
- const [scrollRoot, setScrollRoot] = useState(()=>"u" < typeof window ? null : window);
6
- const scrollRootRef = useRef(scrollRoot);
7
- useLayoutEffect(()=>{
8
- const container = containerRef.current;
9
- if (!container) return;
10
- const resolve = ()=>{
11
- const next = getScrollRoot(container);
12
- if (next === scrollRootRef.current) return;
13
- scrollRootRef.current = next;
14
- setScrollRoot(next);
15
- };
16
- resolve();
17
- const onScroll = (event)=>{
18
- const { target } = event;
19
- if (scrollRootRef.current && !isWindowScrollRoot(scrollRootRef.current)) return;
20
- if (!(target instanceof Element) || target === container || !target.contains(container)) return;
21
- resolve();
22
- };
23
- document.addEventListener('scroll', onScroll, {
24
- capture: true,
25
- passive: true
26
- });
27
- return ()=>document.removeEventListener('scroll', onScroll, {
28
- capture: true
29
- });
30
- }, [
31
- containerRef
32
- ]);
33
- return scrollRoot;
34
- };
35
- export { WindowScrollRootContext, useWindowScrollRoot };
@@ -1,24 +0,0 @@
1
- export type ScrollRoot = HTMLElement | Window;
2
- export declare const isWindowScrollRoot: (root: ScrollRoot) => root is Window;
3
- /**
4
- * What a `virtualized='window'` table actually scrolls with: the nearest
5
- * ancestor that scrolls vertically, else the window. An app shell that scrolls
6
- * its content pane instead of the document (e.g. a micro-frontend host) keeps
7
- * `window.scrollY` at 0 forever, so tracking the window there never virtualizes
8
- * past the first screen and never reaches the end.
9
- *
10
- * `overflow-y` alone is not enough: a non-`visible` `overflow-x` (a plain
11
- * `overflow-x-hidden` layout wrapper) computes `overflow-y: visible` to `auto`
12
- * on a box that grows with its content and never scrolls. Only a box whose
13
- * content overflows it counts — so a pane that does not overflow yet resolves
14
- * to the window (`useWindowScrollRoot` re-resolves once an ancestor scrolls).
15
- */
16
- export declare const getScrollRoot: (el: Element | null) => ScrollRoot;
17
- export declare const getScrollMetrics: (root: ScrollRoot) => {
18
- scrollTop: number;
19
- clientHeight: number;
20
- scrollHeight: number;
21
- };
22
- export declare const scrollRootBy: (root: ScrollRoot, delta: number) => void;
23
- /** `el`'s top in the root's scroll-content coordinates (the virtualizer's `scrollMargin`). */
24
- export declare const getOffsetTopInScrollRoot: (el: HTMLElement, root: ScrollRoot) => number;
@@ -1,22 +0,0 @@
1
- import { getDocumentOffsetTop } from "../TableBody/lib/getDocumentOffsetTop.js";
2
- const SCROLLABLE_OVERFLOW = /(auto|scroll|overlay)/;
3
- const isWindowScrollRoot = (root)=>root === window;
4
- const getScrollRoot = (el)=>{
5
- for(let node = el?.parentElement; node && node !== document.body; node = node.parentElement)if (SCROLLABLE_OVERFLOW.test(getComputedStyle(node).overflowY) && node.scrollHeight > node.clientHeight) return node;
6
- return window;
7
- };
8
- const getScrollMetrics = (root)=>isWindowScrollRoot(root) ? {
9
- scrollTop: root.scrollY,
10
- clientHeight: root.innerHeight,
11
- scrollHeight: document.documentElement.scrollHeight
12
- } : {
13
- scrollTop: root.scrollTop,
14
- clientHeight: root.clientHeight,
15
- scrollHeight: root.scrollHeight
16
- };
17
- const scrollRootBy = (root, delta)=>{
18
- if (isWindowScrollRoot(root)) root.scrollBy(0, delta);
19
- else root.scrollTop += delta;
20
- };
21
- const getOffsetTopInScrollRoot = (el, root)=>isWindowScrollRoot(root) ? getDocumentOffsetTop(el) : el.getBoundingClientRect().top - root.getBoundingClientRect().top - root.clientTop + root.scrollTop;
22
- export { getOffsetTopInScrollRoot, getScrollMetrics, getScrollRoot, isWindowScrollRoot, scrollRootBy };