even-toolkit 1.5.0 → 1.5.2
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/README.md +6 -2
- package/bin/create.js +11 -0
- package/dist/web/components/dialog.d.ts.map +1 -1
- package/dist/web/components/dialog.js +1 -4
- package/dist/web/components/dialog.js.map +1 -1
- package/dist/web/components/paged-carousel.d.ts +20 -0
- package/dist/web/components/paged-carousel.d.ts.map +1 -0
- package/dist/web/components/paged-carousel.js +140 -0
- package/dist/web/components/paged-carousel.js.map +1 -0
- package/dist/web/index.d.ts +2 -0
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +1 -0
- package/dist/web/index.js.map +1 -1
- package/package.json +5 -1
- package/web/components/dialog.tsx +1 -9
- package/web/components/paged-carousel.tsx +201 -0
- package/web/index.ts +3 -0
package/README.md
CHANGED
|
@@ -15,9 +15,13 @@ npm install even-toolkit
|
|
|
15
15
|
Scaffold a new app instantly:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
npx create-even-app my-app
|
|
18
|
+
npx @even-toolkit/create-even-app my-app
|
|
19
|
+
# or
|
|
20
|
+
npx even-toolkit my-app
|
|
19
21
|
```
|
|
20
22
|
|
|
23
|
+
Choose from 6 templates: minimal, dashboard, notes, chat, tracker, media.
|
|
24
|
+
|
|
21
25
|
## What's Inside
|
|
22
26
|
|
|
23
27
|
### `/web` — Web Component Library
|
|
@@ -30,7 +34,7 @@ import { Button, Card, NavBar, ListItem, Toggle, AppShell } from 'even-toolkit/w
|
|
|
30
34
|
|
|
31
35
|
**Primitives:** Button, Card, Badge, Input, Textarea, Select, MultiSelect, Checkbox, RadioGroup, Slider, InputGroup, Skeleton, Progress, StatusDot, Pill, Toggle, SegmentedControl, Table, Kbd, Divider
|
|
32
36
|
|
|
33
|
-
**Layout:** AppShell, Page, NavBar, NavHeader, SideDrawer, DrawerShell, DrawerTrigger, ScreenHeader, SectionHeader, SettingsGroup, CategoryFilter, ListItem (swipe-to-delete), SearchBar, Tag, TagCarousel, TagCard, SliderIndicator, PageIndicator, StepIndicator, Timeline, StatGrid, StatusProgress
|
|
37
|
+
**Layout:** AppShell, Page, NavBar, NavHeader, SideDrawer, DrawerShell, DrawerTrigger, ScreenHeader, SectionHeader, SettingsGroup, CategoryFilter, ListItem (swipe-to-delete), SearchBar, Tag, TagCarousel, TagCard, PagedCarousel, CardCarousel, SliderIndicator, PageIndicator, StepIndicator, Timeline, StatGrid, StatusProgress
|
|
34
38
|
|
|
35
39
|
**Feedback:** TimerRing, Dialog, ConfirmDialog, Toast, EmptyState, Loading, BottomSheet, CTAGroup, ScrollPicker, DatePicker, TimePicker, SelectionPicker
|
|
36
40
|
|
package/bin/create.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
|
|
5
|
+
// Delegate to @even-toolkit/create-even-app
|
|
6
|
+
const args = process.argv.slice(2).join(' ');
|
|
7
|
+
try {
|
|
8
|
+
execSync(`npx @even-toolkit/create-even-app ${args}`, { stdio: 'inherit' });
|
|
9
|
+
} catch {
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../web/components/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAChC;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../web/components/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAChC;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,WAAW,kDAiFxF;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -4,9 +4,6 @@ import { cn } from '../utils/cn';
|
|
|
4
4
|
function Dialog({ open, onClose, title, icon, children, actions, className }) {
|
|
5
5
|
const [visible, setVisible] = React.useState(false);
|
|
6
6
|
const [closing, setClosing] = React.useState(false);
|
|
7
|
-
const stopPropagation = React.useCallback((event) => {
|
|
8
|
-
event.stopPropagation();
|
|
9
|
-
}, []);
|
|
10
7
|
React.useEffect(() => {
|
|
11
8
|
if (open) {
|
|
12
9
|
setVisible(true);
|
|
@@ -42,7 +39,7 @@ function Dialog({ open, onClose, title, icon, children, actions, className }) {
|
|
|
42
39
|
}, [visible]);
|
|
43
40
|
if (!visible)
|
|
44
41
|
return null;
|
|
45
|
-
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center px-6 overscroll-contain",
|
|
42
|
+
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center px-6 overscroll-contain", style: { animation: closing ? 'fadeOut 200ms ease forwards' : 'fadeIn 200ms ease' }, children: [_jsx("div", { className: "absolute inset-0 bg-overlay", onClick: onClose }), _jsxs("div", { className: cn('relative z-10 w-full max-w-[311px] bg-surface rounded-[6px] shadow-[0_4px_24px_rgba(0,0,0,0.16)] p-4 overscroll-contain', className), style: { animation: closing ? 'fadeOut 200ms ease forwards' : 'fadeIn 250ms ease' }, children: [_jsxs("div", { className: "flex items-start gap-2 mb-2", children: [icon && _jsx("div", { className: "shrink-0 w-5 h-5 text-text mt-0.5", children: icon }), _jsx("h2", { className: "text-[15px] tracking-[-0.15px] font-normal text-text", children: title })] }), children && (_jsx("div", { className: "text-[13px] tracking-[-0.13px] text-text-dim leading-[18px]", children: children })), actions && actions.length > 0 && (_jsx("div", { className: "flex gap-3 mt-4", children: actions.map((action) => (_jsx("button", { type: "button", onClick: action.onClick, className: cn('flex-1 h-10 rounded-[6px] text-[15px] tracking-[-0.15px] font-normal cursor-pointer transition-colors', action.variant === 'danger'
|
|
46
43
|
? 'bg-surface-light text-negative hover:bg-surface-lighter'
|
|
47
44
|
: 'bg-surface-light text-text hover:bg-surface-lighter'), children: action.label }, action.label))) }))] })] }));
|
|
48
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../web/components/dialog.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAmBjC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAe;IACvF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,
|
|
1
|
+
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../web/components/dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
interface PagedCarouselProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
currentIndex?: number;
|
|
5
|
+
defaultIndex?: number;
|
|
6
|
+
onIndexChange?: (index: number) => void;
|
|
7
|
+
className?: string;
|
|
8
|
+
viewportClassName?: string;
|
|
9
|
+
trackClassName?: string;
|
|
10
|
+
slideClassName?: string;
|
|
11
|
+
allowWheel?: boolean;
|
|
12
|
+
allowSwipe?: boolean;
|
|
13
|
+
}
|
|
14
|
+
interface CardCarouselProps extends PagedCarouselProps {
|
|
15
|
+
}
|
|
16
|
+
declare function PagedCarousel({ children, currentIndex, defaultIndex, onIndexChange, className, viewportClassName, trackClassName, slideClassName, allowWheel, allowSwipe, }: PagedCarouselProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
declare function CardCarousel(props: CardCarouselProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export { PagedCarousel, CardCarousel };
|
|
19
|
+
export type { PagedCarouselProps, CardCarouselProps };
|
|
20
|
+
//# sourceMappingURL=paged-carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paged-carousel.d.ts","sourceRoot":"","sources":["../../../web/components/paged-carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,iBAAkB,SAAQ,kBAAkB;CAAG;AAsBzD,iBAAS,aAAa,CAAC,EACrB,QAAQ,EACR,YAAY,EACZ,YAAgB,EAChB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,UAAiB,EACjB,UAAiB,GAClB,EAAE,kBAAkB,2CAyIpB;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAS7C;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACvC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cn } from '../utils/cn';
|
|
4
|
+
function useCarouselIndex(slideCount, currentIndex, defaultIndex, onIndexChange) {
|
|
5
|
+
const [internalIndex, setInternalIndex] = React.useState(defaultIndex ?? 0);
|
|
6
|
+
const controlled = typeof currentIndex === 'number';
|
|
7
|
+
const activeIndex = controlled ? currentIndex : internalIndex;
|
|
8
|
+
const setIndex = React.useCallback((nextIndex) => {
|
|
9
|
+
if (slideCount <= 0)
|
|
10
|
+
return;
|
|
11
|
+
const clamped = Math.max(0, Math.min(nextIndex, slideCount - 1));
|
|
12
|
+
if (!controlled)
|
|
13
|
+
setInternalIndex(clamped);
|
|
14
|
+
onIndexChange?.(clamped);
|
|
15
|
+
}, [controlled, onIndexChange, slideCount]);
|
|
16
|
+
return { activeIndex, setIndex };
|
|
17
|
+
}
|
|
18
|
+
function PagedCarousel({ children, currentIndex, defaultIndex = 0, onIndexChange, className, viewportClassName, trackClassName, slideClassName, allowWheel = true, allowSwipe = true, }) {
|
|
19
|
+
const slides = React.Children.toArray(children);
|
|
20
|
+
const slideCount = slides.length;
|
|
21
|
+
const { activeIndex, setIndex } = useCarouselIndex(slideCount, currentIndex, defaultIndex, onIndexChange);
|
|
22
|
+
const touchStartRef = React.useRef(null);
|
|
23
|
+
const pointerStartRef = React.useRef(null);
|
|
24
|
+
const wheelLockRef = React.useRef(0);
|
|
25
|
+
const moveBy = React.useCallback((delta) => {
|
|
26
|
+
setIndex(activeIndex + delta);
|
|
27
|
+
}, [activeIndex, setIndex]);
|
|
28
|
+
const handleTouchStart = React.useCallback((event) => {
|
|
29
|
+
if (!allowSwipe)
|
|
30
|
+
return;
|
|
31
|
+
const touch = event.touches[0];
|
|
32
|
+
touchStartRef.current = { x: touch.clientX, y: touch.clientY };
|
|
33
|
+
}, [allowSwipe]);
|
|
34
|
+
const handleTouchMove = React.useCallback((event) => {
|
|
35
|
+
if (!allowSwipe)
|
|
36
|
+
return;
|
|
37
|
+
const start = touchStartRef.current;
|
|
38
|
+
const touch = event.touches[0];
|
|
39
|
+
if (!start || !touch)
|
|
40
|
+
return;
|
|
41
|
+
const deltaX = touch.clientX - start.x;
|
|
42
|
+
const deltaY = touch.clientY - start.y;
|
|
43
|
+
if (Math.abs(deltaX) < 32 || Math.abs(deltaX) <= Math.abs(deltaY))
|
|
44
|
+
return;
|
|
45
|
+
touchStartRef.current = null;
|
|
46
|
+
event.preventDefault();
|
|
47
|
+
if (deltaX < 0)
|
|
48
|
+
moveBy(1);
|
|
49
|
+
else
|
|
50
|
+
moveBy(-1);
|
|
51
|
+
}, [allowSwipe, moveBy]);
|
|
52
|
+
const handleTouchEnd = React.useCallback((event) => {
|
|
53
|
+
if (!allowSwipe)
|
|
54
|
+
return;
|
|
55
|
+
const start = touchStartRef.current;
|
|
56
|
+
const touch = event.changedTouches[0];
|
|
57
|
+
touchStartRef.current = null;
|
|
58
|
+
if (!start || !touch)
|
|
59
|
+
return;
|
|
60
|
+
const deltaX = touch.clientX - start.x;
|
|
61
|
+
const deltaY = touch.clientY - start.y;
|
|
62
|
+
if (Math.abs(deltaX) < 32 || Math.abs(deltaX) <= Math.abs(deltaY))
|
|
63
|
+
return;
|
|
64
|
+
if (deltaX < 0)
|
|
65
|
+
moveBy(1);
|
|
66
|
+
else
|
|
67
|
+
moveBy(-1);
|
|
68
|
+
}, [allowSwipe, moveBy]);
|
|
69
|
+
const handlePointerDown = React.useCallback((event) => {
|
|
70
|
+
if (!allowSwipe)
|
|
71
|
+
return;
|
|
72
|
+
if (event.pointerType !== 'mouse' && event.pointerType !== 'pen')
|
|
73
|
+
return;
|
|
74
|
+
event.currentTarget.setPointerCapture?.(event.pointerId);
|
|
75
|
+
pointerStartRef.current = { x: event.clientX, y: event.clientY };
|
|
76
|
+
}, [allowSwipe]);
|
|
77
|
+
const handlePointerMove = React.useCallback((event) => {
|
|
78
|
+
if (!allowSwipe)
|
|
79
|
+
return;
|
|
80
|
+
const start = pointerStartRef.current;
|
|
81
|
+
if (!start)
|
|
82
|
+
return;
|
|
83
|
+
const deltaX = event.clientX - start.x;
|
|
84
|
+
const deltaY = event.clientY - start.y;
|
|
85
|
+
if (Math.abs(deltaX) < 32 || Math.abs(deltaX) <= Math.abs(deltaY))
|
|
86
|
+
return;
|
|
87
|
+
pointerStartRef.current = null;
|
|
88
|
+
if (deltaX < 0)
|
|
89
|
+
moveBy(1);
|
|
90
|
+
else
|
|
91
|
+
moveBy(-1);
|
|
92
|
+
}, [allowSwipe, moveBy]);
|
|
93
|
+
const handlePointerUp = React.useCallback((event) => {
|
|
94
|
+
if (!allowSwipe)
|
|
95
|
+
return;
|
|
96
|
+
const start = pointerStartRef.current;
|
|
97
|
+
pointerStartRef.current = null;
|
|
98
|
+
if (!start)
|
|
99
|
+
return;
|
|
100
|
+
const deltaX = event.clientX - start.x;
|
|
101
|
+
const deltaY = event.clientY - start.y;
|
|
102
|
+
if (Math.abs(deltaX) < 32 || Math.abs(deltaX) <= Math.abs(deltaY))
|
|
103
|
+
return;
|
|
104
|
+
if (deltaX < 0)
|
|
105
|
+
moveBy(1);
|
|
106
|
+
else
|
|
107
|
+
moveBy(-1);
|
|
108
|
+
}, [allowSwipe, moveBy]);
|
|
109
|
+
const handleWheel = React.useCallback((event) => {
|
|
110
|
+
if (!allowWheel)
|
|
111
|
+
return;
|
|
112
|
+
if (Math.abs(event.deltaX) < 18 || Math.abs(event.deltaX) <= Math.abs(event.deltaY))
|
|
113
|
+
return;
|
|
114
|
+
const now = Date.now();
|
|
115
|
+
if (now - wheelLockRef.current < 280)
|
|
116
|
+
return;
|
|
117
|
+
wheelLockRef.current = now;
|
|
118
|
+
event.preventDefault();
|
|
119
|
+
if (event.deltaX > 0)
|
|
120
|
+
moveBy(1);
|
|
121
|
+
else
|
|
122
|
+
moveBy(-1);
|
|
123
|
+
}, [allowWheel, moveBy]);
|
|
124
|
+
const handleKeyDown = React.useCallback((event) => {
|
|
125
|
+
if (event.key === 'ArrowRight') {
|
|
126
|
+
event.preventDefault();
|
|
127
|
+
moveBy(1);
|
|
128
|
+
}
|
|
129
|
+
else if (event.key === 'ArrowLeft') {
|
|
130
|
+
event.preventDefault();
|
|
131
|
+
moveBy(-1);
|
|
132
|
+
}
|
|
133
|
+
}, [moveBy]);
|
|
134
|
+
return (_jsx("div", { className: cn('min-w-0', className), children: _jsx("div", { role: "region", "aria-roledescription": "carousel", tabIndex: 0, onKeyDown: handleKeyDown, onWheel: handleWheel, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, onTouchEnd: handleTouchEnd, className: cn('min-w-0 overflow-hidden outline-none', viewportClassName), style: { touchAction: 'none' }, children: _jsx("div", { className: cn('min-w-0', trackClassName), children: _jsx("div", { className: cn('w-full min-w-0', slideClassName), "aria-hidden": false, children: slides[activeIndex] ?? null }, activeIndex) }) }) }));
|
|
135
|
+
}
|
|
136
|
+
function CardCarousel(props) {
|
|
137
|
+
return (_jsx(PagedCarousel, { ...props, className: cn('min-w-0', props.className), viewportClassName: cn('rounded-[6px]', props.viewportClassName), slideClassName: cn('min-w-0', props.slideClassName) }));
|
|
138
|
+
}
|
|
139
|
+
export { PagedCarousel, CardCarousel };
|
|
140
|
+
//# sourceMappingURL=paged-carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paged-carousel.js","sourceRoot":"","sources":["../../../web/components/paged-carousel.tsx"],"names":[],"mappings":"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"}
|
package/dist/web/index.d.ts
CHANGED
|
@@ -74,6 +74,8 @@ export { RadioGroup } from './components/radio-group';
|
|
|
74
74
|
export type { RadioGroupProps, RadioOption } from './components/radio-group';
|
|
75
75
|
export { Slider } from './components/slider';
|
|
76
76
|
export type { SliderProps } from './components/slider';
|
|
77
|
+
export { PagedCarousel, CardCarousel } from './components/paged-carousel';
|
|
78
|
+
export type { PagedCarouselProps, CardCarouselProps } from './components/paged-carousel';
|
|
77
79
|
export { Skeleton, skeletonVariants } from './components/skeleton';
|
|
78
80
|
export type { SkeletonProps } from './components/skeleton';
|
|
79
81
|
export { InputGroup } from './components/input-group';
|
package/dist/web/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../web/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../web/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAGhC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAEpG,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGvF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtJ,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE/H,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACxF,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGlK,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAG5F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3G,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAE9H,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACnG,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/web/index.js
CHANGED
|
@@ -46,6 +46,7 @@ export { SliderIndicator, PageIndicator } from './components/indicator';
|
|
|
46
46
|
export { Checkbox } from './components/checkbox';
|
|
47
47
|
export { RadioGroup } from './components/radio-group';
|
|
48
48
|
export { Slider } from './components/slider';
|
|
49
|
+
export { PagedCarousel, CardCarousel } from './components/paged-carousel';
|
|
49
50
|
export { Skeleton, skeletonVariants } from './components/skeleton';
|
|
50
51
|
export { InputGroup } from './components/input-group';
|
|
51
52
|
export { StepIndicator } from './components/step-indicator';
|
package/dist/web/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../web/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../web/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "even-toolkit",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.2",
|
|
4
|
+
"bin": {
|
|
5
|
+
"even-toolkit": "./bin/create.js"
|
|
6
|
+
},
|
|
4
7
|
"description": "Design system & component library for Even Realities G2 smart glasses apps — 55+ web components, 191 pixel-art icons, glasses SDK bridge, and design tokens.",
|
|
5
8
|
"type": "module",
|
|
6
9
|
"main": "./dist/glasses/index.js",
|
|
@@ -356,6 +359,7 @@
|
|
|
356
359
|
}
|
|
357
360
|
},
|
|
358
361
|
"files": [
|
|
362
|
+
"bin",
|
|
359
363
|
"dist",
|
|
360
364
|
"web",
|
|
361
365
|
"glasses",
|
|
@@ -21,10 +21,6 @@ interface DialogProps {
|
|
|
21
21
|
function Dialog({ open, onClose, title, icon, children, actions, className }: DialogProps) {
|
|
22
22
|
const [visible, setVisible] = React.useState(false);
|
|
23
23
|
const [closing, setClosing] = React.useState(false);
|
|
24
|
-
const stopPropagation = React.useCallback((event: React.SyntheticEvent) => {
|
|
25
|
-
event.stopPropagation();
|
|
26
|
-
}, []);
|
|
27
|
-
|
|
28
24
|
React.useEffect(() => {
|
|
29
25
|
if (open) {
|
|
30
26
|
setVisible(true);
|
|
@@ -62,16 +58,12 @@ function Dialog({ open, onClose, title, icon, children, actions, className }: Di
|
|
|
62
58
|
return (
|
|
63
59
|
<div
|
|
64
60
|
className="fixed inset-0 z-50 flex items-center justify-center px-6 overscroll-contain"
|
|
65
|
-
onTouchStartCapture={stopPropagation}
|
|
66
|
-
onTouchMoveCapture={stopPropagation}
|
|
67
|
-
onTouchEndCapture={stopPropagation}
|
|
68
|
-
onWheelCapture={stopPropagation}
|
|
69
61
|
style={{ animation: closing ? 'fadeOut 200ms ease forwards' : 'fadeIn 200ms ease' }}
|
|
70
62
|
>
|
|
71
63
|
<div className="absolute inset-0 bg-overlay" onClick={onClose} />
|
|
72
64
|
<div
|
|
73
65
|
className={cn(
|
|
74
|
-
'relative z-10 w-full max-w-[311px] bg-surface rounded-[6px] shadow-[0_4px_24px_rgba(0,0,0,0.16)] p-4',
|
|
66
|
+
'relative z-10 w-full max-w-[311px] bg-surface rounded-[6px] shadow-[0_4px_24px_rgba(0,0,0,0.16)] p-4 overscroll-contain',
|
|
75
67
|
className,
|
|
76
68
|
)}
|
|
77
69
|
style={{ animation: closing ? 'fadeOut 200ms ease forwards' : 'fadeIn 250ms ease' }}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { cn } from '../utils/cn';
|
|
3
|
+
|
|
4
|
+
interface PagedCarouselProps {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
currentIndex?: number;
|
|
7
|
+
defaultIndex?: number;
|
|
8
|
+
onIndexChange?: (index: number) => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
viewportClassName?: string;
|
|
11
|
+
trackClassName?: string;
|
|
12
|
+
slideClassName?: string;
|
|
13
|
+
allowWheel?: boolean;
|
|
14
|
+
allowSwipe?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface CardCarouselProps extends PagedCarouselProps {}
|
|
18
|
+
|
|
19
|
+
function useCarouselIndex(
|
|
20
|
+
slideCount: number,
|
|
21
|
+
currentIndex?: number,
|
|
22
|
+
defaultIndex?: number,
|
|
23
|
+
onIndexChange?: (index: number) => void,
|
|
24
|
+
) {
|
|
25
|
+
const [internalIndex, setInternalIndex] = React.useState(defaultIndex ?? 0);
|
|
26
|
+
const controlled = typeof currentIndex === 'number';
|
|
27
|
+
const activeIndex = controlled ? currentIndex! : internalIndex;
|
|
28
|
+
|
|
29
|
+
const setIndex = React.useCallback((nextIndex: number) => {
|
|
30
|
+
if (slideCount <= 0) return;
|
|
31
|
+
const clamped = Math.max(0, Math.min(nextIndex, slideCount - 1));
|
|
32
|
+
if (!controlled) setInternalIndex(clamped);
|
|
33
|
+
onIndexChange?.(clamped);
|
|
34
|
+
}, [controlled, onIndexChange, slideCount]);
|
|
35
|
+
|
|
36
|
+
return { activeIndex, setIndex };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function PagedCarousel({
|
|
40
|
+
children,
|
|
41
|
+
currentIndex,
|
|
42
|
+
defaultIndex = 0,
|
|
43
|
+
onIndexChange,
|
|
44
|
+
className,
|
|
45
|
+
viewportClassName,
|
|
46
|
+
trackClassName,
|
|
47
|
+
slideClassName,
|
|
48
|
+
allowWheel = true,
|
|
49
|
+
allowSwipe = true,
|
|
50
|
+
}: PagedCarouselProps) {
|
|
51
|
+
const slides = React.Children.toArray(children);
|
|
52
|
+
const slideCount = slides.length;
|
|
53
|
+
const { activeIndex, setIndex } = useCarouselIndex(slideCount, currentIndex, defaultIndex, onIndexChange);
|
|
54
|
+
|
|
55
|
+
const touchStartRef = React.useRef<{ x: number; y: number } | null>(null);
|
|
56
|
+
const pointerStartRef = React.useRef<{ x: number; y: number } | null>(null);
|
|
57
|
+
const wheelLockRef = React.useRef(0);
|
|
58
|
+
|
|
59
|
+
const moveBy = React.useCallback((delta: number) => {
|
|
60
|
+
setIndex(activeIndex + delta);
|
|
61
|
+
}, [activeIndex, setIndex]);
|
|
62
|
+
|
|
63
|
+
const handleTouchStart = React.useCallback((event: React.TouchEvent<HTMLDivElement>) => {
|
|
64
|
+
if (!allowSwipe) return;
|
|
65
|
+
const touch = event.touches[0];
|
|
66
|
+
touchStartRef.current = { x: touch.clientX, y: touch.clientY };
|
|
67
|
+
}, [allowSwipe]);
|
|
68
|
+
|
|
69
|
+
const handleTouchMove = React.useCallback((event: React.TouchEvent<HTMLDivElement>) => {
|
|
70
|
+
if (!allowSwipe) return;
|
|
71
|
+
const start = touchStartRef.current;
|
|
72
|
+
const touch = event.touches[0];
|
|
73
|
+
if (!start || !touch) return;
|
|
74
|
+
|
|
75
|
+
const deltaX = touch.clientX - start.x;
|
|
76
|
+
const deltaY = touch.clientY - start.y;
|
|
77
|
+
if (Math.abs(deltaX) < 32 || Math.abs(deltaX) <= Math.abs(deltaY)) return;
|
|
78
|
+
|
|
79
|
+
touchStartRef.current = null;
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
if (deltaX < 0) moveBy(1);
|
|
82
|
+
else moveBy(-1);
|
|
83
|
+
}, [allowSwipe, moveBy]);
|
|
84
|
+
|
|
85
|
+
const handleTouchEnd = React.useCallback((event: React.TouchEvent<HTMLDivElement>) => {
|
|
86
|
+
if (!allowSwipe) return;
|
|
87
|
+
const start = touchStartRef.current;
|
|
88
|
+
const touch = event.changedTouches[0];
|
|
89
|
+
touchStartRef.current = null;
|
|
90
|
+
if (!start || !touch) return;
|
|
91
|
+
|
|
92
|
+
const deltaX = touch.clientX - start.x;
|
|
93
|
+
const deltaY = touch.clientY - start.y;
|
|
94
|
+
if (Math.abs(deltaX) < 32 || Math.abs(deltaX) <= Math.abs(deltaY)) return;
|
|
95
|
+
|
|
96
|
+
if (deltaX < 0) moveBy(1);
|
|
97
|
+
else moveBy(-1);
|
|
98
|
+
}, [allowSwipe, moveBy]);
|
|
99
|
+
|
|
100
|
+
const handlePointerDown = React.useCallback((event: React.PointerEvent<HTMLDivElement>) => {
|
|
101
|
+
if (!allowSwipe) return;
|
|
102
|
+
if (event.pointerType !== 'mouse' && event.pointerType !== 'pen') return;
|
|
103
|
+
event.currentTarget.setPointerCapture?.(event.pointerId);
|
|
104
|
+
pointerStartRef.current = { x: event.clientX, y: event.clientY };
|
|
105
|
+
}, [allowSwipe]);
|
|
106
|
+
|
|
107
|
+
const handlePointerMove = React.useCallback((event: React.PointerEvent<HTMLDivElement>) => {
|
|
108
|
+
if (!allowSwipe) return;
|
|
109
|
+
const start = pointerStartRef.current;
|
|
110
|
+
if (!start) return;
|
|
111
|
+
|
|
112
|
+
const deltaX = event.clientX - start.x;
|
|
113
|
+
const deltaY = event.clientY - start.y;
|
|
114
|
+
if (Math.abs(deltaX) < 32 || Math.abs(deltaX) <= Math.abs(deltaY)) return;
|
|
115
|
+
|
|
116
|
+
pointerStartRef.current = null;
|
|
117
|
+
if (deltaX < 0) moveBy(1);
|
|
118
|
+
else moveBy(-1);
|
|
119
|
+
}, [allowSwipe, moveBy]);
|
|
120
|
+
|
|
121
|
+
const handlePointerUp = React.useCallback((event: React.PointerEvent<HTMLDivElement>) => {
|
|
122
|
+
if (!allowSwipe) return;
|
|
123
|
+
const start = pointerStartRef.current;
|
|
124
|
+
pointerStartRef.current = null;
|
|
125
|
+
if (!start) return;
|
|
126
|
+
|
|
127
|
+
const deltaX = event.clientX - start.x;
|
|
128
|
+
const deltaY = event.clientY - start.y;
|
|
129
|
+
if (Math.abs(deltaX) < 32 || Math.abs(deltaX) <= Math.abs(deltaY)) return;
|
|
130
|
+
|
|
131
|
+
if (deltaX < 0) moveBy(1);
|
|
132
|
+
else moveBy(-1);
|
|
133
|
+
}, [allowSwipe, moveBy]);
|
|
134
|
+
|
|
135
|
+
const handleWheel = React.useCallback((event: React.WheelEvent<HTMLDivElement>) => {
|
|
136
|
+
if (!allowWheel) return;
|
|
137
|
+
if (Math.abs(event.deltaX) < 18 || Math.abs(event.deltaX) <= Math.abs(event.deltaY)) return;
|
|
138
|
+
|
|
139
|
+
const now = Date.now();
|
|
140
|
+
if (now - wheelLockRef.current < 280) return;
|
|
141
|
+
wheelLockRef.current = now;
|
|
142
|
+
|
|
143
|
+
event.preventDefault();
|
|
144
|
+
if (event.deltaX > 0) moveBy(1);
|
|
145
|
+
else moveBy(-1);
|
|
146
|
+
}, [allowWheel, moveBy]);
|
|
147
|
+
|
|
148
|
+
const handleKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {
|
|
149
|
+
if (event.key === 'ArrowRight') {
|
|
150
|
+
event.preventDefault();
|
|
151
|
+
moveBy(1);
|
|
152
|
+
} else if (event.key === 'ArrowLeft') {
|
|
153
|
+
event.preventDefault();
|
|
154
|
+
moveBy(-1);
|
|
155
|
+
}
|
|
156
|
+
}, [moveBy]);
|
|
157
|
+
|
|
158
|
+
return (
|
|
159
|
+
<div className={cn('min-w-0', className)}>
|
|
160
|
+
<div
|
|
161
|
+
role="region"
|
|
162
|
+
aria-roledescription="carousel"
|
|
163
|
+
tabIndex={0}
|
|
164
|
+
onKeyDown={handleKeyDown}
|
|
165
|
+
onWheel={handleWheel}
|
|
166
|
+
onPointerDown={handlePointerDown}
|
|
167
|
+
onPointerMove={handlePointerMove}
|
|
168
|
+
onPointerUp={handlePointerUp}
|
|
169
|
+
onTouchStart={handleTouchStart}
|
|
170
|
+
onTouchMove={handleTouchMove}
|
|
171
|
+
onTouchEnd={handleTouchEnd}
|
|
172
|
+
className={cn('min-w-0 overflow-hidden outline-none', viewportClassName)}
|
|
173
|
+
style={{ touchAction: 'none' }}
|
|
174
|
+
>
|
|
175
|
+
<div className={cn('min-w-0', trackClassName)}>
|
|
176
|
+
<div
|
|
177
|
+
key={activeIndex}
|
|
178
|
+
className={cn('w-full min-w-0', slideClassName)}
|
|
179
|
+
aria-hidden={false}
|
|
180
|
+
>
|
|
181
|
+
{slides[activeIndex] ?? null}
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
function CardCarousel(props: CardCarouselProps) {
|
|
190
|
+
return (
|
|
191
|
+
<PagedCarousel
|
|
192
|
+
{...props}
|
|
193
|
+
className={cn('min-w-0', props.className)}
|
|
194
|
+
viewportClassName={cn('rounded-[6px]', props.viewportClassName)}
|
|
195
|
+
slideClassName={cn('min-w-0', props.slideClassName)}
|
|
196
|
+
/>
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export { PagedCarousel, CardCarousel };
|
|
201
|
+
export type { PagedCarouselProps, CardCarouselProps };
|
package/web/index.ts
CHANGED
|
@@ -121,6 +121,9 @@ export type { RadioGroupProps, RadioOption } from './components/radio-group';
|
|
|
121
121
|
export { Slider } from './components/slider';
|
|
122
122
|
export type { SliderProps } from './components/slider';
|
|
123
123
|
|
|
124
|
+
export { PagedCarousel, CardCarousel } from './components/paged-carousel';
|
|
125
|
+
export type { PagedCarouselProps, CardCarouselProps } from './components/paged-carousel';
|
|
126
|
+
|
|
124
127
|
export { Skeleton, skeletonVariants } from './components/skeleton';
|
|
125
128
|
export type { SkeletonProps } from './components/skeleton';
|
|
126
129
|
|