analytica-frontend-lib 1.0.50 → 1.0.52
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/Radio/index.js +4 -4
- package/dist/Radio/index.js.map +1 -1
- package/dist/Radio/index.mjs +4 -4
- package/dist/Radio/index.mjs.map +1 -1
- package/dist/Select/index.d.mts +10 -3
- package/dist/Select/index.d.ts +10 -3
- package/dist/Select/index.js +72 -24
- package/dist/Select/index.js.map +1 -1
- package/dist/Select/index.mjs +75 -26
- package/dist/Select/index.mjs.map +1 -1
- package/dist/index.css +11 -4
- package/dist/index.css.map +1 -1
- package/dist/index.js +76 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +79 -30
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +11 -4
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -779,7 +779,7 @@ var SIZE_CLASSES4 = {
|
|
|
779
779
|
textSize: "sm",
|
|
780
780
|
spacing: "gap-1.5",
|
|
781
781
|
borderWidth: "border-2",
|
|
782
|
-
dotSize: "w-2 h-2",
|
|
782
|
+
dotSize: "w-2.5 h-2.5",
|
|
783
783
|
labelHeight: "h-5"
|
|
784
784
|
},
|
|
785
785
|
medium: {
|
|
@@ -787,7 +787,7 @@ var SIZE_CLASSES4 = {
|
|
|
787
787
|
textSize: "md",
|
|
788
788
|
spacing: "gap-2",
|
|
789
789
|
borderWidth: "border-2",
|
|
790
|
-
dotSize: "w-
|
|
790
|
+
dotSize: "w-3 h-3",
|
|
791
791
|
labelHeight: "h-6"
|
|
792
792
|
},
|
|
793
793
|
large: {
|
|
@@ -795,7 +795,7 @@ var SIZE_CLASSES4 = {
|
|
|
795
795
|
textSize: "lg",
|
|
796
796
|
spacing: "gap-2",
|
|
797
797
|
borderWidth: "border-2",
|
|
798
|
-
dotSize: "w-3 h-3",
|
|
798
|
+
dotSize: "w-3.5 h-3.5",
|
|
799
799
|
labelHeight: "h-7"
|
|
800
800
|
},
|
|
801
801
|
extraLarge: {
|
|
@@ -803,7 +803,7 @@ var SIZE_CLASSES4 = {
|
|
|
803
803
|
textSize: "xl",
|
|
804
804
|
spacing: "gap-3",
|
|
805
805
|
borderWidth: "border-2",
|
|
806
|
-
dotSize: "w-
|
|
806
|
+
dotSize: "w-4 h-4",
|
|
807
807
|
labelHeight: "h-8"
|
|
808
808
|
}
|
|
809
809
|
};
|
|
@@ -3312,19 +3312,33 @@ import {
|
|
|
3312
3312
|
forwardRef as forwardRef10,
|
|
3313
3313
|
isValidElement as isValidElement2,
|
|
3314
3314
|
Children as Children2,
|
|
3315
|
-
cloneElement as cloneElement2
|
|
3315
|
+
cloneElement as cloneElement2,
|
|
3316
|
+
useId as useId5
|
|
3316
3317
|
} from "react";
|
|
3317
|
-
import { CaretDown, Check as Check4 } from "phosphor-react";
|
|
3318
|
+
import { CaretDown, Check as Check4, WarningCircle as WarningCircle4 } from "phosphor-react";
|
|
3318
3319
|
import { Fragment as Fragment3, jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3319
3320
|
var VARIANT_CLASSES4 = {
|
|
3320
|
-
outlined: "border rounded-
|
|
3321
|
+
outlined: "border rounded-lg focus:border-primary-950",
|
|
3321
3322
|
underlined: "border-b focus:border-primary-950",
|
|
3322
|
-
rounded: "border rounded-
|
|
3323
|
+
rounded: "border rounded-full focus:border-primary-950"
|
|
3323
3324
|
};
|
|
3324
3325
|
var SIZE_CLASSES11 = {
|
|
3325
3326
|
small: "text-sm",
|
|
3326
3327
|
medium: "text-md",
|
|
3327
|
-
large: "text-lg"
|
|
3328
|
+
large: "text-lg",
|
|
3329
|
+
"extra-large": "text-lg"
|
|
3330
|
+
};
|
|
3331
|
+
var HEIGHT_CLASSES = {
|
|
3332
|
+
small: "h-8",
|
|
3333
|
+
medium: "h-9",
|
|
3334
|
+
large: "h-10",
|
|
3335
|
+
"extra-large": "h-12"
|
|
3336
|
+
};
|
|
3337
|
+
var PADDING_CLASSES = {
|
|
3338
|
+
small: "px-2 py-1",
|
|
3339
|
+
medium: "px-3 py-2",
|
|
3340
|
+
large: "px-4 py-3",
|
|
3341
|
+
"extra-large": "px-5 py-4"
|
|
3328
3342
|
};
|
|
3329
3343
|
var SIDE_CLASSES2 = {
|
|
3330
3344
|
top: "bottom-full -translate-y-1",
|
|
@@ -3337,14 +3351,15 @@ var ALIGN_CLASSES2 = {
|
|
|
3337
3351
|
center: "left-1/2 -translate-x-1/2",
|
|
3338
3352
|
end: "right-0"
|
|
3339
3353
|
};
|
|
3340
|
-
function createSelectStore() {
|
|
3354
|
+
function createSelectStore(onValueChange) {
|
|
3341
3355
|
return create3((set) => ({
|
|
3342
3356
|
open: false,
|
|
3343
3357
|
setOpen: (open) => set({ open }),
|
|
3344
3358
|
value: "",
|
|
3345
3359
|
setValue: (value) => set({ value }),
|
|
3346
3360
|
selectedLabel: "",
|
|
3347
|
-
setSelectedLabel: (label) => set({ selectedLabel: label })
|
|
3361
|
+
setSelectedLabel: (label) => set({ selectedLabel: label }),
|
|
3362
|
+
onValueChange
|
|
3348
3363
|
}));
|
|
3349
3364
|
}
|
|
3350
3365
|
var useSelectStore = (externalStore) => {
|
|
@@ -3363,15 +3378,24 @@ function getLabelAsNode(children) {
|
|
|
3363
3378
|
if (flattened.length === 1) return flattened[0];
|
|
3364
3379
|
return /* @__PURE__ */ jsx24(Fragment3, { children: flattened });
|
|
3365
3380
|
}
|
|
3366
|
-
var injectStore2 = (children, store) => {
|
|
3381
|
+
var injectStore2 = (children, store, size, selectId) => {
|
|
3367
3382
|
return Children2.map(children, (child) => {
|
|
3368
3383
|
if (isValidElement2(child)) {
|
|
3369
3384
|
const typedChild = child;
|
|
3370
3385
|
const newProps = {
|
|
3371
3386
|
store
|
|
3372
3387
|
};
|
|
3388
|
+
if (typedChild.type === SelectTrigger) {
|
|
3389
|
+
newProps.size = size;
|
|
3390
|
+
newProps.selectId = selectId;
|
|
3391
|
+
}
|
|
3373
3392
|
if (typedChild.props.children) {
|
|
3374
|
-
newProps.children = injectStore2(
|
|
3393
|
+
newProps.children = injectStore2(
|
|
3394
|
+
typedChild.props.children,
|
|
3395
|
+
store,
|
|
3396
|
+
size,
|
|
3397
|
+
selectId
|
|
3398
|
+
);
|
|
3375
3399
|
}
|
|
3376
3400
|
return cloneElement2(typedChild, newProps);
|
|
3377
3401
|
}
|
|
@@ -3383,16 +3407,19 @@ var Select = ({
|
|
|
3383
3407
|
defaultValue = "",
|
|
3384
3408
|
value: propValue,
|
|
3385
3409
|
onValueChange,
|
|
3386
|
-
size = "small"
|
|
3410
|
+
size = "small",
|
|
3411
|
+
label,
|
|
3412
|
+
helperText,
|
|
3413
|
+
errorMessage,
|
|
3414
|
+
id
|
|
3387
3415
|
}) => {
|
|
3388
3416
|
const storeRef = useRef3(null);
|
|
3389
|
-
storeRef.current ??= createSelectStore();
|
|
3417
|
+
storeRef.current ??= createSelectStore(onValueChange);
|
|
3390
3418
|
const store = storeRef.current;
|
|
3391
3419
|
const selectRef = useRef3(null);
|
|
3392
|
-
const { open, setOpen, setValue,
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
);
|
|
3420
|
+
const { open, setOpen, setValue, selectedLabel } = useStore2(store, (s) => s);
|
|
3421
|
+
const generatedId = useId5();
|
|
3422
|
+
const selectId = id ?? `select-${generatedId}`;
|
|
3396
3423
|
const findLabelForValue = (children2, targetValue) => {
|
|
3397
3424
|
let found = null;
|
|
3398
3425
|
const search = (nodes) => {
|
|
@@ -3412,8 +3439,8 @@ var Select = ({
|
|
|
3412
3439
|
};
|
|
3413
3440
|
useEffect4(() => {
|
|
3414
3441
|
if (!selectedLabel && defaultValue) {
|
|
3415
|
-
const
|
|
3416
|
-
if (
|
|
3442
|
+
const label2 = findLabelForValue(children, defaultValue);
|
|
3443
|
+
if (label2) store.setState({ selectedLabel: label2 });
|
|
3417
3444
|
}
|
|
3418
3445
|
}, [children, defaultValue, selectedLabel]);
|
|
3419
3446
|
useEffect4(() => {
|
|
@@ -3451,19 +3478,33 @@ var Select = ({
|
|
|
3451
3478
|
document.removeEventListener("keydown", handleArrowKeys);
|
|
3452
3479
|
};
|
|
3453
3480
|
}, [open]);
|
|
3454
|
-
useEffect4(() => {
|
|
3455
|
-
setValue(value);
|
|
3456
|
-
onValueChange?.(value);
|
|
3457
|
-
}, [value, onValueChange]);
|
|
3458
3481
|
useEffect4(() => {
|
|
3459
3482
|
if (propValue) {
|
|
3460
3483
|
setValue(propValue);
|
|
3461
|
-
const
|
|
3462
|
-
if (
|
|
3484
|
+
const label2 = findLabelForValue(children, propValue);
|
|
3485
|
+
if (label2) store.setState({ selectedLabel: label2 });
|
|
3463
3486
|
}
|
|
3464
3487
|
}, [propValue]);
|
|
3465
3488
|
const sizeClasses = SIZE_CLASSES11[size];
|
|
3466
|
-
return /* @__PURE__ */
|
|
3489
|
+
return /* @__PURE__ */ jsxs19("div", { className: "w-full", children: [
|
|
3490
|
+
label && /* @__PURE__ */ jsx24(
|
|
3491
|
+
"label",
|
|
3492
|
+
{
|
|
3493
|
+
htmlFor: selectId,
|
|
3494
|
+
className: `block font-bold text-text-900 mb-1.5 ${sizeClasses}`,
|
|
3495
|
+
children: label
|
|
3496
|
+
}
|
|
3497
|
+
),
|
|
3498
|
+
/* @__PURE__ */ jsx24("div", { className: `relative ${sizeClasses}`, ref: selectRef, children: injectStore2(children, store, size, selectId) }),
|
|
3499
|
+
/* @__PURE__ */ jsxs19("div", { className: "mt-1.5 gap-1.5", children: [
|
|
3500
|
+
helperText && /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-500", children: helperText }),
|
|
3501
|
+
errorMessage && /* @__PURE__ */ jsxs19("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
|
|
3502
|
+
/* @__PURE__ */ jsx24(WarningCircle4, { size: 16 }),
|
|
3503
|
+
" ",
|
|
3504
|
+
errorMessage
|
|
3505
|
+
] })
|
|
3506
|
+
] })
|
|
3507
|
+
] });
|
|
3467
3508
|
};
|
|
3468
3509
|
var SelectValue = ({
|
|
3469
3510
|
placeholder,
|
|
@@ -3481,18 +3522,24 @@ var SelectTrigger = forwardRef10(
|
|
|
3481
3522
|
variant = "outlined",
|
|
3482
3523
|
store: externalStore,
|
|
3483
3524
|
disabled,
|
|
3525
|
+
size = "medium",
|
|
3526
|
+
selectId,
|
|
3484
3527
|
...props
|
|
3485
3528
|
}, ref) => {
|
|
3486
3529
|
const store = useSelectStore(externalStore);
|
|
3487
3530
|
const open = useStore2(store, (s) => s.open);
|
|
3488
3531
|
const toggleOpen = () => store.setState({ open: !open });
|
|
3489
3532
|
const variantClasses = VARIANT_CLASSES4[variant];
|
|
3533
|
+
const heightClasses = HEIGHT_CLASSES[size];
|
|
3534
|
+
const paddingClasses = PADDING_CLASSES[size];
|
|
3490
3535
|
return /* @__PURE__ */ jsxs19(
|
|
3491
3536
|
"button",
|
|
3492
3537
|
{
|
|
3493
3538
|
ref,
|
|
3539
|
+
id: selectId,
|
|
3494
3540
|
className: `
|
|
3495
|
-
flex
|
|
3541
|
+
flex min-w-[220px] w-full items-center justify-between border-border-300
|
|
3542
|
+
${heightClasses} ${paddingClasses}
|
|
3496
3543
|
${invalid && `${variant == "underlined" ? "border-b-2" : "border-2"} border-indicator-error text-text-600`}
|
|
3497
3544
|
${disabled ? "cursor-not-allowed text-text-400 pointer-events-none opacity-50" : "cursor-pointer hover:bg-background-50 focus:bg-accent focus:text-accent-foreground hover:bg-accent hover:text-accent-foreground"}
|
|
3498
3545
|
${!invalid && !disabled ? "text-text-700" : ""}
|
|
@@ -3558,7 +3605,8 @@ var SelectItem = forwardRef10(
|
|
|
3558
3605
|
value: selectedValue,
|
|
3559
3606
|
setValue,
|
|
3560
3607
|
setOpen,
|
|
3561
|
-
setSelectedLabel
|
|
3608
|
+
setSelectedLabel,
|
|
3609
|
+
onValueChange
|
|
3562
3610
|
} = useStore2(store, (s) => s);
|
|
3563
3611
|
const handleClick = (e) => {
|
|
3564
3612
|
const labelNode = getLabelAsNode(children);
|
|
@@ -3566,6 +3614,7 @@ var SelectItem = forwardRef10(
|
|
|
3566
3614
|
setValue(value);
|
|
3567
3615
|
setSelectedLabel(labelNode);
|
|
3568
3616
|
setOpen(false);
|
|
3617
|
+
onValueChange?.(value);
|
|
3569
3618
|
}
|
|
3570
3619
|
props.onClick?.(e);
|
|
3571
3620
|
};
|