@rinzai/zen 0.14.0 → 0.16.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 +153 -0
- package/README.md +16 -1
- package/dist/animated-number/index.js +14 -14
- package/dist/breadcrumbs/index.js +14 -14
- package/dist/calendar/index.js +29 -29
- package/dist/calendar-heatmap/index.js +12 -12
- package/dist/canvas/index.js +19 -19
- package/dist/carousel/index.d.ts.map +1 -1
- package/dist/carousel/index.js +29 -29
- package/dist/chart/index.js +7 -7
- package/dist/code-block/index.js +5 -5
- package/dist/collapse/index.js +6 -6
- package/dist/color-picker/index.js +10 -10
- package/dist/combobox/index.js +61 -61
- package/dist/command-palette/index.js +5 -5
- package/dist/confirm-dialog/index.js +4 -4
- package/dist/date-picker/index.js +15 -15
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +45 -65
- package/dist/docs/README.md +205 -0
- package/dist/docs/accordion.md +122 -0
- package/dist/docs/alert.md +69 -0
- package/dist/docs/animated-number.md +105 -0
- package/dist/docs/avatar.md +91 -0
- package/dist/docs/backdrop.md +94 -0
- package/dist/docs/badge.md +37 -0
- package/dist/docs/breadcrumbs.md +44 -0
- package/dist/docs/button-group.md +76 -0
- package/dist/docs/button.md +131 -0
- package/dist/docs/calendar-heatmap.md +73 -0
- package/dist/docs/calendar.md +101 -0
- package/dist/docs/canvas.md +584 -0
- package/dist/docs/card.md +180 -0
- package/dist/docs/carousel.md +162 -0
- package/dist/docs/chart.md +325 -0
- package/dist/docs/checkbox.md +88 -0
- package/dist/docs/chip.md +52 -0
- package/dist/docs/code-block.md +116 -0
- package/dist/docs/code-input.md +52 -0
- package/dist/docs/collapse.md +46 -0
- package/dist/docs/color-picker.md +145 -0
- package/dist/docs/combobox.md +208 -0
- package/dist/docs/command-palette.md +65 -0
- package/dist/docs/date-picker.md +167 -0
- package/dist/docs/dialog.md +271 -0
- package/dist/docs/disclosure.md +88 -0
- package/dist/docs/editable-cell.md +90 -0
- package/dist/docs/empty-state.md +46 -0
- package/dist/docs/field.md +82 -0
- package/dist/docs/file-drop.md +44 -0
- package/dist/docs/filter-bar.md +66 -0
- package/dist/docs/header.md +51 -0
- package/dist/docs/hover-card.md +110 -0
- package/dist/docs/icon-picker.md +65 -0
- package/dist/docs/input-group.md +89 -0
- package/dist/docs/input.md +33 -0
- package/dist/docs/inset.md +57 -0
- package/dist/docs/kbd.md +34 -0
- package/dist/docs/keypad.md +51 -0
- package/dist/docs/load-more.md +66 -0
- package/dist/docs/locale-provider.md +99 -0
- package/dist/docs/marquee.md +86 -0
- package/dist/docs/menu.md +456 -0
- package/dist/docs/meter.md +102 -0
- package/dist/docs/money-input.md +169 -0
- package/dist/docs/month-picker.md +80 -0
- package/dist/docs/navigation-menu.md +157 -0
- package/dist/docs/number-field.md +129 -0
- package/dist/docs/page-header.md +44 -0
- package/dist/docs/page-transition.md +93 -0
- package/dist/docs/pagination.md +42 -0
- package/dist/docs/pills.md +85 -0
- package/dist/docs/player-bar.md +158 -0
- package/dist/docs/popover.md +200 -0
- package/dist/docs/progress-ring.md +70 -0
- package/dist/docs/radio-cards.md +82 -0
- package/dist/docs/radio-group.md +86 -0
- package/dist/docs/range-slider.md +64 -0
- package/dist/docs/repeat-picker.md +44 -0
- package/dist/docs/resizable.md +107 -0
- package/dist/docs/seek-bar.md +97 -0
- package/dist/docs/segmented.md +89 -0
- package/dist/docs/select.md +148 -0
- package/dist/docs/separator.md +76 -0
- package/dist/docs/side-nav.md +75 -0
- package/dist/docs/skeleton.md +89 -0
- package/dist/docs/slider.md +87 -0
- package/dist/docs/sortable.md +244 -0
- package/dist/docs/sparkline.md +56 -0
- package/dist/docs/spinner.md +69 -0
- package/dist/docs/status-pill.md +81 -0
- package/dist/docs/stepper.md +59 -0
- package/dist/docs/tab-bar.md +78 -0
- package/dist/docs/table-of-contents.md +43 -0
- package/dist/docs/table.md +714 -0
- package/dist/docs/tabs.md +140 -0
- package/dist/docs/tag-input.md +45 -0
- package/dist/docs/textarea.md +25 -0
- package/dist/docs/theme-toggle.md +85 -0
- package/dist/docs/theming.md +193 -0
- package/dist/docs/time-field.md +71 -0
- package/dist/docs/timeline.md +50 -0
- package/dist/docs/toast.md +53 -0
- package/dist/docs/toggle-group.md +83 -0
- package/dist/docs/toggle.md +38 -0
- package/dist/docs/toolbar.md +97 -0
- package/dist/docs/tooltip.md +102 -0
- package/dist/docs/tree.md +295 -0
- package/dist/docs/trend.md +50 -0
- package/dist/filter-bar/index.js +6 -6
- package/dist/header/index.js +6 -6
- package/dist/icon-picker/index.js +5 -5
- package/dist/icons/arrow-path.d.ts +3 -0
- package/dist/icons/arrow-path.d.ts.map +1 -0
- package/dist/icons/arrows-right-left.d.ts +3 -0
- package/dist/icons/arrows-right-left.d.ts.map +1 -0
- package/dist/icons/backward.d.ts +3 -0
- package/dist/icons/backward.d.ts.map +1 -0
- package/dist/icons/forward.d.ts +3 -0
- package/dist/icons/forward.d.ts.map +1 -0
- package/dist/icons/heart-solid.d.ts +3 -0
- package/dist/icons/heart-solid.d.ts.map +1 -0
- package/dist/icons/heart.d.ts +3 -0
- package/dist/icons/heart.d.ts.map +1 -0
- package/dist/icons/musical-note.d.ts +3 -0
- package/dist/icons/musical-note.d.ts.map +1 -0
- package/dist/icons/pause.d.ts +3 -0
- package/dist/icons/pause.d.ts.map +1 -0
- package/dist/icons/play.d.ts +3 -0
- package/dist/icons/play.d.ts.map +1 -0
- package/dist/icons/queue-list.d.ts +3 -0
- package/dist/icons/queue-list.d.ts.map +1 -0
- package/dist/icons/speaker-wave.d.ts +3 -0
- package/dist/icons/speaker-wave.d.ts.map +1 -0
- package/dist/icons/speaker-x-mark.d.ts +3 -0
- package/dist/icons/speaker-x-mark.d.ts.map +1 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/keypad/index.js +5 -5
- package/dist/lib.js +86 -80
- package/dist/load-more/index.js +5 -5
- package/dist/marquee/index.d.ts +15 -0
- package/dist/marquee/index.d.ts.map +1 -0
- package/dist/marquee/index.js +90 -0
- package/dist/menu/index.d.ts +7 -1
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/index.js +222 -178
- package/dist/money-input/index.js +54 -54
- package/dist/month-picker/index.js +11 -11
- package/dist/number-field/index.js +5 -5
- package/dist/pagination/index.js +12 -12
- package/dist/player-bar/index.d.ts +11 -0
- package/dist/player-bar/index.d.ts.map +1 -0
- package/dist/player-bar/index.js +17 -0
- package/dist/radio-cards/index.d.ts +2 -1
- package/dist/radio-cards/index.d.ts.map +1 -1
- package/dist/radio-cards/index.js +3 -3
- package/dist/range-slider/index.js +11 -11
- package/dist/repeat-picker/index.js +5 -5
- package/dist/resizable/index.js +22 -22
- package/dist/seek-bar/index.d.ts +26 -0
- package/dist/seek-bar/index.d.ts.map +1 -0
- package/dist/seek-bar/index.js +121 -0
- package/dist/segmented/index.d.ts +3 -2
- package/dist/segmented/index.d.ts.map +1 -1
- package/dist/segmented/index.js +19 -18
- package/dist/select/index.js +21 -21
- package/dist/slider/index.d.ts +2 -1
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/sortable/index.d.ts +13 -1
- package/dist/sortable/index.d.ts.map +1 -1
- package/dist/sortable/index.js +74 -55
- package/dist/sortable/shared.js +14 -14
- package/dist/sortable/tree.js +17 -17
- package/dist/sparkline/index.js +4 -4
- package/dist/stepper/index.js +13 -13
- package/dist/tab-bar/index.d.ts +4 -2
- package/dist/tab-bar/index.d.ts.map +1 -1
- package/dist/tab-bar/index.js +24 -19
- package/dist/table/index.js +26 -26
- package/dist/table/selection.js +9 -9
- package/dist/table-of-contents/index.js +11 -11
- package/dist/tag-input/index.js +5 -5
- package/dist/textarea/index.d.ts +6 -2
- package/dist/textarea/index.d.ts.map +1 -1
- package/dist/textarea/index.js +2 -1
- package/dist/theme-toggle/index.js +4 -4
- package/dist/theme.css +143 -0
- package/dist/time-field/index.js +21 -21
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +41 -41
- package/dist/tooltip/index.d.ts +9 -3
- package/dist/tooltip/index.d.ts.map +1 -1
- package/dist/tooltip/index.js +19 -16
- package/dist/tree/index.js +34 -34
- package/dist/trend/index.js +5 -5
- package/dist/utils/duration.d.ts +3 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +7 -0
- package/dist/utils/messages.d.ts +3 -0
- package/dist/utils/messages.d.ts.map +1 -1
- package/dist/utils/messages.js +4 -1
- package/dist/utils/slot.d.ts +5 -2
- package/dist/utils/slot.d.ts.map +1 -1
- package/dist/utils/slot.js +16 -11
- package/dist/utils/swipe.d.ts +7 -0
- package/dist/utils/swipe.d.ts.map +1 -1
- package/dist/utils/swipe.js +45 -25
- package/dist/utils/useAnchoredPopup.d.ts +2 -1
- package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
- package/dist/utils/useAnchoredPopup.js +10 -5
- package/dist/utils/useHeightVar.d.ts +7 -0
- package/dist/utils/useHeightVar.d.ts.map +1 -0
- package/dist/utils/useHeightVar.js +17 -0
- package/dist/utils/useMediaPlayer.d.ts +38 -0
- package/dist/utils/useMediaPlayer.d.ts.map +1 -0
- package/dist/utils/useMediaPlayer.js +91 -0
- package/dist/utils/useMediaSession.d.ts +24 -0
- package/dist/utils/useMediaSession.d.ts.map +1 -0
- package/dist/utils/useMediaSession.js +76 -0
- package/dist/utils/useVirtualList.d.ts +6 -1
- package/dist/utils/useVirtualList.d.ts.map +1 -1
- package/dist/utils/useVirtualList.js +12 -12
- package/dist/zen.css +1 -1
- package/package.json +4 -2
package/dist/resizable/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { useMessages as e } from "../locale-provider/index.js";
|
|
3
|
+
import { cx as t } from "../utils/cx.js";
|
|
4
|
+
import { readingKey as n } from "../utils/direction.js";
|
|
5
|
+
import { useMergedRefs as r } from "../utils/refs.js";
|
|
6
6
|
import { createContext as i, useContext as a, useEffect as o, useId as s, useLayoutEffect as c, useRef as l, useState as u } from "react";
|
|
7
7
|
import { jsx as d } from "react/jsx-runtime";
|
|
8
8
|
//#region packages/resizable/index.tsx
|
|
@@ -13,8 +13,8 @@ function m(e) {
|
|
|
13
13
|
return t;
|
|
14
14
|
}
|
|
15
15
|
var h = "[data-zen-panel]", g = (e, t, n) => Math.min(n, Math.max(t, e));
|
|
16
|
-
function _({ orientation:
|
|
17
|
-
let s = l(null), c =
|
|
16
|
+
function _({ orientation: e = "horizontal", onLayout: n, ref: i, className: a, ...o }) {
|
|
17
|
+
let s = l(null), c = r(s, i), [m, _] = u({}), [v, y] = u({}), b = l(v), x = (e) => {
|
|
18
18
|
b.current = e, y(e);
|
|
19
19
|
}, [S, C] = u(!1), w = () => Array.from(s.current?.querySelectorAll(`:scope > ${h}`) ?? [], (e) => e.dataset.zenPanel);
|
|
20
20
|
f(() => {
|
|
@@ -25,7 +25,7 @@ function _({ orientation: t = "horizontal", onLayout: r, ref: i, className: a, .
|
|
|
25
25
|
x(a);
|
|
26
26
|
}, [m]);
|
|
27
27
|
let T = {
|
|
28
|
-
orientation:
|
|
28
|
+
orientation: e,
|
|
29
29
|
sizes: v,
|
|
30
30
|
specs: m,
|
|
31
31
|
register: (e, t) => (_((n) => ({
|
|
@@ -35,17 +35,17 @@ function _({ orientation: t = "horizontal", onLayout: r, ref: i, className: a, .
|
|
|
35
35
|
let { [e]: n, ...r } = t;
|
|
36
36
|
return r;
|
|
37
37
|
})),
|
|
38
|
-
resize: (e, t,
|
|
38
|
+
resize: (e, t, r) => {
|
|
39
39
|
let i = m[e], a = m[t];
|
|
40
40
|
if (!i || !a) return;
|
|
41
|
-
let o = b.current, s = o[e] + o[t], c = g(
|
|
41
|
+
let o = b.current, s = o[e] + o[t], c = g(r, Math.max(i.minSize, s - a.maxSize), Math.min(i.maxSize, s - a.minSize));
|
|
42
42
|
if (c === o[e]) return;
|
|
43
43
|
let l = {
|
|
44
44
|
...o,
|
|
45
45
|
[e]: c,
|
|
46
46
|
[t]: s - c
|
|
47
47
|
};
|
|
48
|
-
x(l),
|
|
48
|
+
x(l), n?.(w().map((e) => l[e]));
|
|
49
49
|
},
|
|
50
50
|
setDragging: C
|
|
51
51
|
};
|
|
@@ -54,25 +54,25 @@ function _({ orientation: t = "horizontal", onLayout: r, ref: i, className: a, .
|
|
|
54
54
|
children: /* @__PURE__ */ d("div", {
|
|
55
55
|
...o,
|
|
56
56
|
ref: c,
|
|
57
|
-
"data-orientation":
|
|
57
|
+
"data-orientation": e,
|
|
58
58
|
"data-dragging": S || void 0,
|
|
59
|
-
className:
|
|
59
|
+
className: t("zen__resizable flex size-full", e === "vertical" && "flex-col", S && "select-none", a)
|
|
60
60
|
})
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
function v({ defaultSize:
|
|
63
|
+
function v({ defaultSize: e, minSize: n = 0, maxSize: r = 100, id: i, className: a, style: o, ...c }) {
|
|
64
64
|
let l = m("ResizablePanel"), u = s(), p = i ?? u, { register: h } = l;
|
|
65
65
|
f(() => h(p, {
|
|
66
|
-
defaultSize:
|
|
66
|
+
defaultSize: e,
|
|
67
67
|
minSize: n,
|
|
68
68
|
maxSize: r
|
|
69
69
|
}), [
|
|
70
70
|
p,
|
|
71
|
-
|
|
71
|
+
e,
|
|
72
72
|
n,
|
|
73
73
|
r
|
|
74
74
|
]);
|
|
75
|
-
let g = l.sizes[p] ??
|
|
75
|
+
let g = l.sizes[p] ?? e ?? 1;
|
|
76
76
|
return /* @__PURE__ */ d("div", {
|
|
77
77
|
...c,
|
|
78
78
|
id: p,
|
|
@@ -81,12 +81,12 @@ function v({ defaultSize: t, minSize: n = 0, maxSize: r = 100, id: i, className:
|
|
|
81
81
|
flex: `${g} 1 0px`,
|
|
82
82
|
...o
|
|
83
83
|
},
|
|
84
|
-
className:
|
|
84
|
+
className: t("min-h-0 min-w-0 overflow-hidden", a)
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
var y = 5;
|
|
88
88
|
function b({ ref: i, className: a, onPointerDown: o, onKeyDown: s, ...c }) {
|
|
89
|
-
let p =
|
|
89
|
+
let p = e(), g = m("ResizableHandle"), _ = l(null), v = r(_, i), [b, x] = u(null), [S, C] = u(!1), w = g.orientation === "horizontal";
|
|
90
90
|
f(() => {
|
|
91
91
|
let e = _.current, t = e?.previousElementSibling?.closest(h)?.dataset.zenPanel, n = e?.nextElementSibling?.closest(h)?.dataset.zenPanel;
|
|
92
92
|
x((e) => !t || !n ? null : e?.[0] === t && e[1] === n ? e : [t, n]);
|
|
@@ -102,12 +102,12 @@ function b({ ref: i, className: a, onPointerDown: o, onKeyDown: s, ...c }) {
|
|
|
102
102
|
t.addEventListener("pointermove", c), t.addEventListener("pointerup", l), t.addEventListener("pointercancel", l);
|
|
103
103
|
}, A = (e) => {
|
|
104
104
|
if (s?.(e), e.defaultPrevented || !T || !E || D === void 0 || !O) return;
|
|
105
|
-
let
|
|
105
|
+
let t = w ? n(e.key, e.currentTarget) : e.key, r = {
|
|
106
106
|
[w ? "ArrowLeft" : "ArrowUp"]: D - y,
|
|
107
107
|
[w ? "ArrowRight" : "ArrowDown"]: D + y,
|
|
108
108
|
Home: O.minSize,
|
|
109
109
|
End: O.maxSize
|
|
110
|
-
}[
|
|
110
|
+
}[t];
|
|
111
111
|
r !== void 0 && (e.preventDefault(), g.resize(T, E, r));
|
|
112
112
|
};
|
|
113
113
|
return /* @__PURE__ */ d("div", {
|
|
@@ -124,10 +124,10 @@ function b({ ref: i, className: a, onPointerDown: o, onKeyDown: s, ...c }) {
|
|
|
124
124
|
"data-active": S || void 0,
|
|
125
125
|
onPointerDown: k,
|
|
126
126
|
onKeyDown: A,
|
|
127
|
-
className:
|
|
127
|
+
className: t("group/handle relative z-10 flex shrink-0 touch-none items-center justify-center outline-hidden", w ? "w-px cursor-col-resize before:absolute before:inset-y-0 before:-inset-x-2" : "h-px cursor-row-resize before:absolute before:inset-x-0 before:-inset-y-2", a),
|
|
128
128
|
children: /* @__PURE__ */ d("span", {
|
|
129
129
|
"aria-hidden": !0,
|
|
130
|
-
className:
|
|
130
|
+
className: t("bg-tint/[0.09] pointer-events-none absolute transition-[background-color,box-shadow,width,height] duration-200", w ? "inset-y-0 w-px" : "inset-x-0 h-px", "group-hover/handle:bg-primary/60 group-focus-visible/handle:bg-primary group-data-active/handle:bg-primary", "group-focus-visible/handle:shadow-[0_0_12px_oklch(var(--glow)/calc(0.8*var(--glow-k)))] group-data-active/handle:shadow-[0_0_12px_oklch(var(--glow)/calc(0.8*var(--glow-k)))]", w ? "group-focus-visible/handle:w-0.5 group-data-active/handle:w-0.5" : "group-focus-visible/handle:h-0.5 group-data-active/handle:h-0.5")
|
|
131
131
|
})
|
|
132
132
|
});
|
|
133
133
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SliderProps } from '../slider';
|
|
2
|
+
/**
|
|
3
|
+
* Where playback is in a track, and the way to move it: filled up to the
|
|
4
|
+
* current time, shaded on to what's loaded, between the time played and the
|
|
5
|
+
* length. While playing it glides, run by the browser's compositor between
|
|
6
|
+
* the player's time updates. While dragging, the time follows the thumb and
|
|
7
|
+
* the track keeps playing; letting go seeks. The arrow keys seek 5 seconds.
|
|
8
|
+
*/
|
|
9
|
+
export default function SeekBar({ currentTime, duration, buffered, playing, playbackRate, onSeek, times, onKeyDown, disabled, className, ...rest }: SeekBarProps): import('react').JSX.Element;
|
|
10
|
+
export interface SeekBarProps extends Omit<SliderProps, 'value' | 'defaultValue' | 'min' | 'max' | 'step' | 'onValueChange' | 'onValueCommit' | 'trackBackground'> {
|
|
11
|
+
/** Seconds played. */
|
|
12
|
+
currentTime: number;
|
|
13
|
+
/** Seconds long; 0 while unknown (the bar is disabled). */
|
|
14
|
+
duration: number;
|
|
15
|
+
/** Seconds loaded, shaded on the track past the time played. */
|
|
16
|
+
buffered?: number;
|
|
17
|
+
/** While the time is running (playing, not waiting for data): the bar glides on between time updates. */
|
|
18
|
+
playing?: boolean;
|
|
19
|
+
/** How fast it moves on while playing (default 1). */
|
|
20
|
+
playbackRate?: number;
|
|
21
|
+
/** When the user lets go, or steps with the keys: the time to play from. */
|
|
22
|
+
onSeek: (time: number) => void;
|
|
23
|
+
/** Where the time played and the length go: either side of the bar (default), or under its ends, as on a phone's Now Playing screen. */
|
|
24
|
+
times?: 'beside' | 'below';
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/seek-bar/index.tsx"],"names":[],"mappings":"AACA,OAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQlD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC5B,WAAW,EACX,QAAQ,EACR,QAAY,EACZ,OAAe,EACf,YAAgB,EAChB,MAAM,EACN,KAAgB,EAChB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACV,EAAE,YAAY,+BA8Hd;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CACtC,WAAW,EACX,OAAO,GAAG,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,iBAAiB,CAC5G;IACG,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yGAAyG;IACzG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,wIAAwI;IACxI,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC9B"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMessages as e } from "../locale-provider/index.js";
|
|
3
|
+
import { cx as t } from "../utils/cx.js";
|
|
4
|
+
import n from "../slider/index.js";
|
|
5
|
+
import { formatDuration as r } from "../utils/duration.js";
|
|
6
|
+
import { useLayoutEffect as i, useRef as a, useState as o } from "react";
|
|
7
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
8
|
+
//#region packages/seek-bar/index.tsx
|
|
9
|
+
var l = 5;
|
|
10
|
+
function u({ currentTime: u, duration: d, buffered: f = 0, playing: p = !1, playbackRate: m = 1, onSeek: h, times: g = "beside", onKeyDown: _, disabled: v, className: y, ...b }) {
|
|
11
|
+
let x = e(), [S, C] = o(null), [w, T] = o(null), E = w && w.from === u ? w.at : null, D = Math.max(0, Math.min(S ?? E ?? u, d)), O = a(null), k = a(null), A = p && S === null && E === null && d > 0 && D < d, j = a(null);
|
|
12
|
+
i(() => {
|
|
13
|
+
let e = [O.current, k.current].filter((e) => e !== null);
|
|
14
|
+
if (!e.length) return;
|
|
15
|
+
let t = j.current;
|
|
16
|
+
if (A && t && t.rate === m && t.duration === d) {
|
|
17
|
+
let e = Number(t.animations[0].currentTime ?? 0) / 1e3;
|
|
18
|
+
if (Math.abs(t.from + e * m - D) < .15) return;
|
|
19
|
+
}
|
|
20
|
+
t?.animations.forEach((e) => e.cancel()), j.current = null;
|
|
21
|
+
let n = getComputedStyle(e[0]).direction === "rtl" ? -1 : 1, r = (e) => `${d > 0 ? n * e * 100 / d : 0}cqw`;
|
|
22
|
+
for (let t of e) t.style.translate = r(D);
|
|
23
|
+
if (!A) return;
|
|
24
|
+
let i = e.map((e) => e.animate([{ translate: r(D) }, { translate: r(d) }], {
|
|
25
|
+
duration: (d - D) / m * 1e3,
|
|
26
|
+
easing: "linear",
|
|
27
|
+
fill: "forwards"
|
|
28
|
+
}));
|
|
29
|
+
j.current = {
|
|
30
|
+
animations: i,
|
|
31
|
+
from: D,
|
|
32
|
+
rate: m,
|
|
33
|
+
duration: d
|
|
34
|
+
};
|
|
35
|
+
}, [
|
|
36
|
+
D,
|
|
37
|
+
d,
|
|
38
|
+
A,
|
|
39
|
+
m
|
|
40
|
+
]), i(() => () => j.current?.animations.forEach((e) => e.cancel()), []);
|
|
41
|
+
let M = (e) => {
|
|
42
|
+
if (_?.(e), e.defaultPrevented) return;
|
|
43
|
+
let t = getComputedStyle(e.currentTarget).direction === "rtl", n = {
|
|
44
|
+
ArrowUp: 1,
|
|
45
|
+
ArrowDown: -1,
|
|
46
|
+
ArrowRight: t ? -1 : 1,
|
|
47
|
+
ArrowLeft: t ? 1 : -1
|
|
48
|
+
}[e.key];
|
|
49
|
+
if (!n) return;
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
let r = Math.max(0, Math.min(D + n * l, d));
|
|
52
|
+
T({
|
|
53
|
+
at: r,
|
|
54
|
+
from: u
|
|
55
|
+
}), h(r);
|
|
56
|
+
}, N = v || d <= 0, P = d > 0 ? Math.min(f, d) / d * 100 : 0, F = g === "below", I = F ? void 0 : { width: `${r(d).length}ch` };
|
|
57
|
+
return /* @__PURE__ */ c("div", {
|
|
58
|
+
"data-times": g,
|
|
59
|
+
className: t("zen__seek-bar flex items-center", F ? "flex-wrap justify-between gap-y-1" : "gap-3", y),
|
|
60
|
+
children: [
|
|
61
|
+
/* @__PURE__ */ s("span", {
|
|
62
|
+
className: t("text-muted-foreground shrink-0 text-xs tabular-nums", !F && "text-end"),
|
|
63
|
+
style: I,
|
|
64
|
+
children: r(D)
|
|
65
|
+
}),
|
|
66
|
+
/* @__PURE__ */ c("div", {
|
|
67
|
+
className: t("group relative h-5 min-w-0 flex-1", F && "order-first basis-full", N && "opacity-50"),
|
|
68
|
+
children: [
|
|
69
|
+
/* @__PURE__ */ s(n, {
|
|
70
|
+
"aria-label": x.seek,
|
|
71
|
+
min: 0,
|
|
72
|
+
max: d || 1,
|
|
73
|
+
step: "any",
|
|
74
|
+
value: D,
|
|
75
|
+
disabled: N,
|
|
76
|
+
valueText: () => x.timeOf(r(D), r(d)),
|
|
77
|
+
className: "absolute inset-0 z-10 h-full opacity-0",
|
|
78
|
+
onKeyDown: M,
|
|
79
|
+
onValueChange: C,
|
|
80
|
+
onValueCommit: (e) => {
|
|
81
|
+
C(null), T({
|
|
82
|
+
at: e,
|
|
83
|
+
from: u
|
|
84
|
+
}), h(e);
|
|
85
|
+
},
|
|
86
|
+
...b
|
|
87
|
+
}),
|
|
88
|
+
/* @__PURE__ */ c("div", {
|
|
89
|
+
"aria-hidden": !0,
|
|
90
|
+
className: "absolute inset-x-0 top-1/2 h-2.5 -translate-y-1/2 overflow-hidden rounded-full bg-[oklch(var(--muted))]",
|
|
91
|
+
children: [/* @__PURE__ */ s("div", {
|
|
92
|
+
className: "absolute inset-y-0 start-0 bg-[oklch(var(--tint)/0.22)] transition-[width] duration-300",
|
|
93
|
+
style: { width: `${P}%` }
|
|
94
|
+
}), /* @__PURE__ */ s("div", {
|
|
95
|
+
className: "[container-type:inline-size] absolute inset-x-2.5 inset-y-0",
|
|
96
|
+
children: /* @__PURE__ */ s("div", {
|
|
97
|
+
ref: O,
|
|
98
|
+
className: "bg-primary absolute inset-y-0 end-full w-[calc(100%+0.625rem)]"
|
|
99
|
+
})
|
|
100
|
+
})]
|
|
101
|
+
}),
|
|
102
|
+
/* @__PURE__ */ s("div", {
|
|
103
|
+
"aria-hidden": !0,
|
|
104
|
+
className: "[container-type:inline-size] pointer-events-none absolute inset-x-2.5 inset-y-0",
|
|
105
|
+
children: /* @__PURE__ */ s("div", {
|
|
106
|
+
ref: k,
|
|
107
|
+
className: "bg-primary group-has-[input:focus-visible]:ring-ring/40 absolute start-0 top-1/2 -ms-2.5 -mt-2.5 size-5 rounded-full border-2 border-white shadow-[0_0_0_1px_oklch(0_0_0/0.3),0_0_16px_oklch(var(--glow)/calc(0.8*var(--glow-k)))] group-has-[input:focus-visible]:ring-4"
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ s("span", {
|
|
113
|
+
className: "text-muted-foreground shrink-0 text-xs tabular-nums",
|
|
114
|
+
style: I,
|
|
115
|
+
children: r(d)
|
|
116
|
+
})
|
|
117
|
+
]
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
//#endregion
|
|
121
|
+
export { u as default };
|
|
@@ -5,11 +5,12 @@ import { ComponentProps, ReactNode } from 'react';
|
|
|
5
5
|
* selection slides between options, like Pills. Fill it with
|
|
6
6
|
* SegmentedItem (any content: text, icons, a disabled option).
|
|
7
7
|
*/
|
|
8
|
-
export default function Segmented<V extends string>({ label, value: valueProp, defaultValue, onValueChange, name, className, children, ...rest }: SegmentedProps<V>): import('react').JSX.Element;
|
|
8
|
+
export default function Segmented<V extends string>({ label, value: valueProp, defaultValue, onValueChange, name, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, className, children, ...rest }: SegmentedProps<V>): import('react').JSX.Element;
|
|
9
9
|
/** One option of a Segmented: a native radio covering whatever you put inside. */
|
|
10
10
|
export declare function SegmentedItem({ value, disabled, className, children }: SegmentedItemProps): import('react').JSX.Element;
|
|
11
11
|
export interface SegmentedProps<V extends string> extends Omit<ComponentProps<'div'>, 'defaultValue' | 'children'> {
|
|
12
|
-
label
|
|
12
|
+
/** Shown above the options, naming the group. Without it, give the group an aria-label or aria-labelledby. */
|
|
13
|
+
label?: ReactNode;
|
|
13
14
|
/** The chosen option, when you keep it. */
|
|
14
15
|
value?: V;
|
|
15
16
|
/** The first chosen option, when the control keeps its own. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/segmented/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAiB,SAAS,EAA6B,MAAM,OAAO,CAAC;AAY5F;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,EAChD,KAAK,EACL,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,aAAa,EACb,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACV,EAAE,cAAc,CAAC,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/segmented/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAiB,SAAS,EAA6B,MAAM,OAAO,CAAC;AAY5F;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,EAChD,KAAK,EACL,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,aAAa,EACb,IAAI,EACJ,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACV,EAAE,cAAc,CAAC,CAAC,CAAC,+BA2CnB;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,+BA4BzF;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC;IAC9G,8GAA8G;IAC9G,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,+DAA+D;IAC/D,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACnC,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,QAAQ,EAAE,SAAS,CAAC;CACvB"}
|
package/dist/segmented/index.js
CHANGED
|
@@ -6,36 +6,37 @@ import { createContext as r, useContext as i, useId as a, useRef as o } from "re
|
|
|
6
6
|
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
7
|
//#region packages/segmented/index.tsx
|
|
8
8
|
var l = r(null);
|
|
9
|
-
function u({ label: r, value: i, defaultValue: u, onValueChange: d, name: f,
|
|
10
|
-
let [
|
|
9
|
+
function u({ label: r, value: i, defaultValue: u, onValueChange: d, name: f, "aria-label": p, "aria-labelledby": m, className: h, children: g, ..._ }) {
|
|
10
|
+
let [v, y] = t(i, u, d), b = a(), x = o(null), S = n(x, "label:has(input:checked)", [v, g]);
|
|
11
11
|
return /* @__PURE__ */ c("div", {
|
|
12
|
-
className: e("zen__segmented flex flex-col gap-2",
|
|
13
|
-
...
|
|
14
|
-
children: [/* @__PURE__ */ s("span", {
|
|
15
|
-
id:
|
|
12
|
+
className: e("zen__segmented flex flex-col gap-2", h),
|
|
13
|
+
..._,
|
|
14
|
+
children: [r && /* @__PURE__ */ s("span", {
|
|
15
|
+
id: b,
|
|
16
16
|
className: "text-sm font-medium",
|
|
17
17
|
children: r
|
|
18
18
|
}), /* @__PURE__ */ c("div", {
|
|
19
|
-
ref:
|
|
19
|
+
ref: x,
|
|
20
20
|
role: "radiogroup",
|
|
21
|
-
"aria-
|
|
21
|
+
"aria-label": p,
|
|
22
|
+
"aria-labelledby": r ? b : m,
|
|
22
23
|
className: "glow-edge border-tint/10 bg-tint/[0.03] relative inline-flex w-fit flex-wrap gap-1 rounded-xl border p-1",
|
|
23
|
-
children: [
|
|
24
|
+
children: [S && /* @__PURE__ */ s("span", {
|
|
24
25
|
"aria-hidden": !0,
|
|
25
26
|
className: "zen__segmented-indicator bg-primary/15 ease-out-soft absolute top-0 left-0 rounded-lg shadow-[inset_0_0_0_1px_oklch(var(--primary)/0.4)] transition-[translate,width,height] duration-500",
|
|
26
27
|
style: {
|
|
27
|
-
translate: `${
|
|
28
|
-
width:
|
|
29
|
-
height:
|
|
28
|
+
translate: `${S.x}px ${S.y}px`,
|
|
29
|
+
width: S.w,
|
|
30
|
+
height: S.h
|
|
30
31
|
}
|
|
31
32
|
}), /* @__PURE__ */ s(l.Provider, {
|
|
32
33
|
value: {
|
|
33
|
-
name: f ??
|
|
34
|
-
value:
|
|
35
|
-
select:
|
|
36
|
-
measured:
|
|
34
|
+
name: f ?? b,
|
|
35
|
+
value: v,
|
|
36
|
+
select: y,
|
|
37
|
+
measured: S !== null
|
|
37
38
|
},
|
|
38
|
-
children:
|
|
39
|
+
children: g
|
|
39
40
|
})]
|
|
40
41
|
})]
|
|
41
42
|
});
|
|
@@ -44,7 +45,7 @@ function d({ value: t, disabled: n, className: r, children: a }) {
|
|
|
44
45
|
let o = i(l);
|
|
45
46
|
if (!o) throw Error("SegmentedItem must be inside a Segmented");
|
|
46
47
|
return /* @__PURE__ */ c("label", {
|
|
47
|
-
className: e("text-muted-foreground relative cursor-pointer rounded-lg px-3 py-1.5 text-sm transition-colors duration-300", "hover:text-foreground has-checked:text-foreground has-
|
|
48
|
+
className: e("text-muted-foreground relative inline-flex cursor-pointer items-center gap-1.5 rounded-lg px-3 py-1.5 text-sm transition-colors duration-300", "hover:text-foreground has-checked:text-foreground has-focus-ring", "has-disabled:hover:text-muted-foreground has-disabled:cursor-not-allowed has-disabled:opacity-50", !o.measured && "has-checked:bg-primary/15 has-checked:shadow-[inset_0_0_0_1px_oklch(var(--primary)/0.4)]", r),
|
|
48
49
|
children: [/* @__PURE__ */ s("input", {
|
|
49
50
|
type: "radio",
|
|
50
51
|
className: "absolute inset-0 z-10 m-0 size-full cursor-pointer appearance-none rounded-[inherit] opacity-0 disabled:cursor-not-allowed",
|
package/dist/select/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { useMessages as e } from "../locale-provider/index.js";
|
|
3
|
+
import { cx as t } from "../utils/cx.js";
|
|
4
|
+
import { useTypeahead as n } from "../utils/typeahead.js";
|
|
5
|
+
import { useControllable as r } from "../utils/useControllable.js";
|
|
6
|
+
import { useAnchoredPopup as i } from "../utils/useAnchoredPopup.js";
|
|
7
7
|
import { CheckIcon as a } from "../utils/status-icons.js";
|
|
8
8
|
import { useFieldProps as o } from "../field/index.js";
|
|
9
9
|
import { FIELD_SIZE as s, POPUP as c, TRIGGER as l } from "../utils/styles.js";
|
|
@@ -14,14 +14,14 @@ import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
|
14
14
|
//#region packages/select/index.tsx
|
|
15
15
|
var w = m(null);
|
|
16
16
|
function T({ value: a, defaultValue: f = null, onValueChange: p, placeholder: m, disabled: h = !1, size: g = "default", name: v, id: T, className: D, listClassName: O, children: k, style: A, onKeyDown: j, ...M }) {
|
|
17
|
-
let N =
|
|
17
|
+
let N = e(), P = m ?? N.selectPlaceholder, [F, I, L] = r(a, f, p), R = y(null), z = te(), B = T ?? z, ne = o({
|
|
18
18
|
...M,
|
|
19
19
|
id: T
|
|
20
|
-
}), [V, H] = b(null), U =
|
|
20
|
+
}), [V, H] = b(null), U = n(), [W, G] = b(/* @__PURE__ */ new Map()), K = () => Array.from(R.current?.querySelectorAll("[role=\"option\"]") ?? []).map((e) => ({
|
|
21
21
|
value: e.dataset.value,
|
|
22
22
|
label: e.dataset.label ?? "",
|
|
23
23
|
disabled: e.getAttribute("aria-disabled") === "true"
|
|
24
|
-
})), q =
|
|
24
|
+
})), q = i({
|
|
25
25
|
matchWidth: !0,
|
|
26
26
|
onOpenChange: (e) => {
|
|
27
27
|
if (!e) return;
|
|
@@ -82,9 +82,9 @@ function T({ value: a, defaultValue: f = null, onValueChange: p, placeholder: m,
|
|
|
82
82
|
onKeyDown: (e) => {
|
|
83
83
|
j?.(e), ["ArrowDown", "ArrowUp"].includes(e.key) && !q.open && (e.preventDefault(), q.setOpen(!0));
|
|
84
84
|
},
|
|
85
|
-
className:
|
|
85
|
+
className: t("zen__select group", l, s[g], "w-full", q.open && "border-glow/60 [--glow-border-color:transparent] shadow-glow-focus", D),
|
|
86
86
|
children: [/* @__PURE__ */ S("span", {
|
|
87
|
-
className:
|
|
87
|
+
className: t("truncate", Z === void 0 && "text-[color:oklch(var(--muted-foreground)/var(--zen-placeholder))]"),
|
|
88
88
|
children: Z ?? P
|
|
89
89
|
}), /* @__PURE__ */ S(d, { open: q.open })]
|
|
90
90
|
}),
|
|
@@ -95,7 +95,7 @@ function T({ value: a, defaultValue: f = null, onValueChange: p, placeholder: m,
|
|
|
95
95
|
}),
|
|
96
96
|
/* @__PURE__ */ S("div", {
|
|
97
97
|
...q.popupProps,
|
|
98
|
-
className:
|
|
98
|
+
className: t("zen__popover", c, "overflow-visible py-1", O),
|
|
99
99
|
children: /* @__PURE__ */ S("div", {
|
|
100
100
|
ref: R,
|
|
101
101
|
role: "listbox",
|
|
@@ -131,28 +131,28 @@ function E(e, t) {
|
|
|
131
131
|
});
|
|
132
132
|
}
|
|
133
133
|
var D = (e) => typeof e == "string" || typeof e == "number" ? String(e) : Array.isArray(e) ? e.map(D).join("") : "";
|
|
134
|
-
function O({ value:
|
|
134
|
+
function O({ value: e, label: n, disabled: r, className: i, children: o }) {
|
|
135
135
|
let s = g(w);
|
|
136
136
|
if (!s) throw Error("SelectItem must be inside a Select");
|
|
137
137
|
let c = y(null), l = n ?? D(o), u = s.register;
|
|
138
|
-
v(() => u(
|
|
138
|
+
v(() => u(e, l || c.current?.textContent?.trim() || ""), [
|
|
139
139
|
u,
|
|
140
|
-
|
|
140
|
+
e,
|
|
141
141
|
l
|
|
142
142
|
]);
|
|
143
|
-
let d = s.value ===
|
|
143
|
+
let d = s.value === e;
|
|
144
144
|
return /* @__PURE__ */ C("div", {
|
|
145
145
|
ref: c,
|
|
146
|
-
id: s.optionId(
|
|
146
|
+
id: s.optionId(e),
|
|
147
147
|
role: "option",
|
|
148
|
-
"data-value":
|
|
148
|
+
"data-value": e,
|
|
149
149
|
"data-label": l || void 0,
|
|
150
150
|
"aria-selected": d,
|
|
151
151
|
"aria-disabled": r || void 0,
|
|
152
|
-
"data-highlighted": s.active ===
|
|
153
|
-
onMouseMove: () => !r && s.setActive(
|
|
154
|
-
onClick: () => s.choose(
|
|
155
|
-
className:
|
|
152
|
+
"data-highlighted": s.active === e || void 0,
|
|
153
|
+
onMouseMove: () => !r && s.setActive(e),
|
|
154
|
+
onClick: () => s.choose(e),
|
|
155
|
+
className: t("grid cursor-pointer grid-cols-[1rem_1fr] items-center gap-2 px-3 py-2 text-sm outline-hidden select-none", "data-highlighted:bg-muted aria-disabled:cursor-not-allowed aria-disabled:opacity-50", i),
|
|
156
156
|
children: [/* @__PURE__ */ S("span", {
|
|
157
157
|
className: "text-primary col-start-1",
|
|
158
158
|
"aria-hidden": !0,
|
package/dist/slider/index.d.ts
CHANGED
|
@@ -15,7 +15,8 @@ export interface SliderProps extends Omit<ComponentProps<'input'>, 'type' | 'val
|
|
|
15
15
|
defaultValue?: number;
|
|
16
16
|
min?: number;
|
|
17
17
|
max?: number;
|
|
18
|
-
|
|
18
|
+
/** `'any'` for no snapping; the arrow keys then move by the browser's own amount. */
|
|
19
|
+
step?: number | 'any';
|
|
19
20
|
/** While dragging (every step). */
|
|
20
21
|
onValueChange?: (value: number) => void;
|
|
21
22
|
/** Once the user lets go: the moment to save. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/slider/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAoC,MAAM,OAAO,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC3B,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,GAAO,EACP,GAAS,EACT,IAAQ,EACR,aAAa,EACb,aAAa,EACb,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACV,EAAE,WAAW,+BAmDb;AAED,0EAA0E;AAC1E,eAAO,MAAM,KAAK,QAI+E,CAAC;AAElG,MAAM,WAAW,WAAY,SAAQ,IAAI,CACrC,cAAc,CAAC,OAAO,CAAC,EACvB,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,cAAc,CAC7D;IACG,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/slider/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAoC,MAAM,OAAO,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC3B,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,GAAO,EACP,GAAS,EACT,IAAQ,EACR,aAAa,EACb,aAAa,EACb,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACV,EAAE,WAAW,+BAmDb;AAED,0EAA0E;AAC1E,eAAO,MAAM,KAAK,QAI+E,CAAC;AAElG,MAAM,WAAW,WAAY,SAAQ,IAAI,CACrC,cAAc,CAAC,OAAO,CAAC,EACvB,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,cAAc,CAC7D;IACG,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,iDAAiD;IACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC"}
|
package/dist/sortable/index.d.ts
CHANGED
|
@@ -12,11 +12,23 @@ export { flattenTree, type SortableNode, type SortableRow } from './tree-model';
|
|
|
12
12
|
* With `asChild` (and `asChild` on the items), your own elements instead: a
|
|
13
13
|
* TableBody of TableRows, say, one per group, each sorted on its own.
|
|
14
14
|
*/
|
|
15
|
-
export declare function SortableList({ value, onValueChange, asChild, className, children, ref, ...rest }: SortableListProps): import('react').JSX.Element;
|
|
15
|
+
export declare function SortableList({ value, onValueChange, itemHeight, onLiftedChange, asChild, className, children, ref, ...rest }: SortableListProps): import('react').JSX.Element;
|
|
16
16
|
export interface SortableListProps extends ComponentProps<'ul'> {
|
|
17
17
|
/** The items' ids, in order. */
|
|
18
18
|
value: readonly string[];
|
|
19
19
|
onValueChange: (value: string[]) => void;
|
|
20
|
+
/**
|
|
21
|
+
* For a virtualized list (useVirtualList), its rows' height, gap included:
|
|
22
|
+
* render just the items in view, each placed at its place in `value` times
|
|
23
|
+
* this, and the drag works from `value` instead of the rows on screen.
|
|
24
|
+
*/
|
|
25
|
+
itemHeight?: number;
|
|
26
|
+
/**
|
|
27
|
+
* When an item is picked up (by its handle, or from the keyboard), and when it's
|
|
28
|
+
* put down (null). A virtualized list keeps that row rendered meanwhile
|
|
29
|
+
* (useVirtualList's `keep`), so it stays under the pointer as the list scrolls.
|
|
30
|
+
*/
|
|
31
|
+
onLiftedChange?: (id: string | null) => void;
|
|
20
32
|
/** Put the list's props on your own element (the single child, e.g. a TableBody) instead of a ul. */
|
|
21
33
|
asChild?: boolean;
|
|
22
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/sortable/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAA6E,MAAM,OAAO,CAAC;AAIlH,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/sortable/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAA6E,MAAM,OAAO,CAAC;AAIlH,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EACzB,KAAK,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,IAAI,EACV,EAAE,iBAAiB,+BAmKnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,IAAI,CAAC;IAC3D,gCAAgC;IAChC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,qGAAqG;IACrG,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB"}
|