@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.
- package/dist/components/FilterDropdown/FilterDropdown.d.ts +58 -0
- package/dist/components/FilterDropdown/FilterDropdown.js +168 -0
- package/dist/components/FilterDropdown/FilterDropdownAllOption.d.ts +14 -0
- package/dist/components/FilterDropdown/FilterDropdownAllOption.js +25 -0
- package/dist/components/FilterDropdown/FilterDropdownClear.d.ts +12 -0
- package/dist/components/FilterDropdown/FilterDropdownClear.js +33 -0
- package/dist/components/FilterDropdown/FilterDropdownContent.d.ts +13 -0
- package/dist/components/FilterDropdown/FilterDropdownContent.js +57 -0
- package/dist/components/FilterDropdown/FilterDropdownContext.d.ts +60 -0
- package/dist/components/FilterDropdown/FilterDropdownContext.js +21 -0
- package/dist/components/FilterDropdown/FilterDropdownEmpty.d.ts +9 -0
- package/dist/components/FilterDropdown/FilterDropdownEmpty.js +21 -0
- package/dist/components/FilterDropdown/FilterDropdownFooter.d.ts +9 -0
- package/dist/components/FilterDropdown/FilterDropdownFooter.js +19 -0
- package/dist/components/FilterDropdown/FilterDropdownFooterClear.d.ts +9 -0
- package/dist/components/FilterDropdown/FilterDropdownFooterClear.js +40 -0
- package/dist/components/FilterDropdown/FilterDropdownGroup.d.ts +5 -0
- package/dist/components/FilterDropdown/FilterDropdownGroup.js +8 -0
- package/dist/components/FilterDropdown/FilterDropdownGroupLabel.d.ts +4 -0
- package/dist/components/FilterDropdown/FilterDropdownGroupLabel.js +8 -0
- package/dist/components/FilterDropdown/FilterDropdownOption.d.ts +15 -0
- package/dist/components/FilterDropdown/FilterDropdownOption.js +32 -0
- package/dist/components/FilterDropdown/FilterDropdownSearch.d.ts +12 -0
- package/dist/components/FilterDropdown/FilterDropdownSearch.js +38 -0
- package/dist/components/FilterDropdown/FilterDropdownSelected.d.ts +16 -0
- package/dist/components/FilterDropdown/FilterDropdownSelected.js +38 -0
- package/dist/components/FilterDropdown/FilterDropdownTrigger.d.ts +16 -0
- package/dist/components/FilterDropdown/FilterDropdownTrigger.js +139 -0
- package/dist/components/FilterDropdown/classes.d.ts +16 -0
- package/dist/components/FilterDropdown/classes.js +43 -0
- package/dist/components/FilterDropdown/index.d.ts +15 -0
- package/dist/components/FilterDropdown/index.js +15 -0
- package/dist/components/FilterDropdown/lib/index.d.ts +1 -0
- package/dist/components/FilterDropdown/lib/index.js +1 -0
- package/dist/components/FilterDropdown/lib/values.d.ts +59 -0
- package/dist/components/FilterDropdown/lib/values.js +58 -0
- package/dist/components/Select/Select.d.ts +1 -1
- package/dist/components/Select/SelectContent.d.ts +2 -1
- package/dist/components/Select/SelectContent.js +3 -2
- package/dist/components/Select/SelectEmptyState.d.ts +1 -0
- package/dist/components/Select/SelectEmptyState.js +2 -1
- package/dist/components/Select/SelectFooter.d.ts +7 -2
- package/dist/components/Select/SelectFooter.js +6 -3
- package/dist/components/Select/SelectGroup.d.ts +8 -2
- package/dist/components/Select/SelectGroup.js +3 -2
- package/dist/components/Select/SelectGroupLabel.d.ts +5 -2
- package/dist/components/Select/SelectGroupLabel.js +2 -2
- package/dist/components/Select/SelectOption.js +1 -1
- package/dist/components/Select/SelectOptionHint.d.ts +11 -0
- package/dist/components/Select/SelectOptionHint.js +15 -0
- package/dist/components/Select/SelectPositioner.d.ts +13 -3
- package/dist/components/Select/SelectPositioner.js +2 -1
- package/dist/components/Select/SelectSearchInput.d.ts +5 -2
- package/dist/components/Select/SelectSearchInput.js +11 -1
- package/dist/components/Select/classes.d.ts +3 -0
- package/dist/components/Select/classes.js +13 -0
- package/dist/components/Select/index.d.ts +4 -2
- package/dist/components/Select/index.js +2 -0
- package/dist/components/Table/TableBody/TableBodyVirtualizedCore.js +1 -1
- package/dist/components/Table/TableBody/TableBodyVirtualizedWindow.js +8 -26
- package/dist/components/Table/TableInner/TableInnerWindow.js +2 -7
- package/dist/components/Table/hooks/index.d.ts +0 -1
- package/dist/components/Table/hooks/index.js +0 -1
- package/dist/components/Table/hooks/infiniteScroll/useInfiniteScroll.d.ts +2 -4
- package/dist/components/Table/hooks/infiniteScroll/useInfiniteScroll.js +1 -4
- package/dist/components/Table/hooks/infiniteScroll/usePrependScrollAnchor.d.ts +1 -4
- package/dist/components/Table/hooks/infiniteScroll/usePrependScrollAnchor.js +11 -13
- package/dist/components/Table/hooks/infiniteScroll/useScrollEdge.d.ts +1 -4
- package/dist/components/Table/hooks/infiniteScroll/useScrollEdge.js +18 -6
- package/dist/components/Table/lib/index.d.ts +0 -1
- package/dist/components/Table/lib/index.js +0 -1
- package/dist/components/Table/types.d.ts +1 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/metadata/components.json +6317 -1145
- package/package.json +1 -1
- package/dist/components/Table/hooks/useWindowScrollRoot.d.ts +0 -14
- package/dist/components/Table/hooks/useWindowScrollRoot.js +0 -35
- package/dist/components/Table/lib/scrollRoot.d.ts +0 -24
- package/dist/components/Table/lib/scrollRoot.js +0 -22
package/package.json
CHANGED
|
@@ -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 };
|