@simplybusiness/mobius 6.4.4 → 6.4.5

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.4.5
4
+
5
+ ### Patch Changes
6
+
7
+ - f655230: Enforce step increment for typed values in NumebrField
8
+
3
9
  ## 6.4.4
4
10
 
5
11
  ### Patch Changes
package/dist/cjs/index.js CHANGED
@@ -3313,9 +3313,9 @@ Modal2.displayName = "Modal";
3313
3313
  // src/components/NumberField/NumberField.tsx
3314
3314
  var import_dedupe36 = __toESM(require("classnames/dedupe"));
3315
3315
  var import_react57 = require("react");
3316
- var import_react58 = require("react");
3317
3316
  var import_jsx_runtime45 = require("react/jsx-runtime");
3318
- var NumberField = (0, import_react58.forwardRef)((props, ref) => {
3317
+ var SMALLEST_INCREMENT = 1e-3;
3318
+ var NumberField = (0, import_react57.forwardRef)((props, ref) => {
3319
3319
  const {
3320
3320
  minValue,
3321
3321
  maxValue,
@@ -3325,6 +3325,11 @@ var NumberField = (0, import_react58.forwardRef)((props, ref) => {
3325
3325
  className,
3326
3326
  ...otherProps
3327
3327
  } = props;
3328
+ const {
3329
+ onFocus: customOnFocus,
3330
+ onBlur: customOnBlur,
3331
+ ...rest
3332
+ } = otherProps;
3328
3333
  const focusedInputRef = (0, import_react57.useRef)(null);
3329
3334
  const wheelHandler = (0, import_react57.useCallback)((ev) => ev.preventDefault(), []);
3330
3335
  (0, import_react57.useEffect)(() => {
@@ -3338,20 +3343,54 @@ var NumberField = (0, import_react58.forwardRef)((props, ref) => {
3338
3343
  });
3339
3344
  const handleBeforeInput = (event) => {
3340
3345
  const { data } = event.nativeEvent;
3341
- if (step != null && Number.isInteger(step) && data === ".") {
3346
+ if (step && Number.isInteger(step) && data === ".") {
3342
3347
  event.preventDefault();
3343
3348
  }
3344
- if (minValue != null && minValue >= 0 && data === "-") {
3349
+ if (minValue && minValue >= 0 && data === "-") {
3345
3350
  event.preventDefault();
3346
3351
  }
3347
3352
  };
3348
- const {
3349
- onFocus: customOnFocus,
3350
- onBlur: customOnBlur,
3351
- ...rest
3352
- } = otherProps;
3353
+ const handleChange = (event) => {
3354
+ const { value } = event.target;
3355
+ const numValue = parseFloat(value);
3356
+ if (value === "" || value === "-" || isNaN(numValue)) {
3357
+ otherProps.onChange?.(event);
3358
+ return;
3359
+ }
3360
+ if (step && step > 1) {
3361
+ const baseValue = minValue ?? 0;
3362
+ const remainder = (numValue - baseValue) % step;
3363
+ if (Math.abs(remainder) > SMALLEST_INCREMENT && Math.abs(remainder - step) > SMALLEST_INCREMENT) {
3364
+ event.preventDefault();
3365
+ return;
3366
+ }
3367
+ }
3368
+ otherProps.onChange?.(event);
3369
+ };
3370
+ const handleBlur = (event) => {
3371
+ const { value } = event.target;
3372
+ const numValue = parseFloat(value);
3373
+ if (step && step > 1 && !isNaN(numValue)) {
3374
+ const baseValue = minValue ?? 0;
3375
+ const steps = Math.round((numValue - baseValue) / step);
3376
+ const snappedValue = baseValue + steps * step;
3377
+ if (snappedValue !== numValue) {
3378
+ event.target.value = snappedValue.toString();
3379
+ const changeEvent = new Event("change", { bubbles: true });
3380
+ event.target.dispatchEvent(changeEvent);
3381
+ const syntheticChangeEvent = {
3382
+ ...event,
3383
+ target: event.target,
3384
+ currentTarget: event.currentTarget
3385
+ };
3386
+ otherProps.onChange?.(syntheticChangeEvent);
3387
+ }
3388
+ }
3389
+ customOnBlur?.(event);
3390
+ };
3353
3391
  const forwardedProps = {
3354
3392
  ...rest,
3393
+ onChange: handleChange,
3355
3394
  onFocus: (e) => {
3356
3395
  const el = e.currentTarget;
3357
3396
  focusedInputRef.current?.removeEventListener("wheel", wheelHandler);
@@ -3359,14 +3398,7 @@ var NumberField = (0, import_react58.forwardRef)((props, ref) => {
3359
3398
  el.addEventListener("wheel", wheelHandler, { passive: false });
3360
3399
  customOnFocus?.(e);
3361
3400
  },
3362
- onBlur: (e) => {
3363
- const el = e.currentTarget;
3364
- el.removeEventListener("wheel", wheelHandler);
3365
- if (focusedInputRef.current === el) {
3366
- focusedInputRef.current = null;
3367
- }
3368
- customOnBlur?.(e);
3369
- }
3401
+ onBlur: (e) => handleBlur(e)
3370
3402
  };
3371
3403
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3372
3404
  TextField,
@@ -3386,9 +3418,9 @@ var NumberField = (0, import_react58.forwardRef)((props, ref) => {
3386
3418
  NumberField.displayName = "NumberField";
3387
3419
 
3388
3420
  // src/components/Option/Option.tsx
3389
- var import_react59 = require("react");
3421
+ var import_react58 = require("react");
3390
3422
  var import_jsx_runtime46 = require("react/jsx-runtime");
3391
- var Option2 = (0, import_react59.forwardRef)((props, ref) => {
3423
+ var Option2 = (0, import_react58.forwardRef)((props, ref) => {
3392
3424
  const { isDisabled, ...rest } = props;
3393
3425
  const mappedProps = {
3394
3426
  ...rest,
@@ -3400,7 +3432,7 @@ Option2.displayName = "Option";
3400
3432
 
3401
3433
  // src/components/PasswordField/PasswordField.tsx
3402
3434
  var import_dedupe37 = __toESM(require("classnames/dedupe"));
3403
- var import_react60 = require("react");
3435
+ var import_react59 = require("react");
3404
3436
 
3405
3437
  // src/components/PasswordField/ShowHideButton.tsx
3406
3438
  var import_jsx_runtime47 = require("react/jsx-runtime");
@@ -3424,12 +3456,12 @@ var ShowHideButton = ({
3424
3456
 
3425
3457
  // src/components/PasswordField/PasswordField.tsx
3426
3458
  var import_jsx_runtime48 = require("react/jsx-runtime");
3427
- var PasswordField = (0, import_react60.forwardRef)(
3459
+ var PasswordField = (0, import_react59.forwardRef)(
3428
3460
  ({ className, ...props }, ref) => {
3429
- const [show, setShow] = (0, import_react60.useState)(false);
3461
+ const [show, setShow] = (0, import_react59.useState)(false);
3430
3462
  const type = show ? "text" : "password";
3431
3463
  const classes = (0, import_dedupe37.default)("mobius-password-field", className);
3432
- const localRef = (0, import_react60.useRef)(null);
3464
+ const localRef = (0, import_react59.useRef)(null);
3433
3465
  const handleShowHideButtonClick = () => {
3434
3466
  setShow((oldShow) => !oldShow);
3435
3467
  localRef.current?.focus();
@@ -3449,30 +3481,30 @@ var PasswordField = (0, import_react60.forwardRef)(
3449
3481
  PasswordField.displayName = "PasswordField";
3450
3482
 
3451
3483
  // src/components/Popover/Popover.tsx
3452
- var import_react61 = require("@floating-ui/react");
3484
+ var import_react60 = require("@floating-ui/react");
3453
3485
  var import_icons11 = require("@simplybusiness/icons");
3454
3486
  var import_classnames3 = __toESM(require("classnames"));
3455
- var import_react62 = require("react");
3487
+ var import_react61 = require("react");
3456
3488
  var import_jsx_runtime49 = require("react/jsx-runtime");
3457
3489
  var OFFSET_FROM_CONTENT_DEFAULT = 10;
3458
3490
  var Popover = (props) => {
3459
3491
  const { trigger, children, onOpen, onClose, className } = props;
3460
- const arrowRef = (0, import_react62.useRef)(null);
3461
- const [isOpen, setIsOpen] = (0, import_react62.useState)(false);
3462
- const { refs, floatingStyles, context } = (0, import_react61.useFloating)({
3492
+ const arrowRef = (0, import_react61.useRef)(null);
3493
+ const [isOpen, setIsOpen] = (0, import_react61.useState)(false);
3494
+ const { refs, floatingStyles, context } = (0, import_react60.useFloating)({
3463
3495
  open: isOpen,
3464
3496
  onOpenChange: setIsOpen,
3465
- whileElementsMounted: import_react61.autoUpdate,
3497
+ whileElementsMounted: import_react60.autoUpdate,
3466
3498
  middleware: [
3467
- (0, import_react61.arrow)({
3499
+ (0, import_react60.arrow)({
3468
3500
  element: arrowRef
3469
3501
  }),
3470
- (0, import_react61.offset)(OFFSET_FROM_CONTENT_DEFAULT),
3471
- (0, import_react61.shift)(),
3472
- (0, import_react61.flip)()
3502
+ (0, import_react60.offset)(OFFSET_FROM_CONTENT_DEFAULT),
3503
+ (0, import_react60.shift)(),
3504
+ (0, import_react60.flip)()
3473
3505
  ]
3474
3506
  });
3475
- const dismiss = (0, import_react61.useDismiss)(context, {
3507
+ const dismiss = (0, import_react60.useDismiss)(context, {
3476
3508
  bubbles: true,
3477
3509
  outsidePress: (event) => {
3478
3510
  const toggle = refs.reference.current;
@@ -3483,7 +3515,7 @@ var Popover = (props) => {
3483
3515
  return true;
3484
3516
  }
3485
3517
  });
3486
- const { getReferenceProps, getFloatingProps } = (0, import_react61.useInteractions)([dismiss]);
3518
+ const { getReferenceProps, getFloatingProps } = (0, import_react60.useInteractions)([dismiss]);
3487
3519
  const containerClasses = (0, import_classnames3.default)(
3488
3520
  "mobius",
3489
3521
  "mobius-popover__container",
@@ -3498,7 +3530,7 @@ var Popover = (props) => {
3498
3530
  setIsOpen(true);
3499
3531
  onOpen?.();
3500
3532
  };
3501
- const triggerComponent = (0, import_react62.cloneElement)(trigger, {
3533
+ const triggerComponent = (0, import_react61.cloneElement)(trigger, {
3502
3534
  ref: refs.setReference,
3503
3535
  className: (0, import_classnames3.default)(
3504
3536
  trigger.props.className,
@@ -3546,7 +3578,7 @@ var Popover = (props) => {
3546
3578
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "mobius-popover__body", children })
3547
3579
  ] }),
3548
3580
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3549
- import_react61.FloatingArrow,
3581
+ import_react60.FloatingArrow,
3550
3582
  {
3551
3583
  ref: arrowRef,
3552
3584
  context,
@@ -3562,7 +3594,7 @@ var Popover = (props) => {
3562
3594
 
3563
3595
  // src/components/Progress/Progress.tsx
3564
3596
  var import_dedupe38 = __toESM(require("classnames/dedupe"));
3565
- var import_react63 = require("react");
3597
+ var import_react62 = require("react");
3566
3598
  var import_jsx_runtime50 = require("react/jsx-runtime");
3567
3599
  function warnAboutInvalidValues(value, minValue, maxValue) {
3568
3600
  if (minValue > maxValue) {
@@ -3604,9 +3636,9 @@ var getLabelComponent = (label, progressLabelId, showLabel) => {
3604
3636
  var DEFAULT_VALUE = 0;
3605
3637
  var DEFAULT_MIN_VALUE = 0;
3606
3638
  var DEFAULT_MAX_VALUE = 100;
3607
- var Progress = (0, import_react63.forwardRef)((props, ref) => {
3608
- const progressId = (0, import_react63.useId)();
3609
- const progressLabelId = (0, import_react63.useId)();
3639
+ var Progress = (0, import_react62.forwardRef)((props, ref) => {
3640
+ const progressId = (0, import_react62.useId)();
3641
+ const progressLabelId = (0, import_react62.useId)();
3610
3642
  const {
3611
3643
  id,
3612
3644
  label,
@@ -3662,9 +3694,9 @@ Progress.displayName = "Progress";
3662
3694
 
3663
3695
  // src/components/Radio/Radio.tsx
3664
3696
  var import_dedupe39 = __toESM(require("classnames/dedupe"));
3665
- var import_react64 = require("react");
3697
+ var import_react63 = require("react");
3666
3698
  var import_jsx_runtime51 = require("react/jsx-runtime");
3667
- var Radio = (0, import_react64.forwardRef)(
3699
+ var Radio = (0, import_react63.forwardRef)(
3668
3700
  (props, ref) => {
3669
3701
  const {
3670
3702
  children,
@@ -3686,10 +3718,10 @@ var Radio = (0, import_react64.forwardRef)(
3686
3718
  const isMultiline = label && children;
3687
3719
  const isControlled = selected !== void 0;
3688
3720
  const isChecked = isControlled ? selected === value : defaultChecked;
3689
- const hasIconFirst = (0, import_react64.useMemo)(() => {
3690
- if (!children || import_react64.Children.count(children) === 0) return false;
3691
- const firstChild = import_react64.Children.toArray(children)[0];
3692
- if (!(0, import_react64.isValidElement)(firstChild)) return false;
3721
+ const hasIconFirst = (0, import_react63.useMemo)(() => {
3722
+ if (!children || import_react63.Children.count(children) === 0) return false;
3723
+ const firstChild = import_react63.Children.toArray(children)[0];
3724
+ if (!(0, import_react63.isValidElement)(firstChild)) return false;
3693
3725
  const props2 = firstChild.props;
3694
3726
  return "icon" in props2 && props2.icon !== void 0;
3695
3727
  }, [children]);
@@ -3756,7 +3788,7 @@ Radio.displayName = "Radio";
3756
3788
 
3757
3789
  // src/components/Radio/RadioGroup.tsx
3758
3790
  var import_dedupe40 = __toESM(require("classnames/dedupe"));
3759
- var import_react65 = require("react");
3791
+ var import_react64 = require("react");
3760
3792
  var import_jsx_runtime52 = require("react/jsx-runtime");
3761
3793
  var getDefaultVal = (children, defaultValue) => {
3762
3794
  if (Array.isArray(children) && defaultValue) {
@@ -3766,7 +3798,7 @@ var getDefaultVal = (children, defaultValue) => {
3766
3798
  }
3767
3799
  return "";
3768
3800
  };
3769
- var RadioGroup = (0, import_react65.forwardRef)((props, ref) => {
3801
+ var RadioGroup = (0, import_react64.forwardRef)((props, ref) => {
3770
3802
  const {
3771
3803
  label,
3772
3804
  isDisabled = false,
@@ -3785,8 +3817,8 @@ var RadioGroup = (0, import_react65.forwardRef)((props, ref) => {
3785
3817
  ...rest
3786
3818
  } = props;
3787
3819
  const defaultSelected = getDefaultVal(children, value || defaultValue);
3788
- const [selected, setSelected] = (0, import_react65.useState)(defaultSelected);
3789
- (0, import_react65.useEffect)(() => {
3820
+ const [selected, setSelected] = (0, import_react64.useState)(defaultSelected);
3821
+ (0, import_react64.useEffect)(() => {
3790
3822
  if (value !== void 0) {
3791
3823
  setSelected(value);
3792
3824
  }
@@ -3812,15 +3844,15 @@ var RadioGroup = (0, import_react65.forwardRef)((props, ref) => {
3812
3844
  [`--is-${orientation}`]: true
3813
3845
  });
3814
3846
  const labelClasses = (0, import_dedupe40.default)(radioClasses, validationClasses);
3815
- const errorMessageId = (0, import_react65.useId)();
3816
- const defaultNameAttrId = (0, import_react65.useId)();
3847
+ const errorMessageId = (0, import_react64.useId)();
3848
+ const defaultNameAttrId = (0, import_react64.useId)();
3817
3849
  const nameAttribute = name || defaultNameAttrId;
3818
3850
  const shouldErrorMessageShow = errorMessage ? errorMessageId : void 0;
3819
3851
  const describedBy = spaceDelimitedList([
3820
3852
  shouldErrorMessageShow,
3821
3853
  props["aria-describedby"]
3822
3854
  ]);
3823
- const labelId = (0, import_react65.useId)();
3855
+ const labelId = (0, import_react64.useId)();
3824
3856
  return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3825
3857
  "div",
3826
3858
  {
@@ -3839,9 +3871,9 @@ var RadioGroup = (0, import_react65.forwardRef)((props, ref) => {
3839
3871
  role: "radiogroup",
3840
3872
  children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Stack, { gap: "xs", children: [
3841
3873
  label && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Label, { htmlFor: name, id: labelId, className: labelClasses, children: label }),
3842
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: radioWrapperClasses, children: import_react65.Children.map(children, (child) => {
3843
- if ((0, import_react65.isValidElement)(child)) {
3844
- return (0, import_react65.cloneElement)(
3874
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: radioWrapperClasses, children: import_react64.Children.map(children, (child) => {
3875
+ if ((0, import_react64.isValidElement)(child)) {
3876
+ return (0, import_react64.cloneElement)(
3845
3877
  child,
3846
3878
  {
3847
3879
  orientation,
@@ -3904,9 +3936,9 @@ Segment.displayName = "Segment";
3904
3936
  // src/components/Select/Select.tsx
3905
3937
  var import_icons12 = require("@simplybusiness/icons");
3906
3938
  var import_dedupe43 = __toESM(require("classnames/dedupe"));
3907
- var import_react66 = require("react");
3939
+ var import_react65 = require("react");
3908
3940
  var import_jsx_runtime55 = require("react/jsx-runtime");
3909
- var Select = (0, import_react66.forwardRef)((props, ref) => {
3941
+ var Select = (0, import_react65.forwardRef)((props, ref) => {
3910
3942
  const {
3911
3943
  label,
3912
3944
  onChange,
@@ -3947,7 +3979,7 @@ var Select = (0, import_react66.forwardRef)((props, ref) => {
3947
3979
  otherProps.className
3948
3980
  );
3949
3981
  const iconClasses = (0, import_dedupe43.default)("mobius-select__icon", sharedClasses);
3950
- const errorMessageId = (0, import_react66.useId)();
3982
+ const errorMessageId = (0, import_react65.useId)();
3951
3983
  const shouldErrorMessageShow = errorMessage ? errorMessageId : void 0;
3952
3984
  const describedBy = spaceDelimitedList([
3953
3985
  shouldErrorMessageShow,
@@ -3986,10 +4018,10 @@ Select.displayName = "Select";
3986
4018
 
3987
4019
  // src/components/Slider/Slider.tsx
3988
4020
  var import_dedupe44 = __toESM(require("classnames/dedupe"));
3989
- var import_react68 = require("react");
4021
+ var import_react67 = require("react");
3990
4022
 
3991
4023
  // src/components/Slider/helpers.ts
3992
- var import_react67 = require("react");
4024
+ var import_react66 = require("react");
3993
4025
  function numberFormatter(value, formatOptions, locale = navigator.languages?.[0] || "en-GB") {
3994
4026
  if (!formatOptions) {
3995
4027
  return value?.toString() || "";
@@ -4019,11 +4051,11 @@ var Slider = (props) => {
4019
4051
  formatOptions,
4020
4052
  isDisabled = false
4021
4053
  } = props;
4022
- const trackRef = (0, import_react68.useRef)(null);
4023
- const [currentValue, setCurrentValue] = (0, import_react68.useState)(
4054
+ const trackRef = (0, import_react67.useRef)(null);
4055
+ const [currentValue, setCurrentValue] = (0, import_react67.useState)(
4024
4056
  value || defaultValue || 0
4025
4057
  );
4026
- const [isDragging, setIsDraggging] = (0, import_react68.useState)(false);
4058
+ const [isDragging, setIsDraggging] = (0, import_react67.useState)(false);
4027
4059
  const { labelProps, fieldProps } = useLabel({
4028
4060
  id,
4029
4061
  label,
@@ -4085,14 +4117,14 @@ var Slider = (props) => {
4085
4117
  };
4086
4118
 
4087
4119
  // src/components/SVG/SVG.tsx
4088
- var import_react69 = require("react");
4120
+ var import_react68 = require("react");
4089
4121
  var import_dedupe45 = __toESM(require("classnames/dedupe"));
4090
4122
  var import_jsx_runtime57 = require("react/jsx-runtime");
4091
- var SVG = (0, import_react69.forwardRef)(
4123
+ var SVG = (0, import_react68.forwardRef)(
4092
4124
  (props, ref) => {
4093
4125
  const { children, className, ...otherProps } = props;
4094
4126
  const classes = (0, import_dedupe45.default)("mobius", "mobius-svg", className);
4095
- const svgNode = import_react69.Children.only(children);
4127
+ const svgNode = import_react68.Children.only(children);
4096
4128
  const { children: svgChildren, viewBox, xmlns } = svgNode.props;
4097
4129
  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
4098
4130
  "svg",
@@ -4110,10 +4142,10 @@ var SVG = (0, import_react69.forwardRef)(
4110
4142
  SVG.displayName = "SVG";
4111
4143
 
4112
4144
  // src/components/Switch/Switch.tsx
4113
- var import_react70 = require("react");
4145
+ var import_react69 = require("react");
4114
4146
  var import_dedupe46 = __toESM(require("classnames/dedupe"));
4115
4147
  var import_jsx_runtime58 = require("react/jsx-runtime");
4116
- var Switch = (0, import_react70.forwardRef)((props, ref) => {
4148
+ var Switch = (0, import_react69.forwardRef)((props, ref) => {
4117
4149
  const {
4118
4150
  checked = false,
4119
4151
  className,
@@ -4121,8 +4153,8 @@ var Switch = (0, import_react70.forwardRef)((props, ref) => {
4121
4153
  isDisabled = false,
4122
4154
  ...otherProps
4123
4155
  } = props;
4124
- const [enabled, setEnabled] = (0, import_react70.useState)(checked);
4125
- (0, import_react70.useEffect)(() => {
4156
+ const [enabled, setEnabled] = (0, import_react69.useState)(checked);
4157
+ (0, import_react69.useEffect)(() => {
4126
4158
  setEnabled(checked);
4127
4159
  }, [checked]);
4128
4160
  const classes = (0, import_dedupe46.default)(
@@ -4159,10 +4191,10 @@ var Switch = (0, import_react70.forwardRef)((props, ref) => {
4159
4191
  Switch.displayName = "Switch";
4160
4192
 
4161
4193
  // src/components/Table/Table.tsx
4162
- var import_react71 = require("react");
4194
+ var import_react70 = require("react");
4163
4195
  var import_dedupe47 = __toESM(require("classnames/dedupe"));
4164
4196
  var import_jsx_runtime59 = require("react/jsx-runtime");
4165
- var Table = (0, import_react71.forwardRef)(
4197
+ var Table = (0, import_react70.forwardRef)(
4166
4198
  (props, ref) => {
4167
4199
  const classes = (0, import_dedupe47.default)("mobius", "mobius-table", props.className);
4168
4200
  return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("table", { ref, ...props, className: classes });
@@ -4171,40 +4203,40 @@ var Table = (0, import_react71.forwardRef)(
4171
4203
  Table.displayName = "Table";
4172
4204
 
4173
4205
  // src/components/Table/Head.tsx
4174
- var import_react72 = require("react");
4206
+ var import_react71 = require("react");
4175
4207
  var import_dedupe48 = __toESM(require("classnames/dedupe"));
4176
4208
  var import_jsx_runtime60 = require("react/jsx-runtime");
4177
- var Head = (0, import_react72.forwardRef)((props, ref) => {
4209
+ var Head = (0, import_react71.forwardRef)((props, ref) => {
4178
4210
  const classes = (0, import_dedupe48.default)("mobius", "mobius-table__head", props.className);
4179
4211
  return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("thead", { ref, ...props, className: classes });
4180
4212
  });
4181
4213
  Head.displayName = "Table.Head";
4182
4214
 
4183
4215
  // src/components/Table/Body.tsx
4184
- var import_react73 = require("react");
4216
+ var import_react72 = require("react");
4185
4217
  var import_dedupe49 = __toESM(require("classnames/dedupe"));
4186
4218
  var import_jsx_runtime61 = require("react/jsx-runtime");
4187
- var Body = (0, import_react73.forwardRef)((props, ref) => {
4219
+ var Body = (0, import_react72.forwardRef)((props, ref) => {
4188
4220
  const classes = (0, import_dedupe49.default)("mobius", "mobius-table__body", props.className);
4189
4221
  return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tbody", { ref, ...props, className: classes });
4190
4222
  });
4191
4223
  Body.displayName = "Table.Body";
4192
4224
 
4193
4225
  // src/components/Table/Foot.tsx
4194
- var import_react74 = require("react");
4226
+ var import_react73 = require("react");
4195
4227
  var import_dedupe50 = __toESM(require("classnames/dedupe"));
4196
4228
  var import_jsx_runtime62 = require("react/jsx-runtime");
4197
- var Foot = (0, import_react74.forwardRef)((props, ref) => {
4229
+ var Foot = (0, import_react73.forwardRef)((props, ref) => {
4198
4230
  const classes = (0, import_dedupe50.default)("mobius", "mobius-table__foot", props.className);
4199
4231
  return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("tfoot", { ref, ...props, className: classes });
4200
4232
  });
4201
4233
  Foot.displayName = "Table.Foot";
4202
4234
 
4203
4235
  // src/components/Table/Row.tsx
4204
- var import_react75 = require("react");
4236
+ var import_react74 = require("react");
4205
4237
  var import_dedupe51 = __toESM(require("classnames/dedupe"));
4206
4238
  var import_jsx_runtime63 = require("react/jsx-runtime");
4207
- var Row = (0, import_react75.forwardRef)(
4239
+ var Row = (0, import_react74.forwardRef)(
4208
4240
  (props, ref) => {
4209
4241
  const classes = (0, import_dedupe51.default)("mobius", "mobius-table__row", props.className);
4210
4242
  return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("tr", { ref, ...props, className: classes });
@@ -4213,10 +4245,10 @@ var Row = (0, import_react75.forwardRef)(
4213
4245
  Row.displayName = "Table.Row";
4214
4246
 
4215
4247
  // src/components/Table/HeaderCell.tsx
4216
- var import_react76 = require("react");
4248
+ var import_react75 = require("react");
4217
4249
  var import_dedupe52 = __toESM(require("classnames/dedupe"));
4218
4250
  var import_jsx_runtime64 = require("react/jsx-runtime");
4219
- var HeaderCell = (0, import_react76.forwardRef)((props, ref) => {
4251
+ var HeaderCell = (0, import_react75.forwardRef)((props, ref) => {
4220
4252
  const classes = (0, import_dedupe52.default)(
4221
4253
  "mobius",
4222
4254
  "mobius-table__head-cell",
@@ -4227,10 +4259,10 @@ var HeaderCell = (0, import_react76.forwardRef)((props, ref) => {
4227
4259
  HeaderCell.displayName = "Table.HeaderCell";
4228
4260
 
4229
4261
  // src/components/Table/Cell.tsx
4230
- var import_react77 = require("react");
4262
+ var import_react76 = require("react");
4231
4263
  var import_dedupe53 = __toESM(require("classnames/dedupe"));
4232
4264
  var import_jsx_runtime65 = require("react/jsx-runtime");
4233
- var Cell = (0, import_react77.forwardRef)(
4265
+ var Cell = (0, import_react76.forwardRef)(
4234
4266
  (props, ref) => {
4235
4267
  const classes = (0, import_dedupe53.default)(
4236
4268
  "mobius",
@@ -4255,13 +4287,13 @@ Table2.displayName = "Table";
4255
4287
 
4256
4288
  // src/components/TextArea/TextArea.tsx
4257
4289
  var import_dedupe55 = __toESM(require("classnames/dedupe"));
4258
- var import_react79 = require("react");
4290
+ var import_react78 = require("react");
4259
4291
 
4260
4292
  // src/components/TextAreaInput/TextAreaInput.tsx
4261
4293
  var import_dedupe54 = __toESM(require("classnames/dedupe"));
4262
- var import_react78 = require("react");
4294
+ var import_react77 = require("react");
4263
4295
  var import_jsx_runtime66 = require("react/jsx-runtime");
4264
- var TextAreaInput = (0, import_react78.forwardRef)((props, ref) => {
4296
+ var TextAreaInput = (0, import_react77.forwardRef)((props, ref) => {
4265
4297
  const { isSelected, isDisabled, isReadOnly, isRequired, ...otherProps } = props;
4266
4298
  const classes = (0, import_dedupe54.default)(
4267
4299
  "mobius",
@@ -4288,7 +4320,7 @@ TextAreaInput.displayName = "TextAreaInput";
4288
4320
 
4289
4321
  // src/components/TextArea/TextArea.tsx
4290
4322
  var import_jsx_runtime67 = require("react/jsx-runtime");
4291
- var TextArea = (0, import_react79.forwardRef)((props, ref) => {
4323
+ var TextArea = (0, import_react78.forwardRef)((props, ref) => {
4292
4324
  const {
4293
4325
  isDisabled,
4294
4326
  className,
@@ -4333,10 +4365,10 @@ var TextArea = (0, import_react79.forwardRef)((props, ref) => {
4333
4365
  TextArea.displayName = "TextArea";
4334
4366
 
4335
4367
  // src/components/Title/Title.tsx
4336
- var import_react80 = require("react");
4368
+ var import_react79 = require("react");
4337
4369
  var import_dedupe56 = __toESM(require("classnames/dedupe"));
4338
4370
  var import_jsx_runtime68 = require("react/jsx-runtime");
4339
- var Title = (0, import_react80.forwardRef)(
4371
+ var Title = (0, import_react79.forwardRef)(
4340
4372
  (props, ref) => {
4341
4373
  const {
4342
4374
  elementType: Element = "div",
@@ -4358,7 +4390,7 @@ Title.displayName = "Title";
4358
4390
 
4359
4391
  // src/components/Trust/Trust.tsx
4360
4392
  var import_dedupe57 = __toESM(require("classnames/dedupe"));
4361
- var import_react81 = require("react");
4393
+ var import_react80 = require("react");
4362
4394
 
4363
4395
  // src/components/Trust/constants.ts
4364
4396
  var REQUIRED_TRUSTPILOT_CLASS_NAME = "trustpilot-widget";
@@ -4417,7 +4449,7 @@ var TRUSTPILOT_WIDGET = {
4417
4449
 
4418
4450
  // src/components/Trust/Trust.tsx
4419
4451
  var import_jsx_runtime69 = require("react/jsx-runtime");
4420
- var Trust = (0, import_react81.forwardRef)((props, ref) => {
4452
+ var Trust = (0, import_react80.forwardRef)((props, ref) => {
4421
4453
  const {
4422
4454
  elementType: Element = "div",
4423
4455
  variant,
@@ -4428,8 +4460,8 @@ var Trust = (0, import_react81.forwardRef)((props, ref) => {
4428
4460
  stars,
4429
4461
  className
4430
4462
  } = props;
4431
- const [isMounted, setIsMounted] = (0, import_react81.useState)(false);
4432
- const trustRef = (0, import_react81.useRef)(null);
4463
+ const [isMounted, setIsMounted] = (0, import_react80.useState)(false);
4464
+ const trustRef = (0, import_react80.useRef)(null);
4433
4465
  const {
4434
4466
  templateId,
4435
4467
  className: variantClassName,
@@ -4455,13 +4487,13 @@ var Trust = (0, import_react81.forwardRef)((props, ref) => {
4455
4487
  },
4456
4488
  className
4457
4489
  );
4458
- (0, import_react81.useEffect)(() => {
4490
+ (0, import_react80.useEffect)(() => {
4459
4491
  const hasTrustpilotLoaded = trustRef.current && window?.Trustpilot && window?.Trustpilot.loadFromElement;
4460
4492
  if (isMounted && hasTrustpilotLoaded) {
4461
4493
  window.Trustpilot.loadFromElement(trustRef.current, true);
4462
4494
  }
4463
4495
  }, [isMounted]);
4464
- (0, import_react81.useEffect)(() => {
4496
+ (0, import_react80.useEffect)(() => {
4465
4497
  setIsMounted(true);
4466
4498
  }, []);
4467
4499
  if (!isMounted) return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { style: styles });
@@ -4487,10 +4519,10 @@ var Trust = (0, import_react81.forwardRef)((props, ref) => {
4487
4519
  });
4488
4520
 
4489
4521
  // src/components/ExpandableText/ExpandableText.tsx
4490
- var import_react82 = require("react");
4522
+ var import_react81 = require("react");
4491
4523
  var import_dedupe58 = __toESM(require("classnames/dedupe"));
4492
4524
  var import_jsx_runtime70 = require("react/jsx-runtime");
4493
- var ExpandableText = (0, import_react82.forwardRef)((props, ref) => {
4525
+ var ExpandableText = (0, import_react81.forwardRef)((props, ref) => {
4494
4526
  const {
4495
4527
  text,
4496
4528
  maxLines = 3,
@@ -4503,14 +4535,14 @@ var ExpandableText = (0, import_react82.forwardRef)((props, ref) => {
4503
4535
  onToggle,
4504
4536
  ...otherProps
4505
4537
  } = props;
4506
- const [isExpanded, setIsExpanded] = (0, import_react82.useState)(false);
4507
- const [isCollapsed, setIsCollapsed] = (0, import_react82.useState)(false);
4508
- const textRef = (0, import_react82.useRef)(null);
4538
+ const [isExpanded, setIsExpanded] = (0, import_react81.useState)(false);
4539
+ const [isCollapsed, setIsCollapsed] = (0, import_react81.useState)(false);
4540
+ const textRef = (0, import_react81.useRef)(null);
4509
4541
  const { down } = useBreakpoint();
4510
- const baseId = (0, import_react82.useId)();
4542
+ const baseId = (0, import_react81.useId)();
4511
4543
  const expandButtonId = `expandable-text-expand-${baseId}`;
4512
4544
  const shouldCollapse = breakpoint ? down(breakpoint) : true;
4513
- (0, import_react82.useEffect)(() => {
4545
+ (0, import_react81.useEffect)(() => {
4514
4546
  if (!shouldCollapse || !textRef.current) {
4515
4547
  setIsCollapsed(false);
4516
4548
  return;
@@ -4573,11 +4605,11 @@ var ExpandableText = (0, import_react82.forwardRef)((props, ref) => {
4573
4605
  ExpandableText.displayName = "ExpandableText";
4574
4606
 
4575
4607
  // src/components/MaskedField/MaskedField.tsx
4576
- var import_react83 = require("react");
4608
+ var import_react82 = require("react");
4577
4609
  var import_react_imask = require("react-imask");
4578
4610
  var import_jsx_runtime71 = require("react/jsx-runtime");
4579
4611
  var useAcceptHandler = (onChange, useMaskedValue, name) => {
4580
- return (0, import_react83.useCallback)(
4612
+ return (0, import_react82.useCallback)(
4581
4613
  (maskedValue, maskInstance) => {
4582
4614
  if (!onChange) {
4583
4615
  return;
@@ -4593,7 +4625,7 @@ var useAcceptHandler = (onChange, useMaskedValue, name) => {
4593
4625
  );
4594
4626
  };
4595
4627
  var useCombinedRef = (imaskRef, forwardedRef) => {
4596
- return (0, import_react83.useCallback)(
4628
+ return (0, import_react82.useCallback)(
4597
4629
  (element) => {
4598
4630
  imaskRef.current = element;
4599
4631
  if (typeof forwardedRef === "function") {
@@ -4606,7 +4638,7 @@ var useCombinedRef = (imaskRef, forwardedRef) => {
4606
4638
  );
4607
4639
  };
4608
4640
  var useBlurHandler = (onBlur, maskRef, useMaskedValue, name) => {
4609
- return (0, import_react83.useCallback)(
4641
+ return (0, import_react82.useCallback)(
4610
4642
  (event) => {
4611
4643
  if (!onBlur || !maskRef.current) {
4612
4644
  return;
@@ -4636,7 +4668,7 @@ var ControlledMaskedField = ({
4636
4668
  const { ref: imaskRef, maskRef, setValue } = (0, import_react_imask.useIMask)(mask, { onAccept });
4637
4669
  const combinedRef = useCombinedRef(imaskRef, forwardedRef);
4638
4670
  const handleBlur = useBlurHandler(onBlur, maskRef, useMaskedValue, name);
4639
- (0, import_react83.useEffect)(() => {
4671
+ (0, import_react82.useEffect)(() => {
4640
4672
  if (!maskRef.current) {
4641
4673
  return;
4642
4674
  }
@@ -4682,7 +4714,7 @@ var UncontrolledMaskedField = ({
4682
4714
  }
4683
4715
  );
4684
4716
  };
4685
- var MaskedField = (0, import_react83.forwardRef)((props, forwardedRef) => {
4717
+ var MaskedField = (0, import_react82.forwardRef)((props, forwardedRef) => {
4686
4718
  const { value, defaultValue, ...rest } = props;
4687
4719
  if ("value" in props) {
4688
4720
  return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(