@simplybusiness/mobius 6.1.2 → 6.2.0

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,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - acc7a69: added MaskedField Atom
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [db79891]
12
+ - @simplybusiness/icons@4.33.0
13
+
3
14
  ## 6.1.2
4
15
 
5
16
  ### Patch Changes
package/dist/cjs/index.js CHANGED
@@ -62,6 +62,7 @@ __export(index_exports, {
62
62
  Logo: () => Logo,
63
63
  LoqateAddressLookupService: () => LoqateAddressLookupService,
64
64
  MIN_MAX_ERROR: () => MIN_MAX_ERROR,
65
+ MaskedField: () => MaskedField,
65
66
  Modal: () => Modal2,
66
67
  NumberField: () => NumberField,
67
68
  Option: () => Option2,
@@ -4547,3 +4548,64 @@ var ExpandableText = (0, import_react82.forwardRef)((props, ref) => {
4547
4548
  );
4548
4549
  });
4549
4550
  ExpandableText.displayName = "ExpandableText";
4551
+
4552
+ // src/components/MaskedField/MaskedField.tsx
4553
+ var import_react83 = require("react");
4554
+ var import_react_imask = require("react-imask");
4555
+ var import_jsx_runtime71 = require("react/jsx-runtime");
4556
+ var MaskedField = (0, import_react83.forwardRef)((props, ref) => {
4557
+ const {
4558
+ mask,
4559
+ value,
4560
+ defaultValue,
4561
+ useMaskedValue = false,
4562
+ onChange,
4563
+ "aria-describedby": ariaDescribedBy,
4564
+ "aria-label": ariaLabel,
4565
+ ...textFieldProps
4566
+ } = props;
4567
+ const { ref: maskRef, value: maskedValue } = (0, import_react_imask.useIMask)(mask, {
4568
+ defaultValue,
4569
+ onAccept: (value2, maskRef2) => {
4570
+ if (onChange) {
4571
+ const valueToEmit = useMaskedValue ? value2 : maskRef2.unmaskedValue;
4572
+ const syntheticEvent = {
4573
+ target: {
4574
+ value: valueToEmit,
4575
+ name: textFieldProps.name
4576
+ },
4577
+ currentTarget: {
4578
+ value: valueToEmit,
4579
+ name: textFieldProps.name
4580
+ }
4581
+ };
4582
+ onChange(syntheticEvent);
4583
+ }
4584
+ }
4585
+ });
4586
+ const inputRef = (node) => {
4587
+ if (maskRef) {
4588
+ maskRef.current = node;
4589
+ }
4590
+ if (ref) {
4591
+ if (typeof ref === "function") {
4592
+ ref(node);
4593
+ } else {
4594
+ ref.current = node;
4595
+ }
4596
+ }
4597
+ };
4598
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
4599
+ TextField,
4600
+ {
4601
+ ...textFieldProps,
4602
+ ref: inputRef,
4603
+ value: maskedValue,
4604
+ onChange: () => {
4605
+ },
4606
+ "aria-describedby": ariaDescribedBy,
4607
+ "aria-label": ariaLabel
4608
+ }
4609
+ );
4610
+ });
4611
+ MaskedField.displayName = "MaskedField";