@choice-ui/react 1.8.6 → 1.8.8
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/dist/components/button/dist/index.js +7 -0
- package/dist/components/colors/src/color-image-paint/color-image-paint.js +3 -3
- package/dist/components/dropdown/dist/index.d.ts +6 -0
- package/dist/components/dropdown/dist/index.js +12 -8
- package/dist/components/dropdown/src/dropdown.d.ts +6 -0
- package/dist/components/dropdown/src/dropdown.js +12 -8
- package/dist/components/emoji-picker/dist/index.d.ts +29 -1
- package/dist/components/emoji-picker/dist/index.js +144 -42
- package/dist/components/form/src/adapters/range-adapter.js +2 -2
- package/dist/components/icon-button/dist/index.d.ts +1 -1
- package/dist/components/icon-button/dist/index.js +39 -0
- package/dist/components/menus/dist/index.d.ts +5 -0
- package/dist/components/menus/dist/index.js +18 -1
- package/dist/components/menus/src/components/menu-scroll-arrow.js +4 -0
- package/dist/components/range/dist/index.d.ts +276 -20
- package/dist/components/range/dist/index.js +1030 -602
- package/dist/components/range/src/components/connects.d.ts +26 -0
- package/dist/components/range/src/components/connects.js +192 -0
- package/dist/components/range/src/components/dot.d.ts +8 -0
- package/dist/components/range/src/components/dot.js +148 -0
- package/dist/components/range/src/components/thumb.d.ts +14 -0
- package/dist/components/range/src/components/thumb.js +159 -0
- package/dist/components/range/src/context/index.d.ts +4 -0
- package/dist/components/range/src/context/range-context.d.ts +35 -0
- package/dist/components/range/src/context/range-context.js +13 -0
- package/dist/components/range/src/context/range-tuple-context.d.ts +42 -0
- package/dist/components/range/src/context/range-tuple-context.js +15 -0
- package/dist/components/range/src/index.d.ts +4 -2
- package/dist/components/range/src/range-tuple.d.ts +17 -9
- package/dist/components/range/src/range-tuple.js +375 -441
- package/dist/components/range/src/range.d.ts +17 -9
- package/dist/components/range/src/range.js +164 -154
- package/dist/components/range/src/tv.d.ts +15 -3
- package/dist/components/range/src/tv.js +10 -7
- package/dist/components/textarea/dist/index.js +3 -1
- package/dist/components/tooltip/dist/index.d.ts +2 -0
- package/dist/components/tooltip/dist/index.js +23 -5
- package/dist/components/virtual-select/dist/index.d.ts +48 -0
- package/dist/index.js +6 -0
- package/package.json +20 -32
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Button } from "../../button/dist/index.js";
|
|
2
2
|
import React__default, { memo, forwardRef, useMemo, useContext, createContext, startTransition, useCallback, useRef, useState, useEffect, Children, isValidElement, Fragment as Fragment$1 } from "react";
|
|
3
3
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
4
|
-
import { ChevronDownSmall, Check, ChevronRightSmall, ChevronUpSmall } from "@choiceform/icons-react";
|
|
4
|
+
import { ChevronDownSmall, Check, Launch, ChevronRightSmall, ChevronUpSmall } from "@choiceform/icons-react";
|
|
5
5
|
import { Kbd } from "../../kbd/dist/index.js";
|
|
6
6
|
import { flushSync } from "react-dom";
|
|
7
7
|
import { SearchInput } from "../../search-input/dist/index.js";
|
|
@@ -418,9 +418,13 @@ var MenuLabel = memo(function MenuLabel2({
|
|
|
418
418
|
});
|
|
419
419
|
MenuLabel.displayName = "MenuLabel";
|
|
420
420
|
var SCROLL_ARROW_PADDING = 16;
|
|
421
|
+
var MIN_HEIGHT_FOR_ARROWS = 48;
|
|
421
422
|
var shouldShowArrow = (scrollRef, dir) => {
|
|
422
423
|
if (scrollRef.current) {
|
|
423
424
|
const { scrollTop, scrollHeight, clientHeight } = scrollRef.current;
|
|
425
|
+
if (clientHeight < MIN_HEIGHT_FOR_ARROWS) {
|
|
426
|
+
return false;
|
|
427
|
+
}
|
|
424
428
|
if (dir === "up") {
|
|
425
429
|
return scrollTop >= SCROLL_ARROW_PADDING;
|
|
426
430
|
}
|
|
@@ -904,7 +908,9 @@ var MenuContextItem = memo(
|
|
|
904
908
|
size: size2,
|
|
905
909
|
shortcut,
|
|
906
910
|
prefixElement,
|
|
911
|
+
suffixElement,
|
|
907
912
|
variant,
|
|
913
|
+
asLink,
|
|
908
914
|
onClick,
|
|
909
915
|
onMouseUp,
|
|
910
916
|
onTouchStart,
|
|
@@ -969,6 +975,16 @@ var MenuContextItem = memo(
|
|
|
969
975
|
}),
|
|
970
976
|
[shortcut == null ? void 0 : shortcut.modifier, shortcut == null ? void 0 : shortcut.keys]
|
|
971
977
|
);
|
|
978
|
+
const suffixConfig = useMemo(() => {
|
|
979
|
+
if (suffixElement !== void 0) return suffixElement;
|
|
980
|
+
if (prefixElement !== void 0 && menu.selection && !customActive && selected) {
|
|
981
|
+
return /* @__PURE__ */ jsx(Check, {});
|
|
982
|
+
}
|
|
983
|
+
if (asLink) {
|
|
984
|
+
return /* @__PURE__ */ jsx(Launch, { className: "h-3 w-3 text-current" });
|
|
985
|
+
}
|
|
986
|
+
return void 0;
|
|
987
|
+
}, [suffixElement, prefixElement, menu.selection, selected, customActive, asLink]);
|
|
972
988
|
const combinedRef = useCallback(
|
|
973
989
|
(node) => {
|
|
974
990
|
item.ref(node);
|
|
@@ -991,6 +1007,7 @@ var MenuContextItem = memo(
|
|
|
991
1007
|
disabled,
|
|
992
1008
|
selected,
|
|
993
1009
|
prefixElement: prefixConfig,
|
|
1010
|
+
suffixElement: suffixConfig,
|
|
994
1011
|
shortcut: shortcutConfig,
|
|
995
1012
|
variant,
|
|
996
1013
|
size: size2,
|
|
@@ -6,9 +6,13 @@ import { MenuScrollArrowTv } from "../tv.js";
|
|
|
6
6
|
import { useIsomorphicLayoutEffect } from "../../../../shared/hooks/use-isomorphic-layout-effect/use-isomorphic-layout-effect.js";
|
|
7
7
|
import { tcx } from "../../../../shared/utils/tcx/tcx.js";
|
|
8
8
|
const SCROLL_ARROW_PADDING = 16;
|
|
9
|
+
const MIN_HEIGHT_FOR_ARROWS = 48;
|
|
9
10
|
const shouldShowArrow = (scrollRef, dir) => {
|
|
10
11
|
if (scrollRef.current) {
|
|
11
12
|
const { scrollTop, scrollHeight, clientHeight } = scrollRef.current;
|
|
13
|
+
if (clientHeight < MIN_HEIGHT_FOR_ARROWS) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
12
16
|
if (dir === "up") {
|
|
13
17
|
return scrollTop >= SCROLL_ARROW_PADDING;
|
|
14
18
|
}
|
|
@@ -1,10 +1,60 @@
|
|
|
1
|
-
import { default as
|
|
1
|
+
import { default as React__default } from 'react';
|
|
2
|
+
import * as React$1 from 'react';
|
|
3
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
+
import * as tailwind_variants from 'tailwind-variants';
|
|
5
|
+
|
|
6
|
+
interface RangeConnectsProps {
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
declare const RangeConnects: React$1.ForwardRefExoticComponent<RangeConnectsProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
interface RangeContainerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
className?: string;
|
|
13
|
+
height?: number;
|
|
14
|
+
}
|
|
15
|
+
declare function RangeContainer(props: RangeContainerProps): react_jsx_runtime.JSX.Element;
|
|
16
|
+
declare namespace RangeContainer {
|
|
17
|
+
var displayName: string;
|
|
18
|
+
}
|
|
19
|
+
interface RangeTupleConnectsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
declare const RangeTupleConnects: React$1.ForwardRefExoticComponent<RangeTupleConnectsProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
interface RangeTupleContainerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
24
|
+
children?: React.ReactNode;
|
|
25
|
+
className?: string;
|
|
26
|
+
height?: number;
|
|
27
|
+
}
|
|
28
|
+
declare function RangeTupleContainer(props: RangeTupleContainerProps): react_jsx_runtime.JSX.Element;
|
|
29
|
+
declare namespace RangeTupleContainer {
|
|
30
|
+
var displayName: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface RangeThumbProps {
|
|
34
|
+
className?: string;
|
|
35
|
+
size?: number;
|
|
36
|
+
}
|
|
37
|
+
declare const RangeThumb: React__default.ForwardRefExoticComponent<RangeThumbProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
38
|
+
type ThumbIndex$1 = 0 | 1;
|
|
39
|
+
interface RangeTupleThumbProps {
|
|
40
|
+
className?: string;
|
|
41
|
+
size?: number;
|
|
42
|
+
index: ThumbIndex$1;
|
|
43
|
+
}
|
|
44
|
+
declare const RangeTupleThumb: React__default.ForwardRefExoticComponent<RangeTupleThumbProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
45
|
+
|
|
46
|
+
interface RangeDotProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
47
|
+
className?: string;
|
|
48
|
+
}
|
|
49
|
+
interface RangeTupleDotProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
50
|
+
className?: string;
|
|
51
|
+
}
|
|
52
|
+
declare const RangeDot: React$1.ForwardRefExoticComponent<RangeDotProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
53
|
+
declare const RangeTupleDot: React$1.ForwardRefExoticComponent<RangeTupleDotProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
54
|
+
|
|
2
55
|
interface RangeProps {
|
|
56
|
+
children?: React__default.ReactNode;
|
|
3
57
|
className?: string;
|
|
4
|
-
connectsClassName?: {
|
|
5
|
-
negative?: string;
|
|
6
|
-
positive?: string;
|
|
7
|
-
};
|
|
8
58
|
defaultValue?: number;
|
|
9
59
|
disabled?: boolean;
|
|
10
60
|
max?: number;
|
|
@@ -15,20 +65,24 @@ interface RangeProps {
|
|
|
15
65
|
readOnly?: boolean;
|
|
16
66
|
step?: number;
|
|
17
67
|
thumbSize?: number;
|
|
18
|
-
trackSize?: {
|
|
19
|
-
height?: number;
|
|
20
|
-
width?: number | "auto";
|
|
21
|
-
};
|
|
22
68
|
value?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Width of the range track in pixels.
|
|
71
|
+
* If not provided (undefined), the width will be auto-calculated from the container.
|
|
72
|
+
*/
|
|
73
|
+
width?: number | boolean;
|
|
74
|
+
}
|
|
75
|
+
interface RangeComponent extends React__default.ForwardRefExoticComponent<RangeProps & React__default.RefAttributes<HTMLDivElement>> {
|
|
76
|
+
Container: typeof RangeContainer;
|
|
77
|
+
Connects: typeof RangeConnects;
|
|
78
|
+
Thumb: typeof RangeThumb;
|
|
79
|
+
Dot: typeof RangeDot;
|
|
23
80
|
}
|
|
24
|
-
declare const Range:
|
|
81
|
+
declare const Range: RangeComponent;
|
|
25
82
|
|
|
26
83
|
interface RangeTupleProps {
|
|
84
|
+
children?: React__default.ReactNode;
|
|
27
85
|
className?: string;
|
|
28
|
-
connectsClassName?: {
|
|
29
|
-
negative?: string;
|
|
30
|
-
positive?: string;
|
|
31
|
-
};
|
|
32
86
|
defaultValue?: [number, number];
|
|
33
87
|
disabled?: boolean;
|
|
34
88
|
max?: number;
|
|
@@ -39,12 +93,214 @@ interface RangeTupleProps {
|
|
|
39
93
|
readOnly?: boolean;
|
|
40
94
|
step?: number;
|
|
41
95
|
thumbSize?: number;
|
|
42
|
-
trackSize?: {
|
|
43
|
-
height?: number;
|
|
44
|
-
width?: number | "auto";
|
|
45
|
-
};
|
|
46
96
|
value?: [number, number];
|
|
97
|
+
/**
|
|
98
|
+
* Width of the range track in pixels.
|
|
99
|
+
* If not provided (undefined) or set to false, the width will be auto-calculated from the container.
|
|
100
|
+
*/
|
|
101
|
+
width?: number | boolean;
|
|
102
|
+
}
|
|
103
|
+
interface RangeTupleComponent extends React__default.ForwardRefExoticComponent<RangeTupleProps & React__default.RefAttributes<HTMLDivElement>> {
|
|
104
|
+
Container: typeof RangeTupleContainer;
|
|
105
|
+
Connects: typeof RangeTupleConnects;
|
|
106
|
+
Thumb: typeof RangeTupleThumb;
|
|
107
|
+
Dot: typeof RangeTupleDot;
|
|
108
|
+
}
|
|
109
|
+
declare const RangeTuple: RangeTupleComponent;
|
|
110
|
+
|
|
111
|
+
declare const rangeTv: tailwind_variants.TVReturnType<{
|
|
112
|
+
overStepValue: {
|
|
113
|
+
true: {
|
|
114
|
+
dot: string;
|
|
115
|
+
};
|
|
116
|
+
false: {
|
|
117
|
+
dot: string;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
defaultStepValue: {
|
|
121
|
+
true: {
|
|
122
|
+
dot: string;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
hasStepOrDefault: {
|
|
126
|
+
true: {};
|
|
127
|
+
false: {};
|
|
128
|
+
};
|
|
129
|
+
currentDefaultValue: {
|
|
130
|
+
true: {};
|
|
131
|
+
false: {};
|
|
132
|
+
};
|
|
133
|
+
disabled: {
|
|
134
|
+
true: {
|
|
135
|
+
connect: string;
|
|
136
|
+
thumb: string;
|
|
137
|
+
};
|
|
138
|
+
false: {
|
|
139
|
+
connect: string;
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
}, {
|
|
143
|
+
container: string[];
|
|
144
|
+
connect: string[];
|
|
145
|
+
thumbWrapper: string[];
|
|
146
|
+
thumb: string[];
|
|
147
|
+
dotContainer: string;
|
|
148
|
+
dot: string[];
|
|
149
|
+
input: string;
|
|
150
|
+
}, undefined, {
|
|
151
|
+
overStepValue: {
|
|
152
|
+
true: {
|
|
153
|
+
dot: string;
|
|
154
|
+
};
|
|
155
|
+
false: {
|
|
156
|
+
dot: string;
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
defaultStepValue: {
|
|
160
|
+
true: {
|
|
161
|
+
dot: string;
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
hasStepOrDefault: {
|
|
165
|
+
true: {};
|
|
166
|
+
false: {};
|
|
167
|
+
};
|
|
168
|
+
currentDefaultValue: {
|
|
169
|
+
true: {};
|
|
170
|
+
false: {};
|
|
171
|
+
};
|
|
172
|
+
disabled: {
|
|
173
|
+
true: {
|
|
174
|
+
connect: string;
|
|
175
|
+
thumb: string;
|
|
176
|
+
};
|
|
177
|
+
false: {
|
|
178
|
+
connect: string;
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
}, {
|
|
182
|
+
container: string[];
|
|
183
|
+
connect: string[];
|
|
184
|
+
thumbWrapper: string[];
|
|
185
|
+
thumb: string[];
|
|
186
|
+
dotContainer: string;
|
|
187
|
+
dot: string[];
|
|
188
|
+
input: string;
|
|
189
|
+
}, tailwind_variants.TVReturnType<{
|
|
190
|
+
overStepValue: {
|
|
191
|
+
true: {
|
|
192
|
+
dot: string;
|
|
193
|
+
};
|
|
194
|
+
false: {
|
|
195
|
+
dot: string;
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
defaultStepValue: {
|
|
199
|
+
true: {
|
|
200
|
+
dot: string;
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
hasStepOrDefault: {
|
|
204
|
+
true: {};
|
|
205
|
+
false: {};
|
|
206
|
+
};
|
|
207
|
+
currentDefaultValue: {
|
|
208
|
+
true: {};
|
|
209
|
+
false: {};
|
|
210
|
+
};
|
|
211
|
+
disabled: {
|
|
212
|
+
true: {
|
|
213
|
+
connect: string;
|
|
214
|
+
thumb: string;
|
|
215
|
+
};
|
|
216
|
+
false: {
|
|
217
|
+
connect: string;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
}, {
|
|
221
|
+
container: string[];
|
|
222
|
+
connect: string[];
|
|
223
|
+
thumbWrapper: string[];
|
|
224
|
+
thumb: string[];
|
|
225
|
+
dotContainer: string;
|
|
226
|
+
dot: string[];
|
|
227
|
+
input: string;
|
|
228
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
229
|
+
|
|
230
|
+
interface RangeContextValue {
|
|
231
|
+
currentValue: number;
|
|
232
|
+
disabled: boolean;
|
|
233
|
+
readOnly: boolean;
|
|
234
|
+
min: number;
|
|
235
|
+
max: number;
|
|
236
|
+
step: number;
|
|
237
|
+
thumbSize: number;
|
|
238
|
+
trackHeight: number;
|
|
239
|
+
transforms: {
|
|
240
|
+
minTransform: number;
|
|
241
|
+
maxTransform: number;
|
|
242
|
+
transformX: number;
|
|
243
|
+
};
|
|
244
|
+
defaultStepValue: number | null;
|
|
245
|
+
currentStepValue: number;
|
|
246
|
+
dotsData: Array<{
|
|
247
|
+
value: number;
|
|
248
|
+
position: number;
|
|
249
|
+
}> | null;
|
|
250
|
+
defaultDotPosition: number | null;
|
|
251
|
+
thumbRef: React.MutableRefObject<HTMLDivElement | null>;
|
|
252
|
+
inputRef: React.MutableRefObject<HTMLInputElement | null>;
|
|
253
|
+
isDragging: React.MutableRefObject<boolean>;
|
|
254
|
+
handlePointerDown: (e: React.PointerEvent) => void;
|
|
255
|
+
handleKeyDown: (e: React.KeyboardEvent) => void;
|
|
256
|
+
tv: ReturnType<typeof rangeTv>;
|
|
257
|
+
defaultValue?: number;
|
|
258
|
+
hasCustomDot: boolean;
|
|
259
|
+
hasCustomConnects: boolean;
|
|
260
|
+
isDefaultValue?: boolean;
|
|
261
|
+
}
|
|
262
|
+
declare const RangeContext: React$1.Context<RangeContextValue | null>;
|
|
263
|
+
declare function useRangeContext(): RangeContextValue;
|
|
264
|
+
|
|
265
|
+
type ThumbIndex = 0 | 1;
|
|
266
|
+
interface RangeTupleContextValue {
|
|
267
|
+
currentValue: [number, number];
|
|
268
|
+
disabled: boolean;
|
|
269
|
+
readOnly: boolean;
|
|
270
|
+
min: number;
|
|
271
|
+
max: number;
|
|
272
|
+
step: number;
|
|
273
|
+
thumbSize: number;
|
|
274
|
+
trackHeight: number;
|
|
275
|
+
transforms: {
|
|
276
|
+
minTransform: number;
|
|
277
|
+
maxTransform: number;
|
|
278
|
+
transformX0: number;
|
|
279
|
+
transformX1: number;
|
|
280
|
+
};
|
|
281
|
+
defaultStepValue: [number, number] | null;
|
|
282
|
+
currentStepValue: [number, number];
|
|
283
|
+
dotsData: Array<{
|
|
284
|
+
value: number;
|
|
285
|
+
position: number;
|
|
286
|
+
}> | null;
|
|
287
|
+
defaultDotPositions: [number, number] | null;
|
|
288
|
+
normalizedDefaultValue: [number, number] | undefined;
|
|
289
|
+
thumb0Ref: React.RefObject<HTMLDivElement | null>;
|
|
290
|
+
thumb1Ref: React.RefObject<HTMLDivElement | null>;
|
|
291
|
+
input0Ref: React.RefObject<HTMLInputElement | null>;
|
|
292
|
+
input1Ref: React.RefObject<HTMLInputElement | null>;
|
|
293
|
+
isDragging: React.MutableRefObject<ThumbIndex | null>;
|
|
294
|
+
handlePointerDown: (e: React.PointerEvent, thumbIndex: ThumbIndex) => void;
|
|
295
|
+
handleKeyDown: (e: React.KeyboardEvent, thumbIndex: ThumbIndex) => void;
|
|
296
|
+
tv: ReturnType<typeof rangeTv>;
|
|
297
|
+
thumbTv0: ReturnType<typeof rangeTv>;
|
|
298
|
+
thumbTv1: ReturnType<typeof rangeTv>;
|
|
299
|
+
hasCustomDot: boolean;
|
|
300
|
+
hasCustomConnects: boolean;
|
|
301
|
+
isDefaultValue?: boolean;
|
|
47
302
|
}
|
|
48
|
-
declare const
|
|
303
|
+
declare const RangeTupleContext: React$1.Context<RangeTupleContextValue | null>;
|
|
304
|
+
declare function useRangeTupleContext(): RangeTupleContextValue;
|
|
49
305
|
|
|
50
|
-
export { Range, type RangeProps, RangeTuple, type RangeTupleProps };
|
|
306
|
+
export { Range, type RangeConnectsProps, type RangeContainerProps, RangeContext, type RangeContextValue, type RangeDotProps, type RangeProps, type RangeThumbProps, RangeTuple, type RangeTupleConnectsProps, type RangeTupleContainerProps, RangeTupleContext, type RangeTupleContextValue, type RangeTupleDotProps, type RangeTupleProps, type RangeTupleThumbProps, useRangeContext, useRangeTupleContext };
|