@rinzai/zen 0.10.3 → 0.13.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/README.md +38 -8
- package/dist/accordion/index.d.ts +41 -0
- package/dist/accordion/index.d.ts.map +1 -0
- package/dist/accordion/index.js +81 -0
- package/dist/animated-number/index.d.ts +3 -2
- package/dist/animated-number/index.d.ts.map +1 -1
- package/dist/animated-number/index.js +40 -38
- package/dist/avatar/index.d.ts +8 -3
- package/dist/avatar/index.d.ts.map +1 -1
- package/dist/avatar/index.js +29 -21
- package/dist/backdrop/index.d.ts +4 -4
- package/dist/backdrop/index.d.ts.map +1 -1
- package/dist/backdrop/index.js +41 -39
- package/dist/badge/index.d.ts +4 -2
- package/dist/badge/index.d.ts.map +1 -1
- package/dist/badge/index.js +20 -11
- package/dist/base.css +4 -0
- package/dist/breadcrumbs/index.d.ts +1 -1
- package/dist/breadcrumbs/index.d.ts.map +1 -1
- package/dist/breadcrumbs/index.js +25 -24
- package/dist/button/index.d.ts +3 -3
- package/dist/button/index.d.ts.map +1 -1
- package/dist/button/index.js +16 -11
- package/dist/button-group/index.d.ts +13 -0
- package/dist/button-group/index.d.ts.map +1 -0
- package/dist/button-group/index.js +14 -0
- package/dist/calendar/index.d.ts +15 -8
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +97 -91
- package/dist/calendar-heatmap/index.d.ts +7 -5
- package/dist/calendar-heatmap/index.d.ts.map +1 -1
- package/dist/calendar-heatmap/index.js +32 -30
- package/dist/canvas/geometry.d.ts +51 -0
- package/dist/canvas/geometry.d.ts.map +1 -0
- package/dist/canvas/geometry.js +90 -0
- package/dist/canvas/index.d.ts +59 -0
- package/dist/canvas/index.d.ts.map +1 -0
- package/dist/canvas/index.js +305 -0
- package/dist/carousel/index.d.ts +27 -0
- package/dist/carousel/index.d.ts.map +1 -0
- package/dist/carousel/index.js +162 -0
- package/dist/chart/index.d.ts +5 -4
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart/index.js +137 -135
- package/dist/chart/palette.js +0 -1
- package/dist/checkbox/index.d.ts +3 -3
- package/dist/checkbox/index.d.ts.map +1 -1
- package/dist/checkbox/index.js +33 -30
- package/dist/chip/index.js +1 -1
- package/dist/code-block/index.d.ts.map +1 -1
- package/dist/code-block/index.js +27 -32
- package/dist/code-input/index.d.ts.map +1 -1
- package/dist/code-input/index.js +30 -24
- package/dist/collapse/index.d.ts +4 -3
- package/dist/collapse/index.d.ts.map +1 -1
- package/dist/collapse/index.js +42 -39
- package/dist/color-picker/index.d.ts +43 -0
- package/dist/color-picker/index.d.ts.map +1 -0
- package/dist/color-picker/index.js +221 -0
- package/dist/combobox/index.d.ts +14 -6
- package/dist/combobox/index.d.ts.map +1 -1
- package/dist/combobox/index.js +151 -139
- package/dist/command-palette/index.d.ts +4 -3
- package/dist/command-palette/index.d.ts.map +1 -1
- package/dist/command-palette/index.js +60 -57
- package/dist/confirm-dialog/index.d.ts +6 -7
- package/dist/confirm-dialog/index.d.ts.map +1 -1
- package/dist/confirm-dialog/index.js +20 -16
- package/dist/date-picker/index.d.ts +23 -14
- package/dist/date-picker/index.d.ts.map +1 -1
- package/dist/date-picker/index.js +109 -93
- package/dist/dialog/index.d.ts +3 -4
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +58 -55
- package/dist/disclosure/index.d.ts +8 -0
- package/dist/disclosure/index.d.ts.map +1 -1
- package/dist/disclosure/index.js +31 -32
- package/dist/editable-cell/index.d.ts +4 -5
- package/dist/editable-cell/index.d.ts.map +1 -1
- package/dist/editable-cell/index.js +23 -22
- package/dist/field/index.d.ts +8 -8
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +20 -18
- package/dist/filter-bar/index.d.ts +2 -2
- package/dist/filter-bar/index.d.ts.map +1 -1
- package/dist/filter-bar/index.js +38 -36
- package/dist/header/index.d.ts +1 -1
- package/dist/header/index.d.ts.map +1 -1
- package/dist/header/index.js +13 -11
- package/dist/hover-card/index.d.ts +32 -0
- package/dist/hover-card/index.d.ts.map +1 -0
- package/dist/hover-card/index.js +84 -0
- package/dist/icon-picker/index.d.ts +16 -5
- package/dist/icon-picker/index.d.ts.map +1 -1
- package/dist/icon-picker/index.js +42 -47
- package/dist/icons/micro/plus.d.ts +3 -0
- package/dist/icons/micro/plus.d.ts.map +1 -0
- package/dist/icons/micro/plus.js +17 -0
- package/dist/index.d.ts +41 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/input/index.d.ts +5 -1
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +10 -10
- package/dist/input-group/index.d.ts +4 -1
- package/dist/input-group/index.d.ts.map +1 -1
- package/dist/input-group/index.js +17 -17
- package/dist/keypad/index.d.ts +9 -7
- package/dist/keypad/index.d.ts.map +1 -1
- package/dist/keypad/index.js +22 -19
- package/dist/lib.js +112 -93
- package/dist/load-more/index.d.ts +4 -2
- package/dist/load-more/index.d.ts.map +1 -1
- package/dist/load-more/index.js +26 -23
- package/dist/locale-provider/index.d.ts +23 -0
- package/dist/locale-provider/index.d.ts.map +1 -0
- package/dist/locale-provider/index.js +35 -0
- package/dist/menu/index.d.ts +62 -9
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/index.js +371 -128
- package/dist/meter/index.d.ts +2 -2
- package/dist/meter/index.d.ts.map +1 -1
- package/dist/meter/index.js +4 -4
- package/dist/money-input/index.d.ts +20 -10
- package/dist/money-input/index.d.ts.map +1 -1
- package/dist/money-input/index.js +199 -190
- package/dist/month-picker/index.d.ts +17 -10
- package/dist/month-picker/index.d.ts.map +1 -1
- package/dist/month-picker/index.js +97 -86
- package/dist/navigation-menu/index.d.ts +42 -0
- package/dist/navigation-menu/index.d.ts.map +1 -0
- package/dist/navigation-menu/index.js +144 -0
- package/dist/number-field/index.d.ts +34 -0
- package/dist/number-field/index.d.ts.map +1 -0
- package/dist/number-field/index.js +119 -0
- package/dist/page-header/index.d.ts +4 -3
- package/dist/page-header/index.d.ts.map +1 -1
- package/dist/page-header/index.js +2 -1
- package/dist/pagination/index.d.ts +1 -1
- package/dist/pagination/index.d.ts.map +1 -1
- package/dist/pagination/index.js +35 -33
- package/dist/progress-ring/index.d.ts +4 -3
- package/dist/progress-ring/index.d.ts.map +1 -1
- package/dist/progress-ring/index.js +11 -10
- package/dist/radio-cards/index.d.ts +9 -5
- package/dist/radio-cards/index.d.ts.map +1 -1
- package/dist/radio-cards/index.js +26 -24
- package/dist/radio-group/index.d.ts +9 -8
- package/dist/radio-group/index.d.ts.map +1 -1
- package/dist/radio-group/index.js +35 -34
- package/dist/range-slider/index.d.ts +10 -4
- package/dist/range-slider/index.d.ts.map +1 -1
- package/dist/range-slider/index.js +43 -31
- package/dist/repeat-picker/index.d.ts +13 -6
- package/dist/repeat-picker/index.d.ts.map +1 -1
- package/dist/repeat-picker/index.js +74 -62
- package/dist/resizable/index.d.ts +29 -0
- package/dist/resizable/index.d.ts.map +1 -0
- package/dist/resizable/index.js +135 -0
- package/dist/segmented/index.d.ts +8 -5
- package/dist/segmented/index.d.ts.map +1 -1
- package/dist/segmented/index.js +36 -34
- package/dist/select/index.d.ts +9 -3
- package/dist/select/index.d.ts.map +1 -1
- package/dist/select/index.js +94 -91
- package/dist/separator/index.d.ts +14 -0
- package/dist/separator/index.d.ts.map +1 -0
- package/dist/separator/index.js +15 -0
- package/dist/side-nav/index.js +1 -1
- package/dist/skeleton/index.d.ts +4 -4
- package/dist/skeleton/index.d.ts.map +1 -1
- package/dist/skeleton/index.js +4 -3
- package/dist/slider/index.d.ts +6 -3
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/slider/index.js +29 -23
- package/dist/sortable/index.d.ts +10 -20
- package/dist/sortable/index.d.ts.map +1 -1
- package/dist/sortable/index.js +72 -134
- package/dist/sortable/shared.d.ts +56 -0
- package/dist/sortable/shared.d.ts.map +1 -0
- package/dist/sortable/shared.js +104 -0
- package/dist/sortable/tree-model.d.ts +46 -0
- package/dist/sortable/tree-model.d.ts.map +1 -0
- package/dist/sortable/tree-model.js +87 -0
- package/dist/sortable/tree.d.ts +31 -0
- package/dist/sortable/tree.d.ts.map +1 -0
- package/dist/sortable/tree.js +150 -0
- package/dist/sparkline/index.d.ts +1 -1
- package/dist/sparkline/index.d.ts.map +1 -1
- package/dist/sparkline/index.js +26 -25
- package/dist/spinner/index.d.ts +4 -3
- package/dist/spinner/index.d.ts.map +1 -1
- package/dist/spinner/index.js +2 -1
- package/dist/status-pill/index.d.ts.map +1 -1
- package/dist/status-pill/index.js +1 -1
- package/dist/stepper/index.d.ts +1 -1
- package/dist/stepper/index.d.ts.map +1 -1
- package/dist/stepper/index.js +31 -30
- package/dist/tab-bar/index.js +1 -1
- package/dist/table/index.d.ts +5 -5
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +66 -64
- package/dist/table/selection.d.ts +2 -2
- package/dist/table/selection.d.ts.map +1 -1
- package/dist/table/selection.js +41 -38
- package/dist/table/swipe.d.ts +1 -1
- package/dist/table/swipe.d.ts.map +1 -1
- package/dist/table/swipe.js +1 -1
- package/dist/table-of-contents/index.d.ts +4 -2
- package/dist/table-of-contents/index.d.ts.map +1 -1
- package/dist/table-of-contents/index.js +27 -25
- package/dist/tabs/index.d.ts.map +1 -1
- package/dist/tabs/index.js +90 -88
- package/dist/tag-input/index.d.ts +3 -1
- package/dist/tag-input/index.d.ts.map +1 -1
- package/dist/tag-input/index.js +61 -52
- package/dist/textarea/index.js +4 -4
- package/dist/theme-toggle/index.d.ts +9 -8
- package/dist/theme-toggle/index.d.ts.map +1 -1
- package/dist/theme-toggle/index.js +30 -28
- package/dist/theme.css +90 -12
- package/dist/time-field/index.d.ts +31 -0
- package/dist/time-field/index.d.ts.map +1 -0
- package/dist/time-field/index.js +175 -0
- package/dist/timeline/index.js +1 -1
- package/dist/toast/index.d.ts +1 -1
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +127 -125
- package/dist/toggle/index.d.ts +2 -2
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toggle/index.js +8 -6
- package/dist/toggle-group/index.d.ts +35 -0
- package/dist/toggle-group/index.d.ts.map +1 -0
- package/dist/toggle-group/index.js +53 -0
- package/dist/toolbar/index.d.ts +19 -0
- package/dist/toolbar/index.d.ts.map +1 -0
- package/dist/toolbar/index.js +36 -0
- package/dist/tooltip/index.d.ts.map +1 -1
- package/dist/tooltip/index.js +40 -74
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +105 -102
- package/dist/trend/index.d.ts +2 -2
- package/dist/trend/index.d.ts.map +1 -1
- package/dist/trend/index.js +20 -19
- package/dist/utils/color.d.ts +35 -0
- package/dist/utils/color.d.ts.map +1 -0
- package/dist/utils/color.js +65 -0
- package/dist/utils/cva.js +0 -1
- package/dist/utils/cx.js +0 -1
- package/dist/utils/date.d.ts +6 -0
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +1 -2
- package/dist/utils/direction.d.ts +7 -0
- package/dist/utils/direction.d.ts.map +1 -0
- package/dist/utils/direction.js +6 -0
- package/dist/utils/form-value.d.ts +15 -0
- package/dist/utils/form-value.d.ts.map +1 -0
- package/dist/utils/form-value.js +29 -0
- package/dist/utils/fx.js +0 -1
- package/dist/utils/merge.js +0 -1
- package/dist/utils/messages.d.ts +137 -0
- package/dist/utils/messages.d.ts.map +1 -0
- package/dist/utils/messages.js +133 -0
- package/dist/utils/money.js +0 -1
- package/dist/utils/month.js +0 -1
- package/dist/utils/motion.js +0 -1
- package/dist/utils/refs.d.ts +6 -0
- package/dist/utils/refs.d.ts.map +1 -0
- package/dist/utils/refs.js +13 -0
- package/dist/utils/repeat.d.ts +3 -1
- package/dist/utils/repeat.d.ts.map +1 -1
- package/dist/utils/repeat.js +28 -25
- package/dist/utils/roving.d.ts +17 -0
- package/dist/utils/roving.d.ts.map +1 -0
- package/dist/utils/roving.js +35 -0
- package/dist/utils/section-link.js +0 -1
- package/dist/utils/slot.d.ts.map +1 -1
- package/dist/utils/slot.js +7 -11
- package/dist/utils/status-icons.js +7 -7
- package/dist/utils/styles.d.ts +9 -2
- package/dist/utils/styles.d.ts.map +1 -1
- package/dist/utils/styles.js +6 -3
- package/dist/utils/theme-wave.d.ts.map +1 -1
- package/dist/utils/theme-wave.js +70 -70
- package/dist/utils/theme.d.ts.map +1 -1
- package/dist/utils/theme.js +56 -60
- package/dist/utils/useAnchoredPopup.d.ts +7 -4
- package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
- package/dist/utils/useAnchoredPopup.js +18 -11
- package/dist/utils/useControllable.d.ts +9 -0
- package/dist/utils/useControllable.d.ts.map +1 -0
- package/dist/utils/useControllable.js +15 -0
- package/dist/utils/useCopyToClipboard.d.ts +13 -0
- package/dist/utils/useCopyToClipboard.d.ts.map +1 -0
- package/dist/utils/useCopyToClipboard.js +26 -0
- package/dist/utils/useHoverPopup.d.ts +39 -0
- package/dist/utils/useHoverPopup.d.ts.map +1 -0
- package/dist/utils/useHoverPopup.js +64 -0
- package/dist/zen.css +1 -1
- package/package.json +1 -1
|
@@ -1,115 +1,127 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx as e } from "../utils/cx.js";
|
|
3
|
-
import t from "../
|
|
4
|
-
import n from "../
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
3
|
+
import { useControllable as t } from "../utils/useControllable.js";
|
|
4
|
+
import { useLocale as n, useMessages as r } from "../locale-provider/index.js";
|
|
5
|
+
import i from "../input/index.js";
|
|
6
|
+
import { FormValue as a } from "../utils/form-value.js";
|
|
7
|
+
import o from "../chip/index.js";
|
|
8
|
+
import { dayOfWeek as s, formatDate as c, weekStart as l, weekdayNames as u } from "../utils/date.js";
|
|
9
|
+
import d, { SelectItem as f } from "../select/index.js";
|
|
10
|
+
import { describeRepeat as p, nextOccurrences as m } from "../utils/repeat.js";
|
|
11
|
+
import { useState as h } from "react";
|
|
12
|
+
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
10
13
|
//#region packages/repeat-picker/index.tsx
|
|
11
|
-
var
|
|
14
|
+
var y = [
|
|
12
15
|
"day",
|
|
13
16
|
"week",
|
|
14
17
|
"month",
|
|
15
18
|
"year"
|
|
16
19
|
];
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
function b({ value: b, defaultValue: x = {
|
|
21
|
+
every: 1,
|
|
22
|
+
unit: "month"
|
|
23
|
+
}, onValueChange: S, locale: C, start: w, weekStartsOn: T, label: E, name: D, className: O, ...k }) {
|
|
24
|
+
let A = r(), j = E ?? A.repeats, M = n(C), N = T ?? l(M), [P, F, I] = t(b, x, S), [L, R] = h(String(P.every));
|
|
25
|
+
Number(L) !== P.every && L !== "" && R(String(P.every));
|
|
26
|
+
let z = u(M), B = Array.from({ length: 7 }, (e, t) => (N + t) % 7), V = P.weekdays ?? (w ? [s(w)] : []), H = P.every !== 1, U = (e) => {
|
|
27
|
+
let t = {
|
|
28
|
+
every: P.every,
|
|
29
|
+
unit: e
|
|
30
|
+
};
|
|
31
|
+
e === "week" && w && (t.weekdays = [s(w)]), e === "month" && (t.day = w ? Number(w.slice(8)) : 1), F(t);
|
|
32
|
+
};
|
|
33
|
+
return /* @__PURE__ */ v("fieldset", {
|
|
34
|
+
className: e("zen__repeat-picker flex flex-col gap-3", O),
|
|
35
|
+
...k,
|
|
23
36
|
children: [
|
|
24
|
-
/* @__PURE__ */
|
|
37
|
+
/* @__PURE__ */ _(a, {
|
|
38
|
+
name: D,
|
|
39
|
+
value: JSON.stringify(P),
|
|
40
|
+
onReset: I
|
|
41
|
+
}),
|
|
42
|
+
/* @__PURE__ */ _("legend", {
|
|
25
43
|
className: "sr-only",
|
|
26
|
-
children:
|
|
44
|
+
children: j
|
|
27
45
|
}),
|
|
28
|
-
/* @__PURE__ */
|
|
46
|
+
/* @__PURE__ */ v("div", {
|
|
29
47
|
className: "flex items-center gap-2 text-sm",
|
|
30
48
|
children: [
|
|
31
|
-
/* @__PURE__ */
|
|
49
|
+
/* @__PURE__ */ _("span", {
|
|
32
50
|
className: "text-muted-foreground",
|
|
33
|
-
children:
|
|
51
|
+
children: A.every
|
|
34
52
|
}),
|
|
35
|
-
/* @__PURE__ */
|
|
36
|
-
"aria-label":
|
|
53
|
+
/* @__PURE__ */ _(i, {
|
|
54
|
+
"aria-label": A.howMany,
|
|
37
55
|
inputMode: "numeric",
|
|
38
|
-
value:
|
|
56
|
+
value: L,
|
|
39
57
|
onChange: (e) => {
|
|
40
58
|
let t = e.target.value.replace(/\D/g, "").slice(0, 3);
|
|
41
|
-
|
|
42
|
-
...
|
|
59
|
+
R(t), Number(t) >= 1 && F({
|
|
60
|
+
...P,
|
|
43
61
|
every: Number(t)
|
|
44
62
|
});
|
|
45
63
|
},
|
|
46
|
-
onBlur: () =>
|
|
64
|
+
onBlur: () => R(String(P.every)),
|
|
47
65
|
className: "w-16 text-center tabular-nums"
|
|
48
66
|
}),
|
|
49
|
-
/* @__PURE__ */
|
|
50
|
-
"aria-label":
|
|
51
|
-
value:
|
|
52
|
-
|
|
53
|
-
let t = {
|
|
54
|
-
every: g.every,
|
|
55
|
-
unit: e
|
|
56
|
-
};
|
|
57
|
-
e === "week" && y && (t.weekdays = [r(y)]), e === "month" && (t.day = y ? Number(y.slice(8)) : 1), _(t);
|
|
58
|
-
},
|
|
67
|
+
/* @__PURE__ */ _(d, {
|
|
68
|
+
"aria-label": A.unit,
|
|
69
|
+
value: P.unit,
|
|
70
|
+
onValueChange: U,
|
|
59
71
|
className: "w-32",
|
|
60
|
-
children:
|
|
72
|
+
children: y.map((e) => /* @__PURE__ */ _(f, {
|
|
61
73
|
value: e,
|
|
62
|
-
children:
|
|
74
|
+
children: A.repeatUnit(e, H ? 2 : 1)
|
|
63
75
|
}, e))
|
|
64
76
|
})
|
|
65
77
|
]
|
|
66
78
|
}),
|
|
67
|
-
|
|
79
|
+
P.unit === "week" && /* @__PURE__ */ _("div", {
|
|
68
80
|
role: "group",
|
|
69
|
-
"aria-label":
|
|
81
|
+
"aria-label": A.on,
|
|
70
82
|
className: "flex flex-wrap gap-1.5",
|
|
71
|
-
children:
|
|
72
|
-
let
|
|
73
|
-
return /* @__PURE__ */
|
|
74
|
-
pressed:
|
|
83
|
+
children: B.map((e) => {
|
|
84
|
+
let t = V.includes(e);
|
|
85
|
+
return /* @__PURE__ */ _(o, {
|
|
86
|
+
pressed: t,
|
|
75
87
|
onClick: () => {
|
|
76
|
-
|
|
77
|
-
...
|
|
78
|
-
weekdays:
|
|
88
|
+
t && V.length === 1 || F({
|
|
89
|
+
...P,
|
|
90
|
+
weekdays: t ? V.filter((t) => t !== e) : [...V, e]
|
|
79
91
|
});
|
|
80
92
|
},
|
|
81
|
-
children:
|
|
93
|
+
children: z[e]
|
|
82
94
|
}, e);
|
|
83
95
|
})
|
|
84
96
|
}),
|
|
85
|
-
|
|
86
|
-
"aria-label":
|
|
87
|
-
value: String(
|
|
88
|
-
|
|
89
|
-
...
|
|
97
|
+
P.unit === "month" && /* @__PURE__ */ v(d, {
|
|
98
|
+
"aria-label": A.on,
|
|
99
|
+
value: String(P.day ?? (w ? Number(w.slice(8)) : 1)),
|
|
100
|
+
onValueChange: (e) => F({
|
|
101
|
+
...P,
|
|
90
102
|
day: Number(e)
|
|
91
103
|
}),
|
|
92
104
|
className: "w-40",
|
|
93
|
-
children: [Array.from({ length: 31 }, (e, t) => /* @__PURE__ */
|
|
105
|
+
children: [Array.from({ length: 31 }, (e, t) => /* @__PURE__ */ _(f, {
|
|
94
106
|
value: String(t + 1),
|
|
95
|
-
children:
|
|
96
|
-
}, t + 1)), /* @__PURE__ */
|
|
107
|
+
children: A.day(t + 1)
|
|
108
|
+
}, t + 1)), /* @__PURE__ */ _(f, {
|
|
97
109
|
value: "-1",
|
|
98
|
-
children:
|
|
110
|
+
children: A.lastDay
|
|
99
111
|
})]
|
|
100
112
|
}),
|
|
101
|
-
/* @__PURE__ */
|
|
113
|
+
/* @__PURE__ */ v("p", {
|
|
102
114
|
"aria-live": "polite",
|
|
103
115
|
className: "text-muted-foreground text-sm",
|
|
104
|
-
children: [
|
|
105
|
-
/* @__PURE__ */
|
|
106
|
-
|
|
116
|
+
children: [p(P, M, w, A), w && /* @__PURE__ */ v(g, { children: [
|
|
117
|
+
/* @__PURE__ */ _("br", {}),
|
|
118
|
+
A.next,
|
|
107
119
|
" ",
|
|
108
|
-
|
|
120
|
+
m(P, w, 3).map((e) => c(e, M)).join(", ")
|
|
109
121
|
] })]
|
|
110
122
|
})
|
|
111
123
|
]
|
|
112
124
|
});
|
|
113
125
|
}
|
|
114
126
|
//#endregion
|
|
115
|
-
export {
|
|
127
|
+
export { b as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Panels side by side (or stacked, `orientation="vertical"`) with handles
|
|
4
|
+
* between them to drag, or to focus and move with the arrow keys. Sizes are
|
|
5
|
+
* percentages of the group; `onLayout` reports them all after each change,
|
|
6
|
+
* e.g. to keep for next time as the panels' `defaultSize`. Groups nest.
|
|
7
|
+
*/
|
|
8
|
+
export default function ResizablePanelGroup({ orientation, onLayout, ref, className, ...rest }: ResizablePanelGroupProps): import('react').JSX.Element;
|
|
9
|
+
/** One panel: `defaultSize` is a percentage of the group (those without one share what's left); `minSize` and `maxSize` bound it. */
|
|
10
|
+
export declare function ResizablePanel({ defaultSize, minSize, maxSize, id: idProp, className, style, ...rest }: ResizablePanelProps): import('react').JSX.Element;
|
|
11
|
+
/**
|
|
12
|
+
* The boundary between two panels: a hairline that lights up while it's
|
|
13
|
+
* dragged, hovered or focused, with a wider grip than it looks. Arrow keys move
|
|
14
|
+
* it, Home and End take the panel before it to its smallest and largest.
|
|
15
|
+
*/
|
|
16
|
+
export declare function ResizableHandle({ ref: refProp, className, onPointerDown, onKeyDown, ...rest }: ComponentProps<'div'>): import('react').JSX.Element;
|
|
17
|
+
export interface ResizablePanelGroupProps extends ComponentProps<'div'> {
|
|
18
|
+
/** Side by side (default), or stacked. */
|
|
19
|
+
orientation?: 'horizontal' | 'vertical';
|
|
20
|
+
/** Every panel's size, in percent and in order, after each change. */
|
|
21
|
+
onLayout?: (sizes: number[]) => void;
|
|
22
|
+
}
|
|
23
|
+
export interface ResizablePanelProps extends ComponentProps<'div'> {
|
|
24
|
+
/** Its share of the group, in percent. */
|
|
25
|
+
defaultSize?: number;
|
|
26
|
+
minSize?: number;
|
|
27
|
+
maxSize?: number;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/resizable/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,cAAc,EAUjB,MAAM,OAAO,CAAC;AA+Bf;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EACxC,WAA0B,EAC1B,QAAQ,EACR,GAAG,EACH,SAAS,EACT,GAAG,IAAI,EACV,EAAE,wBAAwB,+BAyE1B;AAED,qIAAqI;AACrI,wBAAgB,cAAc,CAAC,EAC3B,WAAW,EACX,OAAW,EACX,OAAa,EACb,EAAE,EAAE,MAAM,EACV,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,EAAE,mBAAmB,+BAiBrB;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BA0GpH;AAED,MAAM,WAAW,wBAAyB,SAAQ,cAAc,CAAC,KAAK,CAAC;IACnE,0CAA0C;IAC1C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC9D,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import { readingKey as t } from "../utils/direction.js";
|
|
4
|
+
import { useMergedRefs as n } from "../utils/refs.js";
|
|
5
|
+
import { useMessages as r } from "../locale-provider/index.js";
|
|
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
|
+
import { jsx as d } from "react/jsx-runtime";
|
|
8
|
+
//#region packages/resizable/index.tsx
|
|
9
|
+
var f = typeof window > "u" ? o : c, p = i(null);
|
|
10
|
+
function m(e) {
|
|
11
|
+
let t = a(p);
|
|
12
|
+
if (!t) throw Error(`<${e}> must be inside <ResizablePanelGroup>`);
|
|
13
|
+
return t;
|
|
14
|
+
}
|
|
15
|
+
var h = "[data-zen-panel]", g = (e, t, n) => Math.min(n, Math.max(t, e));
|
|
16
|
+
function _({ orientation: t = "horizontal", onLayout: r, ref: i, className: a, ...o }) {
|
|
17
|
+
let s = l(null), c = n(s, i), [m, _] = u({}), [v, y] = u({}), b = l(v), x = (e) => {
|
|
18
|
+
b.current = e, y(e);
|
|
19
|
+
}, [S, C] = u(!1), w = () => Array.from(s.current?.querySelectorAll(`:scope > ${h}`) ?? [], (e) => e.dataset.zenPanel);
|
|
20
|
+
f(() => {
|
|
21
|
+
let e = w();
|
|
22
|
+
if (e.some((e) => !m[e])) return;
|
|
23
|
+
let t = (e) => b.current[e] ?? m[e]?.defaultSize, n = e.filter((e) => t(e) === void 0), r = e.reduce((e, n) => e + (t(n) ?? 0), 0), i = n.length ? Math.max(0, 100 - r) / n.length : 0, a = Object.fromEntries(e.map((e) => [e, t(e) ?? i])), o = e.reduce((e, t) => e + a[t], 0) || 1;
|
|
24
|
+
for (let t of e) a[t] = a[t] * 100 / o;
|
|
25
|
+
x(a);
|
|
26
|
+
}, [m]);
|
|
27
|
+
let T = {
|
|
28
|
+
orientation: t,
|
|
29
|
+
sizes: v,
|
|
30
|
+
specs: m,
|
|
31
|
+
register: (e, t) => (_((n) => ({
|
|
32
|
+
...n,
|
|
33
|
+
[e]: t
|
|
34
|
+
})), () => _((t) => {
|
|
35
|
+
let { [e]: n, ...r } = t;
|
|
36
|
+
return r;
|
|
37
|
+
})),
|
|
38
|
+
resize: (e, t, n) => {
|
|
39
|
+
let i = m[e], a = m[t];
|
|
40
|
+
if (!i || !a) return;
|
|
41
|
+
let o = b.current, s = o[e] + o[t], c = g(n, Math.max(i.minSize, s - a.maxSize), Math.min(i.maxSize, s - a.minSize));
|
|
42
|
+
if (c === o[e]) return;
|
|
43
|
+
let l = {
|
|
44
|
+
...o,
|
|
45
|
+
[e]: c,
|
|
46
|
+
[t]: s - c
|
|
47
|
+
};
|
|
48
|
+
x(l), r?.(w().map((e) => l[e]));
|
|
49
|
+
},
|
|
50
|
+
setDragging: C
|
|
51
|
+
};
|
|
52
|
+
return /* @__PURE__ */ d(p.Provider, {
|
|
53
|
+
value: T,
|
|
54
|
+
children: /* @__PURE__ */ d("div", {
|
|
55
|
+
...o,
|
|
56
|
+
ref: c,
|
|
57
|
+
"data-orientation": t,
|
|
58
|
+
"data-dragging": S || void 0,
|
|
59
|
+
className: e("zen__resizable flex size-full", t === "vertical" && "flex-col", S && "select-none", a)
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function v({ defaultSize: t, minSize: n = 0, maxSize: r = 100, id: i, className: a, style: o, ...c }) {
|
|
64
|
+
let l = m("ResizablePanel"), u = s(), p = i ?? u, { register: h } = l;
|
|
65
|
+
f(() => h(p, {
|
|
66
|
+
defaultSize: t,
|
|
67
|
+
minSize: n,
|
|
68
|
+
maxSize: r
|
|
69
|
+
}), [
|
|
70
|
+
p,
|
|
71
|
+
t,
|
|
72
|
+
n,
|
|
73
|
+
r
|
|
74
|
+
]);
|
|
75
|
+
let g = l.sizes[p] ?? t ?? 1;
|
|
76
|
+
return /* @__PURE__ */ d("div", {
|
|
77
|
+
...c,
|
|
78
|
+
id: p,
|
|
79
|
+
"data-zen-panel": p,
|
|
80
|
+
style: {
|
|
81
|
+
flex: `${g} 1 0px`,
|
|
82
|
+
...o
|
|
83
|
+
},
|
|
84
|
+
className: e("min-h-0 min-w-0 overflow-hidden", a)
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
var y = 5;
|
|
88
|
+
function b({ ref: i, className: a, onPointerDown: o, onKeyDown: s, ...c }) {
|
|
89
|
+
let p = r(), g = m("ResizableHandle"), _ = l(null), v = n(_, i), [b, x] = u(null), [S, C] = u(!1), w = g.orientation === "horizontal";
|
|
90
|
+
f(() => {
|
|
91
|
+
let e = _.current, t = e?.previousElementSibling?.closest(h)?.dataset.zenPanel, n = e?.nextElementSibling?.closest(h)?.dataset.zenPanel;
|
|
92
|
+
x((e) => !t || !n ? null : e?.[0] === t && e[1] === n ? e : [t, n]);
|
|
93
|
+
});
|
|
94
|
+
let [T, E] = b ?? [], D = T ? g.sizes[T] : void 0, O = T ? g.specs[T] : void 0, k = (e) => {
|
|
95
|
+
if (o?.(e), e.defaultPrevented || e.button !== 0 || !T || !E || D === void 0) return;
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
let t = e.currentTarget, [n, r] = [t.previousElementSibling, t.nextElementSibling], i = (D + g.sizes[E]) / ((w ? n.offsetWidth + r.offsetWidth : n.offsetHeight + r.offsetHeight) || 1), a = w && getComputedStyle(t).direction === "rtl" ? -1 : 1, s = w ? e.clientX : e.clientY;
|
|
98
|
+
t.setPointerCapture(e.pointerId), t.focus({ preventScroll: !0 }), C(!0), g.setDragging(!0);
|
|
99
|
+
let c = (e) => g.resize(T, E, D + ((w ? e.clientX : e.clientY) - s) * i * a), l = () => {
|
|
100
|
+
C(!1), g.setDragging(!1), t.removeEventListener("pointermove", c), t.removeEventListener("pointerup", l), t.removeEventListener("pointercancel", l);
|
|
101
|
+
};
|
|
102
|
+
t.addEventListener("pointermove", c), t.addEventListener("pointerup", l), t.addEventListener("pointercancel", l);
|
|
103
|
+
}, A = (e) => {
|
|
104
|
+
if (s?.(e), e.defaultPrevented || !T || !E || D === void 0 || !O) return;
|
|
105
|
+
let n = w ? t(e.key, e.currentTarget) : e.key, r = {
|
|
106
|
+
[w ? "ArrowLeft" : "ArrowUp"]: D - y,
|
|
107
|
+
[w ? "ArrowRight" : "ArrowDown"]: D + y,
|
|
108
|
+
Home: O.minSize,
|
|
109
|
+
End: O.maxSize
|
|
110
|
+
}[n];
|
|
111
|
+
r !== void 0 && (e.preventDefault(), g.resize(T, E, r));
|
|
112
|
+
};
|
|
113
|
+
return /* @__PURE__ */ d("div", {
|
|
114
|
+
role: "separator",
|
|
115
|
+
"aria-label": p.resize,
|
|
116
|
+
tabIndex: 0,
|
|
117
|
+
...c,
|
|
118
|
+
ref: v,
|
|
119
|
+
"aria-orientation": w ? "vertical" : "horizontal",
|
|
120
|
+
"aria-controls": T,
|
|
121
|
+
"aria-valuenow": D === void 0 ? void 0 : Math.round(D),
|
|
122
|
+
"aria-valuemin": O?.minSize,
|
|
123
|
+
"aria-valuemax": O?.maxSize,
|
|
124
|
+
"data-active": S || void 0,
|
|
125
|
+
onPointerDown: k,
|
|
126
|
+
onKeyDown: A,
|
|
127
|
+
className: e("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
|
+
children: /* @__PURE__ */ d("span", {
|
|
129
|
+
"aria-hidden": !0,
|
|
130
|
+
className: e("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
|
+
})
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//#endregion
|
|
135
|
+
export { b as ResizableHandle, v as ResizablePanel, _ as default };
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* A small set of mutually exclusive options, shown as a pill row. Native radio
|
|
4
4
|
* inputs underneath, so arrow keys and forms work as for any radio group. The
|
|
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,
|
|
8
|
+
export default function Segmented<V extends string>({ label, value: valueProp, defaultValue, onValueChange, name, 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
|
-
export interface SegmentedProps<V extends string> {
|
|
11
|
+
export interface SegmentedProps<V extends string> extends Omit<ComponentProps<'div'>, 'defaultValue' | 'children'> {
|
|
12
12
|
label: string;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/** The chosen option, when you keep it. */
|
|
14
|
+
value?: V;
|
|
15
|
+
/** The first chosen option, when the control keeps its own. */
|
|
16
|
+
defaultValue?: V;
|
|
17
|
+
onValueChange?: (value: V) => void;
|
|
15
18
|
/** Form field name; defaults to a generated one. */
|
|
16
19
|
name?: string;
|
|
17
20
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/segmented/index.tsx"],"names":[],"mappings":"
|
|
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,+BAwCnB;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,KAAK,EAAE,MAAM,CAAC;IACd,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
|
@@ -1,58 +1,60 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx as e } from "../utils/cx.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { useControllable as t } from "../utils/useControllable.js";
|
|
4
|
+
import { useIndicator as n } from "../utils/indicator.js";
|
|
5
|
+
import { createContext as r, useContext as i, useId as a, useRef as o } from "react";
|
|
6
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
6
7
|
//#region packages/segmented/index.tsx
|
|
7
|
-
var
|
|
8
|
-
function
|
|
9
|
-
let
|
|
10
|
-
return /* @__PURE__ */
|
|
11
|
-
className: e("zen__segmented flex flex-col gap-2",
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
var l = r(null);
|
|
9
|
+
function u({ label: r, value: i, defaultValue: u, onValueChange: d, name: f, className: p, children: m, ...h }) {
|
|
10
|
+
let [g, _] = t(i, u, d), v = a(), y = o(null), b = n(y, "label:has(input:checked)", [g, m]);
|
|
11
|
+
return /* @__PURE__ */ c("div", {
|
|
12
|
+
className: e("zen__segmented flex flex-col gap-2", p),
|
|
13
|
+
...h,
|
|
14
|
+
children: [/* @__PURE__ */ s("span", {
|
|
15
|
+
id: v,
|
|
14
16
|
className: "text-sm font-medium",
|
|
15
|
-
children:
|
|
16
|
-
}), /* @__PURE__ */
|
|
17
|
-
ref:
|
|
17
|
+
children: r
|
|
18
|
+
}), /* @__PURE__ */ c("div", {
|
|
19
|
+
ref: y,
|
|
18
20
|
role: "radiogroup",
|
|
19
|
-
"aria-labelledby":
|
|
21
|
+
"aria-labelledby": v,
|
|
20
22
|
className: "glow-edge border-tint/10 bg-tint/[0.03] relative inline-flex w-fit flex-wrap gap-1 rounded-xl border p-1",
|
|
21
|
-
children: [
|
|
23
|
+
children: [b && /* @__PURE__ */ s("span", {
|
|
22
24
|
"aria-hidden": !0,
|
|
23
25
|
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",
|
|
24
26
|
style: {
|
|
25
|
-
translate: `${
|
|
26
|
-
width:
|
|
27
|
-
height:
|
|
27
|
+
translate: `${b.x}px ${b.y}px`,
|
|
28
|
+
width: b.w,
|
|
29
|
+
height: b.h
|
|
28
30
|
}
|
|
29
|
-
}), /* @__PURE__ */
|
|
31
|
+
}), /* @__PURE__ */ s(l.Provider, {
|
|
30
32
|
value: {
|
|
31
|
-
name:
|
|
32
|
-
value:
|
|
33
|
-
|
|
34
|
-
measured:
|
|
33
|
+
name: f ?? v,
|
|
34
|
+
value: g,
|
|
35
|
+
select: _,
|
|
36
|
+
measured: b !== null
|
|
35
37
|
},
|
|
36
|
-
children:
|
|
38
|
+
children: m
|
|
37
39
|
})]
|
|
38
40
|
})]
|
|
39
41
|
});
|
|
40
42
|
}
|
|
41
|
-
function
|
|
42
|
-
let
|
|
43
|
-
if (!
|
|
44
|
-
return /* @__PURE__ */
|
|
45
|
-
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-
|
|
46
|
-
children: [/* @__PURE__ */
|
|
43
|
+
function d({ value: t, disabled: n, className: r, children: a }) {
|
|
44
|
+
let o = i(l);
|
|
45
|
+
if (!o) throw Error("SegmentedItem must be inside a Segmented");
|
|
46
|
+
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- 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
|
+
children: [/* @__PURE__ */ s("input", {
|
|
47
49
|
type: "radio",
|
|
48
50
|
className: "absolute inset-0 z-10 m-0 size-full cursor-pointer appearance-none rounded-[inherit] opacity-0 disabled:cursor-not-allowed",
|
|
49
|
-
name:
|
|
51
|
+
name: o.name,
|
|
50
52
|
value: t,
|
|
51
|
-
checked:
|
|
53
|
+
checked: o.value === t,
|
|
52
54
|
disabled: n,
|
|
53
|
-
onChange: () =>
|
|
55
|
+
onChange: () => o.select(t)
|
|
54
56
|
}), a]
|
|
55
57
|
});
|
|
56
58
|
}
|
|
57
59
|
//#endregion
|
|
58
|
-
export {
|
|
60
|
+
export { d as SegmentedItem, u as default };
|
package/dist/select/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FieldSize } from '../utils/styles';
|
|
1
2
|
import { ComponentProps, ReactNode } from 'react';
|
|
2
3
|
/**
|
|
3
4
|
* Pick one value from a short list: a field-styled button that opens a list
|
|
@@ -5,7 +6,7 @@ import { ComponentProps, ReactNode } from 'react';
|
|
|
5
6
|
* to close. Fill it with SelectItem, organised with SelectGroup and
|
|
6
7
|
* SelectSeparator. For long or searchable lists, use Combobox.
|
|
7
8
|
*/
|
|
8
|
-
export default function Select<V extends string>({ value,
|
|
9
|
+
export default function Select<V extends string>({ value: valueProp, defaultValue, onValueChange, placeholder: placeholderProp, disabled, size, name, id, className, listClassName, children, style, onKeyDown, ...rest }: SelectProps<V>): import('react').JSX.Element;
|
|
9
10
|
/**
|
|
10
11
|
* One choice in a Select. Its `label` (or its text, when that's all it holds)
|
|
11
12
|
* shows in the field once chosen and is matched when typing to jump.
|
|
@@ -20,11 +21,16 @@ export declare function SelectGroup({ label, children }: {
|
|
|
20
21
|
export declare function SelectSeparator(): import('react').JSX.Element;
|
|
21
22
|
/** Also takes the trigger button's props (aria-*, data-*, onBlur…), so Field can wire it up. */
|
|
22
23
|
export interface SelectProps<V extends string> extends Omit<ComponentProps<'button'>, 'value' | 'onChange' | 'children' | 'defaultValue' | 'name'> {
|
|
23
|
-
value
|
|
24
|
-
|
|
24
|
+
/** The chosen value, when you keep it; null for none. */
|
|
25
|
+
value?: V | null;
|
|
26
|
+
/** The first value, when the select keeps its own. */
|
|
27
|
+
defaultValue?: V | null;
|
|
28
|
+
onValueChange?: (value: V) => void;
|
|
25
29
|
/** Shown while nothing is chosen. */
|
|
26
30
|
placeholder?: string;
|
|
27
31
|
disabled?: boolean;
|
|
32
|
+
/** Height, matching Button's: sm (32px), default (40px) or lg (44px). */
|
|
33
|
+
size?: FieldSize;
|
|
28
34
|
/** Form field name: adds a hidden input with the value. */
|
|
29
35
|
name?: string;
|
|
30
36
|
id?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/select/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/select/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,SAAS,EAA6C,MAAM,mBAAmB,CAAC;AAI1G,OAAO,EAMH,cAAc,EAEd,SAAS,EAQZ,MAAM,OAAO,CAAC;AAaf;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EAC7C,KAAK,EAAE,SAAS,EAChB,YAAmB,EACnB,aAAa,EACb,WAAW,EAAE,eAAe,EAC5B,QAAgB,EAChB,IAAgB,EAChB,IAAI,EACJ,EAAE,EACF,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACV,EAAE,WAAW,CAAC,CAAC,CAAC,+BA6IhB;AAuBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAiC1F;AAED,uCAAuC;AACvC,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BASzF;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,gCAE9B;AAED,gGAAgG;AAChG,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CACvD,cAAc,CAAC,QAAQ,CAAC,EACxB,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,CAC9D;IACG,yDAAyD;IACzD,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACnC,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACvB"}
|