@octoguide/mui-ui-toolkit 0.7.5 → 0.8.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/dist/index.mjs CHANGED
@@ -2314,7 +2314,7 @@ var StyledSelectionContainer = styled12("button")(
2314
2314
  outline: "none"
2315
2315
  },
2316
2316
  '&:focus:not([data-lose-focus="true"])': {
2317
- boxShadow: "rgba(0, 0, 0, 0.65) 0 0 0 3px",
2317
+ boxShadow: `${alpha3(theme.palette.text.primary, 0.65)} 0 0 0 3px`,
2318
2318
  outlineColor: "transparent",
2319
2319
  outlineStyle: "solid",
2320
2320
  borderColor: theme.palette.text.primary,
@@ -2743,8 +2743,70 @@ var MultiSelect = ({
2743
2743
  };
2744
2744
  MultiSelect.displayName = "ToolkitMultiSelect";
2745
2745
 
2746
+ // src/components/OtpInput/OtpInput.tsx
2747
+ import { useRef as useRef2, useCallback as useCallback4 } from "react";
2748
+ import Box5 from "@mui/material/Box";
2749
+ import OutlinedInput from "@mui/material/OutlinedInput";
2750
+ import { jsx as jsx19 } from "react/jsx-runtime";
2751
+ var OTP_LENGTH = 6;
2752
+ var OtpInput = ({ value, onChange, error, disabled }) => {
2753
+ const inputRefs = useRef2([]);
2754
+ const digits = Array.from({ length: OTP_LENGTH }, (_, i) => value[i] ?? "");
2755
+ const handleChange = useCallback4(
2756
+ (index, char) => {
2757
+ const digit = char.replace(/\D/g, "").slice(-1);
2758
+ const next = digits.map((d, i) => i === index ? digit : d).join("");
2759
+ onChange(next);
2760
+ if (digit && index < OTP_LENGTH - 1) inputRefs.current[index + 1]?.focus();
2761
+ },
2762
+ [digits, onChange]
2763
+ );
2764
+ const handleKeyDown = useCallback4(
2765
+ (index, e) => {
2766
+ if (e.key === "Backspace" && !digits[index] && index > 0) {
2767
+ inputRefs.current[index - 1]?.focus();
2768
+ }
2769
+ },
2770
+ [digits]
2771
+ );
2772
+ const handlePaste = useCallback4(
2773
+ (e) => {
2774
+ const pasted = e.clipboardData.getData("text").replace(/\D/g, "").slice(0, OTP_LENGTH);
2775
+ if (pasted) {
2776
+ onChange(pasted.padEnd(OTP_LENGTH, "").slice(0, OTP_LENGTH));
2777
+ inputRefs.current[Math.min(pasted.length, OTP_LENGTH - 1)]?.focus();
2778
+ }
2779
+ e.preventDefault();
2780
+ },
2781
+ [onChange]
2782
+ );
2783
+ return /* @__PURE__ */ jsx19(Box5, { sx: { display: "flex", gap: 1.5, justifyContent: "space-between", mb: 2.5 }, children: digits.map((digit, i) => /* @__PURE__ */ jsx19(
2784
+ OutlinedInput,
2785
+ {
2786
+ inputRef: (el) => {
2787
+ inputRefs.current[i] = el;
2788
+ },
2789
+ value: digit,
2790
+ onChange: (e) => handleChange(i, e.target.value),
2791
+ onKeyDown: (e) => handleKeyDown(i, e),
2792
+ onPaste: handlePaste,
2793
+ placeholder: "-",
2794
+ disabled,
2795
+ inputProps: {
2796
+ maxLength: 1,
2797
+ autoComplete: "one-time-code",
2798
+ style: { textAlign: "center", fontSize: "1.25rem", padding: "12px 0" }
2799
+ },
2800
+ error,
2801
+ sx: { width: 48, "& .MuiOutlinedInput-notchedOutline": { borderRadius: 1.5 } }
2802
+ },
2803
+ i
2804
+ )) });
2805
+ };
2806
+ OtpInput.displayName = "ToolkitOtpInput";
2807
+
2746
2808
  // src/components/PageSpinner/PageSpinner.tsx
2747
- import React8, { useEffect as useEffect3, useRef as useRef2 } from "react";
2809
+ import React8, { useEffect as useEffect3, useRef as useRef3 } from "react";
2748
2810
  import Portal from "@mui/material/Portal";
2749
2811
  import CircularProgress3 from "@mui/material/CircularProgress";
2750
2812
  import { useForkRef } from "@mui/material/utils";
@@ -2954,7 +3016,7 @@ var StyledScreenReaderOnly2 = styled13("span")(() => ({
2954
3016
  }));
2955
3017
 
2956
3018
  // src/components/PageSpinner/PageSpinner.tsx
2957
- import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
3019
+ import { jsx as jsx20, jsxs as jsxs8 } from "react/jsx-runtime";
2958
3020
  var ARIA_REANNOUNCE_INTERVAL = 3e4;
2959
3021
  var PageSpinner = React8.forwardRef(
2960
3022
  function PageSpinner2({
@@ -2966,7 +3028,7 @@ var PageSpinner = React8.forwardRef(
2966
3028
  messageTone = "assertive",
2967
3029
  ...restProps
2968
3030
  }, ref) {
2969
- const internalRef = useRef2(null);
3031
+ const internalRef = useRef3(null);
2970
3032
  const mergedRef = useForkRef(ref, internalRef);
2971
3033
  useEffect3(() => {
2972
3034
  const blockKeyDown = (e) => e.preventDefault();
@@ -2988,7 +3050,7 @@ var PageSpinner = React8.forwardRef(
2988
3050
  backgroundScrollTether(false);
2989
3051
  };
2990
3052
  }, [message, rootNode, messageTone]);
2991
- return /* @__PURE__ */ jsx19(Portal, { container: rootNode, children: /* @__PURE__ */ jsxs8(
3053
+ return /* @__PURE__ */ jsx20(Portal, { container: rootNode, children: /* @__PURE__ */ jsxs8(
2992
3054
  StyledPageSpinnerRoot,
2993
3055
  {
2994
3056
  "data-component-id": "PageSpinner",
@@ -2996,9 +3058,9 @@ var PageSpinner = React8.forwardRef(
2996
3058
  ref: mergedRef,
2997
3059
  ...getCleanProps(restProps),
2998
3060
  children: [
2999
- /* @__PURE__ */ jsx19(StyledOverlay, { $darkBg: isOnDarkBg }),
3061
+ /* @__PURE__ */ jsx20(StyledOverlay, { $darkBg: isOnDarkBg }),
3000
3062
  /* @__PURE__ */ jsxs8(StyledSpinnerCentre, { children: [
3001
- /* @__PURE__ */ jsx19(
3063
+ /* @__PURE__ */ jsx20(
3002
3064
  CircularProgress3,
3003
3065
  {
3004
3066
  size: 60,
@@ -3006,8 +3068,8 @@ var PageSpinner = React8.forwardRef(
3006
3068
  "aria-hidden": "true"
3007
3069
  }
3008
3070
  ),
3009
- customMessageLayout ?? /* @__PURE__ */ jsx19(StyledSpinnerMessage, { $darkBg: isOnDarkBg, children: message }),
3010
- srText && /* @__PURE__ */ jsx19(StyledScreenReaderOnly2, { children: srText })
3071
+ customMessageLayout ?? /* @__PURE__ */ jsx20(StyledSpinnerMessage, { $darkBg: isOnDarkBg, children: message }),
3072
+ srText && /* @__PURE__ */ jsx20(StyledScreenReaderOnly2, { children: srText })
3011
3073
  ] })
3012
3074
  ]
3013
3075
  }
@@ -3084,15 +3146,15 @@ var StyledPaginationItem = styled14(MuiPaginationItem, {
3084
3146
  });
3085
3147
 
3086
3148
  // src/components/Pagination/Pagination.tsx
3087
- import { jsx as jsx20 } from "react/jsx-runtime";
3149
+ import { jsx as jsx21 } from "react/jsx-runtime";
3088
3150
  var Pagination = React9.forwardRef(
3089
3151
  function Pagination2({ variant = "text", shape = "circular", color = "default", ...restProps }, ref) {
3090
- return /* @__PURE__ */ jsx20(
3152
+ return /* @__PURE__ */ jsx21(
3091
3153
  MuiPagination,
3092
3154
  {
3093
3155
  ref,
3094
3156
  "data-component-id": "Pagination",
3095
- renderItem: (item) => /* @__PURE__ */ jsx20(
3157
+ renderItem: (item) => /* @__PURE__ */ jsx21(
3096
3158
  StyledPaginationItem,
3097
3159
  {
3098
3160
  $variant: variant,
@@ -3146,10 +3208,10 @@ var StyledParagraph = styled15("p", {
3146
3208
  }));
3147
3209
 
3148
3210
  // src/components/Paragraph/Paragraph.tsx
3149
- import { jsx as jsx21 } from "react/jsx-runtime";
3211
+ import { jsx as jsx22 } from "react/jsx-runtime";
3150
3212
  var Paragraph = React10.forwardRef(
3151
3213
  function Paragraph2({ children, variant = "regular", isOnDarkBg = false, ...restProps }, ref) {
3152
- return /* @__PURE__ */ jsx21(
3214
+ return /* @__PURE__ */ jsx22(
3153
3215
  StyledParagraph,
3154
3216
  {
3155
3217
  $variant: variant,
@@ -3206,16 +3268,16 @@ var StyledScreenReaderOnly3 = styled16("span")({
3206
3268
  });
3207
3269
 
3208
3270
  // src/components/Password/PasswordRule.tsx
3209
- import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
3271
+ import { jsx as jsx23, jsxs as jsxs9 } from "react/jsx-runtime";
3210
3272
  var PasswordRule = ({ valid = false, rule = "", idx }) => /* @__PURE__ */ jsxs9(
3211
3273
  StyledPasswordRule,
3212
3274
  {
3213
3275
  className: valid ? "PasswordRule--valid" : "PasswordRule--invalid",
3214
3276
  "data-testid": `password-rule-${idx}`,
3215
3277
  children: [
3216
- /* @__PURE__ */ jsx22(StyledPasswordRuleIcon, { children: valid ? /* @__PURE__ */ jsx22(CheckCircleIcon, { fontSize: "small", "aria-hidden": "true" }) : /* @__PURE__ */ jsx22(CancelIcon, { fontSize: "small", "aria-hidden": "true" }) }),
3217
- /* @__PURE__ */ jsx22(StyledPasswordRuleText, { children: rule }),
3218
- /* @__PURE__ */ jsx22(StyledScreenReaderOnly3, { children: valid ? "supplied" : "not supplied" })
3278
+ /* @__PURE__ */ jsx23(StyledPasswordRuleIcon, { children: valid ? /* @__PURE__ */ jsx23(CheckCircleIcon, { fontSize: "small", "aria-hidden": "true" }) : /* @__PURE__ */ jsx23(CancelIcon, { fontSize: "small", "aria-hidden": "true" }) }),
3279
+ /* @__PURE__ */ jsx23(StyledPasswordRuleText, { children: rule }),
3280
+ /* @__PURE__ */ jsx23(StyledScreenReaderOnly3, { children: valid ? "supplied" : "not supplied" })
3219
3281
  ]
3220
3282
  }
3221
3283
  );
@@ -3244,7 +3306,7 @@ var StyledPasswordRuleTitle = styled17("div")(({ theme }) => ({
3244
3306
  }));
3245
3307
 
3246
3308
  // src/components/Password/PasswordCriteria.tsx
3247
- import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
3309
+ import { jsx as jsx24, jsxs as jsxs10 } from "react/jsx-runtime";
3248
3310
  var PasswordRules = [
3249
3311
  { key: "minLength", rule: "Minimum 8 characters" },
3250
3312
  { key: "lowercase", rule: "At least one lowercase letter" },
@@ -3261,7 +3323,7 @@ var passwordValidator = (value) => ({
3261
3323
  });
3262
3324
  var PasswordCriteria = ({ show = false, value = "", id = "passwordCriteria" }) => {
3263
3325
  const validity = passwordValidator(value);
3264
- return /* @__PURE__ */ jsx23(
3326
+ return /* @__PURE__ */ jsx24(
3265
3327
  StyledPasswordCriteriaContainer,
3266
3328
  {
3267
3329
  $show: show,
@@ -3271,8 +3333,8 @@ var PasswordCriteria = ({ show = false, value = "", id = "passwordCriteria" }) =
3271
3333
  role: "status",
3272
3334
  "aria-live": "polite",
3273
3335
  children: /* @__PURE__ */ jsxs10(Card, { compact: true, children: [
3274
- /* @__PURE__ */ jsx23(StyledPasswordRuleTitle, { children: "Password must contain:" }),
3275
- PasswordRules.map((item, idx) => /* @__PURE__ */ jsx23(PasswordRule, { valid: validity[item.key], rule: item.rule, idx }, item.key))
3336
+ /* @__PURE__ */ jsx24(StyledPasswordRuleTitle, { children: "Password must contain:" }),
3337
+ PasswordRules.map((item, idx) => /* @__PURE__ */ jsx24(PasswordRule, { valid: validity[item.key], rule: item.rule, idx }, item.key))
3276
3338
  ] })
3277
3339
  }
3278
3340
  );
@@ -3290,7 +3352,7 @@ var StyledPasswordInputWrapper = styled18("div")({
3290
3352
  });
3291
3353
 
3292
3354
  // src/components/Password/Password.tsx
3293
- import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
3355
+ import { jsx as jsx25, jsxs as jsxs11 } from "react/jsx-runtime";
3294
3356
  var Password = React11.forwardRef(
3295
3357
  function Password2({
3296
3358
  isInvalid,
@@ -3323,7 +3385,7 @@ var Password = React11.forwardRef(
3323
3385
  const criteriaId = id ? `${id}-criteria` : "passwordCriteria";
3324
3386
  const cleanRest = getCleanProps(rest);
3325
3387
  return /* @__PURE__ */ jsxs11(StyledPasswordRoot, { className, ...cleanRest, children: [
3326
- /* @__PURE__ */ jsx24(StyledPasswordInputWrapper, { children: /* @__PURE__ */ jsx24(
3388
+ /* @__PURE__ */ jsx25(StyledPasswordInputWrapper, { children: /* @__PURE__ */ jsx25(
3327
3389
  TextField,
3328
3390
  {
3329
3391
  ref,
@@ -3342,7 +3404,7 @@ var Password = React11.forwardRef(
3342
3404
  onChange: handleChange
3343
3405
  }
3344
3406
  ) }),
3345
- /* @__PURE__ */ jsx24(PasswordCriteria, { show: showCriteria, value, id: criteriaId })
3407
+ /* @__PURE__ */ jsx25(PasswordCriteria, { show: showCriteria, value, id: criteriaId })
3346
3408
  ] });
3347
3409
  }
3348
3410
  );
@@ -3437,7 +3499,7 @@ var StyledScreenReaderOnly4 = styled19("span")({
3437
3499
  });
3438
3500
 
3439
3501
  // src/components/Spinner/Spinner.tsx
3440
- import { jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
3502
+ import { jsx as jsx26, jsxs as jsxs12 } from "react/jsx-runtime";
3441
3503
  var Spinner = React12.forwardRef(
3442
3504
  function Spinner2({ size = "sm", message, isOnDarkBg = false, srText, isInline = false, ...restProps }, ref) {
3443
3505
  return /* @__PURE__ */ jsxs12(
@@ -3449,11 +3511,11 @@ var Spinner = React12.forwardRef(
3449
3511
  ...getCleanProps(restProps),
3450
3512
  children: [
3451
3513
  /* @__PURE__ */ jsxs12(StyledSpinnerIconContainer, { $size: size, "aria-hidden": "true", children: [
3452
- /* @__PURE__ */ jsx25(StyledSpinnerBackground, { $size: size, $darkBg: isOnDarkBg, "aria-hidden": "true" }),
3453
- /* @__PURE__ */ jsx25(StyledSpinner, { $size: size, $darkBg: isOnDarkBg, "aria-hidden": "true" })
3514
+ /* @__PURE__ */ jsx26(StyledSpinnerBackground, { $size: size, $darkBg: isOnDarkBg, "aria-hidden": "true" }),
3515
+ /* @__PURE__ */ jsx26(StyledSpinner, { $size: size, $darkBg: isOnDarkBg, "aria-hidden": "true" })
3454
3516
  ] }),
3455
- message && /* @__PURE__ */ jsx25(StyledSpinnerMessage2, { $darkBg: isOnDarkBg, $inline: isInline, children: message }),
3456
- srText && /* @__PURE__ */ jsx25(StyledScreenReaderOnly4, { children: srText })
3517
+ message && /* @__PURE__ */ jsx26(StyledSpinnerMessage2, { $darkBg: isOnDarkBg, $inline: isInline, children: message }),
3518
+ srText && /* @__PURE__ */ jsx26(StyledScreenReaderOnly4, { children: srText })
3457
3519
  ]
3458
3520
  }
3459
3521
  );
@@ -3579,7 +3641,7 @@ var StyledSwitch = styled20("label", {
3579
3641
  }));
3580
3642
 
3581
3643
  // src/components/Toggle/Toggle.tsx
3582
- import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
3644
+ import { jsx as jsx27, jsxs as jsxs13 } from "react/jsx-runtime";
3583
3645
  function Toggle({
3584
3646
  name,
3585
3647
  checked = false,
@@ -3590,9 +3652,10 @@ function Toggle({
3590
3652
  onBlur,
3591
3653
  ...restProps
3592
3654
  }) {
3655
+ const testId = restProps["data-testid"];
3593
3656
  return /* @__PURE__ */ jsxs13(StyledFieldset, { "data-component-id": "toggle", ...getCleanProps(restProps), children: [
3594
- label && /* @__PURE__ */ jsx26(StyledLegend, { children: label }),
3595
- description && /* @__PURE__ */ jsx26(FormHelperText, { children: description }),
3657
+ label && /* @__PURE__ */ jsx27(StyledLegend, { children: label }),
3658
+ description && /* @__PURE__ */ jsx27(FormHelperText, { children: description }),
3596
3659
  /* @__PURE__ */ jsxs13(StyledToggleWrapper, { children: [
3597
3660
  /* @__PURE__ */ jsxs13(
3598
3661
  StyledSwitch,
@@ -3600,8 +3663,9 @@ function Toggle({
3600
3663
  htmlFor: `${name}off`,
3601
3664
  selected: !checked,
3602
3665
  controlType: "off",
3666
+ "data-testid": testId ? `${testId}-off` : void 0,
3603
3667
  children: [
3604
- /* @__PURE__ */ jsx26(
3668
+ /* @__PURE__ */ jsx27(
3605
3669
  "input",
3606
3670
  {
3607
3671
  checked: !checked,
@@ -3623,8 +3687,9 @@ function Toggle({
3623
3687
  htmlFor: `${name}on`,
3624
3688
  selected: checked,
3625
3689
  controlType: "on",
3690
+ "data-testid": testId ? `${testId}-on` : void 0,
3626
3691
  children: [
3627
- /* @__PURE__ */ jsx26(
3692
+ /* @__PURE__ */ jsx27(
3628
3693
  "input",
3629
3694
  {
3630
3695
  checked,
@@ -3641,7 +3706,7 @@ function Toggle({
3641
3706
  }
3642
3707
  )
3643
3708
  ] }),
3644
- error && /* @__PURE__ */ jsx26(FormHelperText, { error: true, children: error })
3709
+ error && /* @__PURE__ */ jsx27(FormHelperText, { error: true, children: error })
3645
3710
  ] });
3646
3711
  }
3647
3712
  Toggle.displayName = "ToolkitToggle";
@@ -3658,7 +3723,7 @@ import {
3658
3723
  TableSortLabel as MuiTableSortLabel
3659
3724
  } from "@mui/material";
3660
3725
  import { styled as styled21 } from "@mui/material/styles";
3661
- import { jsx as jsx27 } from "react/jsx-runtime";
3726
+ import { jsx as jsx28 } from "react/jsx-runtime";
3662
3727
  var StyledTableContainer = styled21(MuiTableContainer)(() => ({
3663
3728
  overflowX: "auto"
3664
3729
  }));
@@ -3669,25 +3734,25 @@ var StyledHeadCell = styled21(MuiTableCell)(({ theme }) => ({
3669
3734
  borderBottomColor: theme.tokens.components.table.borderColor
3670
3735
  }));
3671
3736
  function Table(props) {
3672
- return /* @__PURE__ */ jsx27(MuiTable, { ...props });
3737
+ return /* @__PURE__ */ jsx28(MuiTable, { ...props });
3673
3738
  }
3674
3739
  function TableHead(props) {
3675
- return /* @__PURE__ */ jsx27(MuiTableHead, { ...props });
3740
+ return /* @__PURE__ */ jsx28(MuiTableHead, { ...props });
3676
3741
  }
3677
3742
  function TableBody(props) {
3678
- return /* @__PURE__ */ jsx27(MuiTableBody, { ...props });
3743
+ return /* @__PURE__ */ jsx28(MuiTableBody, { ...props });
3679
3744
  }
3680
3745
  function TableRow(props) {
3681
- return /* @__PURE__ */ jsx27(MuiTableRow, { ...props });
3746
+ return /* @__PURE__ */ jsx28(MuiTableRow, { ...props });
3682
3747
  }
3683
3748
  function TableCell(props) {
3684
- return /* @__PURE__ */ jsx27(MuiTableCell, { ...props });
3749
+ return /* @__PURE__ */ jsx28(MuiTableCell, { ...props });
3685
3750
  }
3686
3751
  function TableHeadCell(props) {
3687
- return /* @__PURE__ */ jsx27(StyledHeadCell, { component: "th", scope: "col", ...props });
3752
+ return /* @__PURE__ */ jsx28(StyledHeadCell, { component: "th", scope: "col", ...props });
3688
3753
  }
3689
3754
  function TableContainer(props) {
3690
- return /* @__PURE__ */ jsx27(StyledTableContainer, { ...props });
3755
+ return /* @__PURE__ */ jsx28(StyledTableContainer, { ...props });
3691
3756
  }
3692
3757
  var TablePagination = MuiTablePagination;
3693
3758
  var TableSortLabel = MuiTableSortLabel;
@@ -3702,10 +3767,10 @@ TableContainer.displayName = "ToolkitTableContainer";
3702
3767
  // src/foundation/H1/H1.tsx
3703
3768
  import React13 from "react";
3704
3769
  import { Typography } from "@mui/material";
3705
- import { jsx as jsx28 } from "react/jsx-runtime";
3770
+ import { jsx as jsx29 } from "react/jsx-runtime";
3706
3771
  var H1 = React13.forwardRef(
3707
3772
  function H12({ color = "text.primary", children, ...props }, ref) {
3708
- return /* @__PURE__ */ jsx28(Typography, { ref, variant: "h1", color, ...props, children });
3773
+ return /* @__PURE__ */ jsx29(Typography, { ref, variant: "h1", color, ...props, children });
3709
3774
  }
3710
3775
  );
3711
3776
  H1.displayName = "ToolkitH1";
@@ -3713,10 +3778,10 @@ H1.displayName = "ToolkitH1";
3713
3778
  // src/foundation/H2/H2.tsx
3714
3779
  import React14 from "react";
3715
3780
  import { Typography as Typography2 } from "@mui/material";
3716
- import { jsx as jsx29 } from "react/jsx-runtime";
3781
+ import { jsx as jsx30 } from "react/jsx-runtime";
3717
3782
  var H2 = React14.forwardRef(
3718
3783
  function H22({ color = "text.primary", children, ...props }, ref) {
3719
- return /* @__PURE__ */ jsx29(Typography2, { ref, variant: "h2", color, ...props, children });
3784
+ return /* @__PURE__ */ jsx30(Typography2, { ref, variant: "h2", color, ...props, children });
3720
3785
  }
3721
3786
  );
3722
3787
  H2.displayName = "ToolkitH2";
@@ -3724,10 +3789,10 @@ H2.displayName = "ToolkitH2";
3724
3789
  // src/foundation/H3/H3.tsx
3725
3790
  import React15 from "react";
3726
3791
  import { Typography as Typography3 } from "@mui/material";
3727
- import { jsx as jsx30 } from "react/jsx-runtime";
3792
+ import { jsx as jsx31 } from "react/jsx-runtime";
3728
3793
  var H3 = React15.forwardRef(
3729
3794
  function H32({ color = "text.primary", children, ...props }, ref) {
3730
- return /* @__PURE__ */ jsx30(Typography3, { ref, variant: "h3", color, ...props, children });
3795
+ return /* @__PURE__ */ jsx31(Typography3, { ref, variant: "h3", color, ...props, children });
3731
3796
  }
3732
3797
  );
3733
3798
  H3.displayName = "ToolkitH3";
@@ -3735,10 +3800,10 @@ H3.displayName = "ToolkitH3";
3735
3800
  // src/foundation/H4/H4.tsx
3736
3801
  import React16 from "react";
3737
3802
  import { Typography as Typography4 } from "@mui/material";
3738
- import { jsx as jsx31 } from "react/jsx-runtime";
3803
+ import { jsx as jsx32 } from "react/jsx-runtime";
3739
3804
  var H4 = React16.forwardRef(
3740
3805
  function H42({ color = "text.primary", children, ...props }, ref) {
3741
- return /* @__PURE__ */ jsx31(Typography4, { ref, variant: "h4", color, ...props, children });
3806
+ return /* @__PURE__ */ jsx32(Typography4, { ref, variant: "h4", color, ...props, children });
3742
3807
  }
3743
3808
  );
3744
3809
  H4.displayName = "ToolkitH4";
@@ -3746,10 +3811,10 @@ H4.displayName = "ToolkitH4";
3746
3811
  // src/foundation/H5/H5.tsx
3747
3812
  import React17 from "react";
3748
3813
  import { Typography as Typography5 } from "@mui/material";
3749
- import { jsx as jsx32 } from "react/jsx-runtime";
3814
+ import { jsx as jsx33 } from "react/jsx-runtime";
3750
3815
  var H5 = React17.forwardRef(
3751
3816
  function H52({ color = "text.primary", children, ...props }, ref) {
3752
- return /* @__PURE__ */ jsx32(Typography5, { ref, variant: "h5", color, ...props, children });
3817
+ return /* @__PURE__ */ jsx33(Typography5, { ref, variant: "h5", color, ...props, children });
3753
3818
  }
3754
3819
  );
3755
3820
  H5.displayName = "ToolkitH5";
@@ -3757,10 +3822,10 @@ H5.displayName = "ToolkitH5";
3757
3822
  // src/foundation/H6/H6.tsx
3758
3823
  import React18 from "react";
3759
3824
  import { Typography as Typography6 } from "@mui/material";
3760
- import { jsx as jsx33 } from "react/jsx-runtime";
3825
+ import { jsx as jsx34 } from "react/jsx-runtime";
3761
3826
  var H6 = React18.forwardRef(
3762
3827
  function H62({ color = "text.primary", children, ...props }, ref) {
3763
- return /* @__PURE__ */ jsx33(Typography6, { ref, variant: "h6", color, ...props, children });
3828
+ return /* @__PURE__ */ jsx34(Typography6, { ref, variant: "h6", color, ...props, children });
3764
3829
  }
3765
3830
  );
3766
3831
  H6.displayName = "ToolkitH6";
@@ -3768,10 +3833,10 @@ H6.displayName = "ToolkitH6";
3768
3833
  // src/foundation/Subtitle1/Subtitle1.tsx
3769
3834
  import React19 from "react";
3770
3835
  import { Typography as Typography7 } from "@mui/material";
3771
- import { jsx as jsx34 } from "react/jsx-runtime";
3836
+ import { jsx as jsx35 } from "react/jsx-runtime";
3772
3837
  var Subtitle1 = React19.forwardRef(
3773
3838
  function Subtitle12({ color = "text.primary", children, ...props }, ref) {
3774
- return /* @__PURE__ */ jsx34(Typography7, { ref, variant: "subtitle1", color, ...props, children });
3839
+ return /* @__PURE__ */ jsx35(Typography7, { ref, variant: "subtitle1", color, ...props, children });
3775
3840
  }
3776
3841
  );
3777
3842
  Subtitle1.displayName = "ToolkitSubtitle1";
@@ -3779,10 +3844,10 @@ Subtitle1.displayName = "ToolkitSubtitle1";
3779
3844
  // src/foundation/Subtitle2/Subtitle2.tsx
3780
3845
  import React20 from "react";
3781
3846
  import { Typography as Typography8 } from "@mui/material";
3782
- import { jsx as jsx35 } from "react/jsx-runtime";
3847
+ import { jsx as jsx36 } from "react/jsx-runtime";
3783
3848
  var Subtitle2 = React20.forwardRef(
3784
3849
  function Subtitle22({ color = "text.primary", children, ...props }, ref) {
3785
- return /* @__PURE__ */ jsx35(Typography8, { ref, variant: "subtitle2", color, ...props, children });
3850
+ return /* @__PURE__ */ jsx36(Typography8, { ref, variant: "subtitle2", color, ...props, children });
3786
3851
  }
3787
3852
  );
3788
3853
  Subtitle2.displayName = "ToolkitSubtitle2";
@@ -3790,10 +3855,10 @@ Subtitle2.displayName = "ToolkitSubtitle2";
3790
3855
  // src/foundation/Body1/Body1.tsx
3791
3856
  import React21 from "react";
3792
3857
  import { Typography as Typography9 } from "@mui/material";
3793
- import { jsx as jsx36 } from "react/jsx-runtime";
3858
+ import { jsx as jsx37 } from "react/jsx-runtime";
3794
3859
  var Body1 = React21.forwardRef(
3795
3860
  function Body12({ color = "text.primary", children, ...props }, ref) {
3796
- return /* @__PURE__ */ jsx36(Typography9, { ref, variant: "body1", color, ...props, children });
3861
+ return /* @__PURE__ */ jsx37(Typography9, { ref, variant: "body1", color, ...props, children });
3797
3862
  }
3798
3863
  );
3799
3864
  Body1.displayName = "ToolkitBody1";
@@ -3801,10 +3866,10 @@ Body1.displayName = "ToolkitBody1";
3801
3866
  // src/foundation/Body2/Body2.tsx
3802
3867
  import React22 from "react";
3803
3868
  import { Typography as Typography10 } from "@mui/material";
3804
- import { jsx as jsx37 } from "react/jsx-runtime";
3869
+ import { jsx as jsx38 } from "react/jsx-runtime";
3805
3870
  var Body2 = React22.forwardRef(
3806
3871
  function Body22({ color = "text.primary", children, ...props }, ref) {
3807
- return /* @__PURE__ */ jsx37(Typography10, { ref, variant: "body2", color, ...props, children });
3872
+ return /* @__PURE__ */ jsx38(Typography10, { ref, variant: "body2", color, ...props, children });
3808
3873
  }
3809
3874
  );
3810
3875
  Body2.displayName = "ToolkitBody2";
@@ -3812,10 +3877,10 @@ Body2.displayName = "ToolkitBody2";
3812
3877
  // src/foundation/Caption/Caption.tsx
3813
3878
  import React23 from "react";
3814
3879
  import { Typography as Typography11 } from "@mui/material";
3815
- import { jsx as jsx38 } from "react/jsx-runtime";
3880
+ import { jsx as jsx39 } from "react/jsx-runtime";
3816
3881
  var Caption = React23.forwardRef(
3817
3882
  function Caption2({ color = "text.primary", children, ...props }, ref) {
3818
- return /* @__PURE__ */ jsx38(Typography11, { ref, variant: "caption", color, ...props, children });
3883
+ return /* @__PURE__ */ jsx39(Typography11, { ref, variant: "caption", color, ...props, children });
3819
3884
  }
3820
3885
  );
3821
3886
  Caption.displayName = "ToolkitCaption";
@@ -3823,10 +3888,10 @@ Caption.displayName = "ToolkitCaption";
3823
3888
  // src/foundation/Overline/Overline.tsx
3824
3889
  import React24 from "react";
3825
3890
  import { Typography as Typography12 } from "@mui/material";
3826
- import { jsx as jsx39 } from "react/jsx-runtime";
3891
+ import { jsx as jsx40 } from "react/jsx-runtime";
3827
3892
  var Overline = React24.forwardRef(
3828
3893
  function Overline2({ color = "text.primary", children, ...props }, ref) {
3829
- return /* @__PURE__ */ jsx39(Typography12, { ref, variant: "overline", color, ...props, children });
3894
+ return /* @__PURE__ */ jsx40(Typography12, { ref, variant: "overline", color, ...props, children });
3830
3895
  }
3831
3896
  );
3832
3897
  Overline.displayName = "ToolkitOverline";
@@ -3834,10 +3899,10 @@ Overline.displayName = "ToolkitOverline";
3834
3899
  // src/foundation/TypographyButton/TypographyButton.tsx
3835
3900
  import React25 from "react";
3836
3901
  import { Typography as Typography13 } from "@mui/material";
3837
- import { jsx as jsx40 } from "react/jsx-runtime";
3902
+ import { jsx as jsx41 } from "react/jsx-runtime";
3838
3903
  var TypographyButton = React25.forwardRef(
3839
3904
  function TypographyButton2({ color = "text.primary", children, ...props }, ref) {
3840
- return /* @__PURE__ */ jsx40(Typography13, { ref, variant: "button", color, ...props, children });
3905
+ return /* @__PURE__ */ jsx41(Typography13, { ref, variant: "button", color, ...props, children });
3841
3906
  }
3842
3907
  );
3843
3908
  TypographyButton.displayName = "ToolkitTypographyButton";
@@ -3886,6 +3951,7 @@ export {
3886
3951
  MobileDateTimePicker,
3887
3952
  MobileTimePicker,
3888
3953
  MultiSelect,
3954
+ OtpInput,
3889
3955
  Overline,
3890
3956
  PageSpinner,
3891
3957
  Pagination,