@lolmath/ui 1.3.0 → 2.0.1
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/index.cjs +126 -59
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -3
- package/dist/index.d.ts +12 -3
- package/dist/index.js +125 -59
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ComponentProps } from 'react';
|
|
3
|
-
import { ButtonProps as ButtonProps$1, ItemProps, SelectProps as SelectProps$1, SearchFieldProps, Input, SliderProps, SwitchProps, ProgressBarProps as ProgressBarProps$1, TextFieldProps, RadioGroupProps, RadioProps, LabelProps, NumberFieldProps, Group } from 'react-aria-components';
|
|
3
|
+
import { ButtonProps as ButtonProps$1, ItemProps, SelectProps as SelectProps$1, SearchFieldProps, Input, SliderProps, SliderTrackProps, SliderThumbProps, SliderTrackRenderProps, SwitchProps, ProgressBarProps as ProgressBarProps$1, TextFieldProps, RadioGroupProps, RadioProps, LabelProps, NumberFieldProps, Group } from 'react-aria-components';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
5
|
|
|
6
6
|
interface ButtonProps extends ButtonProps$1 {
|
|
@@ -21,7 +21,16 @@ declare function SearchField({ inputProps, ...props }: SearchFieldProps & {
|
|
|
21
21
|
inputProps?: ComponentProps<typeof Input>;
|
|
22
22
|
}): react_jsx_runtime.JSX.Element;
|
|
23
23
|
|
|
24
|
-
declare function Slider({
|
|
24
|
+
declare function Slider<T extends number | number[]>({ children, sliderThumbProps, sliderTrackProps, sliderTrackBackgroundClassName, sliderTrackForegroundClassName, ...props }: SliderProps<T> & {
|
|
25
|
+
sliderTrackProps?: SliderTrackProps;
|
|
26
|
+
sliderThumbProps?: SliderThumbProps;
|
|
27
|
+
sliderTrackBackgroundClassName?: string | ((values: SliderTrackRenderProps) => string);
|
|
28
|
+
sliderTrackForegroundClassName?: string | ((values: SliderTrackRenderProps) => string);
|
|
29
|
+
}): react_jsx_runtime.JSX.Element;
|
|
30
|
+
interface SliderLabelProps {
|
|
31
|
+
children?: React.ReactNode;
|
|
32
|
+
}
|
|
33
|
+
declare function SliderLabel({ children }: SliderLabelProps): react_jsx_runtime.JSX.Element;
|
|
25
34
|
|
|
26
35
|
declare function Switch({ className, placeholder, children, ...props }: SwitchProps & {
|
|
27
36
|
placeholder?: string;
|
|
@@ -66,4 +75,4 @@ declare function NumberField({ inputProps, groupProps, ...props }: NumberFieldPr
|
|
|
66
75
|
groupProps: ComponentProps<typeof Group>;
|
|
67
76
|
}): react_jsx_runtime.JSX.Element;
|
|
68
77
|
|
|
69
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Button, Item, Label, NumberField, ProgressBar, Radio, RadioGroup, SearchField, Select, Slider, Switch, TextField };
|
|
78
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Button, Item, Label, NumberField, ProgressBar, Radio, RadioGroup, SearchField, Select, Slider, SliderLabel, Switch, TextField };
|
package/dist/index.js
CHANGED
|
@@ -152,8 +152,8 @@ import {
|
|
|
152
152
|
import { twMerge as twMerge3 } from "tailwind-merge";
|
|
153
153
|
|
|
154
154
|
// src/utilities/resolve-classname.ts
|
|
155
|
-
function resolveClassname(
|
|
156
|
-
return typeof
|
|
155
|
+
function resolveClassname(className, values) {
|
|
156
|
+
return typeof className === "function" ? className(values) : className;
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
// src/components/search-field.tsx
|
|
@@ -166,7 +166,7 @@ function SearchField({
|
|
|
166
166
|
AriaSearchField,
|
|
167
167
|
{
|
|
168
168
|
className: (values) => {
|
|
169
|
-
const finalClassName = resolveClassname(props, values);
|
|
169
|
+
const finalClassName = resolveClassname(props.className, values);
|
|
170
170
|
return twMerge3(
|
|
171
171
|
"flex flex-col outline-none",
|
|
172
172
|
borderClassName,
|
|
@@ -189,7 +189,10 @@ function SearchField({
|
|
|
189
189
|
{
|
|
190
190
|
...inputProps,
|
|
191
191
|
className: (values) => {
|
|
192
|
-
const finalClassName = resolveClassname(
|
|
192
|
+
const finalClassName = resolveClassname(
|
|
193
|
+
inputProps.className,
|
|
194
|
+
values
|
|
195
|
+
);
|
|
193
196
|
return twMerge3(
|
|
194
197
|
"bg-transparent grow py-2 px-3 text-lol-gold-50 text-xs outline-none font-spiegel tracking-wide pl-6",
|
|
195
198
|
props.isDisabled && "text-lol-gray-500",
|
|
@@ -241,58 +244,114 @@ var sliderDisabled = "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAB
|
|
|
241
244
|
|
|
242
245
|
// src/components/slider.tsx
|
|
243
246
|
import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
244
|
-
function Slider({
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
247
|
+
function Slider({
|
|
248
|
+
children,
|
|
249
|
+
sliderThumbProps = {},
|
|
250
|
+
sliderTrackProps = {},
|
|
251
|
+
sliderTrackBackgroundClassName,
|
|
252
|
+
sliderTrackForegroundClassName,
|
|
253
|
+
...props
|
|
254
|
+
}) {
|
|
255
|
+
return /* @__PURE__ */ jsx4(
|
|
256
|
+
AriaSlider,
|
|
257
|
+
{
|
|
258
|
+
...props,
|
|
259
|
+
className: (values) => {
|
|
260
|
+
const resolvedClassName = resolveClassname(props.className, values);
|
|
261
|
+
return twMerge4("", resolvedClassName);
|
|
262
|
+
},
|
|
263
|
+
children: (values) => /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
264
|
+
typeof children === "function" ? children(values) : children,
|
|
255
265
|
/* @__PURE__ */ jsx4(
|
|
256
|
-
|
|
266
|
+
AriaSliderTrack,
|
|
257
267
|
{
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
style: { left: `${left}%`, width: `${width}%` }
|
|
266
|
-
}
|
|
267
|
-
),
|
|
268
|
-
state2.values.map((_, i) => {
|
|
269
|
-
let zIndex = state2.getThumbPercent(i === 1 ? 0 : 1) === (i === 1 ? 0 : 1) ? 2 : void 0;
|
|
270
|
-
return /* @__PURE__ */ jsx4(Fragment2, { children: /* @__PURE__ */ jsx4(
|
|
271
|
-
AriaSliderThumb,
|
|
272
|
-
{
|
|
273
|
-
index: i,
|
|
274
|
-
className: twMerge4(
|
|
275
|
-
"bg-contain h-7 w-7 top-[50%] outline-none",
|
|
276
|
-
"[background-image:var(--normal)]",
|
|
277
|
-
state2.isDisabled ? "[background-image:var(--disabled)]" : [
|
|
278
|
-
state2.isThumbDragging(i) && "[background-image:var(--active)]",
|
|
279
|
-
!state2.isThumbDragging(0) && !state2.isThumbDragging(1) && "group-hover:[background-image:var(--hover)]"
|
|
280
|
-
]
|
|
281
|
-
),
|
|
282
|
-
style: {
|
|
283
|
-
"--normal": sliderNormal,
|
|
284
|
-
"--hover": sliderHover,
|
|
285
|
-
"--active": sliderActive,
|
|
286
|
-
"--disabled": sliderDisabled,
|
|
287
|
-
zIndex
|
|
288
|
-
}
|
|
268
|
+
...sliderTrackProps,
|
|
269
|
+
className: (sliderTrackRenderProps) => {
|
|
270
|
+
const resolvedClassName = resolveClassname(
|
|
271
|
+
sliderTrackProps.className,
|
|
272
|
+
sliderTrackRenderProps
|
|
273
|
+
);
|
|
274
|
+
return twMerge4("relative w-full h-7 group", resolvedClassName);
|
|
289
275
|
},
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
276
|
+
children: (values2) => {
|
|
277
|
+
const left = values2.state.values.length === 1 ? 0 : values2.state.getThumbPercent(0) * 100;
|
|
278
|
+
const width = values2.state.values.length === 1 ? values2.state.getThumbPercent(0) * 100 : (values2.state.getThumbPercent(1) - values2.state.getThumbPercent(0)) * 100;
|
|
279
|
+
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
280
|
+
/* @__PURE__ */ jsx4(
|
|
281
|
+
"div",
|
|
282
|
+
{
|
|
283
|
+
className: twMerge4(
|
|
284
|
+
"absolute h-0.5 top-[50%] transform translate-y-[-50%] w-full rounded-full bg-lol-gray-950",
|
|
285
|
+
resolveClassname(sliderTrackBackgroundClassName, values2)
|
|
286
|
+
)
|
|
287
|
+
}
|
|
288
|
+
),
|
|
289
|
+
/* @__PURE__ */ jsx4(
|
|
290
|
+
"div",
|
|
291
|
+
{
|
|
292
|
+
className: twMerge4(
|
|
293
|
+
"absolute h-0.5 top-[50%] transform translate-y-[-50%] from-[#463714] to-[#695625] bg-gradient-to-r",
|
|
294
|
+
values2.state.isDisabled ? "from-transparent via-transparent to-transparent bg-[#5C5B57]" : [
|
|
295
|
+
"group-hover:from-[#785a28] group-hover:via-[#c89b3c] group-hover:to-[#c8aa6e]",
|
|
296
|
+
"group-active:from-[#695625] group-active:via-[#463714] group-active:to-[#463714]"
|
|
297
|
+
],
|
|
298
|
+
resolveClassname(sliderTrackForegroundClassName, values2)
|
|
299
|
+
),
|
|
300
|
+
style: { left: `${left}%`, width: `${width}%` }
|
|
301
|
+
}
|
|
302
|
+
),
|
|
303
|
+
values2.state.values.map((_, i) => {
|
|
304
|
+
let zIndex = values2.state.getThumbPercent(i === 1 ? 0 : 1) === (i === 1 ? 0 : 1) ? 2 : void 0;
|
|
305
|
+
return /* @__PURE__ */ jsx4(Fragment2, { children: /* @__PURE__ */ jsx4(
|
|
306
|
+
AriaSliderThumb,
|
|
307
|
+
{
|
|
308
|
+
index: i,
|
|
309
|
+
...sliderThumbProps,
|
|
310
|
+
className: (sliderThumbRenderProps) => {
|
|
311
|
+
const resolvedClassName = resolveClassname(
|
|
312
|
+
sliderThumbProps.className,
|
|
313
|
+
sliderThumbRenderProps
|
|
314
|
+
);
|
|
315
|
+
return twMerge4(
|
|
316
|
+
"bg-contain h-7 w-7 top-[50%] outline-none",
|
|
317
|
+
"[background-image:var(--normal)]",
|
|
318
|
+
sliderThumbRenderProps.isDisabled ? "[background-image:var(--disabled)]" : [
|
|
319
|
+
sliderThumbRenderProps.state.isThumbDragging(
|
|
320
|
+
i
|
|
321
|
+
) && "[background-image:var(--active)]",
|
|
322
|
+
!sliderThumbRenderProps.state.isThumbDragging(
|
|
323
|
+
0
|
|
324
|
+
) && !sliderThumbRenderProps.state.isThumbDragging(
|
|
325
|
+
1
|
|
326
|
+
) && "group-hover:[background-image:var(--hover)]"
|
|
327
|
+
],
|
|
328
|
+
resolvedClassName
|
|
329
|
+
);
|
|
330
|
+
},
|
|
331
|
+
style: {
|
|
332
|
+
"--normal": sliderNormal,
|
|
333
|
+
"--hover": sliderHover,
|
|
334
|
+
"--active": sliderActive,
|
|
335
|
+
"--disabled": sliderDisabled,
|
|
336
|
+
zIndex
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
i
|
|
340
|
+
) });
|
|
341
|
+
})
|
|
342
|
+
] });
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
)
|
|
346
|
+
] })
|
|
347
|
+
}
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
function SliderLabel({ children }) {
|
|
351
|
+
return /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between font-spiegel text-xs text-lol-gray-300 font-normal tracking-wide", children: [
|
|
352
|
+
/* @__PURE__ */ jsx4(Label, { className: "", children }),
|
|
353
|
+
/* @__PURE__ */ jsx4(AriaSliderOutput, { className: "", children: (sliderRenderProps) => sliderRenderProps.state.values.map((_, i) => sliderRenderProps.state.getThumbValueLabel(i)).join(" \u2013 ") })
|
|
354
|
+
] });
|
|
296
355
|
}
|
|
297
356
|
|
|
298
357
|
// src/components/switch.tsx
|
|
@@ -497,7 +556,7 @@ function TextField({
|
|
|
497
556
|
AriaTextField,
|
|
498
557
|
{
|
|
499
558
|
className: (values) => {
|
|
500
|
-
const finalClassName = resolveClassname(props, values);
|
|
559
|
+
const finalClassName = resolveClassname(props.className, values);
|
|
501
560
|
return twMerge8(
|
|
502
561
|
"flex flex-col outline-none",
|
|
503
562
|
borderClassName,
|
|
@@ -519,7 +578,10 @@ function TextField({
|
|
|
519
578
|
{
|
|
520
579
|
...inputProps,
|
|
521
580
|
className: (values) => {
|
|
522
|
-
const finalClassName = resolveClassname(
|
|
581
|
+
const finalClassName = resolveClassname(
|
|
582
|
+
inputProps.className,
|
|
583
|
+
values
|
|
584
|
+
);
|
|
523
585
|
return twMerge8(
|
|
524
586
|
"bg-transparent grow py-2 px-3 text-lol-gold-50 text-xs outline-none font-spiegel tracking-wide",
|
|
525
587
|
values.isDisabled && "text-lol-gray-500",
|
|
@@ -548,7 +610,7 @@ function RadioGroup({ ...props }) {
|
|
|
548
610
|
{
|
|
549
611
|
...props,
|
|
550
612
|
className: (values) => {
|
|
551
|
-
const finalClassName = resolveClassname(props, values);
|
|
613
|
+
const finalClassName = resolveClassname(props.className, values);
|
|
552
614
|
return twMerge9("flex flex-col items-start", finalClassName);
|
|
553
615
|
}
|
|
554
616
|
}
|
|
@@ -560,7 +622,7 @@ function Radio({ ...props }) {
|
|
|
560
622
|
{
|
|
561
623
|
...props,
|
|
562
624
|
className: (values) => {
|
|
563
|
-
const finalClassName = resolveClassname(props, values);
|
|
625
|
+
const finalClassName = resolveClassname(props.className, values);
|
|
564
626
|
return twMerge9(
|
|
565
627
|
"text-lol-gold-300 font-spiegel text-xs font-normal py-2 bg-no-repeat bg-[length:18px] bg-left pl-6 pr-4",
|
|
566
628
|
values.isDisabled ? "text-lol-gray-500" : values.isHovered || values.isSelected ? "text-lol-gold-50" : "",
|
|
@@ -619,7 +681,7 @@ function NumberField({
|
|
|
619
681
|
{
|
|
620
682
|
...groupProps,
|
|
621
683
|
className: (values) => {
|
|
622
|
-
const finalClassName = resolveClassname(groupProps, values);
|
|
684
|
+
const finalClassName = resolveClassname(groupProps.className, values);
|
|
623
685
|
return twMerge11(
|
|
624
686
|
"grid grid-cols-[auto_1fr_auto] outline-none gap-px p-px",
|
|
625
687
|
borderClassName,
|
|
@@ -635,7 +697,10 @@ function NumberField({
|
|
|
635
697
|
{
|
|
636
698
|
...inputProps,
|
|
637
699
|
className: (values) => {
|
|
638
|
-
const finalClassName = resolveClassname(
|
|
700
|
+
const finalClassName = resolveClassname(
|
|
701
|
+
inputProps.className,
|
|
702
|
+
values
|
|
703
|
+
);
|
|
639
704
|
return twMerge11(
|
|
640
705
|
"bg-black w-full py-2 px-3 text-lol-gold-50 text-xs outline-none font-spiegel",
|
|
641
706
|
values.isDisabled && "text-lol-gray-500 bg-lol-gray-950",
|
|
@@ -665,6 +730,7 @@ export {
|
|
|
665
730
|
SearchField,
|
|
666
731
|
Select,
|
|
667
732
|
Slider,
|
|
733
|
+
SliderLabel,
|
|
668
734
|
Switch,
|
|
669
735
|
TextField
|
|
670
736
|
};
|