reactjs-multi-stepper 1.1.5 → 1.1.7

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.css CHANGED
@@ -1 +1 @@
1
- body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}h1,h2,h3,h4,h5,h6,p{margin:0%;padding:0%}.app-container{padding:1.5rem}.stepper-header{display:flex;justify-content:space-between}.step-item{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%}.step-item:not(:first-child):before{content:"";background-color:#e2e8f0;position:absolute;width:calc(100% - 2.5rem);height:3px;right:calc(50% + 1.25rem);top:1.125rem;transition:all .2s}.step{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;z-index:10;position:relative;border-radius:9999px;font-weight:600;color:#000;transition:all .2s}.step-active{border:1px solid #0284c7;background-color:#0284c7}.step-complete{background-color:#16a34a;color:#fff}.step-error{background-color:#ef4444}.step-finished{background-color:#16a34a}.step-active h2,.step-complete h2,.step-error span,.step-finished h2{color:#fff}.step-default{border:1px solid #d1d5db}.active .step{background-color:#0284c7}.complete .step{background-color:#16a34a}.complete:not(:first-child):before,.active:not(:first-child):before{background-color:#16a34a}.step-text{text-align:center;color:#fff}.step-title{font-size:1rem;color:#111827;font-weight:500;margin-top:1rem}.step-description{font-size:.85rem;color:#4b5563;font-weight:300;margin-top:.5rem}.stepper-content{display:flex;justify-content:center;align-items:center}.stepper-footer{display:flex;justify-content:space-around;align-items:center;padding:1.5rem;padding-block:2rem}.stepper-button{padding:.375rem 2rem;font-size:1rem;border-radius:.375rem;border:1px solid #9ca3af;background-color:transparent;color:inherit;cursor:pointer}.stepper-button-fill{border-color:#0284c7;background-color:#0284c7;color:#fff}
1
+ :root{--color-primary: #0284c7;--color-primary-light: #38bdf8;--color-success: #16a34a;--color-error: #ef4444;--color-text: #111827;--color-text-light: #4b5563;--color-black: #000;--color-white: #fff;--color-border: #d1d5db;--color-border-light: #e2e8f0;--spacing-xs: .375rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--step-size: 2.5rem;--step-font-weight: 600;--step-radius: 50%;--spinner-size: 1.5rem;--spinner-thickness: 3px;--spinner-color: #3b82f6;--spinner-track: #e5e7eb;--spinner-speed: .8s}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}h1,h2,h3,h4,h5,h6,p{margin:0;padding:0}.app-container{padding:var(--spacing-lg)}.stepper-header{display:flex;justify-content:space-between}.step-item{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%}.step-item:not(:first-child):before{content:"";background-color:var(--color-border-light);position:absolute;width:calc(100% - var(--step-size));height:3px;right:calc(50% + (var(--step-size) / 2));top:calc(var(--step-size) / 2 - .125rem);transition:all .2s}.step{width:var(--step-size);height:var(--step-size);display:flex;align-items:center;justify-content:center;z-index:10;position:relative;border-radius:var(--step-radius);font-weight:var(--step-font-weight);color:var(--color-black);transition:all .2s;border:1px solid var(--color-border)}.step-active{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white)}.step-complete{border-color:var(--color-success);background-color:var(--color-success);color:var(--color-white)}.step-error{background-color:var(--color-error);color:var(--color-white)}.step-finished{background-color:var(--color-success);color:var(--color-white)}.complete:not(:first-child):before,.active:not(:first-child):before{background-color:var(--color-success)}.step-title{font-size:1rem;color:var(--color-text);font-weight:500;margin-top:var(--spacing-md)}.step-description{font-size:.85rem;color:var(--color-text-light);font-weight:300;margin-top:var(--spacing-sm)}.stepper-content{display:flex;justify-content:center;align-items:center}.stepper-footer{display:flex;justify-content:space-around;align-items:center;padding:var(--spacing-lg) var(--spacing-xl)}.stepper-button{padding:var(--spacing-xs) var(--spacing-xl);font-size:1rem;border-radius:.375rem;border:1px solid #9ca3af;background-color:transparent;color:inherit;cursor:pointer}.stepper-button-fill{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white)}.spinner{width:var(--spinner-size);height:var(--spinner-size);border-radius:50%;border:var(--spinner-thickness) solid var(--spinner-track);border-top-color:var(--spinner-color);animation:spin var(--spinner-speed) linear infinite}@media (prefers-reduced-motion: reduce){.spinner{animation:none;border-top-color:var(--spinner-track)}}@keyframes spin{to{transform:rotate(360deg)}}.test-step{padding:10vh;display:flex;justify-content:center;align-items:center}.test-step h3{color:#fff}.step-text{text-align:center}
@@ -1,4 +1,4 @@
1
- import V, { createContext as le, useContext as ie, useState as W, useEffect as ue, useCallback as C, useMemo as z, Fragment as G } from "react";
1
+ import ce, { createContext as le, useContext as ie, useState as W, useEffect as ue, useCallback as C, useMemo as V, Fragment as z } from "react";
2
2
  import './index.css';var S = { exports: {} }, R = {};
3
3
  /**
4
4
  * @license React
@@ -47,38 +47,38 @@ function de() {
47
47
  function t(e) {
48
48
  if (e == null) return null;
49
49
  if (typeof e == "function")
50
- return e.$$typeof === oe ? null : e.displayName || e.name || null;
50
+ return e.$$typeof === se ? null : e.displayName || e.name || null;
51
51
  if (typeof e == "string") return e;
52
52
  switch (e) {
53
53
  case g:
54
54
  return "Fragment";
55
- case Z:
56
- return "Profiler";
57
55
  case B:
56
+ return "Profiler";
57
+ case H:
58
58
  return "StrictMode";
59
- case re:
59
+ case ee:
60
60
  return "Suspense";
61
- case te:
61
+ case re:
62
62
  return "SuspenseList";
63
- case se:
63
+ case ne:
64
64
  return "Activity";
65
65
  }
66
66
  if (typeof e == "object")
67
67
  switch (typeof e.tag == "number" && console.error(
68
68
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
69
69
  ), e.$$typeof) {
70
- case H:
70
+ case X:
71
71
  return "Portal";
72
- case K:
73
- return (e.displayName || "Context") + ".Provider";
74
72
  case Q:
73
+ return (e.displayName || "Context") + ".Provider";
74
+ case Z:
75
75
  return (e._context.displayName || "Context") + ".Consumer";
76
- case ee:
76
+ case K:
77
77
  var r = e.render;
78
78
  return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
79
- case ne:
79
+ case te:
80
80
  return r = e.displayName || null, r !== null ? r : t(e.type) || "Memo";
81
- case $:
81
+ case F:
82
82
  r = e._payload, e = e._init;
83
83
  try {
84
84
  return t(e(r));
@@ -109,7 +109,7 @@ function de() {
109
109
  }
110
110
  function h(e) {
111
111
  if (e === g) return "<>";
112
- if (typeof e == "object" && e !== null && e.$$typeof === $)
112
+ if (typeof e == "object" && e !== null && e.$$typeof === F)
113
113
  return "<...>";
114
114
  try {
115
115
  var r = t(e);
@@ -126,7 +126,7 @@ function de() {
126
126
  return Error("react-stack-top-frame");
127
127
  }
128
128
  function m(e) {
129
- if (F.call(e, "key")) {
129
+ if (Y.call(e, "key")) {
130
130
  var r = Object.getOwnPropertyDescriptor(e, "key").get;
131
131
  if (r && r.isReactWarning) return !1;
132
132
  }
@@ -134,7 +134,7 @@ function de() {
134
134
  }
135
135
  function p(e, r) {
136
136
  function a() {
137
- Y || (Y = !0, console.error(
137
+ $ || ($ = !0, console.error(
138
138
  "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
139
139
  r
140
140
  ));
@@ -150,12 +150,12 @@ function de() {
150
150
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
151
151
  )), e = this.props.ref, e !== void 0 ? e : null;
152
152
  }
153
- function k(e, r, a, u, E, b, A, w) {
154
- return a = b.ref, e = {
153
+ function k(e, r, a, u, E, x, A, w) {
154
+ return a = x.ref, e = {
155
155
  $$typeof: v,
156
156
  type: e,
157
157
  key: r,
158
- props: b,
158
+ props: x,
159
159
  _owner: E
160
160
  }, (a !== void 0 ? a : null) !== null ? Object.defineProperty(e, "ref", {
161
161
  enumerable: !1,
@@ -182,23 +182,23 @@ function de() {
182
182
  value: w
183
183
  }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
184
184
  }
185
- function d(e, r, a, u, E, b, A, w) {
185
+ function d(e, r, a, u, E, x, A, w) {
186
186
  var f = r.children;
187
187
  if (f !== void 0)
188
188
  if (u)
189
- if (ae(f)) {
189
+ if (oe(f)) {
190
190
  for (u = 0; u < f.length; u++)
191
- x(f[u]);
191
+ b(f[u]);
192
192
  Object.freeze && Object.freeze(f);
193
193
  } else
194
194
  console.error(
195
195
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
196
196
  );
197
- else x(f);
198
- if (F.call(r, "key")) {
197
+ else b(f);
198
+ if (Y.call(r, "key")) {
199
199
  f = t(e);
200
- var _ = Object.keys(r).filter(function(ce) {
201
- return ce !== "key";
200
+ var _ = Object.keys(r).filter(function(ae) {
201
+ return ae !== "key";
202
202
  });
203
203
  u = 0 < _.length ? "{key: someKey, " + _.join(": ..., ") + ": ...}" : "{key: someKey}", L[f + u] || (_ = 0 < _.length ? "{" + _.join(": ..., ") + ": ...}" : "{}", console.error(
204
204
  `A props object containing a "key" prop is being spread into JSX:
@@ -224,7 +224,7 @@ React keys must be passed directly to JSX without using spread:
224
224
  ), k(
225
225
  e,
226
226
  f,
227
- b,
227
+ x,
228
228
  E,
229
229
  c(),
230
230
  a,
@@ -232,10 +232,10 @@ React keys must be passed directly to JSX without using spread:
232
232
  w
233
233
  );
234
234
  }
235
- function x(e) {
235
+ function b(e) {
236
236
  typeof e == "object" && e !== null && e.$$typeof === v && e._store && (e._store.validated = 1);
237
237
  }
238
- var i = V, v = Symbol.for("react.transitional.element"), H = Symbol.for("react.portal"), g = Symbol.for("react.fragment"), B = Symbol.for("react.strict_mode"), Z = Symbol.for("react.profiler"), Q = Symbol.for("react.consumer"), K = Symbol.for("react.context"), ee = Symbol.for("react.forward_ref"), re = Symbol.for("react.suspense"), te = Symbol.for("react.suspense_list"), ne = Symbol.for("react.memo"), $ = Symbol.for("react.lazy"), se = Symbol.for("react.activity"), oe = Symbol.for("react.client.reference"), P = i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, F = Object.prototype.hasOwnProperty, ae = Array.isArray, O = console.createTask ? console.createTask : function() {
238
+ var i = ce, v = Symbol.for("react.transitional.element"), X = Symbol.for("react.portal"), g = Symbol.for("react.fragment"), H = Symbol.for("react.strict_mode"), B = Symbol.for("react.profiler"), Z = Symbol.for("react.consumer"), Q = Symbol.for("react.context"), K = Symbol.for("react.forward_ref"), ee = Symbol.for("react.suspense"), re = Symbol.for("react.suspense_list"), te = Symbol.for("react.memo"), F = Symbol.for("react.lazy"), ne = Symbol.for("react.activity"), se = Symbol.for("react.client.reference"), P = i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, Y = Object.prototype.hasOwnProperty, oe = Array.isArray, O = console.createTask ? console.createTask : function() {
239
239
  return null;
240
240
  };
241
241
  i = {
@@ -243,12 +243,12 @@ React keys must be passed directly to JSX without using spread:
243
243
  return e();
244
244
  }
245
245
  };
246
- var Y, M = {}, I = i.react_stack_bottom_frame.bind(
246
+ var $, M = {}, I = i.react_stack_bottom_frame.bind(
247
247
  i,
248
248
  l
249
249
  )(), D = O(h(l)), L = {};
250
250
  j.Fragment = g, j.jsx = function(e, r, a, u, E) {
251
- var b = 1e4 > P.recentlyCreatedOwnerStacks++;
251
+ var x = 1e4 > P.recentlyCreatedOwnerStacks++;
252
252
  return d(
253
253
  e,
254
254
  r,
@@ -256,11 +256,11 @@ React keys must be passed directly to JSX without using spread:
256
256
  !1,
257
257
  u,
258
258
  E,
259
- b ? Error("react-stack-top-frame") : I,
260
- b ? O(h(e)) : D
259
+ x ? Error("react-stack-top-frame") : I,
260
+ x ? O(h(e)) : D
261
261
  );
262
262
  }, j.jsxs = function(e, r, a, u, E) {
263
- var b = 1e4 > P.recentlyCreatedOwnerStacks++;
263
+ var x = 1e4 > P.recentlyCreatedOwnerStacks++;
264
264
  return d(
265
265
  e,
266
266
  r,
@@ -268,8 +268,8 @@ React keys must be passed directly to JSX without using spread:
268
268
  !0,
269
269
  u,
270
270
  E,
271
- b ? Error("react-stack-top-frame") : I,
272
- b ? O(h(e)) : D
271
+ x ? Error("react-stack-top-frame") : I,
272
+ x ? O(h(e)) : D
273
273
  );
274
274
  };
275
275
  }()), j;
@@ -279,10 +279,10 @@ function me() {
279
279
  return J || (J = 1, process.env.NODE_ENV === "production" ? S.exports = fe() : S.exports = de()), S.exports;
280
280
  }
281
281
  var n = me();
282
- const X = le(
282
+ const G = le(
283
283
  void 0
284
284
  ), N = () => {
285
- const t = ie(X);
285
+ const t = ie(G);
286
286
  if (!t)
287
287
  throw new Error(
288
288
  "useMultiStepperForm must be used within a MultiStepperProvider"
@@ -297,9 +297,9 @@ const X = le(
297
297
  }
298
298
  }, [s.length]);
299
299
  const m = C((d) => {
300
- l((x) => {
301
- const i = [...x];
302
- if (d > x.length - 1) return x;
300
+ l((b) => {
301
+ const i = [...b];
302
+ if (d > b.length - 1) return b;
303
303
  i[o] && (i[o] = { ...i[o], active: !1 }), i[d] && (i[d] = { ...i[d], active: !0 });
304
304
  for (let v = 0; v < d; v++)
305
305
  i[v] = { ...i[v], completed: !0 };
@@ -309,12 +309,12 @@ const X = le(
309
309
  }), h(d);
310
310
  }, [o]), p = C(() => {
311
311
  o < c.length - 1 ? m(o + 1) : l((d) => {
312
- const x = [...d];
313
- return x[o] = { ...x[o], completed: !0 }, x;
312
+ const b = [...d];
313
+ return b[o] = { ...b[o], completed: !0 }, b;
314
314
  });
315
315
  }, [o, c.length, m]), T = C(() => {
316
316
  o > 0 && m(o - 1);
317
- }, [o, m]), k = z(
317
+ }, [o, m]), k = V(
318
318
  () => ({
319
319
  currentStep: o,
320
320
  steps: c,
@@ -324,21 +324,21 @@ const X = le(
324
324
  }),
325
325
  [o, c, p, T, m]
326
326
  );
327
- return /* @__PURE__ */ n.jsx(X.Provider, { value: k, children: t });
328
- }, ve = () => /* @__PURE__ */ n.jsx("div", { children: "Loading.." }), he = V.memo(ve), xe = ({
327
+ return /* @__PURE__ */ n.jsx(G.Provider, { value: k, children: t });
328
+ }, ve = ({
329
329
  step: t,
330
330
  index: s
331
331
  }) => {
332
332
  const { steps: o } = N();
333
- return o.length ? t.loading ? /* @__PURE__ */ n.jsx("div", { className: "step step-loading", children: /* @__PURE__ */ n.jsx(he, {}) }) : t.error ? /* @__PURE__ */ n.jsx("div", { className: "step step-error", children: /* @__PURE__ */ n.jsx("span", { className: "text-white", children: "✗" }) }) : t.completed ? /* @__PURE__ */ n.jsx("div", { className: "step step-complete", children: /* @__PURE__ */ n.jsx("span", { className: "text-white", children: "✓" }) }) : t.finshed ? /* @__PURE__ */ n.jsx("div", { className: "step step-complete", children: t.icon }) : t.active ? /* @__PURE__ */ n.jsx("div", { className: "step step-active", children: t.icon ?? /* @__PURE__ */ n.jsx("h2", { className: "text-white", children: s }) }) : /* @__PURE__ */ n.jsx("div", { className: "step step-default", children: t.icon ?? /* @__PURE__ */ n.jsx("h2", { children: s }) }) : /* @__PURE__ */ n.jsx(G, {});
334
- }, be = () => {
333
+ return o.length ? t.loading ? /* @__PURE__ */ n.jsx("div", { className: "step step-loading", children: /* @__PURE__ */ n.jsx("div", { className: "spinner", role: "status", "aria-label": "Loading" }) }) : t.error ? /* @__PURE__ */ n.jsx("div", { className: "step step-error", children: t.icon ?? /* @__PURE__ */ n.jsx("span", { className: "text-white", children: "✗" }) }) : t.completed ? /* @__PURE__ */ n.jsx("div", { className: "step step-complete", children: t.icon ?? /* @__PURE__ */ n.jsx("span", { className: "text-white", children: "✓" }) }) : t.finshed ? /* @__PURE__ */ n.jsx("div", { className: "step step-complete", children: t.icon }) : t.active ? /* @__PURE__ */ n.jsx("div", { className: "step step-active", children: t.icon ?? /* @__PURE__ */ n.jsx("h2", { className: "text-white", children: s }) }) : /* @__PURE__ */ n.jsx("div", { className: "step step-default", children: t.icon ?? /* @__PURE__ */ n.jsx("h2", { children: s }) }) : /* @__PURE__ */ n.jsx(z, {});
334
+ }, he = () => {
335
335
  const { steps: t } = N();
336
336
  return t.length ? /* @__PURE__ */ n.jsx("div", { className: "app-container", children: /* @__PURE__ */ n.jsx("ol", { className: "stepper-header", children: t.map((s, o) => /* @__PURE__ */ n.jsxs(
337
337
  "div",
338
338
  {
339
339
  className: `step-item ${s.active && "active"} ${s.completed && "complete"} `,
340
340
  children: [
341
- /* @__PURE__ */ n.jsx(xe, { index: o + 1, step: s }),
341
+ /* @__PURE__ */ n.jsx(ve, { index: o + 1, step: s }),
342
342
  /* @__PURE__ */ n.jsxs("div", { className: "step-text", children: [
343
343
  s.title && /* @__PURE__ */ n.jsx("h3", { className: "step-title", children: s.title }),
344
344
  s.description && /* @__PURE__ */ n.jsx("h3", { className: "step-description", children: s.description })
@@ -346,11 +346,11 @@ const X = le(
346
346
  ]
347
347
  },
348
348
  o
349
- )) }) }) : /* @__PURE__ */ n.jsx(G, {});
350
- }, Ee = ({ onClickNext: t }) => {
349
+ )) }) }) : /* @__PURE__ */ n.jsx(z, {});
350
+ }, be = ({ onClickNext: t }) => {
351
351
  const { handleNextStep: s, handlePrevStep: o, currentStep: h, steps: c } = N(), l = h === c.length - 1, m = () => {
352
352
  c[h].completed || (s(), t());
353
- }, p = z(() => ({
353
+ }, p = V(() => ({
354
354
  button: "stepper-button",
355
355
  fill: "stepper-button-fill"
356
356
  }), []);
@@ -375,18 +375,17 @@ const X = le(
375
375
  }
376
376
  )
377
377
  ] });
