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
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { ChevronLeftIcon } from '../../Icons/ChevronLeftIcon.js';
|
|
5
|
+
import { ChevronRightIcon } from '../../Icons/ChevronRightIcon.js';
|
|
6
|
+
import { FirstIcon } from '../../Icons/FirstIcon.js';
|
|
7
|
+
import { LastIcon } from '../../Icons/LastIcon.js';
|
|
8
|
+
import { useControlledState } from '../../../hooks/useControlledState/useControlledState.js';
|
|
9
|
+
import { cx } from '../../../utils/cx.js';
|
|
10
|
+
import { paginationItemStyle, paginationEllipsisRecipe, paginationButtonRecipe, paginationListRecipe, paginationRootStyle, paginationIconStyle } from './Pagination.css.js';
|
|
11
|
+
import { usePaginationItems } from './usePagination.js';
|
|
12
|
+
|
|
13
|
+
const defaultGetItemAriaLabel = (type, page, selected) => {
|
|
14
|
+
switch (type) {
|
|
15
|
+
case 'first':
|
|
16
|
+
return 'Go to first page';
|
|
17
|
+
case 'last':
|
|
18
|
+
return 'Go to last page';
|
|
19
|
+
case 'previous':
|
|
20
|
+
return 'Go to previous page';
|
|
21
|
+
case 'next':
|
|
22
|
+
return 'Go to next page';
|
|
23
|
+
case 'ellipsis':
|
|
24
|
+
return 'More pages';
|
|
25
|
+
case 'page':
|
|
26
|
+
default:
|
|
27
|
+
return selected ? `page ${String(page)}` : `Go to page ${String(page)}`;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
function renderItemContent(type, page) {
|
|
31
|
+
switch (type) {
|
|
32
|
+
case 'first':
|
|
33
|
+
return jsx(FirstIcon, { className: paginationIconStyle });
|
|
34
|
+
case 'last':
|
|
35
|
+
return jsx(LastIcon, { className: paginationIconStyle });
|
|
36
|
+
case 'previous':
|
|
37
|
+
return jsx(ChevronLeftIcon, { className: paginationIconStyle });
|
|
38
|
+
case 'next':
|
|
39
|
+
return jsx(ChevronRightIcon, { className: paginationIconStyle });
|
|
40
|
+
case 'ellipsis':
|
|
41
|
+
return '…';
|
|
42
|
+
case 'page':
|
|
43
|
+
default:
|
|
44
|
+
return page;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Page navigator with sibling/boundary ellipsis logic. Controlled when `page`
|
|
49
|
+
* is set, otherwise uncontrolled with `defaultPage`. Pages are 1-based.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* <Pagination count={20} defaultPage={1} onChange={(_, p) => setPage(p)} />
|
|
54
|
+
*
|
|
55
|
+
* // Compact: only prev/next + numbers
|
|
56
|
+
* <Pagination count={20} siblingCount={0} boundaryCount={1} />
|
|
57
|
+
*
|
|
58
|
+
* // Full controls
|
|
59
|
+
* <Pagination count={50} showFirstButton showLastButton />
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
const Pagination = ({ count, page: pageProp, defaultPage = 1, onChange, siblingCount = 1, boundaryCount = 1, showFirstButton = false, showLastButton = false, hidePrevButton = false, hideNextButton = false, size = 'md', disabled = false, className, style, testId, getItemAriaLabel = defaultGetItemAriaLabel, ref, ...rest }) => {
|
|
63
|
+
const safeCount = Math.max(0, Math.floor(count));
|
|
64
|
+
const clampedDefault = Math.min(Math.max(1, defaultPage), Math.max(1, safeCount));
|
|
65
|
+
const [page, setPage] = useControlledState({
|
|
66
|
+
value: pageProp,
|
|
67
|
+
defaultValue: clampedDefault,
|
|
68
|
+
onChange: undefined,
|
|
69
|
+
fallback: 1,
|
|
70
|
+
});
|
|
71
|
+
const items = usePaginationItems({
|
|
72
|
+
count: safeCount,
|
|
73
|
+
page,
|
|
74
|
+
siblingCount: Math.max(0, siblingCount),
|
|
75
|
+
boundaryCount: Math.max(1, boundaryCount),
|
|
76
|
+
showFirstButton,
|
|
77
|
+
showLastButton,
|
|
78
|
+
hidePrevButton,
|
|
79
|
+
hideNextButton,
|
|
80
|
+
disabled,
|
|
81
|
+
});
|
|
82
|
+
const handleClick = useCallback((event, item) => {
|
|
83
|
+
if (item.disabled || item.page === null || item.type === 'ellipsis')
|
|
84
|
+
return;
|
|
85
|
+
const next = item.page;
|
|
86
|
+
if (next === page)
|
|
87
|
+
return;
|
|
88
|
+
setPage(next);
|
|
89
|
+
onChange?.(event, next);
|
|
90
|
+
}, [onChange, page, setPage]);
|
|
91
|
+
return (jsx("nav", { ref: ref, "aria-label": "pagination", className: cx(paginationRootStyle, className), style: style, "data-testid": testId, ...rest, children: jsx("ul", { className: paginationListRecipe({ size }), children: items.map((item, index) => {
|
|
92
|
+
const key = `${item.type}-${item.page ?? 'na'}-${String(index)}`;
|
|
93
|
+
if (item.type === 'ellipsis') {
|
|
94
|
+
return (jsx("li", { className: paginationItemStyle, children: jsx("span", { className: paginationEllipsisRecipe({ size }), "aria-hidden": "true", children: "\u2026" }) }, key));
|
|
95
|
+
}
|
|
96
|
+
return (jsx("li", { className: paginationItemStyle, children: jsx("button", { type: "button", className: paginationButtonRecipe({
|
|
97
|
+
size,
|
|
98
|
+
selected: item.selected || undefined,
|
|
99
|
+
}), disabled: item.disabled, "aria-current": item.selected ? 'page' : undefined, "aria-label": getItemAriaLabel(item.type, item.page, item.selected), onClick: event => {
|
|
100
|
+
handleClick(event, item);
|
|
101
|
+
}, "data-page": item.page ?? undefined, "data-type": item.type, children: renderItemContent(item.type, item.page) }) }, key));
|
|
102
|
+
}) }) }));
|
|
103
|
+
};
|
|
104
|
+
Pagination.displayName = 'Pagination';
|
|
105
|
+
|
|
106
|
+
export { Pagination };
|
|
107
|
+
//# sourceMappingURL=Pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../../../../src/components/navigation/Pagination/Pagination.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;AA0BA;;AAMI;AACE;AACF;AACE;AACF;AACE;AACF;AACE;AACF;AACE;AACF;AACA;AACE;;AAEN;AAEA;;AAKI;AACE;AACF;AACE;AACF;AACE;AACF;AACE;AACF;AACE;AACF;AACA;AACE;;AAEN;AAEA;;;;;;;;;;;;;;AAcG;AACI;AAoBL;;AAMA;AACE;AACA;AACA;AACA;AACD;;AAGC;;;;;;;;;AASD;;AAIG;;AAEA;;;;AAGA;;;AAgBI;AACA;;;AAYA;;AAMQ;AACD;AASC;;AASV;AAIR;AAEA;;"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
|
|
4
|
+
function range(start, end) {
|
|
5
|
+
const length = Math.max(0, end - start + 1);
|
|
6
|
+
return Array.from({ length }, (_, i) => start + i);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* MUI-style pagination algorithm. Produces the list of items to render given
|
|
10
|
+
* the total count, the current page, and the sibling/boundary counts.
|
|
11
|
+
*/
|
|
12
|
+
function usePaginationItems(options) {
|
|
13
|
+
const { count, page, siblingCount, boundaryCount, showFirstButton, showLastButton, hidePrevButton, hideNextButton, disabled, } = options;
|
|
14
|
+
return useMemo(() => {
|
|
15
|
+
const safeCount = Math.max(0, Math.floor(count));
|
|
16
|
+
if (safeCount === 0) {
|
|
17
|
+
const items = [];
|
|
18
|
+
if (showFirstButton) {
|
|
19
|
+
items.push({
|
|
20
|
+
type: 'first',
|
|
21
|
+
page: null,
|
|
22
|
+
selected: false,
|
|
23
|
+
disabled: true,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (!hidePrevButton) {
|
|
27
|
+
items.push({
|
|
28
|
+
type: 'previous',
|
|
29
|
+
page: null,
|
|
30
|
+
selected: false,
|
|
31
|
+
disabled: true,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (!hideNextButton) {
|
|
35
|
+
items.push({
|
|
36
|
+
type: 'next',
|
|
37
|
+
page: null,
|
|
38
|
+
selected: false,
|
|
39
|
+
disabled: true,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (showLastButton) {
|
|
43
|
+
items.push({
|
|
44
|
+
type: 'last',
|
|
45
|
+
page: null,
|
|
46
|
+
selected: false,
|
|
47
|
+
disabled: true,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return items;
|
|
51
|
+
}
|
|
52
|
+
const startBoundary = range(1, Math.min(boundaryCount, safeCount));
|
|
53
|
+
const endBoundary = range(Math.max(safeCount - boundaryCount + 1, boundaryCount + 1), safeCount);
|
|
54
|
+
const siblingStart = Math.max(Math.min(page - siblingCount, safeCount - boundaryCount - siblingCount * 2 - 1), boundaryCount + 2);
|
|
55
|
+
const firstEndBoundary = endBoundary[0];
|
|
56
|
+
const siblingEnd = Math.min(Math.max(page + siblingCount, boundaryCount + siblingCount * 2 + 2), firstEndBoundary !== undefined ? firstEndBoundary - 2 : safeCount - 1);
|
|
57
|
+
/**
|
|
58
|
+
* Builds a sequence:
|
|
59
|
+
* [1, ..., boundaryCount] [start ellipsis] [siblings] [end ellipsis] [count - boundaryCount + 1, ..., count]
|
|
60
|
+
*/
|
|
61
|
+
const itemList = [
|
|
62
|
+
...startBoundary,
|
|
63
|
+
// Start ellipsis or single page bridging the gap
|
|
64
|
+
...(siblingStart > boundaryCount + 2
|
|
65
|
+
? ['start-ellipsis']
|
|
66
|
+
: boundaryCount + 1 < safeCount - boundaryCount
|
|
67
|
+
? [boundaryCount + 1]
|
|
68
|
+
: []),
|
|
69
|
+
...range(siblingStart, siblingEnd),
|
|
70
|
+
...(siblingEnd < safeCount - boundaryCount - 1
|
|
71
|
+
? ['end-ellipsis']
|
|
72
|
+
: safeCount - boundaryCount > boundaryCount
|
|
73
|
+
? [safeCount - boundaryCount]
|
|
74
|
+
: []),
|
|
75
|
+
...endBoundary,
|
|
76
|
+
];
|
|
77
|
+
const items = [];
|
|
78
|
+
if (showFirstButton) {
|
|
79
|
+
items.push({
|
|
80
|
+
type: 'first',
|
|
81
|
+
page: 1,
|
|
82
|
+
selected: false,
|
|
83
|
+
disabled: disabled || page <= 1,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
if (!hidePrevButton) {
|
|
87
|
+
items.push({
|
|
88
|
+
type: 'previous',
|
|
89
|
+
page: Math.max(1, page - 1),
|
|
90
|
+
selected: false,
|
|
91
|
+
disabled: disabled || page <= 1,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
for (const it of itemList) {
|
|
95
|
+
if (it === 'start-ellipsis' || it === 'end-ellipsis') {
|
|
96
|
+
items.push({
|
|
97
|
+
type: 'ellipsis',
|
|
98
|
+
page: null,
|
|
99
|
+
selected: false,
|
|
100
|
+
disabled: true,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
items.push({
|
|
105
|
+
type: 'page',
|
|
106
|
+
page: it,
|
|
107
|
+
selected: it === page,
|
|
108
|
+
disabled,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (!hideNextButton) {
|
|
113
|
+
items.push({
|
|
114
|
+
type: 'next',
|
|
115
|
+
page: Math.min(safeCount, page + 1),
|
|
116
|
+
selected: false,
|
|
117
|
+
disabled: disabled || page >= safeCount,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
if (showLastButton) {
|
|
121
|
+
items.push({
|
|
122
|
+
type: 'last',
|
|
123
|
+
page: safeCount,
|
|
124
|
+
selected: false,
|
|
125
|
+
disabled: disabled || page >= safeCount,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return items;
|
|
129
|
+
}, [
|
|
130
|
+
count,
|
|
131
|
+
page,
|
|
132
|
+
siblingCount,
|
|
133
|
+
boundaryCount,
|
|
134
|
+
showFirstButton,
|
|
135
|
+
showLastButton,
|
|
136
|
+
hidePrevButton,
|
|
137
|
+
hideNextButton,
|
|
138
|
+
disabled,
|
|
139
|
+
]);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export { usePaginationItems };
|
|
143
|
+
//# sourceMappingURL=usePagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePagination.js","sources":["../../../../../../src/components/navigation/Pagination/usePagination.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAiBA;AACE;AACA;AACF;AAEA;;;AAGG;AACG;;;AAgBF;AACA;;;;AAIM;AACA;AACA;AACA;AACD;;;;AAIC;AACA;AACA;AACA;AACD;;;;AAIC;AACA;AACA;AACA;AACD;;;;AAIC;AACA;AACA;AACA;AACD;;AAEH;;AAGF;;AAMA;AAQA;AACA;AAKA;;;AAGG;AACH;AACE;;AAEA;;AAEE;AACE;;AAEJ;AACA;;AAEE;AACE;;AAEJ;;;;;AAOE;AACA;AACA;AACA;AACD;;;;AAIC;;AAEA;AACA;AACD;;AAGH;;;AAGM;AACA;AACA;AACA;AACD;;;;AAGC;AACA;;;AAGD;;;;;AAMD;;AAEA;AACA;AACD;;;;AAIC;AACA;AACA;AACA;AACD;;AAGH;AACF;;;;;;;;;;AAUC;AACH;;"}
|
|
@@ -4,6 +4,92 @@ import React, { useState, useCallback } from 'react';
|
|
|
4
4
|
import { assignInlineVars } from '@vanilla-extract/dynamic';
|
|
5
5
|
import { vars } from '../../../theme/contract.css.js';
|
|
6
6
|
import { cx } from '../../../utils/cx.js';
|
|
7
|
+
import '../../Icons/AddIcon.js';
|
|
8
|
+
import '../../Icons/AiChatIcon.js';
|
|
9
|
+
import '../../Icons/AiSparklesIcon.js';
|
|
10
|
+
import '../../Icons/ArrowDownIcon.js';
|
|
11
|
+
import '../../Icons/ArrowLeftIcon.js';
|
|
12
|
+
import '../../Icons/ArrowRightIcon.js';
|
|
13
|
+
import '../../Icons/ArrowUpIcon.js';
|
|
14
|
+
import '../../Icons/BookmarkIcon.js';
|
|
15
|
+
import '../../Icons/CalendarIcon.js';
|
|
16
|
+
import '../../Icons/ChevronDownIcon.js';
|
|
17
|
+
import '../../Icons/ChevronUpIcon.js';
|
|
18
|
+
import '../../Icons/ClockIcon.js';
|
|
19
|
+
import '../../Icons/CloseIcon.js';
|
|
20
|
+
import '../../Icons/CloudUploadIcon.js';
|
|
21
|
+
import '../../Icons/CodeIcon.js';
|
|
22
|
+
import '../../Icons/CopyIcon.js';
|
|
23
|
+
import '../../Icons/CutIcon.js';
|
|
24
|
+
import '../../Icons/DownloadIcon.js';
|
|
25
|
+
import '../../Icons/EditIcon.js';
|
|
26
|
+
import '../../Icons/ErrorIcon.js';
|
|
27
|
+
import '../../Icons/ExternalLinkIcon.js';
|
|
28
|
+
import '../../Icons/EyeDropperIcon.js';
|
|
29
|
+
import '../../Icons/EyeIcon.js';
|
|
30
|
+
import '../../Icons/FilterIcon.js';
|
|
31
|
+
import '../../Icons/FirstIcon.js';
|
|
32
|
+
import '../../Icons/FolderIcon.js';
|
|
33
|
+
import '../../Icons/FullscreenIcon.js';
|
|
34
|
+
import '../../Icons/GridIcon.js';
|
|
35
|
+
import '../../Icons/HeartIcon.js';
|
|
36
|
+
import '../../Icons/HelpIcon.js';
|
|
37
|
+
import '../../Icons/HomeIcon.js';
|
|
38
|
+
import '../../Icons/InfoIcon.js';
|
|
39
|
+
import '../../Icons/LastIcon.js';
|
|
40
|
+
import '../../Icons/LinkIcon.js';
|
|
41
|
+
import '../../Icons/ListIcon.js';
|
|
42
|
+
import '../../Icons/LockIcon.js';
|
|
43
|
+
import '../../Icons/MaximizeIcon.js';
|
|
44
|
+
import '../../Icons/MenuIcon.js';
|
|
45
|
+
import '../../Icons/MinimizeIcon.js';
|
|
46
|
+
import '../../Icons/PasteIcon.js';
|
|
47
|
+
import '../../Icons/PlayIcon.js';
|
|
48
|
+
import '../../Icons/RedoIcon.js';
|
|
49
|
+
import '../../Icons/RefreshIcon.js';
|
|
50
|
+
import '../../Icons/RobotIcon.js';
|
|
51
|
+
import '../../Icons/SaveIcon.js';
|
|
52
|
+
import '../../Icons/SearchIcon.js';
|
|
53
|
+
import '../../Icons/SettingsIcon.js';
|
|
54
|
+
import '../../Icons/SortIcon.js';
|
|
55
|
+
import '../../Icons/StarIcon.js';
|
|
56
|
+
import '../../Icons/SuccessIcon.js';
|
|
57
|
+
import '../../Icons/TagIcon.js';
|
|
58
|
+
import '../../Icons/TrashIcon.js';
|
|
59
|
+
import '../../Icons/UndoIcon.js';
|
|
60
|
+
import '../../Icons/UnlinkIcon.js';
|
|
61
|
+
import '../../Icons/UnlockIcon.js';
|
|
62
|
+
import '../../Icons/UploadIcon.js';
|
|
63
|
+
import { UserIcon } from '../../Icons/UserIcon.js';
|
|
64
|
+
import '../../Icons/WarningIcon.js';
|
|
65
|
+
import '../../Icons/ZoomInIcon.js';
|
|
66
|
+
import '../../Icons/ZoomOutIcon.js';
|
|
67
|
+
import '../../Icons/CheckIcon.js';
|
|
68
|
+
import '../../Icons/CircleIcon.js';
|
|
69
|
+
import '../../Icons/TangentFreeIcon.js';
|
|
70
|
+
import '../../Icons/TangentAlignedIcon.js';
|
|
71
|
+
import '../../Icons/TangentMirroredIcon.js';
|
|
72
|
+
import '../../Icons/TangentAutoIcon.js';
|
|
73
|
+
import '../../Icons/TangentLinearIcon.js';
|
|
74
|
+
import '../../Icons/TangentStepIcon.js';
|
|
75
|
+
import '../../Icons/ArchiveIcon.js';
|
|
76
|
+
import '../../Icons/DotsVerticalIcon.js';
|
|
77
|
+
import '../../Icons/DotsHorizontalIcon.js';
|
|
78
|
+
import '../../Icons/ChevronLeftIcon.js';
|
|
79
|
+
import '../../Icons/ChevronRightIcon.js';
|
|
80
|
+
import '../../Icons/FolderOpenIcon.js';
|
|
81
|
+
import '../../Icons/FolderCogIcon.js';
|
|
82
|
+
import '../../Icons/UsersIcon.js';
|
|
83
|
+
import '../../Icons/BuildingIcon.js';
|
|
84
|
+
import '../../Icons/FileTextIcon.js';
|
|
85
|
+
import '../../Icons/PauseIcon.js';
|
|
86
|
+
import '../../Icons/StopIcon.js';
|
|
87
|
+
import '../../Icons/SendIcon.js';
|
|
88
|
+
import '../../Icons/TerminalIcon.js';
|
|
89
|
+
import '../../Icons/GitBranchIcon.js';
|
|
90
|
+
import '../../Icons/BugIcon.js';
|
|
91
|
+
import '../../Icons/MinusIcon.js';
|
|
92
|
+
import '../../Icons/PinIcon.js';
|
|
7
93
|
import { avatarFallbackStyle, avatarImageInheritRadius, avatarImageStyle, avatarStatusRecipe, avatarRecipe, avatarBgVar, avatarStatusVar } from './Avatar.css.js';
|
|
8
94
|
|
|
9
95
|
const NAMED_COLOR_MAP = {
|
|
@@ -73,7 +159,7 @@ function resolveBackgroundColor(color, name) {
|
|
|
73
159
|
return named;
|
|
74
160
|
return color;
|
|
75
161
|
}
|
|
76
|
-
const DefaultUserIcon = () => (jsx(
|
|
162
|
+
const DefaultUserIcon = () => (jsx(UserIcon, { size: "60%", color: "currentColor", decorative: true }));
|
|
77
163
|
/**
|
|
78
164
|
* Display a person, agent, or named entity.
|
|
79
165
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../../../../../../src/components/primitives/Avatar/Avatar.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Avatar.js","sources":["../../../../../../src/components/primitives/Avatar/Avatar.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA;AACE;AACA;AACA;AACA;AACA;AACA;;AAGF;AACE;AACA;AACA;AACA;AACA;;AAGF;AACE;AACA;AACA;AACA;;AAGF;AACE;AACA;AACA;AACA;;AAGF;;AAEE;AACE;;AAEF;AACF;AAEA;;;;;AAKG;AACG;AACJ;AACA;AAAc;;;AAGd;;;AAGA;;;;AAIF;AAEA;AAIE;AACE;AACE;;;AAGF;;AAEF;AACA;AAAW;AACX;AACF;AAEA;AAIA;;;;;;;;;;;;;;;;;;AAkBG;AACI;;AAsBH;;;AAIA;;;AAIA;AAEI;;AACA;;;;AAIF;AAIF;;AAGI;AACE;;AAGN;;;AAIA;AAEA;;;;;;AAOA;;;;;;AAWO;AA8CT;AAGF;;"}
|
|
@@ -4,6 +4,92 @@ import React, { useCallback } from 'react';
|
|
|
4
4
|
import { assignInlineVars } from '@vanilla-extract/dynamic';
|
|
5
5
|
import { vars } from '../../../theme/contract.css.js';
|
|
6
6
|
import { cx } from '../../../utils/cx.js';
|
|
7
|
+
import '../../Icons/AddIcon.js';
|
|
8
|
+
import '../../Icons/AiChatIcon.js';
|
|
9
|
+
import '../../Icons/AiSparklesIcon.js';
|
|
10
|
+
import '../../Icons/ArrowDownIcon.js';
|
|
11
|
+
import '../../Icons/ArrowLeftIcon.js';
|
|
12
|
+
import '../../Icons/ArrowRightIcon.js';
|
|
13
|
+
import '../../Icons/ArrowUpIcon.js';
|
|
14
|
+
import '../../Icons/BookmarkIcon.js';
|
|
15
|
+
import '../../Icons/CalendarIcon.js';
|
|
16
|
+
import '../../Icons/ChevronDownIcon.js';
|
|
17
|
+
import '../../Icons/ChevronUpIcon.js';
|
|
18
|
+
import '../../Icons/ClockIcon.js';
|
|
19
|
+
import { CloseIcon } from '../../Icons/CloseIcon.js';
|
|
20
|
+
import '../../Icons/CloudUploadIcon.js';
|
|
21
|
+
import '../../Icons/CodeIcon.js';
|
|
22
|
+
import '../../Icons/CopyIcon.js';
|
|
23
|
+
import '../../Icons/CutIcon.js';
|
|
24
|
+
import '../../Icons/DownloadIcon.js';
|
|
25
|
+
import '../../Icons/EditIcon.js';
|
|
26
|
+
import '../../Icons/ErrorIcon.js';
|
|
27
|
+
import '../../Icons/ExternalLinkIcon.js';
|
|
28
|
+
import '../../Icons/EyeDropperIcon.js';
|
|
29
|
+
import '../../Icons/EyeIcon.js';
|
|
30
|
+
import '../../Icons/FilterIcon.js';
|
|
31
|
+
import '../../Icons/FirstIcon.js';
|
|
32
|
+
import '../../Icons/FolderIcon.js';
|
|
33
|
+
import '../../Icons/FullscreenIcon.js';
|
|
34
|
+
import '../../Icons/GridIcon.js';
|
|
35
|
+
import '../../Icons/HeartIcon.js';
|
|
36
|
+
import '../../Icons/HelpIcon.js';
|
|
37
|
+
import '../../Icons/HomeIcon.js';
|
|
38
|
+
import '../../Icons/InfoIcon.js';
|
|
39
|
+
import '../../Icons/LastIcon.js';
|
|
40
|
+
import '../../Icons/LinkIcon.js';
|
|
41
|
+
import '../../Icons/ListIcon.js';
|
|
42
|
+
import '../../Icons/LockIcon.js';
|
|
43
|
+
import '../../Icons/MaximizeIcon.js';
|
|
44
|
+
import '../../Icons/MenuIcon.js';
|
|
45
|
+
import '../../Icons/MinimizeIcon.js';
|
|
46
|
+
import '../../Icons/PasteIcon.js';
|
|
47
|
+
import '../../Icons/PlayIcon.js';
|
|
48
|
+
import '../../Icons/RedoIcon.js';
|
|
49
|
+
import '../../Icons/RefreshIcon.js';
|
|
50
|
+
import '../../Icons/RobotIcon.js';
|
|
51
|
+
import '../../Icons/SaveIcon.js';
|
|
52
|
+
import '../../Icons/SearchIcon.js';
|
|
53
|
+
import '../../Icons/SettingsIcon.js';
|
|
54
|
+
import '../../Icons/SortIcon.js';
|
|
55
|
+
import '../../Icons/StarIcon.js';
|
|
56
|
+
import '../../Icons/SuccessIcon.js';
|
|
57
|
+
import '../../Icons/TagIcon.js';
|
|
58
|
+
import '../../Icons/TrashIcon.js';
|
|
59
|
+
import '../../Icons/UndoIcon.js';
|
|
60
|
+
import '../../Icons/UnlinkIcon.js';
|
|
61
|
+
import '../../Icons/UnlockIcon.js';
|
|
62
|
+
import '../../Icons/UploadIcon.js';
|
|
63
|
+
import '../../Icons/UserIcon.js';
|
|
64
|
+
import '../../Icons/WarningIcon.js';
|
|
65
|
+
import '../../Icons/ZoomInIcon.js';
|
|
66
|
+
import '../../Icons/ZoomOutIcon.js';
|
|
67
|
+
import '../../Icons/CheckIcon.js';
|
|
68
|
+
import '../../Icons/CircleIcon.js';
|
|
69
|
+
import '../../Icons/TangentFreeIcon.js';
|
|
70
|
+
import '../../Icons/TangentAlignedIcon.js';
|
|
71
|
+
import '../../Icons/TangentMirroredIcon.js';
|
|
72
|
+
import '../../Icons/TangentAutoIcon.js';
|
|
73
|
+
import '../../Icons/TangentLinearIcon.js';
|
|
74
|
+
import '../../Icons/TangentStepIcon.js';
|
|
75
|
+
import '../../Icons/ArchiveIcon.js';
|
|
76
|
+
import '../../Icons/DotsVerticalIcon.js';
|
|
77
|
+
import '../../Icons/DotsHorizontalIcon.js';
|
|
78
|
+
import '../../Icons/ChevronLeftIcon.js';
|
|
79
|
+
import '../../Icons/ChevronRightIcon.js';
|
|
80
|
+
import '../../Icons/FolderOpenIcon.js';
|
|
81
|
+
import '../../Icons/FolderCogIcon.js';
|
|
82
|
+
import '../../Icons/UsersIcon.js';
|
|
83
|
+
import '../../Icons/BuildingIcon.js';
|
|
84
|
+
import '../../Icons/FileTextIcon.js';
|
|
85
|
+
import '../../Icons/PauseIcon.js';
|
|
86
|
+
import '../../Icons/StopIcon.js';
|
|
87
|
+
import '../../Icons/SendIcon.js';
|
|
88
|
+
import '../../Icons/TerminalIcon.js';
|
|
89
|
+
import '../../Icons/GitBranchIcon.js';
|
|
90
|
+
import '../../Icons/BugIcon.js';
|
|
91
|
+
import '../../Icons/MinusIcon.js';
|
|
92
|
+
import '../../Icons/PinIcon.js';
|
|
7
93
|
import { badgeContrastVar, badgeColorVar, badgeDotStyle, badgeIconStyle, badgeRemoveButtonStyle, badgeRecipe } from './Badge.css.js';
|
|
8
94
|
|
|
9
95
|
const NAMED_COLOR_MAP = {
|
|
@@ -29,7 +115,7 @@ function resolveBadgeColor(color) {
|
|
|
29
115
|
}
|
|
30
116
|
return { color, contrast: '#ffffff' };
|
|
31
117
|
}
|
|
32
|
-
const RemoveIcon = () => (jsx(
|
|
118
|
+
const RemoveIcon = () => (jsx(CloseIcon, { size: 10, color: "currentColor", decorative: true }));
|
|
33
119
|
/**
|
|
34
120
|
* A small inline status indicator / tag.
|
|
35
121
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sources":["../../../../../../src/components/primitives/Badge/Badge.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Badge.js","sources":["../../../../../../src/components/primitives/Badge/Badge.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA;AACE;AACA;AACA;AACA;AACA;AACA;;AAGF;;;;;AAKG;AACH;AAIE;;;;AAKE;;AAEF;AACF;AAEA;AAIA;;;;;;;;;;;;;;AAcG;;AAiBC;AAEA;;AAGI;AACF;;AAKA;AACA;AACD;;;;;AAUM;AA0BT;AAGF;;"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { useContext, useId, useState, useCallback } from 'react';
|
|
4
4
|
import { assignInlineVars } from '@vanilla-extract/dynamic';
|
|
5
|
+
import { CheckIcon } from '../../Icons/CheckIcon.js';
|
|
6
|
+
import { MinusIcon } from '../../Icons/MinusIcon.js';
|
|
5
7
|
import { FormHelperText } from '../../form/FormHelperText.js';
|
|
6
8
|
import { CheckboxGroupContext } from './CheckboxGroup.js';
|
|
7
9
|
import { cx } from '../../../utils/cx.js';
|
|
@@ -97,13 +99,14 @@ const Checkbox = ({ checked: checkedProp, defaultChecked = false, indeterminate
|
|
|
97
99
|
variant,
|
|
98
100
|
disabled: disabled || undefined,
|
|
99
101
|
error: error || undefined,
|
|
100
|
-
}), style: boxInlineVars, "data-testid": testId, ...rest, children: [indeterminate ? (jsx(
|
|
102
|
+
}), style: boxInlineVars, "data-testid": testId, ...rest, children: [indeterminate ? (jsx(MinusIcon, { size: iconSize, color: "white", decorative: true })) : (jsx("span", { style: {
|
|
103
|
+
display: 'inline-flex',
|
|
101
104
|
opacity: resolvedChecked ? 1 : 0,
|
|
102
105
|
transform: resolvedChecked ? 'scale(1)' : 'scale(0)',
|
|
103
106
|
transition: prefersReducedMotion
|
|
104
107
|
? 'none'
|
|
105
108
|
: 'opacity 150ms ease-out, transform 150ms ease-out',
|
|
106
|
-
},
|
|
109
|
+
}, "aria-hidden": "true", children: jsx(CheckIcon, { size: iconSize, color: "white", decorative: true }) })), name && (jsx("input", { type: "hidden", name: name, value: resolvedChecked ? (value ?? 'on') : '' }))] }));
|
|
107
110
|
if (!label && !showHelperText) {
|
|
108
111
|
return checkboxBox;
|
|
109
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../../../../src/components/primitives/Checkbox/Checkbox.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../../../../src/components/primitives/Checkbox/Checkbox.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAiBA;AAEA;AACE;AACA;AACA;;AAGF;AACE;AACA;AACA;;AAGF;;;;;;;;;;;;;AAaG;AACI;AAuBL;AACA;AACA;AACA;;;;;;;;AAWA;AAEA;;;;;;;;;;AASA;AACE;;AAEA;AAEA;AACE;;AAGF;;;AAIA;AACF;;;;;;;;AAQC;AAED;AACA;;AAGE;AACA;AACE;;AAGJ;;;AAIC;;;;AAKD;AAEE;AACA;;;;;;AAmBG;AAUK;;;AAGA;AACE;AACA;;AAiBZ;AACE;;AAGF;;;;AAOO;AAYT;AAEA;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { useId, useState, useCallback } from 'react';
|
|
4
4
|
import { assignInlineVars } from '@vanilla-extract/dynamic';
|
|
5
|
+
import { ChevronRightIcon } from '../../Icons/ChevronRightIcon.js';
|
|
5
6
|
import { cx } from '../../../utils/cx.js';
|
|
6
7
|
import { triggerFontSizeVar, triggerPaddingVar, triggerHeightVar, contentPaddingHVar, contentPaddingVVar, chevronSizeVar, chevronRecipe, triggerRecipe, contentInnerStyle, contentBodyStyle, contentWrapperRecipe, collapsibleRootStyle } from './Collapsible.css.js';
|
|
7
8
|
import { vars } from '../../../theme/contract.css.js';
|
|
@@ -31,8 +32,6 @@ const CONTENT_SIZE_MAP = {
|
|
|
31
32
|
md: { paddingV: vars.spacing.md, paddingH: vars.spacing.lg },
|
|
32
33
|
lg: { paddingV: vars.spacing.lg, paddingH: vars.spacing.xl },
|
|
33
34
|
};
|
|
34
|
-
// --- Chevron icon ---
|
|
35
|
-
const ChevronRightIcon = ({ size }) => (jsx("svg", { width: size, height: size, viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: jsx("path", { d: "M4.5 3L7.5 6L4.5 9", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
36
35
|
// --- Component ---
|
|
37
36
|
const Collapsible = ({ trigger, open: openProp, defaultOpen = false, size = 'sm', indicator, disabled = false, keepMounted = false, onChange, children, className, style, testId, ref, ...rest }) => {
|
|
38
37
|
const autoId = useId();
|
|
@@ -68,7 +67,7 @@ const Collapsible = ({ trigger, open: openProp, defaultOpen = false, size = 'sm'
|
|
|
68
67
|
open: resolvedOpen || undefined,
|
|
69
68
|
}), style: assignInlineVars({
|
|
70
69
|
[chevronSizeVar]: `${sizeConfig.chevronSize}px`,
|
|
71
|
-
}), children: indicator ?? jsx(ChevronRightIcon, { size: sizeConfig.chevronSize }) })), jsx("span", { children: trigger })] }), (resolvedOpen || keepMounted) && (jsx("div", { className: contentWrapperRecipe({
|
|
70
|
+
}), children: indicator ?? (jsx(ChevronRightIcon, { size: sizeConfig.chevronSize, decorative: true })) })), jsx("span", { children: trigger })] }), (resolvedOpen || keepMounted) && (jsx("div", { className: contentWrapperRecipe({
|
|
72
71
|
open: resolvedOpen || undefined,
|
|
73
72
|
}), role: "region", id: contentId, "aria-labelledby": triggerId, hidden: !resolvedOpen || undefined, children: jsx("div", { className: contentInnerStyle, children: jsx("div", { className: contentBodyStyle, style: contentInlineVars, children: children }) }) }))] }));
|
|
74
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collapsible.js","sources":["../../../../../../src/components/primitives/Collapsible/Collapsible.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Collapsible.js","sources":["../../../../../../src/components/primitives/Collapsible/Collapsible.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAgCA;AACE;AACE;AACA;AACA;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACD;;AAQH;AACE;AACA;AACA;;AAGF;;AAkBE;AACA;AACA;;AAGA;;AAGA;AACE;;AAEA;;;;AAMA;;AAGF;AACA;AACA;;AAGE;AACA;AACA;AACD;;AAGC;AACA;AACD;;;AAoBM;;AAOI;AAEC;AACD;;AAcF;AAeX;AAEA;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import './../../../assets/src/components/primitives/HoverCard/HoverCard.css.ts.vanilla-BYT0qbLp.css';
|
|
2
|
+
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
3
|
+
|
|
4
|
+
var hoverCardContentRecipe = createRuntimeFn({defaultClassName:'HoverCard_hoverCardContentRecipe__1aj59sj0',variantClassNames:{padding:{none:'HoverCard_hoverCardContentRecipe_padding_none__1aj59sj1',sm:'HoverCard_hoverCardContentRecipe_padding_sm__1aj59sj2',md:'HoverCard_hoverCardContentRecipe_padding_md__1aj59sj3',lg:'HoverCard_hoverCardContentRecipe_padding_lg__1aj59sj4'},visible:{true:'HoverCard_hoverCardContentRecipe_visible_true__1aj59sj5',false:'HoverCard_hoverCardContentRecipe_visible_false__1aj59sj6'}},defaultVariants:{padding:'md',visible:false},compoundVariants:[]});
|
|
5
|
+
|
|
6
|
+
export { hoverCardContentRecipe };
|
|
7
|
+
//# sourceMappingURL=HoverCard.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverCard.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|