@simplybusiness/mobius 6.1.0 → 6.1.2
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 +18 -0
- package/dist/cjs/index.js +140 -115
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/index.js +65 -41
- package/dist/types/src/components/Drawer/types.d.ts +1 -0
- package/dist/types/src/components/Drawer/useDrawer.d.ts +1 -0
- package/dist/types/src/components/NumberField/NumberField.d.ts +1 -1
- package/package.json +2 -2
- package/src/components/Drawer/Drawer.tsx +5 -2
- package/src/components/Drawer/DrawerContext.tsx +1 -0
- package/src/components/Drawer/Header.tsx +2 -2
- package/src/components/Drawer/types.ts +1 -0
- package/src/components/Drawer/useDrawer.ts +2 -2
- package/src/components/NumberField/NumberField.tsx +42 -2
- package/src/components/Radio/Radio.test.tsx +65 -1
- package/src/components/Radio/Radio.tsx +10 -13
- package/src/components/Radio/RadioGroup.tsx +0 -9
package/dist/cjs/index.js
CHANGED
|
@@ -2582,7 +2582,8 @@ var import_react37 = require("react");
|
|
|
2582
2582
|
var DrawerContext = (0, import_react37.createContext)({
|
|
2583
2583
|
onClose: () => {
|
|
2584
2584
|
},
|
|
2585
|
-
closeLabel: void 0
|
|
2585
|
+
closeLabel: void 0,
|
|
2586
|
+
headerId: void 0
|
|
2586
2587
|
});
|
|
2587
2588
|
|
|
2588
2589
|
// src/components/Drawer/Drawer.tsx
|
|
@@ -2611,7 +2612,8 @@ var Drawer = (0, import_react38.forwardRef)((props, ref) => {
|
|
|
2611
2612
|
CSSVariable: TRANSITION_CSS_VARIABLE
|
|
2612
2613
|
}
|
|
2613
2614
|
});
|
|
2614
|
-
const hiddenId = `screen-reader-announce-${(0, import_react38.useId)()}`;
|
|
2615
|
+
const hiddenId = `dialog-screen-reader-announce-${(0, import_react38.useId)()}`;
|
|
2616
|
+
const headerId = `dialog-header-${(0, import_react38.useId)()}`;
|
|
2615
2617
|
const dialogClasses = (0, import_dedupe22.default)(
|
|
2616
2618
|
"mobius",
|
|
2617
2619
|
"mobius-drawer",
|
|
@@ -2627,9 +2629,10 @@ var Drawer = (0, import_react38.forwardRef)((props, ref) => {
|
|
|
2627
2629
|
const contextValue = (0, import_react38.useMemo)(
|
|
2628
2630
|
() => ({
|
|
2629
2631
|
onClose: close,
|
|
2630
|
-
closeLabel
|
|
2632
|
+
closeLabel,
|
|
2633
|
+
headerId
|
|
2631
2634
|
}),
|
|
2632
|
-
[close, closeLabel]
|
|
2635
|
+
[close, closeLabel, headerId]
|
|
2633
2636
|
);
|
|
2634
2637
|
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
2635
2638
|
"dialog",
|
|
@@ -2639,6 +2642,7 @@ var Drawer = (0, import_react38.forwardRef)((props, ref) => {
|
|
|
2639
2642
|
onCancel: close,
|
|
2640
2643
|
className: dialogClasses,
|
|
2641
2644
|
"aria-describedby": hiddenId,
|
|
2645
|
+
"aria-labelledby": headerId,
|
|
2642
2646
|
children: [
|
|
2643
2647
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { id: hiddenId, children: announce }) }),
|
|
2644
2648
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DrawerContext.Provider, { value: contextValue, children })
|
|
@@ -2651,8 +2655,8 @@ Drawer.displayName = "Drawer";
|
|
|
2651
2655
|
// src/components/Drawer/useDrawer.ts
|
|
2652
2656
|
var import_react39 = require("react");
|
|
2653
2657
|
var useDrawer = () => {
|
|
2654
|
-
const { onClose, closeLabel } = (0, import_react39.useContext)(DrawerContext);
|
|
2655
|
-
return { onClose, closeLabel };
|
|
2658
|
+
const { onClose, closeLabel, headerId } = (0, import_react39.useContext)(DrawerContext);
|
|
2659
|
+
return { onClose, closeLabel, headerId };
|
|
2656
2660
|
};
|
|
2657
2661
|
|
|
2658
2662
|
// src/components/Drawer/Header.tsx
|
|
@@ -2661,9 +2665,9 @@ var import_icons8 = require("@simplybusiness/icons");
|
|
|
2661
2665
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2662
2666
|
var Header = (0, import_react40.forwardRef)(
|
|
2663
2667
|
({ children, ...otherProps }, ref) => {
|
|
2664
|
-
const { onClose, closeLabel } = useDrawer();
|
|
2668
|
+
const { onClose, closeLabel, headerId } = useDrawer();
|
|
2665
2669
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("header", { ref, ...otherProps, className: "mobius-drawer__header", children: [
|
|
2666
|
-
children,
|
|
2670
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("h2", { id: headerId, children }),
|
|
2667
2671
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
2668
2672
|
Button,
|
|
2669
2673
|
{
|
|
@@ -3286,8 +3290,9 @@ Modal2.displayName = "Modal";
|
|
|
3286
3290
|
// src/components/NumberField/NumberField.tsx
|
|
3287
3291
|
var import_dedupe36 = __toESM(require("classnames/dedupe"));
|
|
3288
3292
|
var import_react57 = require("react");
|
|
3293
|
+
var import_react58 = require("react");
|
|
3289
3294
|
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
3290
|
-
var NumberField = (0,
|
|
3295
|
+
var NumberField = (0, import_react58.forwardRef)((props, ref) => {
|
|
3291
3296
|
const {
|
|
3292
3297
|
minValue,
|
|
3293
3298
|
maxValue,
|
|
@@ -3297,6 +3302,14 @@ var NumberField = (0, import_react57.forwardRef)((props, ref) => {
|
|
|
3297
3302
|
className,
|
|
3298
3303
|
...otherProps
|
|
3299
3304
|
} = props;
|
|
3305
|
+
const focusedInputRef = (0, import_react57.useRef)(null);
|
|
3306
|
+
const wheelHandler = (0, import_react57.useCallback)((ev) => ev.preventDefault(), []);
|
|
3307
|
+
(0, import_react57.useEffect)(() => {
|
|
3308
|
+
return () => {
|
|
3309
|
+
focusedInputRef.current?.removeEventListener("wheel", wheelHandler);
|
|
3310
|
+
focusedInputRef.current = null;
|
|
3311
|
+
};
|
|
3312
|
+
}, [wheelHandler]);
|
|
3300
3313
|
const containerClasses = (0, import_dedupe36.default)("mobius-number-field", className, {
|
|
3301
3314
|
"--hide-spin-buttons": hideSpinButtons
|
|
3302
3315
|
});
|
|
@@ -3309,10 +3322,33 @@ var NumberField = (0, import_react57.forwardRef)((props, ref) => {
|
|
|
3309
3322
|
event.preventDefault();
|
|
3310
3323
|
}
|
|
3311
3324
|
};
|
|
3325
|
+
const {
|
|
3326
|
+
onFocus: customOnFocus,
|
|
3327
|
+
onBlur: customOnBlur,
|
|
3328
|
+
...rest
|
|
3329
|
+
} = otherProps;
|
|
3330
|
+
const forwardedProps = {
|
|
3331
|
+
...rest,
|
|
3332
|
+
onFocus: (e) => {
|
|
3333
|
+
const el = e.currentTarget;
|
|
3334
|
+
focusedInputRef.current?.removeEventListener("wheel", wheelHandler);
|
|
3335
|
+
focusedInputRef.current = el;
|
|
3336
|
+
el.addEventListener("wheel", wheelHandler, { passive: false });
|
|
3337
|
+
customOnFocus?.(e);
|
|
3338
|
+
},
|
|
3339
|
+
onBlur: (e) => {
|
|
3340
|
+
const el = e.currentTarget;
|
|
3341
|
+
el.removeEventListener("wheel", wheelHandler);
|
|
3342
|
+
if (focusedInputRef.current === el) {
|
|
3343
|
+
focusedInputRef.current = null;
|
|
3344
|
+
}
|
|
3345
|
+
customOnBlur?.(e);
|
|
3346
|
+
}
|
|
3347
|
+
};
|
|
3312
3348
|
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
3313
3349
|
TextField,
|
|
3314
3350
|
{
|
|
3315
|
-
...
|
|
3351
|
+
...forwardedProps,
|
|
3316
3352
|
className: containerClasses,
|
|
3317
3353
|
onBeforeInput: handleBeforeInput,
|
|
3318
3354
|
type: "number",
|
|
@@ -3327,9 +3363,9 @@ var NumberField = (0, import_react57.forwardRef)((props, ref) => {
|
|
|
3327
3363
|
NumberField.displayName = "NumberField";
|
|
3328
3364
|
|
|
3329
3365
|
// src/components/Option/Option.tsx
|
|
3330
|
-
var
|
|
3366
|
+
var import_react59 = require("react");
|
|
3331
3367
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
3332
|
-
var Option2 = (0,
|
|
3368
|
+
var Option2 = (0, import_react59.forwardRef)((props, ref) => {
|
|
3333
3369
|
const { isDisabled, ...rest } = props;
|
|
3334
3370
|
const mappedProps = {
|
|
3335
3371
|
...rest,
|
|
@@ -3341,7 +3377,7 @@ Option2.displayName = "Option";
|
|
|
3341
3377
|
|
|
3342
3378
|
// src/components/PasswordField/PasswordField.tsx
|
|
3343
3379
|
var import_dedupe37 = __toESM(require("classnames/dedupe"));
|
|
3344
|
-
var
|
|
3380
|
+
var import_react60 = require("react");
|
|
3345
3381
|
|
|
3346
3382
|
// src/components/PasswordField/ShowHideButton.tsx
|
|
3347
3383
|
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
@@ -3365,12 +3401,12 @@ var ShowHideButton = ({
|
|
|
3365
3401
|
|
|
3366
3402
|
// src/components/PasswordField/PasswordField.tsx
|
|
3367
3403
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
3368
|
-
var PasswordField = (0,
|
|
3404
|
+
var PasswordField = (0, import_react60.forwardRef)(
|
|
3369
3405
|
({ className, ...props }, ref) => {
|
|
3370
|
-
const [show, setShow] = (0,
|
|
3406
|
+
const [show, setShow] = (0, import_react60.useState)(false);
|
|
3371
3407
|
const type = show ? "text" : "password";
|
|
3372
3408
|
const classes = (0, import_dedupe37.default)("mobius-password-field", className);
|
|
3373
|
-
const localRef = (0,
|
|
3409
|
+
const localRef = (0, import_react60.useRef)(null);
|
|
3374
3410
|
const handleShowHideButtonClick = () => {
|
|
3375
3411
|
setShow((oldShow) => !oldShow);
|
|
3376
3412
|
localRef.current?.focus();
|
|
@@ -3390,30 +3426,30 @@ var PasswordField = (0, import_react59.forwardRef)(
|
|
|
3390
3426
|
PasswordField.displayName = "PasswordField";
|
|
3391
3427
|
|
|
3392
3428
|
// src/components/Popover/Popover.tsx
|
|
3393
|
-
var
|
|
3429
|
+
var import_react61 = require("@floating-ui/react");
|
|
3394
3430
|
var import_icons11 = require("@simplybusiness/icons");
|
|
3395
3431
|
var import_classnames3 = __toESM(require("classnames"));
|
|
3396
|
-
var
|
|
3432
|
+
var import_react62 = require("react");
|
|
3397
3433
|
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
3398
3434
|
var OFFSET_FROM_CONTENT_DEFAULT = 10;
|
|
3399
3435
|
var Popover = (props) => {
|
|
3400
3436
|
const { trigger, children, onOpen, onClose, className } = props;
|
|
3401
|
-
const arrowRef = (0,
|
|
3402
|
-
const [isOpen, setIsOpen] = (0,
|
|
3403
|
-
const { refs, floatingStyles, context } = (0,
|
|
3437
|
+
const arrowRef = (0, import_react62.useRef)(null);
|
|
3438
|
+
const [isOpen, setIsOpen] = (0, import_react62.useState)(false);
|
|
3439
|
+
const { refs, floatingStyles, context } = (0, import_react61.useFloating)({
|
|
3404
3440
|
open: isOpen,
|
|
3405
3441
|
onOpenChange: setIsOpen,
|
|
3406
|
-
whileElementsMounted:
|
|
3442
|
+
whileElementsMounted: import_react61.autoUpdate,
|
|
3407
3443
|
middleware: [
|
|
3408
|
-
(0,
|
|
3444
|
+
(0, import_react61.arrow)({
|
|
3409
3445
|
element: arrowRef
|
|
3410
3446
|
}),
|
|
3411
|
-
(0,
|
|
3412
|
-
(0,
|
|
3413
|
-
(0,
|
|
3447
|
+
(0, import_react61.offset)(OFFSET_FROM_CONTENT_DEFAULT),
|
|
3448
|
+
(0, import_react61.shift)(),
|
|
3449
|
+
(0, import_react61.flip)()
|
|
3414
3450
|
]
|
|
3415
3451
|
});
|
|
3416
|
-
const dismiss = (0,
|
|
3452
|
+
const dismiss = (0, import_react61.useDismiss)(context, {
|
|
3417
3453
|
bubbles: true,
|
|
3418
3454
|
outsidePress: (event) => {
|
|
3419
3455
|
const toggle = refs.reference.current;
|
|
@@ -3424,7 +3460,7 @@ var Popover = (props) => {
|
|
|
3424
3460
|
return true;
|
|
3425
3461
|
}
|
|
3426
3462
|
});
|
|
3427
|
-
const { getReferenceProps, getFloatingProps } = (0,
|
|
3463
|
+
const { getReferenceProps, getFloatingProps } = (0, import_react61.useInteractions)([dismiss]);
|
|
3428
3464
|
const containerClasses = (0, import_classnames3.default)(
|
|
3429
3465
|
"mobius",
|
|
3430
3466
|
"mobius-popover__container",
|
|
@@ -3439,7 +3475,7 @@ var Popover = (props) => {
|
|
|
3439
3475
|
setIsOpen(true);
|
|
3440
3476
|
onOpen?.();
|
|
3441
3477
|
};
|
|
3442
|
-
const triggerComponent = (0,
|
|
3478
|
+
const triggerComponent = (0, import_react62.cloneElement)(trigger, {
|
|
3443
3479
|
ref: refs.setReference,
|
|
3444
3480
|
className: (0, import_classnames3.default)(
|
|
3445
3481
|
trigger.props.className,
|
|
@@ -3487,7 +3523,7 @@ var Popover = (props) => {
|
|
|
3487
3523
|
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "mobius-popover__body", children })
|
|
3488
3524
|
] }),
|
|
3489
3525
|
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
3490
|
-
|
|
3526
|
+
import_react61.FloatingArrow,
|
|
3491
3527
|
{
|
|
3492
3528
|
ref: arrowRef,
|
|
3493
3529
|
context,
|
|
@@ -3503,7 +3539,7 @@ var Popover = (props) => {
|
|
|
3503
3539
|
|
|
3504
3540
|
// src/components/Progress/Progress.tsx
|
|
3505
3541
|
var import_dedupe38 = __toESM(require("classnames/dedupe"));
|
|
3506
|
-
var
|
|
3542
|
+
var import_react63 = require("react");
|
|
3507
3543
|
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
3508
3544
|
function warnAboutInvalidValues(value, minValue, maxValue) {
|
|
3509
3545
|
if (minValue > maxValue) {
|
|
@@ -3545,9 +3581,9 @@ var getLabelComponent = (label, progressLabelId, showLabel) => {
|
|
|
3545
3581
|
var DEFAULT_VALUE = 0;
|
|
3546
3582
|
var DEFAULT_MIN_VALUE = 0;
|
|
3547
3583
|
var DEFAULT_MAX_VALUE = 100;
|
|
3548
|
-
var Progress = (0,
|
|
3549
|
-
const progressId = (0,
|
|
3550
|
-
const progressLabelId = (0,
|
|
3584
|
+
var Progress = (0, import_react63.forwardRef)((props, ref) => {
|
|
3585
|
+
const progressId = (0, import_react63.useId)();
|
|
3586
|
+
const progressLabelId = (0, import_react63.useId)();
|
|
3551
3587
|
const {
|
|
3552
3588
|
id,
|
|
3553
3589
|
label,
|
|
@@ -3603,9 +3639,9 @@ Progress.displayName = "Progress";
|
|
|
3603
3639
|
|
|
3604
3640
|
// src/components/Radio/Radio.tsx
|
|
3605
3641
|
var import_dedupe39 = __toESM(require("classnames/dedupe"));
|
|
3606
|
-
var
|
|
3642
|
+
var import_react64 = require("react");
|
|
3607
3643
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
3608
|
-
var Radio = (0,
|
|
3644
|
+
var Radio = (0, import_react64.forwardRef)(
|
|
3609
3645
|
(props, ref) => {
|
|
3610
3646
|
const {
|
|
3611
3647
|
children,
|
|
@@ -3627,10 +3663,10 @@ var Radio = (0, import_react63.forwardRef)(
|
|
|
3627
3663
|
const isMultiline = label && children;
|
|
3628
3664
|
const isControlled = selected !== void 0;
|
|
3629
3665
|
const isChecked = isControlled ? selected === value : defaultChecked;
|
|
3630
|
-
const hasIconFirst = (0,
|
|
3631
|
-
if (!children ||
|
|
3632
|
-
const firstChild =
|
|
3633
|
-
if (!(0,
|
|
3666
|
+
const hasIconFirst = (0, import_react64.useMemo)(() => {
|
|
3667
|
+
if (!children || import_react64.Children.count(children) === 0) return false;
|
|
3668
|
+
const firstChild = import_react64.Children.toArray(children)[0];
|
|
3669
|
+
if (!(0, import_react64.isValidElement)(firstChild)) return false;
|
|
3634
3670
|
const props2 = firstChild.props;
|
|
3635
3671
|
return "icon" in props2 && props2.icon !== void 0;
|
|
3636
3672
|
}, [children]);
|
|
@@ -3647,14 +3683,6 @@ var Radio = (0, import_react63.forwardRef)(
|
|
|
3647
3683
|
{ "--has-icon-first": hasIconFirst }
|
|
3648
3684
|
);
|
|
3649
3685
|
const inputClasses = (0, import_dedupe39.default)("mobius-radio__input", radioClasses);
|
|
3650
|
-
const handleClick = (event) => {
|
|
3651
|
-
if (onChange) {
|
|
3652
|
-
onChange(event);
|
|
3653
|
-
}
|
|
3654
|
-
if (setSelected) {
|
|
3655
|
-
setSelected(event.currentTarget.value);
|
|
3656
|
-
}
|
|
3657
|
-
};
|
|
3658
3686
|
const {
|
|
3659
3687
|
// @ts-expect-error - TS doesn't like the orientation prop
|
|
3660
3688
|
orientation,
|
|
@@ -3662,6 +3690,9 @@ var Radio = (0, import_react63.forwardRef)(
|
|
|
3662
3690
|
...rest
|
|
3663
3691
|
} = otherProps;
|
|
3664
3692
|
const handleChange = (event) => {
|
|
3693
|
+
if (setSelected) {
|
|
3694
|
+
setSelected(event.target.value);
|
|
3695
|
+
}
|
|
3665
3696
|
if (onChange) {
|
|
3666
3697
|
const adaptedEvent = {
|
|
3667
3698
|
...event.nativeEvent,
|
|
@@ -3679,11 +3710,11 @@ var Radio = (0, import_react63.forwardRef)(
|
|
|
3679
3710
|
disabled: realDisabled,
|
|
3680
3711
|
ref,
|
|
3681
3712
|
className: inputClasses,
|
|
3682
|
-
onClick: handleClick,
|
|
3683
3713
|
value,
|
|
3684
3714
|
tabIndex: 0,
|
|
3685
3715
|
type: "radio",
|
|
3686
|
-
|
|
3716
|
+
onChange: handleChange,
|
|
3717
|
+
...isControlled ? { checked: isChecked } : { defaultChecked: isChecked },
|
|
3687
3718
|
name,
|
|
3688
3719
|
required: isRequired,
|
|
3689
3720
|
...rest
|
|
@@ -3702,7 +3733,7 @@ Radio.displayName = "Radio";
|
|
|
3702
3733
|
|
|
3703
3734
|
// src/components/Radio/RadioGroup.tsx
|
|
3704
3735
|
var import_dedupe40 = __toESM(require("classnames/dedupe"));
|
|
3705
|
-
var
|
|
3736
|
+
var import_react65 = require("react");
|
|
3706
3737
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
3707
3738
|
var getDefaultVal = (children, defaultValue) => {
|
|
3708
3739
|
if (Array.isArray(children) && defaultValue) {
|
|
@@ -3712,7 +3743,7 @@ var getDefaultVal = (children, defaultValue) => {
|
|
|
3712
3743
|
}
|
|
3713
3744
|
return "";
|
|
3714
3745
|
};
|
|
3715
|
-
var RadioGroup = (0,
|
|
3746
|
+
var RadioGroup = (0, import_react65.forwardRef)((props, ref) => {
|
|
3716
3747
|
const {
|
|
3717
3748
|
label,
|
|
3718
3749
|
isDisabled = false,
|
|
@@ -3731,16 +3762,12 @@ var RadioGroup = (0, import_react64.forwardRef)((props, ref) => {
|
|
|
3731
3762
|
...rest
|
|
3732
3763
|
} = props;
|
|
3733
3764
|
const defaultSelected = getDefaultVal(children, value || defaultValue);
|
|
3734
|
-
const [selected, setSelected] = (0,
|
|
3735
|
-
|
|
3736
|
-
(0, import_react64.useEffect)(() => {
|
|
3765
|
+
const [selected, setSelected] = (0, import_react65.useState)(defaultSelected);
|
|
3766
|
+
(0, import_react65.useEffect)(() => {
|
|
3737
3767
|
if (value !== void 0) {
|
|
3738
3768
|
setSelected(value);
|
|
3739
3769
|
}
|
|
3740
3770
|
}, [value]);
|
|
3741
|
-
(0, import_react64.useEffect)(() => {
|
|
3742
|
-
selectedRef.current?.focus();
|
|
3743
|
-
});
|
|
3744
3771
|
const validationClasses = useValidationClasses({
|
|
3745
3772
|
validationState,
|
|
3746
3773
|
isInvalid
|
|
@@ -3762,15 +3789,15 @@ var RadioGroup = (0, import_react64.forwardRef)((props, ref) => {
|
|
|
3762
3789
|
[`--is-${orientation}`]: true
|
|
3763
3790
|
});
|
|
3764
3791
|
const labelClasses = (0, import_dedupe40.default)(radioClasses, validationClasses);
|
|
3765
|
-
const errorMessageId = (0,
|
|
3766
|
-
const defaultNameAttrId = (0,
|
|
3792
|
+
const errorMessageId = (0, import_react65.useId)();
|
|
3793
|
+
const defaultNameAttrId = (0, import_react65.useId)();
|
|
3767
3794
|
const nameAttribute = name || defaultNameAttrId;
|
|
3768
3795
|
const shouldErrorMessageShow = errorMessage ? errorMessageId : void 0;
|
|
3769
3796
|
const describedBy = spaceDelimitedList([
|
|
3770
3797
|
shouldErrorMessageShow,
|
|
3771
3798
|
props["aria-describedby"]
|
|
3772
3799
|
]);
|
|
3773
|
-
const labelId = (0,
|
|
3800
|
+
const labelId = (0, import_react65.useId)();
|
|
3774
3801
|
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3775
3802
|
"div",
|
|
3776
3803
|
{
|
|
@@ -3789,10 +3816,9 @@ var RadioGroup = (0, import_react64.forwardRef)((props, ref) => {
|
|
|
3789
3816
|
role: "radiogroup",
|
|
3790
3817
|
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Stack, { gap: "xs", children: [
|
|
3791
3818
|
label && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Label, { htmlFor: name, id: labelId, className: labelClasses, children: label }),
|
|
3792
|
-
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: radioWrapperClasses, children:
|
|
3793
|
-
if ((0,
|
|
3794
|
-
|
|
3795
|
-
return (0, import_react64.cloneElement)(
|
|
3819
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: radioWrapperClasses, children: import_react65.Children.map(children, (child) => {
|
|
3820
|
+
if ((0, import_react65.isValidElement)(child)) {
|
|
3821
|
+
return (0, import_react65.cloneElement)(
|
|
3796
3822
|
child,
|
|
3797
3823
|
{
|
|
3798
3824
|
orientation,
|
|
@@ -3803,8 +3829,7 @@ var RadioGroup = (0, import_react64.forwardRef)((props, ref) => {
|
|
|
3803
3829
|
setSelected,
|
|
3804
3830
|
isRequired,
|
|
3805
3831
|
"aria-describedby": describedBy,
|
|
3806
|
-
onChange
|
|
3807
|
-
ref: props2.value === selected ? selectedRef : void 0
|
|
3832
|
+
onChange
|
|
3808
3833
|
}
|
|
3809
3834
|
);
|
|
3810
3835
|
}
|
|
@@ -3855,10 +3880,10 @@ Segment.displayName = "Segment";
|
|
|
3855
3880
|
|
|
3856
3881
|
// src/components/Select/Select.tsx
|
|
3857
3882
|
var import_dedupe43 = __toESM(require("classnames/dedupe"));
|
|
3858
|
-
var
|
|
3883
|
+
var import_react66 = require("react");
|
|
3859
3884
|
var import_icons12 = require("@simplybusiness/icons");
|
|
3860
3885
|
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
3861
|
-
var Select = (0,
|
|
3886
|
+
var Select = (0, import_react66.forwardRef)((props, ref) => {
|
|
3862
3887
|
const {
|
|
3863
3888
|
label,
|
|
3864
3889
|
onChange,
|
|
@@ -3899,7 +3924,7 @@ var Select = (0, import_react65.forwardRef)((props, ref) => {
|
|
|
3899
3924
|
otherProps.className
|
|
3900
3925
|
);
|
|
3901
3926
|
const iconClasses = (0, import_dedupe43.default)("mobius-select__icon", sharedClasses);
|
|
3902
|
-
const errorMessageId = (0,
|
|
3927
|
+
const errorMessageId = (0, import_react66.useId)();
|
|
3903
3928
|
const shouldErrorMessageShow = errorMessage ? errorMessageId : void 0;
|
|
3904
3929
|
const describedBy = spaceDelimitedList([
|
|
3905
3930
|
shouldErrorMessageShow,
|
|
@@ -3937,10 +3962,10 @@ Select.displayName = "Select";
|
|
|
3937
3962
|
|
|
3938
3963
|
// src/components/Slider/Slider.tsx
|
|
3939
3964
|
var import_dedupe44 = __toESM(require("classnames/dedupe"));
|
|
3940
|
-
var
|
|
3965
|
+
var import_react68 = require("react");
|
|
3941
3966
|
|
|
3942
3967
|
// src/components/Slider/helpers.ts
|
|
3943
|
-
var
|
|
3968
|
+
var import_react67 = require("react");
|
|
3944
3969
|
function numberFormatter(value, formatOptions, locale = navigator.languages?.[0] || "en-GB") {
|
|
3945
3970
|
if (!formatOptions) {
|
|
3946
3971
|
return value?.toString() || "";
|
|
@@ -3970,11 +3995,11 @@ var Slider = (props) => {
|
|
|
3970
3995
|
formatOptions,
|
|
3971
3996
|
isDisabled = false
|
|
3972
3997
|
} = props;
|
|
3973
|
-
const trackRef = (0,
|
|
3974
|
-
const [currentValue, setCurrentValue] = (0,
|
|
3998
|
+
const trackRef = (0, import_react68.useRef)(null);
|
|
3999
|
+
const [currentValue, setCurrentValue] = (0, import_react68.useState)(
|
|
3975
4000
|
value || defaultValue || 0
|
|
3976
4001
|
);
|
|
3977
|
-
const [isDragging, setIsDraggging] = (0,
|
|
4002
|
+
const [isDragging, setIsDraggging] = (0, import_react68.useState)(false);
|
|
3978
4003
|
const { labelProps, fieldProps } = useLabel({
|
|
3979
4004
|
id,
|
|
3980
4005
|
label,
|
|
@@ -4036,14 +4061,14 @@ var Slider = (props) => {
|
|
|
4036
4061
|
};
|
|
4037
4062
|
|
|
4038
4063
|
// src/components/SVG/SVG.tsx
|
|
4039
|
-
var
|
|
4064
|
+
var import_react69 = require("react");
|
|
4040
4065
|
var import_dedupe45 = __toESM(require("classnames/dedupe"));
|
|
4041
4066
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
4042
|
-
var SVG = (0,
|
|
4067
|
+
var SVG = (0, import_react69.forwardRef)(
|
|
4043
4068
|
(props, ref) => {
|
|
4044
4069
|
const { children, className, ...otherProps } = props;
|
|
4045
4070
|
const classes = (0, import_dedupe45.default)("mobius", "mobius-svg", className);
|
|
4046
|
-
const svgNode =
|
|
4071
|
+
const svgNode = import_react69.Children.only(children);
|
|
4047
4072
|
const { children: svgChildren, viewBox, xmlns } = svgNode.props;
|
|
4048
4073
|
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
4049
4074
|
"svg",
|
|
@@ -4061,10 +4086,10 @@ var SVG = (0, import_react68.forwardRef)(
|
|
|
4061
4086
|
SVG.displayName = "SVG";
|
|
4062
4087
|
|
|
4063
4088
|
// src/components/Switch/Switch.tsx
|
|
4064
|
-
var
|
|
4089
|
+
var import_react70 = require("react");
|
|
4065
4090
|
var import_dedupe46 = __toESM(require("classnames/dedupe"));
|
|
4066
4091
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
4067
|
-
var Switch = (0,
|
|
4092
|
+
var Switch = (0, import_react70.forwardRef)((props, ref) => {
|
|
4068
4093
|
const {
|
|
4069
4094
|
checked = false,
|
|
4070
4095
|
className,
|
|
@@ -4072,8 +4097,8 @@ var Switch = (0, import_react69.forwardRef)((props, ref) => {
|
|
|
4072
4097
|
isDisabled = false,
|
|
4073
4098
|
...otherProps
|
|
4074
4099
|
} = props;
|
|
4075
|
-
const [enabled, setEnabled] = (0,
|
|
4076
|
-
(0,
|
|
4100
|
+
const [enabled, setEnabled] = (0, import_react70.useState)(checked);
|
|
4101
|
+
(0, import_react70.useEffect)(() => {
|
|
4077
4102
|
setEnabled(checked);
|
|
4078
4103
|
}, [checked]);
|
|
4079
4104
|
const classes = (0, import_dedupe46.default)(
|
|
@@ -4110,10 +4135,10 @@ var Switch = (0, import_react69.forwardRef)((props, ref) => {
|
|
|
4110
4135
|
Switch.displayName = "Switch";
|
|
4111
4136
|
|
|
4112
4137
|
// src/components/Table/Table.tsx
|
|
4113
|
-
var
|
|
4138
|
+
var import_react71 = require("react");
|
|
4114
4139
|
var import_dedupe47 = __toESM(require("classnames/dedupe"));
|
|
4115
4140
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
4116
|
-
var Table = (0,
|
|
4141
|
+
var Table = (0, import_react71.forwardRef)(
|
|
4117
4142
|
(props, ref) => {
|
|
4118
4143
|
const classes = (0, import_dedupe47.default)("mobius", "mobius-table", props.className);
|
|
4119
4144
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("table", { ref, ...props, className: classes });
|
|
@@ -4122,40 +4147,40 @@ var Table = (0, import_react70.forwardRef)(
|
|
|
4122
4147
|
Table.displayName = "Table";
|
|
4123
4148
|
|
|
4124
4149
|
// src/components/Table/Head.tsx
|
|
4125
|
-
var
|
|
4150
|
+
var import_react72 = require("react");
|
|
4126
4151
|
var import_dedupe48 = __toESM(require("classnames/dedupe"));
|
|
4127
4152
|
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
4128
|
-
var Head = (0,
|
|
4153
|
+
var Head = (0, import_react72.forwardRef)((props, ref) => {
|
|
4129
4154
|
const classes = (0, import_dedupe48.default)("mobius", "mobius-table__head", props.className);
|
|
4130
4155
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("thead", { ref, ...props, className: classes });
|
|
4131
4156
|
});
|
|
4132
4157
|
Head.displayName = "Table.Head";
|
|
4133
4158
|
|
|
4134
4159
|
// src/components/Table/Body.tsx
|
|
4135
|
-
var
|
|
4160
|
+
var import_react73 = require("react");
|
|
4136
4161
|
var import_dedupe49 = __toESM(require("classnames/dedupe"));
|
|
4137
4162
|
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
4138
|
-
var Body = (0,
|
|
4163
|
+
var Body = (0, import_react73.forwardRef)((props, ref) => {
|
|
4139
4164
|
const classes = (0, import_dedupe49.default)("mobius", "mobius-table__body", props.className);
|
|
4140
4165
|
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tbody", { ref, ...props, className: classes });
|
|
4141
4166
|
});
|
|
4142
4167
|
Body.displayName = "Table.Body";
|
|
4143
4168
|
|
|
4144
4169
|
// src/components/Table/Foot.tsx
|
|
4145
|
-
var
|
|
4170
|
+
var import_react74 = require("react");
|
|
4146
4171
|
var import_dedupe50 = __toESM(require("classnames/dedupe"));
|
|
4147
4172
|
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
4148
|
-
var Foot = (0,
|
|
4173
|
+
var Foot = (0, import_react74.forwardRef)((props, ref) => {
|
|
4149
4174
|
const classes = (0, import_dedupe50.default)("mobius", "mobius-table__foot", props.className);
|
|
4150
4175
|
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("tfoot", { ref, ...props, className: classes });
|
|
4151
4176
|
});
|
|
4152
4177
|
Foot.displayName = "Table.Foot";
|
|
4153
4178
|
|
|
4154
4179
|
// src/components/Table/Row.tsx
|
|
4155
|
-
var
|
|
4180
|
+
var import_react75 = require("react");
|
|
4156
4181
|
var import_dedupe51 = __toESM(require("classnames/dedupe"));
|
|
4157
4182
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
4158
|
-
var Row = (0,
|
|
4183
|
+
var Row = (0, import_react75.forwardRef)(
|
|
4159
4184
|
(props, ref) => {
|
|
4160
4185
|
const classes = (0, import_dedupe51.default)("mobius", "mobius-table__row", props.className);
|
|
4161
4186
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("tr", { ref, ...props, className: classes });
|
|
@@ -4164,10 +4189,10 @@ var Row = (0, import_react74.forwardRef)(
|
|
|
4164
4189
|
Row.displayName = "Table.Row";
|
|
4165
4190
|
|
|
4166
4191
|
// src/components/Table/HeaderCell.tsx
|
|
4167
|
-
var
|
|
4192
|
+
var import_react76 = require("react");
|
|
4168
4193
|
var import_dedupe52 = __toESM(require("classnames/dedupe"));
|
|
4169
4194
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
4170
|
-
var HeaderCell = (0,
|
|
4195
|
+
var HeaderCell = (0, import_react76.forwardRef)((props, ref) => {
|
|
4171
4196
|
const classes = (0, import_dedupe52.default)(
|
|
4172
4197
|
"mobius",
|
|
4173
4198
|
"mobius-table__head-cell",
|
|
@@ -4178,10 +4203,10 @@ var HeaderCell = (0, import_react75.forwardRef)((props, ref) => {
|
|
|
4178
4203
|
HeaderCell.displayName = "Table.HeaderCell";
|
|
4179
4204
|
|
|
4180
4205
|
// src/components/Table/Cell.tsx
|
|
4181
|
-
var
|
|
4206
|
+
var import_react77 = require("react");
|
|
4182
4207
|
var import_dedupe53 = __toESM(require("classnames/dedupe"));
|
|
4183
4208
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
4184
|
-
var Cell = (0,
|
|
4209
|
+
var Cell = (0, import_react77.forwardRef)(
|
|
4185
4210
|
(props, ref) => {
|
|
4186
4211
|
const classes = (0, import_dedupe53.default)(
|
|
4187
4212
|
"mobius",
|
|
@@ -4206,13 +4231,13 @@ Table2.displayName = "Table";
|
|
|
4206
4231
|
|
|
4207
4232
|
// src/components/TextArea/TextArea.tsx
|
|
4208
4233
|
var import_dedupe55 = __toESM(require("classnames/dedupe"));
|
|
4209
|
-
var
|
|
4234
|
+
var import_react79 = require("react");
|
|
4210
4235
|
|
|
4211
4236
|
// src/components/TextAreaInput/TextAreaInput.tsx
|
|
4212
4237
|
var import_dedupe54 = __toESM(require("classnames/dedupe"));
|
|
4213
|
-
var
|
|
4238
|
+
var import_react78 = require("react");
|
|
4214
4239
|
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
4215
|
-
var TextAreaInput = (0,
|
|
4240
|
+
var TextAreaInput = (0, import_react78.forwardRef)((props, ref) => {
|
|
4216
4241
|
const { isSelected, isDisabled, isReadOnly, isRequired, ...otherProps } = props;
|
|
4217
4242
|
const classes = (0, import_dedupe54.default)(
|
|
4218
4243
|
"mobius",
|
|
@@ -4239,7 +4264,7 @@ TextAreaInput.displayName = "TextAreaInput";
|
|
|
4239
4264
|
|
|
4240
4265
|
// src/components/TextArea/TextArea.tsx
|
|
4241
4266
|
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
4242
|
-
var TextArea = (0,
|
|
4267
|
+
var TextArea = (0, import_react79.forwardRef)((props, ref) => {
|
|
4243
4268
|
const {
|
|
4244
4269
|
isDisabled,
|
|
4245
4270
|
className,
|
|
@@ -4284,10 +4309,10 @@ var TextArea = (0, import_react78.forwardRef)((props, ref) => {
|
|
|
4284
4309
|
TextArea.displayName = "TextArea";
|
|
4285
4310
|
|
|
4286
4311
|
// src/components/Title/Title.tsx
|
|
4287
|
-
var
|
|
4312
|
+
var import_react80 = require("react");
|
|
4288
4313
|
var import_dedupe56 = __toESM(require("classnames/dedupe"));
|
|
4289
4314
|
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
4290
|
-
var Title = (0,
|
|
4315
|
+
var Title = (0, import_react80.forwardRef)(
|
|
4291
4316
|
(props, ref) => {
|
|
4292
4317
|
const {
|
|
4293
4318
|
elementType: Element = "div",
|
|
@@ -4309,7 +4334,7 @@ Title.displayName = "Title";
|
|
|
4309
4334
|
|
|
4310
4335
|
// src/components/Trust/Trust.tsx
|
|
4311
4336
|
var import_dedupe57 = __toESM(require("classnames/dedupe"));
|
|
4312
|
-
var
|
|
4337
|
+
var import_react81 = require("react");
|
|
4313
4338
|
|
|
4314
4339
|
// src/components/Trust/constants.ts
|
|
4315
4340
|
var REQUIRED_TRUSTPILOT_CLASS_NAME = "trustpilot-widget";
|
|
@@ -4368,7 +4393,7 @@ var TRUSTPILOT_WIDGET = {
|
|
|
4368
4393
|
|
|
4369
4394
|
// src/components/Trust/Trust.tsx
|
|
4370
4395
|
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
4371
|
-
var Trust = (0,
|
|
4396
|
+
var Trust = (0, import_react81.forwardRef)((props, ref) => {
|
|
4372
4397
|
const {
|
|
4373
4398
|
elementType: Element = "div",
|
|
4374
4399
|
variant,
|
|
@@ -4379,8 +4404,8 @@ var Trust = (0, import_react80.forwardRef)((props, ref) => {
|
|
|
4379
4404
|
stars,
|
|
4380
4405
|
className
|
|
4381
4406
|
} = props;
|
|
4382
|
-
const [isMounted, setIsMounted] = (0,
|
|
4383
|
-
const trustRef = (0,
|
|
4407
|
+
const [isMounted, setIsMounted] = (0, import_react81.useState)(false);
|
|
4408
|
+
const trustRef = (0, import_react81.useRef)(null);
|
|
4384
4409
|
const {
|
|
4385
4410
|
templateId,
|
|
4386
4411
|
className: variantClassName,
|
|
@@ -4406,13 +4431,13 @@ var Trust = (0, import_react80.forwardRef)((props, ref) => {
|
|
|
4406
4431
|
},
|
|
4407
4432
|
className
|
|
4408
4433
|
);
|
|
4409
|
-
(0,
|
|
4434
|
+
(0, import_react81.useEffect)(() => {
|
|
4410
4435
|
const hasTrustpilotLoaded = trustRef.current && window?.Trustpilot && window?.Trustpilot.loadFromElement;
|
|
4411
4436
|
if (isMounted && hasTrustpilotLoaded) {
|
|
4412
4437
|
window.Trustpilot.loadFromElement(trustRef.current, true);
|
|
4413
4438
|
}
|
|
4414
4439
|
}, [isMounted]);
|
|
4415
|
-
(0,
|
|
4440
|
+
(0, import_react81.useEffect)(() => {
|
|
4416
4441
|
setIsMounted(true);
|
|
4417
4442
|
}, []);
|
|
4418
4443
|
if (!isMounted) return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { style: styles });
|
|
@@ -4438,10 +4463,10 @@ var Trust = (0, import_react80.forwardRef)((props, ref) => {
|
|
|
4438
4463
|
});
|
|
4439
4464
|
|
|
4440
4465
|
// src/components/ExpandableText/ExpandableText.tsx
|
|
4441
|
-
var
|
|
4466
|
+
var import_react82 = require("react");
|
|
4442
4467
|
var import_dedupe58 = __toESM(require("classnames/dedupe"));
|
|
4443
4468
|
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
4444
|
-
var ExpandableText = (0,
|
|
4469
|
+
var ExpandableText = (0, import_react82.forwardRef)((props, ref) => {
|
|
4445
4470
|
const {
|
|
4446
4471
|
text,
|
|
4447
4472
|
maxLines = 3,
|
|
@@ -4454,14 +4479,14 @@ var ExpandableText = (0, import_react81.forwardRef)((props, ref) => {
|
|
|
4454
4479
|
onToggle,
|
|
4455
4480
|
...otherProps
|
|
4456
4481
|
} = props;
|
|
4457
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
4458
|
-
const [isCollapsed, setIsCollapsed] = (0,
|
|
4459
|
-
const textRef = (0,
|
|
4482
|
+
const [isExpanded, setIsExpanded] = (0, import_react82.useState)(false);
|
|
4483
|
+
const [isCollapsed, setIsCollapsed] = (0, import_react82.useState)(false);
|
|
4484
|
+
const textRef = (0, import_react82.useRef)(null);
|
|
4460
4485
|
const { down } = useBreakpoint();
|
|
4461
|
-
const baseId = (0,
|
|
4486
|
+
const baseId = (0, import_react82.useId)();
|
|
4462
4487
|
const expandButtonId = `expandable-text-expand-${baseId}`;
|
|
4463
4488
|
const shouldCollapse = breakpoint ? down(breakpoint) : true;
|
|
4464
|
-
(0,
|
|
4489
|
+
(0, import_react82.useEffect)(() => {
|
|
4465
4490
|
if (!shouldCollapse || !textRef.current) {
|
|
4466
4491
|
setIsCollapsed(false);
|
|
4467
4492
|
return;
|