378
- }, _e = () => {
378
+ }, xe = () => {
379
379
  const { steps: t, currentStep: s } = N();
380
380
  return /* @__PURE__ */ n.jsx("div", { className: "stepper-content", children: t[s] && t[s].children && t[s].children });
381
- }, je = ({
381
+ }, _e = ({
382
382
  steps: t,
383
383
  onClickNext: s
384
384
  }) => t ? /* @__PURE__ */ n.jsxs(pe, { steppers: t, children: [
385
- /* @__PURE__ */ n.jsx(be, {}),
386
- /* @__PURE__ */ n.jsx(_e, {}),
387
- /* @__PURE__ */ n.jsx(Ee, { onClickNext: s })
385
+ /* @__PURE__ */ n.jsx(he, {}),
386
+ /* @__PURE__ */ n.jsx(xe, {}),
387
+ /* @__PURE__ */ n.jsx(be, { onClickNext: s })
388
388
  ] }) : /* @__PURE__ */ n.jsx(n.Fragment, {});
389
389
  export {
390
- je as MultiStepper
390
+ _e as MultiStepper
391
391
  };
392
- //# sourceMappingURL=multi-stepper.es.js.map
@@ -1,5 +1,5 @@
1
- (function(j,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],i):(j=typeof globalThis<"u"?globalThis:j||self,i(j["multi-stepper"]={},j.React))})(this,function(j,i){"use strict";var M=document.createElement("style");M.textContent=`body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}h1,h2,h3,h4,h5,h6,p{margin:0%;padding:0%}.app-container{padding:1.5rem}.stepper-header{display:flex;justify-content:space-between}.step-item{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%}.step-item:not(:first-child):before{content:"";background-color:#e2e8f0;position:absolute;width:calc(100% - 2.5rem);height:3px;right:calc(50% + 1.25rem);top:1.125rem;transition:all .2s}.step{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;z-index:10;position:relative;border-radius:9999px;font-weight:600;color:#000;transition:all .2s}.step-active{border:1px solid #0284c7;background-color:#0284c7}.step-complete{background-color:#16a34a;color:#fff}.step-error{background-color:#ef4444}.step-finished{background-color:#16a34a}.step-active h2,.step-complete h2,.step-error span,.step-finished h2{color:#fff}.step-default{border:1px solid #d1d5db}.active .step{background-color:#0284c7}.complete .step{background-color:#16a34a}.complete:not(:first-child):before,.active:not(:first-child):before{background-color:#16a34a}.step-text{text-align:center;color:#fff}.step-title{font-size:1rem;color:#111827;font-weight:500;margin-top:1rem}.step-description{font-size:.85rem;color:#4b5563;font-weight:300;margin-top:.5rem}.stepper-content{display:flex;justify-content:center;align-items:center}.stepper-footer{display:flex;justify-content:space-around;align-items:center;padding:1.5rem;padding-block:2rem}.stepper-button{padding:.375rem 2rem;font-size:1rem;border-radius:.375rem;border:1px solid #9ca3af;background-color:transparent;color:inherit;cursor:pointer}.stepper-button-fill{border-color:#0284c7;background-color:#0284c7;color:#fff}
2
- /*$vite$:1*/`,document.head.appendChild(M);var S={exports:{}},R={};/**
1
+ (function(j,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],c):(j=typeof globalThis<"u"?globalThis:j||self,c(j["multi-stepper"]={},j.React))})(this,function(j,c){"use strict";var M=document.createElement("style");M.textContent=`:root{--color-primary: #0284c7;--color-primary-light: #38bdf8;--color-success: #16a34a;--color-error: #ef4444;--color-text: #111827;--color-text-light: #4b5563;--color-black: #000;--color-white: #fff;--color-border: #d1d5db;--color-border-light: #e2e8f0;--spacing-xs: .375rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--step-size: 2.5rem;--step-font-weight: 600;--step-radius: 50%;--spinner-size: 1.5rem;--spinner-thickness: 3px;--spinner-color: #3b82f6;--spinner-track: #e5e7eb;--spinner-speed: .8s}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}h1,h2,h3,h4,h5,h6,p{margin:0;padding:0}.app-container{padding:var(--spacing-lg)}.stepper-header{display:flex;justify-content:space-between}.step-item{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%}.step-item:not(:first-child):before{content:"";background-color:var(--color-border-light);position:absolute;width:calc(100% - var(--step-size));height:3px;right:calc(50% + (var(--step-size) / 2));top:calc(var(--step-size) / 2 - .125rem);transition:all .2s}.step{width:var(--step-size);height:var(--step-size);display:flex;align-items:center;justify-content:center;z-index:10;position:relative;border-radius:var(--step-radius);font-weight:var(--step-font-weight);color:var(--color-black);transition:all .2s;border:1px solid var(--color-border)}.step-active{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white)}.step-complete{border-color:var(--color-success);background-color:var(--color-success);color:var(--color-white)}.step-error{background-color:var(--color-error);color:var(--color-white)}.step-finished{background-color:var(--color-success);color:var(--color-white)}.complete:not(:first-child):before,.active:not(:first-child):before{background-color:var(--color-success)}.step-title{font-size:1rem;color:var(--color-text);font-weight:500;margin-top:var(--spacing-md)}.step-description{font-size:.85rem;color:var(--color-text-light);font-weight:300;margin-top:var(--spacing-sm)}.stepper-content{display:flex;justify-content:center;align-items:center}.stepper-footer{display:flex;justify-content:space-around;align-items:center;padding:var(--spacing-lg) var(--spacing-xl)}.stepper-button{padding:var(--spacing-xs) var(--spacing-xl);font-size:1rem;border-radius:.375rem;border:1px solid #9ca3af;background-color:transparent;color:inherit;cursor:pointer}.stepper-button-fill{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white)}.spinner{width:var(--spinner-size);height:var(--spinner-size);border-radius:50%;border:var(--spinner-thickness) solid var(--spinner-track);border-top-color:var(--spinner-color);animation:spin var(--spinner-speed) linear infinite}@media (prefers-reduced-motion: reduce){.spinner{animation:none;border-top-color:var(--spinner-track)}}@keyframes spin{to{transform:rotate(360deg)}}.test-step{padding:10vh;display:flex;justify-content:center;align-items:center}.test-step h3{color:#fff}.step-text{text-align:center}
2
+ /*$vite$:1*/`,document.head.appendChild(M);var y={exports:{}},R={};/**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.js
5
5
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */var Y;function H(){if(Y)return R;Y=1;var r=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function s(x,c,l){var m=null;if(l!==void 0&&(m=""+l),c.key!==void 0&&(m=""+c.key),"key"in c){l={};for(var h in c)h!=="key"&&(l[h]=c[h])}else l=c;return c=l.ref,{$$typeof:r,type:x,key:m,ref:c!==void 0?c:null,props:l}}return R.Fragment=o,R.jsx=s,R.jsxs=s,R}var k={};/**
10
+ */var z;function H(){if(z)return R;z=1;var t=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function s(b,i,l){var m=null;if(l!==void 0&&(m=""+l),i.key!==void 0&&(m=""+i.key),"key"in i){l={};for(var v in i)v!=="key"&&(l[v]=i[v])}else l=i;return i=l.ref,{$$typeof:t,type:b,key:m,ref:i!==void 0?i:null,props:l}}return R.Fragment=o,R.jsx=s,R.jsxs=s,R}var k={};/**
11
11
  * @license React
12
12
  * react-jsx-runtime.development.js
13
13
  *
@@ -15,10 +15,9 @@
15
15
  *
16
16
  * This source code is licensed under the MIT license found in the
17
17
  * LICENSE file in the root directory of this source tree.
18
- */var I;function B(){return I||(I=1,process.env.NODE_ENV!=="production"&&function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===me?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case O:return"Fragment";case ae:return"Profiler";case se:return"StrictMode";case ue:return"Suspense";case de:return"SuspenseList";case pe:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case oe:return"Portal";case ie:return(e.displayName||"Context")+".Provider";case ce:return(e._context.displayName||"Context")+".Consumer";case le:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case fe:return t=e.displayName||null,t!==null?t:r(e.type)||"Memo";case U:t=e._payload,e=e._init;try{return r(e(t))}catch{}}return null}function o(e){return""+e}function s(e){try{o(e);var t=!1}catch{t=!0}if(t){t=console;var a=t.error,d=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return a.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",d),o(e)}}function x(e){if(e===O)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===U)return"<...>";try{var t=r(e);return t?"<"+t+">":"<...>"}catch{return"<...>"}}function c(){var e=P.A;return e===null?null:e.getOwner()}function l(){return Error("react-stack-top-frame")}function m(e){if(z.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function h(e,t){function a(){W||(W=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}a.isReactWarning=!0,Object.defineProperty(e,"key",{get:a,configurable:!0})}function y(){var e=r(this.type);return J[e]||(J[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function N(e,t,a,d,E,g,A,C){return a=g.ref,e={$$typeof:b,type:e,key:t,props:g,_owner:E},(a!==void 0?a:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:y}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:A}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:C}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function p(e,t,a,d,E,g,A,C){var f=t.children;if(f!==void 0)if(d)if(he(f)){for(d=0;d<f.length;d++)v(f[d]);Object.freeze&&Object.freeze(f)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else v(f);if(z.call(t,"key")){f=r(e);var _=Object.keys(t).filter(function(be){return be!=="key"});d=0<_.length?"{key: someKey, "+_.join(": ..., ")+": ...}":"{key: someKey}",X[f+d]||(_=0<_.length?"{"+_.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ */var Y;function B(){return Y||(Y=1,process.env.NODE_ENV!=="production"&&function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===pe?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case w:return"Fragment";case oe:return"Profiler";case ne:return"StrictMode";case ce:return"Suspense";case le:return"SuspenseList";case de:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case te:return"Portal";case ae:return(e.displayName||"Context")+".Provider";case se:return(e._context.displayName||"Context")+".Consumer";case ie:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ue:return r=e.displayName||null,r!==null?r:t(e.type)||"Memo";case L:r=e._payload,e=e._init;try{return t(e(r))}catch{}}return null}function o(e){return""+e}function s(e){try{o(e);var r=!1}catch{r=!0}if(r){r=console;var a=r.error,d=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return a.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",d),o(e)}}function b(e){if(e===w)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===L)return"<...>";try{var r=t(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function i(){var e=O.A;return e===null?null:e.getOwner()}function l(){return Error("react-stack-top-frame")}function m(e){if(U.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function v(e,r){function a(){W||(W=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}a.isReactWarning=!0,Object.defineProperty(e,"key",{get:a,configurable:!0})}function T(){var e=t(this.type);return J[e]||(J[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function N(e,r,a,d,E,g,A,C){return a=g.ref,e={$$typeof:h,type:e,key:r,props:g,_owner:E},(a!==void 0?a:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:T}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:A}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:C}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function f(e,r,a,d,E,g,A,C){var p=r.children;if(p!==void 0)if(d)if(fe(p)){for(d=0;d<p.length;d++)x(p[d]);Object.freeze&&Object.freeze(p)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else x(p);if(U.call(r,"key")){p=t(e);var _=Object.keys(r).filter(function(me){return me!=="key"});d=0<_.length?"{key: someKey, "+_.join(": ..., ")+": ...}":"{key: someKey}",X[p+d]||(_=0<_.length?"{"+_.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
19
19
  let props = %s;
20
20
  <%s {...props} />
21
21
  React keys must be passed directly to JSX without using spread:
22
22
  let props = %s;
23
- <%s key={someKey} {...props} />`,d,f,_,f),X[f+d]=!0)}if(f=null,a!==void 0&&(s(a),f=""+a),m(t)&&(s(t.key),f=""+t.key),"key"in t){a={};for(var F in t)F!=="key"&&(a[F]=t[F])}else a=t;return f&&h(a,typeof e=="function"?e.displayName||e.name||"Unknown":e),N(e,f,g,E,c(),a,A,C)}function v(e){typeof e=="object"&&e!==null&&e.$$typeof===b&&e._store&&(e._store.validated=1)}var u=i,b=Symbol.for("react.transitional.element"),oe=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),se=Symbol.for("react.strict_mode"),ae=Symbol.for("react.profiler"),ce=Symbol.for("react.consumer"),ie=Symbol.for("react.context"),le=Symbol.for("react.forward_ref"),ue=Symbol.for("react.suspense"),de=Symbol.for("react.suspense_list"),fe=Symbol.for("react.memo"),U=Symbol.for("react.lazy"),pe=Symbol.for("react.activity"),me=Symbol.for("react.client.reference"),P=u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=Object.prototype.hasOwnProperty,he=Array.isArray,w=console.createTask?console.createTask:function(){return null};u={react_stack_bottom_frame:function(e){return e()}};var W,J={},V=u.react_stack_bottom_frame.bind(u,l)(),G=w(x(l)),X={};k.Fragment=O,k.jsx=function(e,t,a,d,E){var g=1e4>P.recentlyCreatedOwnerStacks++;return p(e,t,a,!1,d,E,g?Error("react-stack-top-frame"):V,g?w(x(e)):G)},k.jsxs=function(e,t,a,d,E){var g=1e4>P.recentlyCreatedOwnerStacks++;return p(e,t,a,!0,d,E,g?Error("react-stack-top-frame"):V,g?w(x(e)):G)}}()),k}var D;function Z(){return D||(D=1,process.env.NODE_ENV==="production"?S.exports=H():S.exports=B()),S.exports}var n=Z();const L=i.createContext(void 0),T=()=>{const r=i.useContext(L);if(!r)throw new Error("useMultiStepperForm must be used within a MultiStepperProvider");return r},Q=({children:r,steppers:o})=>{const[s,x]=i.useState(0),[c,l]=i.useState([]);i.useEffect(()=>{if(o.length){const p=[...o];p[0].active=!0,l(p)}},[o.length]);const m=i.useCallback(p=>{l(v=>{const u=[...v];if(p>v.length-1)return v;u[s]&&(u[s]={...u[s],active:!1}),u[p]&&(u[p]={...u[p],active:!0});for(let b=0;b<p;b++)u[b]={...u[b],completed:!0};for(let b=p;b<u.length;b++)u[b]={...u[b],completed:!1};return u}),x(p)},[s]),h=i.useCallback(()=>{s<c.length-1?m(s+1):l(p=>{const v=[...p];return v[s]={...v[s],completed:!0},v})},[s,c.length,m]),y=i.useCallback(()=>{s>0&&m(s-1)},[s,m]),N=i.useMemo(()=>({currentStep:s,steps:c,handleNextStep:h,handlePrevStep:y,updateSteps:m}),[s,c,h,y,m]);return n.jsx(L.Provider,{value:N,children:r})},K=()=>n.jsx("div",{children:"Loading.."}),q=i.memo(K),$=({step:r,index:o})=>{const{steps:s}=T();return s.length?r.loading?n.jsx("div",{className:"step step-loading",children:n.jsx(q,{})}):r.error?n.jsx("div",{className:"step step-error",children:n.jsx("span",{className:"text-white",children:"✗"})}):r.completed?n.jsx("div",{className:"step step-complete",children:n.jsx("span",{className:"text-white",children:"✓"})}):r.finshed?n.jsx("div",{className:"step step-complete",children:r.icon}):r.active?n.jsx("div",{className:"step step-active",children:r.icon??n.jsx("h2",{className:"text-white",children:o})}):n.jsx("div",{className:"step step-default",children:r.icon??n.jsx("h2",{children:o})}):n.jsx(i.Fragment,{})},ee=()=>{const{steps:r}=T();return r.length?n.jsx("div",{className:"app-container",children:n.jsx("ol",{className:"stepper-header",children:r.map((o,s)=>n.jsxs("div",{className:`step-item ${o.active&&"active"} ${o.completed&&"complete"} `,children:[n.jsx($,{index:s+1,step:o}),n.jsxs("div",{className:"step-text",children:[o.title&&n.jsx("h3",{className:"step-title",children:o.title}),o.description&&n.jsx("h3",{className:"step-description",children:o.description})]})]},s))})}):n.jsx(i.Fragment,{})},te=({onClickNext:r})=>{const{handleNextStep:o,handlePrevStep:s,currentStep:x,steps:c}=T(),l=x===c.length-1,m=()=>{c[x].completed||(o(),r())},h=i.useMemo(()=>({button:"stepper-button",fill:"stepper-button-fill"}),[]);return n.jsxs("div",{className:"stepper-footer",children:[n.jsx("button",{type:"button",className:h.button,onClick:s,disabled:x<0,children:"Prev"}),n.jsx("button",{type:"button",className:`${l?`${h.button} ${h.fill}`:h.button}`,onClick:m,children:l?"Finish":"Next"})]})},re=()=>{const{steps:r,currentStep:o}=T();return n.jsx("div",{className:"stepper-content",children:r[o]&&r[o].children&&r[o].children})},ne=({steps:r,onClickNext:o})=>r?n.jsxs(Q,{steppers:r,children:[n.jsx(ee,{}),n.jsx(re,{}),n.jsx(te,{onClickNext:o})]}):n.jsx(n.Fragment,{});j.MultiStepper=ne,Object.defineProperty(j,Symbol.toStringTag,{value:"Module"})});
24
- //# sourceMappingURL=multi-stepper.umd.js.map
23
+ <%s key={someKey} {...props} />`,d,p,_,p),X[p+d]=!0)}if(p=null,a!==void 0&&(s(a),p=""+a),m(r)&&(s(r.key),p=""+r.key),"key"in r){a={};for(var F in r)F!=="key"&&(a[F]=r[F])}else a=r;return p&&v(a,typeof e=="function"?e.displayName||e.name||"Unknown":e),N(e,p,g,E,i(),a,A,C)}function x(e){typeof e=="object"&&e!==null&&e.$$typeof===h&&e._store&&(e._store.validated=1)}var u=c,h=Symbol.for("react.transitional.element"),te=Symbol.for("react.portal"),w=Symbol.for("react.fragment"),ne=Symbol.for("react.strict_mode"),oe=Symbol.for("react.profiler"),se=Symbol.for("react.consumer"),ae=Symbol.for("react.context"),ie=Symbol.for("react.forward_ref"),ce=Symbol.for("react.suspense"),le=Symbol.for("react.suspense_list"),ue=Symbol.for("react.memo"),L=Symbol.for("react.lazy"),de=Symbol.for("react.activity"),pe=Symbol.for("react.client.reference"),O=u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,U=Object.prototype.hasOwnProperty,fe=Array.isArray,P=console.createTask?console.createTask:function(){return null};u={react_stack_bottom_frame:function(e){return e()}};var W,J={},V=u.react_stack_bottom_frame.bind(u,l)(),G=P(b(l)),X={};k.Fragment=w,k.jsx=function(e,r,a,d,E){var g=1e4>O.recentlyCreatedOwnerStacks++;return f(e,r,a,!1,d,E,g?Error("react-stack-top-frame"):V,g?P(b(e)):G)},k.jsxs=function(e,r,a,d,E){var g=1e4>O.recentlyCreatedOwnerStacks++;return f(e,r,a,!0,d,E,g?Error("react-stack-top-frame"):V,g?P(b(e)):G)}}()),k}var I;function Z(){return I||(I=1,process.env.NODE_ENV==="production"?y.exports=H():y.exports=B()),y.exports}var n=Z();const D=c.createContext(void 0),S=()=>{const t=c.useContext(D);if(!t)throw new Error("useMultiStepperForm must be used within a MultiStepperProvider");return t},Q=({children:t,steppers:o})=>{const[s,b]=c.useState(0),[i,l]=c.useState([]);c.useEffect(()=>{if(o.length){const f=[...o];f[0].active=!0,l(f)}},[o.length]);const m=c.useCallback(f=>{l(x=>{const u=[...x];if(f>x.length-1)return x;u[s]&&(u[s]={...u[s],active:!1}),u[f]&&(u[f]={...u[f],active:!0});for(let h=0;h<f;h++)u[h]={...u[h],completed:!0};for(let h=f;h<u.length;h++)u[h]={...u[h],completed:!1};return u}),b(f)},[s]),v=c.useCallback(()=>{s<i.length-1?m(s+1):l(f=>{const x=[...f];return x[s]={...x[s],completed:!0},x})},[s,i.length,m]),T=c.useCallback(()=>{s>0&&m(s-1)},[s,m]),N=c.useMemo(()=>({currentStep:s,steps:i,handleNextStep:v,handlePrevStep:T,updateSteps:m}),[s,i,v,T,m]);return n.jsx(D.Provider,{value:N,children:t})},K=({step:t,index:o})=>{const{steps:s}=S();return s.length?t.loading?n.jsx("div",{className:"step step-loading",children:n.jsx("div",{className:"spinner",role:"status","aria-label":"Loading"})}):t.error?n.jsx("div",{className:"step step-error",children:t.icon??n.jsx("span",{className:"text-white",children:"✗"})}):t.completed?n.jsx("div",{className:"step step-complete",children:t.icon??n.jsx("span",{className:"text-white",children:"✓"})}):t.finshed?n.jsx("div",{className:"step step-complete",children:t.icon}):t.active?n.jsx("div",{className:"step step-active",children:t.icon??n.jsx("h2",{className:"text-white",children:o})}):n.jsx("div",{className:"step step-default",children:t.icon??n.jsx("h2",{children:o})}):n.jsx(c.Fragment,{})},q=()=>{const{steps:t}=S();return t.length?n.jsx("div",{className:"app-container",children:n.jsx("ol",{className:"stepper-header",children:t.map((o,s)=>n.jsxs("div",{className:`step-item ${o.active&&"active"} ${o.completed&&"complete"} `,children:[n.jsx(K,{index:s+1,step:o}),n.jsxs("div",{className:"step-text",children:[o.title&&n.jsx("h3",{className:"step-title",children:o.title}),o.description&&n.jsx("h3",{className:"step-description",children:o.description})]})]},s))})}):n.jsx(c.Fragment,{})},$=({onClickNext:t})=>{const{handleNextStep:o,handlePrevStep:s,currentStep:b,steps:i}=S(),l=b===i.length-1,m=()=>{i[b].completed||(o(),t())},v=c.useMemo(()=>({button:"stepper-button",fill:"stepper-button-fill"}),[]);return n.jsxs("div",{className:"stepper-footer",children:[n.jsx("button",{type:"button",className:v.button,onClick:s,disabled:b<0,children:"Prev"}),n.jsx("button",{type:"button",className:`${l?`${v.button} ${v.fill}`:v.button}`,onClick:m,children:l?"Finish":"Next"})]})},ee=()=>{const{steps:t,currentStep:o}=S();return n.jsx("div",{className:"stepper-content",children:t[o]&&t[o].children&&t[o].children})},re=({steps:t,onClickNext:o})=>t?n.jsxs(Q,{steppers:t,children:[n.jsx(q,{}),n.jsx(ee,{}),n.jsx($,{onClickNext:o})]}):n.jsx(n.Fragment,{});j.MultiStepper=re,Object.defineProperty(j,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "main": "./dist/multi-stepper.umd.js",
4
4
  "module": "./dist/multi-stepper.es.js",
5
5
  "types": "./dist/index.d.ts",
6
- "version": "1.1.5",
6
+ "version": "1.1.7",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"
@@ -19,31 +19,38 @@
19
19
  "dev": "vite",
20
20
  "build": "tsc -b && vite build",
21
21
  "lint": "eslint .",
22
- "preview": "vite preview"
22
+ "preview": "vite preview",
23
+ "test": "vitest",
24
+ "test:watch": "vitest --watch",
25
+ "test:coverage": "vitest run --coverage"
23
26
  },
24
27
  "dependencies": {
25
- "@tailwindcss/vite": "^4.1.11",
26
28
  "@vitejs/plugin-react-swc": "^3.11.0",
27
29
  "react": "^19.1.0",
28
30
  "react-dom": "^19.1.0",
29
31
  "reactjs-multi-stepper": "^1.1.4",
30
- "tailwindcss": "^4.1.11",
31
32
  "vite-plugin-dts": "^4.5.4",
32
33
  "vite-plugin-lib-inject-css": "^2.2.2"
33
34
  },
34
35
  "devDependencies": {
35
36
  "@eslint/js": "^9.30.1",
37
+ "@testing-library/jest-dom": "^6.7.0",
38
+ "@testing-library/react": "^16.3.0",
39
+ "@testing-library/user-event": "^14.6.1",
36
40
  "@types/node": "^24.1.0",
37
41
  "@types/react": "^19.1.8",
38
42
  "@types/react-dom": "^19.1.6",
39
43
  "@vitejs/plugin-react": "^4.6.0",
44
+ "@vitest/coverage-v8": "^3.2.4",
40
45
  "eslint": "^9.30.1",
41
46
  "eslint-plugin-react-hooks": "^5.2.0",
42
47
  "eslint-plugin-react-refresh": "^0.4.20",
43
48
  "globals": "^16.3.0",
49
+ "jsdom": "^26.1.0",
44
50
  "typescript": "~5.8.3",
45
51
  "typescript-eslint": "^8.35.1",
46
- "vite": "^7.0.4"
52
+ "vite": "^7.0.4",
53
+ "vitest": "^3.2.4"
47
54
  },
48
55
  "description": "This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.",
49
56
  "keywords": [],
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-stepper.es.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/hooks/index.ts","../src/contexts/index.tsx","../src/components/spinner.tsx","../src/components/StepperIcon.tsx","../src/components/StepperHeader.tsx","../src/components/StepperFooter.tsx","../src/components/StepperContent.tsx","../src/MultiStepper.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { createContext, useContext } from \"react\";\nimport type { MultiStepperType } from \"../types\";\n\n// Multi stepper context\nexport const MultiStepperContext = createContext<MultiStepperType | undefined>(\n undefined\n);\n\n// context consumer hook\nexport const useMultiStepper = () => {\n const context = useContext(MultiStepperContext);\n if (!context)\n throw new Error(\n \"useMultiStepperForm must be used within a MultiStepperProvider\"\n );\n return context;\n};\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { MultiStepperProviderType, StepType } from '../types';\nimport { MultiStepperContext } from \"../hooks\";\n\nexport const MultiStepperProvider: React.FC<MultiStepperProviderType> = ({ children, steppers }) => {\n\n const [currentStep, setCurrentStep] = useState(0)\n const [steps, setSteps] = useState<StepType[]>([])\n\n useEffect(() => {\n if(steppers.length){\n const temp = [...steppers]\n temp[0].active = true\n setSteps(temp)\n }\n }, [steppers.length])\n\n const updateSteps = useCallback((newStep: number) => {\n setSteps((prev) => {\n const updated = [...prev]\n\n // if more than length of steps array return steps array as its\n if (newStep > prev.length - 1) return prev\n\n // deactivate current step\n if (updated[currentStep])\n updated[currentStep] = { ...updated[currentStep], active: false }\n\n // activate new step\n if (updated[newStep])\n updated[newStep] = { ...updated[newStep], active: true }\n\n // mark prev steps as completed\n for (let i = 0; i < newStep; i++) {\n updated[i] = { ...updated[i], completed: true }\n }\n\n // mark future steps as incompleted\n for (let i = newStep; i < updated.length; i++) {\n updated[i] = { ...updated[i], completed: false }\n }\n\n return updated\n })\n setCurrentStep(newStep)\n }, [currentStep])\n\n const handleNextStep = useCallback(() => {\n if (currentStep < steps.length -1) updateSteps(currentStep + 1)\n else setSteps((prev) => {\n const updated = [...prev]\n updated[currentStep] = { ...updated[currentStep], completed: true }\n return updated\n })\n }, [currentStep, steps.length, updateSteps])\n\n\n\n const handlePrevStep = useCallback(() => {\n if (currentStep > 0) updateSteps(currentStep-1)\n }, [currentStep, updateSteps])\n\n // ⚡️ Memoize the entire context value\n const contextValue = useMemo(\n () => ({\n currentStep,\n steps,\n handleNextStep,\n handlePrevStep,\n updateSteps,\n }),\n [currentStep, steps, handleNextStep, handlePrevStep, updateSteps]\n );\n\n return <MultiStepperContext.Provider value={contextValue}>\n {children}\n </MultiStepperContext.Provider>\n}","import React from \"react\";\n// import { cn } from \"@/lib/utils\"; // or use 'clsx' if you prefer\n\ntype SpinnerProps = {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | number;\n className?: string;\n};\n\n// const sizeMap: Record<string, string> = {\n// xs: \"w-2 h-2\",\n// sm: \"w-4 h-4\",\n// md: \"w-6 h-6\",\n// lg: \"w-8 h-8\",\n// xl: \"w-10 h-10\",\n// };\n// size = \"md\", className\nconst Spinner: React.FC<SpinnerProps> = () => {\n // const sizeClass = useMemo(() => {\n // return typeof size === \"number\"\n // ? `w-[${size}px] h-[${size}px]`\n // : sizeMap[size] || sizeMap[\"md\"];\n // }, [size]);\n\n return (\n <div>Loading..</div>\n );\n};\n\nexport default React.memo(Spinner);\n","import React, { Fragment } from 'react';\nimport { useMultiStepper } from '../hooks';\nimport type { StepType } from '../types';\nimport Spinner from './spinner';\n\ntype StepItemType = {\n step: StepType,\n index: number\n}\n\nexport const Step: React.FC<StepItemType> = ({\n step, index\n}) => {\n const { steps } = useMultiStepper()\n if (!steps.length) return <Fragment />\n\n if (step.loading) return <div className='step step-loading'>\n <Spinner />\n </div>\n\n if (step.error) return <div className='step step-error'>\n {/* <Icon name={\"X\"} className='text-white' /> */}\n <span className='text-white'>&#x2717;</span> \n </div>\n\n if (step.completed) return <div className='step step-complete'>\n {/* <Icon name={\"Check\"} className='text-white' /> */}\n <span className='text-white'>&#x2713;</span> \n </div>\n\n if (step.finshed) return <div className='step step-complete'>\n {/* <Icon name={\"Check\"} className='text-white' /> */}\n {step.icon}\n </div>\n\n if (step.active) return <div className='step step-active'>\n {\n step.icon ??\n <h2 className='text-white'>{index}</h2>\n }\n\n </div>\n\n return (\n <div className={`step step-default`}>\n {step.icon ?? <h2>{index}</h2>}\n </div>\n );\n};\n","import React, { Fragment } from 'react';\nimport { useMultiStepper } from '../hooks';\nimport { Step } from './StepperIcon';\n\n\nexport const StepperHeader: React.FC = () => {\n const { steps } = useMultiStepper()\n\n if (!steps.length) return <Fragment />\n return (\n <div className='app-container'>\n <ol className='stepper-header'>\n {\n steps.map((step, i) => (\n <div\n key={i}\n className={`step-item ${step.active && \"active\"} ${step.completed && \"complete\"\n } `}\n >\n\n <Step index={i + 1} step={step} />\n\n <div className=\"step-text\">\n {step.title && <h3 className=\"step-title\">{step.title}</h3>}\n {step.description && <h3 className=\"step-description\">{step.description}</h3>}\n </div>\n\n </div>\n ))\n }\n\n </ol>\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { useMultiStepper } from '../hooks';\n\ntype StepperFooterProps = {\n onClickNext: () => void\n}\n\nexport const StepperFooter: React.FC<StepperFooterProps> = ({ onClickNext }) => {\n const { handleNextStep, handlePrevStep, currentStep, steps } = useMultiStepper();\n const isFinished = currentStep === steps.length - 1;\n\n const handleNext = () => {\n\n if (!steps[currentStep].completed) {\n handleNextStep()\n onClickNext()\n }\n\n }\n\n const buttonClass = useMemo(() => ({\n button: 'stepper-button',\n fill: 'stepper-button-fill'\n }), []);\n\n return (\n <div className=\"stepper-footer\">\n <button\n type=\"button\"\n className={buttonClass.button}\n onClick={handlePrevStep}\n disabled={currentStep < 0}\n >\n Prev\n </button>\n\n <button\n type=\"button\"\n className={`${isFinished ? `${buttonClass.button} ${buttonClass.fill}` : buttonClass.button}`}\n onClick={handleNext}\n >\n {isFinished ? 'Finish' : 'Next'}\n </button>\n </div>\n );\n};\n","import React from 'react';\nimport { useMultiStepper } from '../hooks';\n\n\nexport const StepperContent: React.FC = () => {\n const { steps, currentStep } = useMultiStepper()\n return (\n <div className='stepper-content'>\n {\n steps[currentStep] && \n steps[currentStep].children && \n steps[currentStep].children\n }\n </div>\n );\n};\n","import React from 'react';\nimport type { StepType } from './types';\nimport { MultiStepperProvider } from './contexts';\nimport { StepperHeader } from './components/StepperHeader';\nimport { StepperFooter } from './components/StepperFooter';\nimport { StepperContent } from './components/StepperContent';\n\ntype StepperProps = {\n steps: StepType[];\n onClickNext:()=> void\n}\n\nexport const MultiStepper: React.FC<StepperProps> = ({\n steps,\n onClickNext\n}) => {\n if (!steps) return <></>\n return (\n <MultiStepperProvider steppers={steps}>\n <StepperHeader />\n <StepperContent />\n <StepperFooter onClickNext={onClickNext}/>\n </MultiStepperProvider>\n );\n};\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","MultiStepperContext","createContext","useMultiStepper","context","useContext","MultiStepperProvider","steppers","currentStep","setCurrentStep","useState","steps","setSteps","useEffect","temp","updateSteps","useCallback","newStep","prev","updated","i","handleNextStep","handlePrevStep","contextValue","useMemo","Spinner","jsx","Spinner$1","Step","step","index","Fragment","StepperHeader","jsxs","StepperFooter","onClickNext","isFinished","handleNext","buttonClass","StepperContent","MultiStepper"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-stepper.umd.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/hooks/index.ts","../src/contexts/index.tsx","../src/components/spinner.tsx","../src/components/StepperIcon.tsx","../src/components/StepperHeader.tsx","../src/components/StepperFooter.tsx","../src/components/StepperContent.tsx","../src/MultiStepper.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { createContext, useContext } from \"react\";\nimport type { MultiStepperType } from \"../types\";\n\n// Multi stepper context\nexport const MultiStepperContext = createContext<MultiStepperType | undefined>(\n undefined\n);\n\n// context consumer hook\nexport const useMultiStepper = () => {\n const context = useContext(MultiStepperContext);\n if (!context)\n throw new Error(\n \"useMultiStepperForm must be used within a MultiStepperProvider\"\n );\n return context;\n};\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { MultiStepperProviderType, StepType } from '../types';\nimport { MultiStepperContext } from \"../hooks\";\n\nexport const MultiStepperProvider: React.FC<MultiStepperProviderType> = ({ children, steppers }) => {\n\n const [currentStep, setCurrentStep] = useState(0)\n const [steps, setSteps] = useState<StepType[]>([])\n\n useEffect(() => {\n if(steppers.length){\n const temp = [...steppers]\n temp[0].active = true\n setSteps(temp)\n }\n }, [steppers.length])\n\n const updateSteps = useCallback((newStep: number) => {\n setSteps((prev) => {\n const updated = [...prev]\n\n // if more than length of steps array return steps array as its\n if (newStep > prev.length - 1) return prev\n\n // deactivate current step\n if (updated[currentStep])\n updated[currentStep] = { ...updated[currentStep], active: false }\n\n // activate new step\n if (updated[newStep])\n updated[newStep] = { ...updated[newStep], active: true }\n\n // mark prev steps as completed\n for (let i = 0; i < newStep; i++) {\n updated[i] = { ...updated[i], completed: true }\n }\n\n // mark future steps as incompleted\n for (let i = newStep; i < updated.length; i++) {\n updated[i] = { ...updated[i], completed: false }\n }\n\n return updated\n })\n setCurrentStep(newStep)\n }, [currentStep])\n\n const handleNextStep = useCallback(() => {\n if (currentStep < steps.length -1) updateSteps(currentStep + 1)\n else setSteps((prev) => {\n const updated = [...prev]\n updated[currentStep] = { ...updated[currentStep], completed: true }\n return updated\n })\n }, [currentStep, steps.length, updateSteps])\n\n\n\n const handlePrevStep = useCallback(() => {\n if (currentStep > 0) updateSteps(currentStep-1)\n }, [currentStep, updateSteps])\n\n // ⚡️ Memoize the entire context value\n const contextValue = useMemo(\n () => ({\n currentStep,\n steps,\n handleNextStep,\n handlePrevStep,\n updateSteps,\n }),\n [currentStep, steps, handleNextStep, handlePrevStep, updateSteps]\n );\n\n return <MultiStepperContext.Provider value={contextValue}>\n {children}\n </MultiStepperContext.Provider>\n}","import React from \"react\";\n// import { cn } from \"@/lib/utils\"; // or use 'clsx' if you prefer\n\ntype SpinnerProps = {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | number;\n className?: string;\n};\n\n// const sizeMap: Record<string, string> = {\n// xs: \"w-2 h-2\",\n// sm: \"w-4 h-4\",\n// md: \"w-6 h-6\",\n// lg: \"w-8 h-8\",\n// xl: \"w-10 h-10\",\n// };\n// size = \"md\", className\nconst Spinner: React.FC<SpinnerProps> = () => {\n // const sizeClass = useMemo(() => {\n // return typeof size === \"number\"\n // ? `w-[${size}px] h-[${size}px]`\n // : sizeMap[size] || sizeMap[\"md\"];\n // }, [size]);\n\n return (\n <div>Loading..</div>\n );\n};\n\nexport default React.memo(Spinner);\n","import React, { Fragment } from 'react';\nimport { useMultiStepper } from '../hooks';\nimport type { StepType } from '../types';\nimport Spinner from './spinner';\n\ntype StepItemType = {\n step: StepType,\n index: number\n}\n\nexport const Step: React.FC<StepItemType> = ({\n step, index\n}) => {\n const { steps } = useMultiStepper()\n if (!steps.length) return <Fragment />\n\n if (step.loading) return <div className='step step-loading'>\n <Spinner />\n </div>\n\n if (step.error) return <div className='step step-error'>\n {/* <Icon name={\"X\"} className='text-white' /> */}\n <span className='text-white'>&#x2717;</span> \n </div>\n\n if (step.completed) return <div className='step step-complete'>\n {/* <Icon name={\"Check\"} className='text-white' /> */}\n <span className='text-white'>&#x2713;</span> \n </div>\n\n if (step.finshed) return <div className='step step-complete'>\n {/* <Icon name={\"Check\"} className='text-white' /> */}\n {step.icon}\n </div>\n\n if (step.active) return <div className='step step-active'>\n {\n step.icon ??\n <h2 className='text-white'>{index}</h2>\n }\n\n </div>\n\n return (\n <div className={`step step-default`}>\n {step.icon ?? <h2>{index}</h2>}\n </div>\n );\n};\n","import React, { Fragment } from 'react';\nimport { useMultiStepper } from '../hooks';\nimport { Step } from './StepperIcon';\n\n\nexport const StepperHeader: React.FC = () => {\n const { steps } = useMultiStepper()\n\n if (!steps.length) return <Fragment />\n return (\n <div className='app-container'>\n <ol className='stepper-header'>\n {\n steps.map((step, i) => (\n <div\n key={i}\n className={`step-item ${step.active && \"active\"} ${step.completed && \"complete\"\n } `}\n >\n\n <Step index={i + 1} step={step} />\n\n <div className=\"step-text\">\n {step.title && <h3 className=\"step-title\">{step.title}</h3>}\n {step.description && <h3 className=\"step-description\">{step.description}</h3>}\n </div>\n\n </div>\n ))\n }\n\n </ol>\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { useMultiStepper } from '../hooks';\n\ntype StepperFooterProps = {\n onClickNext: () => void\n}\n\nexport const StepperFooter: React.FC<StepperFooterProps> = ({ onClickNext }) => {\n const { handleNextStep, handlePrevStep, currentStep, steps } = useMultiStepper();\n const isFinished = currentStep === steps.length - 1;\n\n const handleNext = () => {\n\n if (!steps[currentStep].completed) {\n handleNextStep()\n onClickNext()\n }\n\n }\n\n const buttonClass = useMemo(() => ({\n button: 'stepper-button',\n fill: 'stepper-button-fill'\n }), []);\n\n return (\n <div className=\"stepper-footer\">\n <button\n type=\"button\"\n className={buttonClass.button}\n onClick={handlePrevStep}\n disabled={currentStep < 0}\n >\n Prev\n </button>\n\n <button\n type=\"button\"\n className={`${isFinished ? `${buttonClass.button} ${buttonClass.fill}` : buttonClass.button}`}\n onClick={handleNext}\n >\n {isFinished ? 'Finish' : 'Next'}\n </button>\n </div>\n );\n};\n","import React from 'react';\nimport { useMultiStepper } from '../hooks';\n\n\nexport const StepperContent: React.FC = () => {\n const { steps, currentStep } = useMultiStepper()\n return (\n <div className='stepper-content'>\n {\n steps[currentStep] && \n steps[currentStep].children && \n steps[currentStep].children\n }\n </div>\n );\n};\n","import React from 'react';\nimport type { StepType } from './types';\nimport { MultiStepperProvider } from './contexts';\nimport { StepperHeader } from './components/StepperHeader';\nimport { StepperFooter } from './components/StepperFooter';\nimport { StepperContent } from './components/StepperContent';\n\ntype StepperProps = {\n steps: StepType[];\n onClickNext:()=> void\n}\n\nexport const MultiStepper: React.FC<StepperProps> = ({\n steps,\n onClickNext\n}) => {\n if (!steps) return <></>\n return (\n <MultiStepperProvider steppers={steps}>\n <StepperHeader />\n <StepperContent />\n <StepperFooter onClickNext={onClickNext}/>\n </MultiStepperProvider>\n );\n};\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","MultiStepperContext","createContext","useMultiStepper","context","useContext","MultiStepperProvider","steppers","currentStep","setCurrentStep","useState","steps","setSteps","useEffect","temp","updateSteps","useCallback","newStep","prev","updated","i","handleNextStep","handlePrevStep","contextValue","useMemo","Spinner","jsx","Spinner$1","Step","step","index","Fragment","StepperHeader","jsxs","StepperFooter","onClickNext","isFinished","handleNext","buttonClass","StepperContent","MultiStepper"],"mappings":"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","x_google_ignoreList":[0,1,2]}