entangle-ui 0.8.2 → 0.9.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/CHANGELOG.md +77 -0
- package/dist/esm/assets/src/components/controls/Combobox/Combobox.css.ts.vanilla-B7B5ttkq.css +210 -0
- package/dist/esm/assets/src/components/controls/FileUploader/FileUploader.css.ts.vanilla-T4nRiI7s.css +194 -0
- package/dist/esm/assets/src/components/controls/MultiSelect/MultiSelect.css.ts.vanilla-CdYayqaF.css +311 -0
- package/dist/esm/assets/src/components/controls/TagInput/TagInput.css.ts.vanilla-hnkMOPp1.css +141 -0
- package/dist/esm/assets/src/components/data/DataTable/DataTable.css.ts.vanilla-CmRgtjIW.css +231 -0
- package/dist/esm/assets/src/components/feedback/Alert/{Alert.css.ts.vanilla-CRAI-xHx.css → Alert.css.ts.vanilla-CfCDsIEg.css} +2 -0
- package/dist/esm/assets/src/components/feedback/CommandPalette/CommandPalette.css.ts.vanilla-DGdrLKYZ.css +160 -0
- package/dist/esm/assets/src/components/feedback/Drawer/Drawer.css.ts.vanilla-CLPTOUrA.css +247 -0
- package/dist/esm/assets/src/components/feedback/Skeleton/SkeletonLayout.css.ts.vanilla-Db7bpqiI.css +75 -0
- package/dist/esm/assets/src/components/feedback/Stat/Stat.css.ts.vanilla-GBk3JAMB.css +69 -0
- package/dist/esm/assets/src/components/layout/Card/Card.css.ts.vanilla-Ducn1gUX.css +124 -0
- package/dist/esm/assets/src/components/navigation/Pagination/Pagination.css.ts.vanilla-CmlFyyjh.css +103 -0
- package/dist/esm/assets/src/components/primitives/HoverCard/HoverCard.css.ts.vanilla-BYT0qbLp.css +41 -0
- package/dist/esm/components/Icons/CloudUploadIcon.js +24 -0
- package/dist/esm/components/Icons/CloudUploadIcon.js.map +1 -0
- package/dist/esm/components/Icons/ExternalLinkIcon.js +26 -0
- package/dist/esm/components/Icons/ExternalLinkIcon.js.map +1 -0
- package/dist/esm/components/Icons/FirstIcon.js +23 -0
- package/dist/esm/components/Icons/FirstIcon.js.map +1 -0
- package/dist/esm/components/Icons/LastIcon.js +23 -0
- package/dist/esm/components/Icons/LastIcon.js.map +1 -0
- package/dist/esm/components/Icons/UnlinkIcon.js +26 -0
- package/dist/esm/components/Icons/UnlinkIcon.js.map +1 -0
- package/dist/esm/components/controls/Combobox/Combobox.css.js +20 -0
- package/dist/esm/components/controls/Combobox/Combobox.css.js.map +1 -0
- package/dist/esm/components/controls/Combobox/Combobox.js +354 -0
- package/dist/esm/components/controls/Combobox/Combobox.js.map +1 -0
- package/dist/esm/components/controls/FileUploader/FileUploader.css.js +20 -0
- package/dist/esm/components/controls/FileUploader/FileUploader.css.js.map +1 -0
- package/dist/esm/components/controls/FileUploader/FileUploader.js +264 -0
- package/dist/esm/components/controls/FileUploader/FileUploader.js.map +1 -0
- package/dist/esm/components/controls/MultiSelect/MultiSelect.css.js +23 -0
- package/dist/esm/components/controls/MultiSelect/MultiSelect.css.js.map +1 -0
- package/dist/esm/components/controls/MultiSelect/MultiSelect.js +269 -0
- package/dist/esm/components/controls/MultiSelect/MultiSelect.js.map +1 -0
- package/dist/esm/components/controls/Select/Select.js +5 -4
- package/dist/esm/components/controls/Select/Select.js.map +1 -1
- package/dist/esm/components/controls/TagInput/TagInput.css.js +12 -0
- package/dist/esm/components/controls/TagInput/TagInput.css.js.map +1 -0
- package/dist/esm/components/controls/TagInput/TagInput.js +189 -0
- package/dist/esm/components/controls/TagInput/TagInput.js.map +1 -0
- package/dist/esm/components/controls/TreeView/TreeNode.js +87 -1
- package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -1
- package/dist/esm/components/controls/VectorInput/VectorInput.js +87 -4
- package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
- package/dist/esm/components/data/DataTable/DataTable.css.js +25 -0
- package/dist/esm/components/data/DataTable/DataTable.css.js.map +1 -0
- package/dist/esm/components/data/DataTable/DataTable.js +502 -0
- package/dist/esm/components/data/DataTable/DataTable.js.map +1 -0
- package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js +87 -5
- package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatInput.js +87 -5
- package/dist/esm/components/editor/ChatPanel/ChatInput.js.map +1 -1
- package/dist/esm/components/editor/ChatPanel/ChatMessage.js +87 -2
- package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +87 -3
- package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -1
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js +87 -3
- package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -1
- package/dist/esm/components/feedback/Alert/Alert.css.js +1 -1
- package/dist/esm/components/feedback/Alert/Alert.js +3 -2
- package/dist/esm/components/feedback/Alert/Alert.js.map +1 -1
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.css.js +20 -0
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.css.js.map +1 -0
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.js +261 -0
- package/dist/esm/components/feedback/CommandPalette/CommandPalette.js.map +1 -0
- package/dist/esm/components/feedback/CommandPalette/fuzzySearch.js +86 -0
- package/dist/esm/components/feedback/CommandPalette/fuzzySearch.js.map +1 -0
- package/dist/esm/components/feedback/CommandPalette/useRecentItems.js +63 -0
- package/dist/esm/components/feedback/CommandPalette/useRecentItems.js.map +1 -0
- package/dist/esm/components/feedback/Dialog/DialogHeader.js +2 -1
- package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -1
- package/dist/esm/components/feedback/Drawer/Drawer.css.js +17 -0
- package/dist/esm/components/feedback/Drawer/Drawer.css.js.map +1 -0
- package/dist/esm/components/feedback/Drawer/Drawer.js +120 -0
- package/dist/esm/components/feedback/Drawer/Drawer.js.map +1 -0
- package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js +74 -0
- package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js.map +1 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.css.js +18 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.css.js.map +1 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js +95 -0
- package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js.map +1 -0
- package/dist/esm/components/feedback/Stat/Stat.css.js +15 -0
- package/dist/esm/components/feedback/Stat/Stat.css.js.map +1 -0
- package/dist/esm/components/feedback/Stat/Stat.js +55 -0
- package/dist/esm/components/feedback/Stat/Stat.js.map +1 -0
- package/dist/esm/components/feedback/Toast/ToastItem.js +12 -15
- package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -1
- package/dist/esm/components/layout/Accordion/Accordion.js +2 -1
- package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -1
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js +2 -3
- package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -1
- package/dist/esm/components/layout/Card/Card.css.js +18 -0
- package/dist/esm/components/layout/Card/Card.css.js.map +1 -0
- package/dist/esm/components/layout/Card/Card.js +66 -0
- package/dist/esm/components/layout/Card/Card.js.map +1 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js +1 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js.map +1 -1
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js +1 -0
- package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js.map +1 -1
- package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js +5 -0
- package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/esm/components/navigation/Pagination/Pagination.css.js +12 -0
- package/dist/esm/components/navigation/Pagination/Pagination.css.js.map +1 -0
- package/dist/esm/components/navigation/Pagination/Pagination.js +107 -0
- package/dist/esm/components/navigation/Pagination/Pagination.js.map +1 -0
- package/dist/esm/components/navigation/Pagination/usePagination.js +143 -0
- package/dist/esm/components/navigation/Pagination/usePagination.js.map +1 -0
- package/dist/esm/components/primitives/Avatar/Avatar.js +87 -1
- package/dist/esm/components/primitives/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/primitives/Badge/Badge.js +87 -1
- package/dist/esm/components/primitives/Badge/Badge.js.map +1 -1
- package/dist/esm/components/primitives/Checkbox/Checkbox.js +5 -2
- package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/primitives/Collapsible/Collapsible.js +2 -3
- package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -1
- package/dist/esm/components/primitives/HoverCard/HoverCard.css.js +7 -0
- package/dist/esm/components/primitives/HoverCard/HoverCard.css.js.map +1 -0
- package/dist/esm/components/primitives/HoverCard/HoverCard.js +169 -0
- package/dist/esm/components/primitives/HoverCard/HoverCard.js.map +1 -0
- package/dist/esm/components/primitives/Icon/Icon.js +16 -2
- package/dist/esm/components/primitives/Icon/Icon.js.map +1 -1
- package/dist/esm/components/primitives/Link/Link.js +3 -3
- package/dist/esm/components/primitives/Link/Link.js.map +1 -1
- package/dist/esm/components/primitives/Popover/PopoverClose.js +2 -3
- package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -1
- package/dist/esm/components/primitives/Radio/Radio.js +1 -1
- package/dist/esm/hooks/useBreakpoint/useBreakpoint.js +44 -0
- package/dist/esm/hooks/useBreakpoint/useBreakpoint.js.map +1 -0
- package/dist/esm/hooks/useDebounced/useDebouncedCallback.js +97 -0
- package/dist/esm/hooks/useDebounced/useDebouncedCallback.js.map +1 -0
- package/dist/esm/hooks/useDebounced/useDebouncedValue.js +35 -0
- package/dist/esm/hooks/useDebounced/useDebouncedValue.js.map +1 -0
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +73 -0
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -0
- package/dist/esm/hooks/useListboxNav/useListboxNav.js +181 -0
- package/dist/esm/hooks/useListboxNav/useListboxNav.js.map +1 -0
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +54 -0
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.js.map +1 -0
- package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js +78 -0
- package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js.map +1 -0
- package/dist/esm/index.js +25 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/theme/breakpoints.js +27 -0
- package/dist/esm/theme/breakpoints.js.map +1 -0
- package/dist/esm/theme/index.js +1 -0
- package/dist/esm/theme/index.js.map +1 -1
- package/dist/tokens/tokens.dark.css +1 -1
- package/dist/tokens/tokens.json +1 -1
- package/dist/tokens/tokens.light.css +1 -1
- package/dist/types/components/Icons/CloudUploadIcon.d.ts +27 -0
- package/dist/types/components/Icons/ExternalLinkIcon.d.ts +29 -0
- package/dist/types/components/Icons/FirstIcon.d.ts +26 -0
- package/dist/types/components/Icons/LastIcon.d.ts +26 -0
- package/dist/types/components/Icons/UnlinkIcon.d.ts +29 -0
- package/dist/types/components/controls/Combobox/Combobox.d.ts +29 -0
- package/dist/types/components/controls/Combobox/Combobox.types.d.ts +109 -0
- package/dist/types/components/controls/FileUploader/FileUploader.d.ts +34 -0
- package/dist/types/components/controls/FileUploader/FileUploader.types.d.ts +94 -0
- package/dist/types/components/controls/MultiSelect/MultiSelect.d.ts +31 -0
- package/dist/types/components/controls/MultiSelect/MultiSelect.types.d.ts +85 -0
- package/dist/types/components/controls/TagInput/TagInput.d.ts +24 -0
- package/dist/types/components/controls/TagInput/TagInput.types.d.ts +100 -0
- package/dist/types/components/data/DataTable/DataTable.d.ts +8 -0
- package/dist/types/components/data/DataTable/DataTable.types.d.ts +159 -0
- package/dist/types/components/feedback/Alert/Alert.d.ts +1 -0
- package/dist/types/components/feedback/Alert/Alert.types.d.ts +7 -0
- package/dist/types/components/feedback/CommandPalette/CommandPalette.d.ts +29 -0
- package/dist/types/components/feedback/CommandPalette/CommandPalette.types.d.ts +61 -0
- package/dist/types/components/feedback/CommandPalette/fuzzySearch.d.ts +6 -0
- package/dist/types/components/feedback/Drawer/Drawer.d.ts +12 -0
- package/dist/types/components/feedback/Drawer/Drawer.types.d.ts +70 -0
- package/dist/types/components/feedback/Skeleton/Skeleton.types.d.ts +44 -1
- package/dist/types/components/feedback/Skeleton/SkeletonLayout.d.ts +314 -0
- package/dist/types/components/feedback/Stat/Stat.d.ts +23 -0
- package/dist/types/components/feedback/Stat/Stat.types.d.ts +38 -0
- package/dist/types/components/layout/Accordion/Accordion.types.d.ts +7 -0
- package/dist/types/components/layout/Card/Card.d.ts +12 -0
- package/dist/types/components/layout/Card/Card.types.d.ts +54 -0
- package/dist/types/components/navigation/Pagination/Pagination.d.ts +22 -0
- package/dist/types/components/navigation/Pagination/Pagination.types.d.ts +49 -0
- package/dist/types/components/primitives/Button/Button.d.ts +1 -1
- package/dist/types/components/primitives/HoverCard/HoverCard.d.ts +10 -0
- package/dist/types/components/primitives/HoverCard/HoverCard.types.d.ts +64 -0
- package/dist/types/components/primitives/Icon/Icon.d.ts +14 -1
- package/dist/types/components/primitives/IconButton/IconButton.d.ts +1 -1
- package/dist/types/hooks/useBreakpoint/useBreakpoint.d.ts +19 -0
- package/dist/types/hooks/useBreakpoint/useBreakpoint.types.d.ts +20 -0
- package/dist/types/hooks/useDebounced/useDebounced.types.d.ts +15 -0
- package/dist/types/hooks/useDebounced/useDebouncedCallback.d.ts +22 -0
- package/dist/types/hooks/useDebounced/useDebouncedValue.d.ts +16 -0
- package/dist/types/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +22 -0
- package/dist/types/hooks/useIntersectionObserver/useIntersectionObserver.types.d.ts +22 -0
- package/dist/types/hooks/useListboxNav/useListboxNav.d.ts +75 -0
- package/dist/types/hooks/useMediaQuery/useMediaQuery.d.ts +19 -0
- package/dist/types/hooks/useMediaQuery/useMediaQuery.types.d.ts +6 -0
- package/dist/types/hooks/useThrottledCallback/useThrottledCallback.d.ts +23 -0
- package/dist/types/hooks/useThrottledCallback/useThrottledCallback.types.d.ts +13 -0
- package/dist/types/index.d.ts +43 -1
- package/dist/types/theme/breakpoints.d.ts +22 -0
- package/dist/types/theme/index.d.ts +1 -0
- package/package.json +3 -1
|
@@ -347,6 +347,7 @@ declare const IconButton: React.NamedExoticComponent<{
|
|
|
347
347
|
onTransitionStart?: React.TransitionEventHandler<HTMLButtonElement> | undefined;
|
|
348
348
|
onTransitionStartCapture?: React.TransitionEventHandler<HTMLButtonElement> | undefined;
|
|
349
349
|
form?: string | undefined | undefined;
|
|
350
|
+
value?: string | number | readonly string[] | undefined;
|
|
350
351
|
name?: string | undefined | undefined;
|
|
351
352
|
formAction?: string | ((formData: FormData) => void | Promise<void>) | undefined;
|
|
352
353
|
formEncType?: string | undefined | undefined;
|
|
@@ -354,7 +355,6 @@ declare const IconButton: React.NamedExoticComponent<{
|
|
|
354
355
|
formNoValidate?: boolean | undefined | undefined;
|
|
355
356
|
formTarget?: string | undefined | undefined;
|
|
356
357
|
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
357
|
-
value?: string | number | readonly string[] | undefined;
|
|
358
358
|
}>;
|
|
359
359
|
|
|
360
360
|
export { IconButton };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UseBreakpointReturn } from './useBreakpoint.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Reactive named-breakpoint matcher.
|
|
5
|
+
*
|
|
6
|
+
* Returns booleans for each named breakpoint plus the largest matching
|
|
7
|
+
* `current`. Built on top of `useMediaQuery`. Breakpoint values come from
|
|
8
|
+
* `@/theme/breakpoints` and match the values used by `Stack` and other
|
|
9
|
+
* responsive layout components.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const { md, current } = useBreakpoint();
|
|
14
|
+
* return md ? <Sidebar /> : <BottomSheet />;
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
declare function useBreakpoint(): UseBreakpointReturn;
|
|
18
|
+
|
|
19
|
+
export { useBreakpoint };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Breakpoint } from '../../theme/breakpoints.js';
|
|
2
|
+
|
|
3
|
+
interface BreakpointMap {
|
|
4
|
+
/** Always `true` — base mobile breakpoint. */
|
|
5
|
+
xs: boolean;
|
|
6
|
+
/** `min-width: 576px`. */
|
|
7
|
+
sm: boolean;
|
|
8
|
+
/** `min-width: 768px`. */
|
|
9
|
+
md: boolean;
|
|
10
|
+
/** `min-width: 992px`. */
|
|
11
|
+
lg: boolean;
|
|
12
|
+
/** `min-width: 1200px`. */
|
|
13
|
+
xl: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface UseBreakpointReturn extends BreakpointMap {
|
|
16
|
+
/** Name of the largest matching breakpoint. */
|
|
17
|
+
current: Breakpoint;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type { BreakpointMap, UseBreakpointReturn };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface UseDebouncedCallbackOptions {
|
|
2
|
+
/** Fire on the leading edge in addition to trailing. @default false */
|
|
3
|
+
leading?: boolean;
|
|
4
|
+
/** Maximum time the callback may be deferred before being forced. */
|
|
5
|
+
maxWait?: number;
|
|
6
|
+
}
|
|
7
|
+
interface DebouncedCallback<Args extends unknown[]> {
|
|
8
|
+
(...args: Args): void;
|
|
9
|
+
/** Cancel a pending call. */
|
|
10
|
+
cancel: () => void;
|
|
11
|
+
/** Fire a pending call immediately (no-op when nothing is pending). */
|
|
12
|
+
flush: () => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type { DebouncedCallback, UseDebouncedCallbackOptions };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { UseDebouncedCallbackOptions, DebouncedCallback } from './useDebounced.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Wrap a function so rapid calls collapse into one. By default the call
|
|
5
|
+
* fires on the trailing edge — pass `leading: true` to also fire
|
|
6
|
+
* immediately. `maxWait` forces a call even when calls keep coming.
|
|
7
|
+
*
|
|
8
|
+
* The wrapper identity is stable; passing fresh inline functions across
|
|
9
|
+
* renders is safe and does not reset pending timers.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const onResize = useDebouncedCallback(measure, 150);
|
|
14
|
+
* useEffect(() => {
|
|
15
|
+
* window.addEventListener('resize', onResize);
|
|
16
|
+
* return () => window.removeEventListener('resize', onResize);
|
|
17
|
+
* }, [onResize]);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
declare function useDebouncedCallback<Args extends unknown[]>(fn: (...args: Args) => void, delay: number, options?: UseDebouncedCallbackOptions): DebouncedCallback<Args>;
|
|
21
|
+
|
|
22
|
+
export { useDebouncedCallback };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a copy of `value` that updates only after `delay` ms have elapsed
|
|
3
|
+
* without further changes (trailing-edge debounce).
|
|
4
|
+
*
|
|
5
|
+
* Typical use: feeding a search input value into an expensive query.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* const [text, setText] = useState('');
|
|
10
|
+
* const debounced = useDebouncedValue(text, 200);
|
|
11
|
+
* useEffect(() => { search(debounced); }, [debounced]);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare function useDebouncedValue<T>(value: T, delay: number): T;
|
|
15
|
+
|
|
16
|
+
export { useDebouncedValue };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { UseIntersectionObserverOptions, UseIntersectionObserverReturn } from './useIntersectionObserver.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Observe whether an element intersects a root (defaults to the viewport).
|
|
5
|
+
* Returns a ref callback to attach to the observed element plus the latest
|
|
6
|
+
* `IntersectionObserverEntry`. SSR-safe: returns a no-op ref and `null`
|
|
7
|
+
* entry when `IntersectionObserver` is unavailable.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const { ref, isIntersecting } = useIntersectionObserver<HTMLDivElement>({
|
|
12
|
+
* rootMargin: '200px',
|
|
13
|
+
* });
|
|
14
|
+
* useEffect(() => {
|
|
15
|
+
* if (isIntersecting) loadMore();
|
|
16
|
+
* }, [isIntersecting]);
|
|
17
|
+
* return <div ref={ref} />;
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
declare function useIntersectionObserver<T extends Element = Element>(options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn<T>;
|
|
21
|
+
|
|
22
|
+
export { useIntersectionObserver };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface UseIntersectionObserverOptions {
|
|
4
|
+
/** Root element. `null` (default) targets the viewport. */
|
|
5
|
+
root?: Element | null;
|
|
6
|
+
/** Margin around the root, e.g. `"0px 0px 200px 0px"`. */
|
|
7
|
+
rootMargin?: string;
|
|
8
|
+
/** Single threshold or an array of thresholds. */
|
|
9
|
+
threshold?: number | number[];
|
|
10
|
+
/** Disable the observer without unmounting the component. @default true */
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
interface UseIntersectionObserverReturn<T extends Element> {
|
|
14
|
+
/** Ref callback to attach to the observed element. */
|
|
15
|
+
ref: React.RefCallback<T>;
|
|
16
|
+
/** Latest IntersectionObserverEntry or null before the first callback. */
|
|
17
|
+
entry: IntersectionObserverEntry | null;
|
|
18
|
+
/** Convenience boolean — `entry?.isIntersecting ?? false`. */
|
|
19
|
+
isIntersecting: boolean;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export type { UseIntersectionObserverOptions, UseIntersectionObserverReturn };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface UseListboxNavOptions<T> {
|
|
4
|
+
/** Items rendered in the listbox. The hook tracks navigation by index. */
|
|
5
|
+
items: T[];
|
|
6
|
+
/**
|
|
7
|
+
* Whether a given item should be skipped during navigation and rejected by
|
|
8
|
+
* `selectActive()`.
|
|
9
|
+
*/
|
|
10
|
+
isItemDisabled?: (item: T, index: number) => boolean;
|
|
11
|
+
/** Initial active index. Defaults to `-1` (no active item). */
|
|
12
|
+
defaultActiveIndex?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Wrap from last → first (and vice versa) on `next`/`prev`.
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
17
|
+
loop?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Reset the active index when the items array changes by reference.
|
|
20
|
+
* Useful for filtered listboxes where the previous index would be stale.
|
|
21
|
+
* @default true
|
|
22
|
+
*/
|
|
23
|
+
resetOnItemsChange?: boolean;
|
|
24
|
+
/** Called when the active item is committed via `selectActive()`. */
|
|
25
|
+
onSelect?: (item: T, index: number) => void;
|
|
26
|
+
/** Called on `Escape`. */
|
|
27
|
+
onEscape?: () => void;
|
|
28
|
+
}
|
|
29
|
+
interface UseListboxNavReturn {
|
|
30
|
+
/** Currently active index, or `-1` when none. */
|
|
31
|
+
activeIndex: number;
|
|
32
|
+
/** Direct setter; the value is not validated. */
|
|
33
|
+
setActiveIndex: (index: number) => void;
|
|
34
|
+
/** Move to the next non-disabled item. */
|
|
35
|
+
next: () => void;
|
|
36
|
+
/** Move to the previous non-disabled item. */
|
|
37
|
+
prev: () => void;
|
|
38
|
+
/** Activate the first non-disabled item. */
|
|
39
|
+
first: () => void;
|
|
40
|
+
/** Activate the last non-disabled item. */
|
|
41
|
+
last: () => void;
|
|
42
|
+
/** Commit the active item via `onSelect`. */
|
|
43
|
+
selectActive: () => void;
|
|
44
|
+
/**
|
|
45
|
+
* Single keyboard handler for ArrowUp/Down/Home/End/Enter/Escape. Returns
|
|
46
|
+
* `true` when the event was handled (and `preventDefault` was called).
|
|
47
|
+
*/
|
|
48
|
+
handleKeyDown: (event: KeyboardEvent | React.KeyboardEvent) => boolean;
|
|
49
|
+
/** Snapshot of the navigable indices (non-disabled, in order). */
|
|
50
|
+
navigableIndices: number[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Shared keyboard navigation for listbox-like surfaces (Select, MultiSelect,
|
|
54
|
+
* Combobox, CommandPalette). Tracks an `activeIndex`, skips disabled items,
|
|
55
|
+
* and exposes a single `handleKeyDown` covering Arrow / Home / End / Enter /
|
|
56
|
+
* Escape semantics.
|
|
57
|
+
*
|
|
58
|
+
* The hook is purely logical — consumers render the list and bind the handler
|
|
59
|
+
* to an input or the listbox container. Scroll-into-view is the consumer's
|
|
60
|
+
* concern.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* const { activeIndex, handleKeyDown } = useListboxNav({
|
|
65
|
+
* items: filtered,
|
|
66
|
+
* isItemDisabled: o => o.disabled ?? false,
|
|
67
|
+
* onSelect: (item) => commit(item),
|
|
68
|
+
* onEscape: () => close(),
|
|
69
|
+
* });
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
declare function useListboxNav<T>(options: UseListboxNavOptions<T>): UseListboxNavReturn;
|
|
73
|
+
|
|
74
|
+
export { useListboxNav };
|
|
75
|
+
export type { UseListboxNavOptions, UseListboxNavReturn };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UseMediaQueryOptions } from './useMediaQuery.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Reactive media query matching.
|
|
5
|
+
*
|
|
6
|
+
* Returns `true` when the current viewport matches the query and updates as
|
|
7
|
+
* the viewport changes. SSR-safe — returns `defaultMatches` when `matchMedia`
|
|
8
|
+
* is unavailable. Uses the modern `addEventListener('change')` API with a
|
|
9
|
+
* fallback to the legacy `addListener` for older browsers.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const isWide = useMediaQuery('(min-width: 768px)');
|
|
14
|
+
* return isWide ? <DesktopLayout /> : <MobileLayout />;
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
declare function useMediaQuery(query: string, options?: UseMediaQueryOptions): boolean;
|
|
18
|
+
|
|
19
|
+
export { useMediaQuery };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { UseThrottledCallbackOptions, ThrottledCallback } from './useThrottledCallback.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Wrap a function so it fires at most once per `delay` ms. With both
|
|
5
|
+
* `leading` and `trailing` enabled (the default), the first call fires
|
|
6
|
+
* immediately and the most recent call inside the window fires at its
|
|
7
|
+
* end. Set `leading: false` to defer the first call; set
|
|
8
|
+
* `trailing: false` to drop calls inside the window.
|
|
9
|
+
*
|
|
10
|
+
* Typical use: drag handlers, scroll listeners, resize observers — places
|
|
11
|
+
* where the input rate exceeds the work rate and you want to bound the
|
|
12
|
+
* latter.
|
|
13
|
+
*
|
|
14
|
+
* The wrapper identity is stable across renders.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const onPointerMove = useThrottledCallback(updateGuide, 16);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare function useThrottledCallback<Args extends unknown[]>(fn: (...args: Args) => void, delay: number, options?: UseThrottledCallbackOptions): ThrottledCallback<Args>;
|
|
22
|
+
|
|
23
|
+
export { useThrottledCallback };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface UseThrottledCallbackOptions {
|
|
2
|
+
/** Fire on the leading edge (first call). @default true */
|
|
3
|
+
leading?: boolean;
|
|
4
|
+
/** Fire on the trailing edge (after the last call in the window). @default true */
|
|
5
|
+
trailing?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface ThrottledCallback<Args extends unknown[]> {
|
|
8
|
+
(...args: Args): void;
|
|
9
|
+
/** Cancel any pending trailing call and reset the throttle window. */
|
|
10
|
+
cancel: () => void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type { ThrottledCallback, UseThrottledCallbackOptions };
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,11 +6,14 @@ export { ThemeValues, createCustomTheme } from './theme/createCustomTheme.js';
|
|
|
6
6
|
export { createLightTheme } from './theme/createLightTheme.js';
|
|
7
7
|
export { VanillaThemeProvider, VanillaThemeProviderProps } from './theme/VanillaThemeProvider.js';
|
|
8
8
|
export { ThemeProvider, ThemeProviderProps } from './theme/ThemeProvider.js';
|
|
9
|
+
export { BREAKPOINT_ORDER, Breakpoint, breakpoints } from './theme/breakpoints.js';
|
|
9
10
|
export { Accordion } from './components/layout/Accordion/Accordion.js';
|
|
10
11
|
export { AccordionItem } from './components/layout/Accordion/AccordionItem.js';
|
|
11
12
|
export { AccordionTrigger } from './components/layout/Accordion/AccordionTrigger.js';
|
|
12
13
|
export { AccordionContent } from './components/layout/Accordion/AccordionContent.js';
|
|
13
14
|
export { AccordionContentProps, AccordionItemProps, AccordionProps, AccordionSize, AccordionTriggerProps, AccordionVariant } from './components/layout/Accordion/Accordion.types.js';
|
|
15
|
+
export { Card } from './components/layout/Card/Card.js';
|
|
16
|
+
export { CardBaseProps, CardBodyBaseProps, CardBodyProps, CardFooterAlign, CardFooterBaseProps, CardFooterProps, CardHeaderBaseProps, CardHeaderProps, CardMediaBaseProps, CardMediaProps, CardProps, CardVariant } from './components/layout/Card/Card.types.js';
|
|
14
17
|
export { Divider } from './components/layout/Divider/Divider.js';
|
|
15
18
|
export { DividerOrientation, DividerProps, DividerSpacing, DividerVariant } from './components/layout/Divider/Divider.types.js';
|
|
16
19
|
export { Flex, FlexAlign, FlexAlignContent, FlexDirection, FlexJustify, FlexProps, FlexSpacing, FlexWrap } from './components/layout/Flex/Flex.js';
|
|
@@ -41,6 +44,8 @@ export { Code } from './components/primitives/Code/Code.js';
|
|
|
41
44
|
export { CodeProps, CodeSize } from './components/primitives/Code/Code.types.js';
|
|
42
45
|
export { Collapsible } from './components/primitives/Collapsible/Collapsible.js';
|
|
43
46
|
export { CollapsibleProps, CollapsibleSize } from './components/primitives/Collapsible/Collapsible.types.js';
|
|
47
|
+
export { HoverCard } from './components/primitives/HoverCard/HoverCard.js';
|
|
48
|
+
export { HoverCardBaseProps, HoverCardContentBaseProps, HoverCardContentProps, HoverCardContextValue, HoverCardProps, HoverCardTriggerBaseProps, HoverCardTriggerProps } from './components/primitives/HoverCard/HoverCard.types.js';
|
|
44
49
|
export { Icon, IconProps, IconSize } from './components/primitives/Icon/Icon.js';
|
|
45
50
|
export { IconButton } from './components/primitives/IconButton/IconButton.js';
|
|
46
51
|
export { Input, InputProps, InputSize } from './components/primitives/Input/Input.js';
|
|
@@ -75,10 +80,18 @@ export { MATERIAL_PALETTE, Palette, PaletteColor, PaletteShade } from './compone
|
|
|
75
80
|
export { TAILWIND_PALETTE } from './components/controls/ColorPicker/palettes/tailwind.js';
|
|
76
81
|
export { EARTH_PALETTE, MONOCHROME_PALETTE, NEON_PALETTE, PASTEL_PALETTE, PROFESSIONAL_PALETTES, SKIN_TONES_PALETTE, VINTAGE_PALETTE } from './components/controls/ColorPicker/palettes/professional.js';
|
|
77
82
|
export { ColorFormat, ColorInputMode, ColorPickerProps, ColorPickerSize, ColorPreset, ColorSwatchPublicProps as ColorSwatchProps } from './components/controls/ColorPicker/ColorPicker.types.js';
|
|
83
|
+
export { Combobox } from './components/controls/Combobox/Combobox.js';
|
|
84
|
+
export { ComboboxBaseProps, ComboboxOption, ComboboxProps, ComboboxSize, ComboboxVariant } from './components/controls/Combobox/Combobox.types.js';
|
|
85
|
+
export { FileUploader } from './components/controls/FileUploader/FileUploader.js';
|
|
86
|
+
export { FileUploaderBaseProps, FileUploaderItem, FileUploaderItemStatus, FileUploaderProps, FileUploaderRejectReason, FileUploaderRenderItemState, FileUploaderSize } from './components/controls/FileUploader/FileUploader.types.js';
|
|
87
|
+
export { MultiSelect } from './components/controls/MultiSelect/MultiSelect.js';
|
|
88
|
+
export { MultiSelectBaseProps, MultiSelectOption, MultiSelectOptionGroup, MultiSelectProps, MultiSelectSize, MultiSelectVariant } from './components/controls/MultiSelect/MultiSelect.types.js';
|
|
78
89
|
export { NumberInput, NumberInputProps } from './components/controls/NumberInput/NumberInput.js';
|
|
79
90
|
export { Select } from './components/controls/Select/Select.js';
|
|
80
91
|
export { SelectOptionGroup, SelectOptionItem, SelectProps, SelectSize, SelectVariant } from './components/controls/Select/Select.types.js';
|
|
81
92
|
export { Slider, SliderProps } from './components/controls/Slider/Slider.js';
|
|
93
|
+
export { TagInput } from './components/controls/TagInput/TagInput.js';
|
|
94
|
+
export { TagInputBaseProps, TagInputProps, TagInputRenderTagState, TagInputSeparator, TagInputSize, TagInputVariant } from './components/controls/TagInput/TagInput.types.js';
|
|
82
95
|
export { VectorInput } from './components/controls/VectorInput/VectorInput.js';
|
|
83
96
|
export { VectorColorPreset, VectorDimension, VectorInputProps, VectorInputSize, VectorLabelPreset } from './components/controls/VectorInput/VectorInput.types.js';
|
|
84
97
|
export { TreeView } from './components/controls/TreeView/TreeView.js';
|
|
@@ -100,6 +113,8 @@ export { ContextMenuBaseProps, ContextMenuConfig, ContextMenuProps, ContextMenuT
|
|
|
100
113
|
export { Menu } from './components/navigation/Menu/Menu.js';
|
|
101
114
|
export { useMenu } from './components/navigation/Menu/useMenu.js';
|
|
102
115
|
export { ItemSelectionType, MenuBaseProps, MenuConfig, MenuGroup, MenuItem, MenuProps, MenuSelection, SubmenuTrigger } from './components/navigation/Menu/Menu.types.js';
|
|
116
|
+
export { Pagination } from './components/navigation/Pagination/Pagination.js';
|
|
117
|
+
export { PaginationBaseProps, PaginationItem, PaginationItemAriaLabelGetter, PaginationItemType, PaginationProps, PaginationSize } from './components/navigation/Pagination/Pagination.types.js';
|
|
103
118
|
export { SegmentedControl } from './components/navigation/SegmentedControl/SegmentedControl.js';
|
|
104
119
|
export { SegmentedControlItem } from './components/navigation/SegmentedControl/SegmentedControlItem.js';
|
|
105
120
|
export { SegmentedControlItemProps, SegmentedControlOrientation, SegmentedControlProps, SegmentedControlSize, SegmentedControlVariant } from './components/navigation/SegmentedControl/SegmentedControl.types.js';
|
|
@@ -108,6 +123,8 @@ export { TabList } from './components/navigation/Tabs/TabList.js';
|
|
|
108
123
|
export { Tab } from './components/navigation/Tabs/Tab.js';
|
|
109
124
|
export { TabPanel } from './components/navigation/Tabs/TabPanel.js';
|
|
110
125
|
export { TabListProps, TabPanelProps, TabProps, TabsProps, TabsSize, TabsVariant } from './components/navigation/Tabs/Tabs.types.js';
|
|
126
|
+
export { DataTable } from './components/data/DataTable/DataTable.js';
|
|
127
|
+
export { DataTableAlign, DataTableBaseProps, DataTableColumn, DataTableDensity, DataTableProps, DataTableRowRenderInfo, DataTableSelectionMode, DataTableSelectionState, DataTableSortDirection, DataTableSortState, DataTableVirtualizationMode } from './components/data/DataTable/DataTable.types.js';
|
|
111
128
|
export { FormLabel, FormLabelProps } from './components/form/FormLabel.js';
|
|
112
129
|
export { FormHelperText, FormHelperTextProps } from './components/form/FormHelperText.js';
|
|
113
130
|
export { InputWrapper, InputWrapperProps } from './components/form/InputWrapper.js';
|
|
@@ -122,6 +139,11 @@ export { DialogBody } from './components/feedback/Dialog/DialogBody.js';
|
|
|
122
139
|
export { DialogFooter } from './components/feedback/Dialog/DialogFooter.js';
|
|
123
140
|
export { DialogClose } from './components/feedback/Dialog/DialogClose.js';
|
|
124
141
|
export { DialogBodyProps, DialogFooterProps, DialogHeaderProps, DialogProps, DialogSize } from './components/feedback/Dialog/Dialog.types.js';
|
|
142
|
+
export { CommandPalette } from './components/feedback/CommandPalette/CommandPalette.js';
|
|
143
|
+
export { FuzzyMatch } from './components/feedback/CommandPalette/fuzzySearch.js';
|
|
144
|
+
export { CommandItem, CommandPaletteBaseProps, CommandPaletteProps, CommandPaletteRenderItemState } from './components/feedback/CommandPalette/CommandPalette.types.js';
|
|
145
|
+
export { Drawer } from './components/feedback/Drawer/Drawer.js';
|
|
146
|
+
export { DrawerAnchor, DrawerBaseProps, DrawerBodyBaseProps, DrawerBodyProps, DrawerCloseButtonBaseProps, DrawerCloseButtonProps, DrawerContextValue, DrawerFooterAlign, DrawerFooterBaseProps, DrawerFooterProps, DrawerHeaderBaseProps, DrawerHeaderProps, DrawerProps, DrawerSize } from './components/feedback/Drawer/Drawer.types.js';
|
|
125
147
|
export { EmptyState } from './components/feedback/EmptyState/EmptyState.js';
|
|
126
148
|
export { EmptyStateProps, EmptyStateVariant } from './components/feedback/EmptyState/EmptyState.types.js';
|
|
127
149
|
export { ProgressBar } from './components/feedback/ProgressBar/ProgressBar.js';
|
|
@@ -129,9 +151,12 @@ export { CircularProgress } from './components/feedback/ProgressBar/CircularProg
|
|
|
129
151
|
export { CircularProgressProps, CircularProgressSize, ProgressBarColor, ProgressBarLabelPosition, ProgressBarProps, ProgressBarSize } from './components/feedback/ProgressBar/ProgressBar.types.js';
|
|
130
152
|
export { Skeleton } from './components/feedback/Skeleton/Skeleton.js';
|
|
131
153
|
export { SkeletonGroup } from './components/feedback/Skeleton/SkeletonGroup.js';
|
|
132
|
-
export {
|
|
154
|
+
export { SkeletonLayout } from './components/feedback/Skeleton/SkeletonLayout.js';
|
|
155
|
+
export { SkeletonAnimation, SkeletonGroupProps, SkeletonLayoutProps, SkeletonLayoutVariant, SkeletonProps, SkeletonShape } from './components/feedback/Skeleton/Skeleton.types.js';
|
|
133
156
|
export { Spinner } from './components/feedback/Spinner/Spinner.js';
|
|
134
157
|
export { SpinnerColor, SpinnerProps, SpinnerSize, SpinnerVariant } from './components/feedback/Spinner/Spinner.types.js';
|
|
158
|
+
export { Stat } from './components/feedback/Stat/Stat.js';
|
|
159
|
+
export { StatBaseProps, StatDelta, StatDeltaDirection, StatDeltaSemantics, StatProps, StatSize } from './components/feedback/Stat/Stat.types.js';
|
|
135
160
|
export { ToastProvider } from './components/feedback/Toast/ToastProvider.js';
|
|
136
161
|
export { useToast } from './components/feedback/Toast/useToast.js';
|
|
137
162
|
export { ToastData, ToastPosition, ToastProviderProps, ToastSeverity, UseToastReturn } from './components/feedback/Toast/Toast.types.js';
|
|
@@ -189,15 +214,18 @@ export { ChevronDownIcon } from './components/Icons/ChevronDownIcon.js';
|
|
|
189
214
|
export { ChevronUpIcon } from './components/Icons/ChevronUpIcon.js';
|
|
190
215
|
export { ClockIcon } from './components/Icons/ClockIcon.js';
|
|
191
216
|
export { CloseIcon } from './components/Icons/CloseIcon.js';
|
|
217
|
+
export { CloudUploadIcon } from './components/Icons/CloudUploadIcon.js';
|
|
192
218
|
export { CodeIcon } from './components/Icons/CodeIcon.js';
|
|
193
219
|
export { CopyIcon } from './components/Icons/CopyIcon.js';
|
|
194
220
|
export { CutIcon } from './components/Icons/CutIcon.js';
|
|
195
221
|
export { DownloadIcon } from './components/Icons/DownloadIcon.js';
|
|
196
222
|
export { EditIcon } from './components/Icons/EditIcon.js';
|
|
197
223
|
export { ErrorIcon } from './components/Icons/ErrorIcon.js';
|
|
224
|
+
export { ExternalLinkIcon } from './components/Icons/ExternalLinkIcon.js';
|
|
198
225
|
export { EyeDropperIcon } from './components/Icons/EyeDropperIcon.js';
|
|
199
226
|
export { EyeIcon } from './components/Icons/EyeIcon.js';
|
|
200
227
|
export { FilterIcon } from './components/Icons/FilterIcon.js';
|
|
228
|
+
export { FirstIcon } from './components/Icons/FirstIcon.js';
|
|
201
229
|
export { FolderIcon } from './components/Icons/FolderIcon.js';
|
|
202
230
|
export { FullscreenIcon } from './components/Icons/FullscreenIcon.js';
|
|
203
231
|
export { GridIcon } from './components/Icons/GridIcon.js';
|
|
@@ -205,6 +233,7 @@ export { HeartIcon } from './components/Icons/HeartIcon.js';
|
|
|
205
233
|
export { HelpIcon } from './components/Icons/HelpIcon.js';
|
|
206
234
|
export { HomeIcon } from './components/Icons/HomeIcon.js';
|
|
207
235
|
export { InfoIcon } from './components/Icons/InfoIcon.js';
|
|
236
|
+
export { LastIcon } from './components/Icons/LastIcon.js';
|
|
208
237
|
export { LinkIcon } from './components/Icons/LinkIcon.js';
|
|
209
238
|
export { ListIcon } from './components/Icons/ListIcon.js';
|
|
210
239
|
export { LockIcon } from './components/Icons/LockIcon.js';
|
|
@@ -225,6 +254,7 @@ export { SuccessIcon } from './components/Icons/SuccessIcon.js';
|
|
|
225
254
|
export { TagIcon } from './components/Icons/TagIcon.js';
|
|
226
255
|
export { TrashIcon } from './components/Icons/TrashIcon.js';
|
|
227
256
|
export { UndoIcon } from './components/Icons/UndoIcon.js';
|
|
257
|
+
export { UnlinkIcon } from './components/Icons/UnlinkIcon.js';
|
|
228
258
|
export { UnlockIcon } from './components/Icons/UnlockIcon.js';
|
|
229
259
|
export { UploadIcon } from './components/Icons/UploadIcon.js';
|
|
230
260
|
export { UserIcon } from './components/Icons/UserIcon.js';
|
|
@@ -270,6 +300,18 @@ export { ClipboardStatus, UseClipboardOptions, UseClipboardReturn } from './hook
|
|
|
270
300
|
export { UseClickOutsideOptions, useClickOutside } from './hooks/useClickOutside/useClickOutside.js';
|
|
271
301
|
export { useHotkey } from './hooks/useHotkey/useHotkey.js';
|
|
272
302
|
export { UseHotkeyOptions } from './hooks/useHotkey/useHotkey.types.js';
|
|
303
|
+
export { useMediaQuery } from './hooks/useMediaQuery/useMediaQuery.js';
|
|
304
|
+
export { UseMediaQueryOptions } from './hooks/useMediaQuery/useMediaQuery.types.js';
|
|
305
|
+
export { useBreakpoint } from './hooks/useBreakpoint/useBreakpoint.js';
|
|
306
|
+
export { BreakpointMap, UseBreakpointReturn } from './hooks/useBreakpoint/useBreakpoint.types.js';
|
|
307
|
+
export { useDebouncedValue } from './hooks/useDebounced/useDebouncedValue.js';
|
|
308
|
+
export { useDebouncedCallback } from './hooks/useDebounced/useDebouncedCallback.js';
|
|
309
|
+
export { DebouncedCallback, UseDebouncedCallbackOptions } from './hooks/useDebounced/useDebounced.types.js';
|
|
310
|
+
export { useThrottledCallback } from './hooks/useThrottledCallback/useThrottledCallback.js';
|
|
311
|
+
export { ThrottledCallback, UseThrottledCallbackOptions } from './hooks/useThrottledCallback/useThrottledCallback.types.js';
|
|
312
|
+
export { useIntersectionObserver } from './hooks/useIntersectionObserver/useIntersectionObserver.js';
|
|
313
|
+
export { UseIntersectionObserverOptions, UseIntersectionObserverReturn } from './hooks/useIntersectionObserver/useIntersectionObserver.types.js';
|
|
314
|
+
export { UseListboxNavOptions, UseListboxNavReturn, useListboxNav } from './hooks/useListboxNav/useListboxNav.js';
|
|
273
315
|
export { useTheme } from './hooks/useTheme/useTheme.js';
|
|
274
316
|
export { ResolvedThemeValues, ThemeVariant, UseThemeReturn } from './hooks/useTheme/useTheme.types.js';
|
|
275
317
|
export { cx as cn, cx } from './utils/cx.js';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library breakpoint values (px) — used by responsive components like
|
|
3
|
+
* `Stack` and exposed via `useBreakpoint`.
|
|
4
|
+
*
|
|
5
|
+
* Values follow the same scale Stack already uses (576/768/992/1200) and
|
|
6
|
+
* are part of the public API.
|
|
7
|
+
*
|
|
8
|
+
* `xs` is always `0` and effectively means "no minimum"; every viewport
|
|
9
|
+
* matches `xs`.
|
|
10
|
+
*/
|
|
11
|
+
declare const breakpoints: {
|
|
12
|
+
readonly xs: 0;
|
|
13
|
+
readonly sm: 576;
|
|
14
|
+
readonly md: 768;
|
|
15
|
+
readonly lg: 992;
|
|
16
|
+
readonly xl: 1200;
|
|
17
|
+
};
|
|
18
|
+
type Breakpoint = keyof typeof breakpoints;
|
|
19
|
+
declare const BREAKPOINT_ORDER: ReadonlyArray<Breakpoint>;
|
|
20
|
+
|
|
21
|
+
export { BREAKPOINT_ORDER, breakpoints };
|
|
22
|
+
export type { Breakpoint };
|
|
@@ -7,3 +7,4 @@ export { createLightTheme } from './createLightTheme.js';
|
|
|
7
7
|
export { VanillaThemeProvider, VanillaThemeProviderProps } from './VanillaThemeProvider.js';
|
|
8
8
|
export { ThemeProvider, ThemeProviderProps } from './ThemeProvider.js';
|
|
9
9
|
export { GLOBAL_SCROLLBARS_CLASS } from './globalScrollbars.css.js';
|
|
10
|
+
export { BREAKPOINT_ORDER, Breakpoint, breakpoints } from './breakpoints.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "entangle-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"*.css",
|
|
@@ -90,6 +90,7 @@
|
|
|
90
90
|
"peerDependencies": {
|
|
91
91
|
"@base-ui/react": "^1.1.0",
|
|
92
92
|
"@floating-ui/react": "^0.27.17",
|
|
93
|
+
"@tanstack/react-virtual": "^3.13.0",
|
|
93
94
|
"@vanilla-extract/dynamic": "^2.1.5",
|
|
94
95
|
"@vanilla-extract/recipes": "^0.5.7",
|
|
95
96
|
"react": ">=19.1.0",
|
|
@@ -108,6 +109,7 @@
|
|
|
108
109
|
"@storybook/addon-onboarding": "^10.2.8",
|
|
109
110
|
"@storybook/addon-themes": "^10.2.8",
|
|
110
111
|
"@storybook/react-vite": "^10.2.8",
|
|
112
|
+
"@tanstack/react-virtual": "^3.13.24",
|
|
111
113
|
"@testing-library/dom": "^10.4.1",
|
|
112
114
|
"@testing-library/jest-dom": "^6.9.1",
|
|
113
115
|
"@testing-library/react": "^16.3.2",
|