jattac.libs.web.zest-button 1.0.1 → 1.0.3

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/README.md CHANGED
@@ -31,12 +31,11 @@ npm install jattac.libs.web.zest-button
31
31
 
32
32
  ## Basic Usage
33
33
 
34
- Import the `ZestButton` and its styles to get started.
34
+ Import the `ZestButton` to get started. The component's styles will be injected automatically.
35
35
 
36
36
  ```jsx
37
37
  import React from 'react';
38
38
  import ZestButton from 'jattac.libs.web.zest-button';
39
- import 'jattac.libs.web.zest-button/dist/zestbutton.css';
40
39
 
41
40
  const App = () => (
42
41
  <ZestButton onClick={() => alert('Zest!')}>
@@ -215,6 +214,35 @@ Use the `isDefault` prop to make the button clickable via the 'Enter' key anywhe
215
214
 
216
215
  ---
217
216
 
217
+ ## Theming (Dark/Light Mode)
218
+
219
+ `ZestButton` has full support for light and dark themes.
220
+
221
+ ### Automatic Theming
222
+
223
+ By default, the button will automatically detect and apply the user's operating system theme preference (`light` or `dark`). No configuration is needed for this behavior.
224
+
225
+ ### Manual Override
226
+
227
+ For applications with their own theme-switching logic, you can take explicit control. To force a theme, add the `data-theme` attribute to an ancestor element (like `<html>` or `<body>`).
228
+
229
+ The supported values are `light` and `dark`.
230
+
231
+ ```jsx
232
+ // To force dark mode for your entire application
233
+ <body data-theme="dark">
234
+ {/* The ZestButton will now be dark, regardless of OS settings */}
235
+ <App />
236
+ </body>
237
+
238
+ // To force light mode
239
+ <html data-theme="light">
240
+ {/* ... */}
241
+ </html>
242
+ ```
243
+
244
+ ---
245
+
218
246
  ## API Reference (All Props)
219
247
 
220
248
  | Prop | Type | Default | Description |
package/dist/cjs/index.js CHANGED
@@ -427,12 +427,41 @@ var jsxRuntimeExports = requireJsxRuntime();
427
427
 
428
428
  const SpinnerIcon = ({ className, ...props }) => (jsxRuntimeExports.jsx(fa6.FaSpinner, { className: className, ...props }));
429
429
 
430
+ function styleInject(css, ref) {
431
+ if ( ref === void 0 ) ref = {};
432
+ var insertAt = ref.insertAt;
433
+
434
+ if (typeof document === 'undefined') { return; }
435
+
436
+ var head = document.head || document.getElementsByTagName('head')[0];
437
+ var style = document.createElement('style');
438
+ style.type = 'text/css';
439
+
440
+ if (insertAt === 'top') {
441
+ if (head.firstChild) {
442
+ head.insertBefore(style, head.firstChild);
443
+ } else {
444
+ head.appendChild(style);
445
+ }
446
+ } else {
447
+ head.appendChild(style);
448
+ }
449
+
450
+ if (style.styleSheet) {
451
+ style.styleSheet.cssText = css;
452
+ } else {
453
+ style.appendChild(document.createTextNode(css));
454
+ }
455
+ }
456
+
457
+ var css_248z = ".ZestButton-module_button__KDafc{--zest-color-text-primary:#fff;--zest-color-text-disabled:#6b7280;--zest-color-bg-disabled:#cbd5e1;--zest-color-standard-bg:#1e40af;--zest-color-standard-bg-hover:#1a35a0;--zest-color-success-bg:#059669;--zest-color-success-bg-hover:#047857;--zest-color-danger-bg:#dc2626;--zest-color-danger-bg-hover:#b91c1c;--zest-color-danger-glow:rgba(239,68,68,.6)}@media (prefers-color-scheme:dark){.ZestButton-module_button__KDafc{--zest-color-text-disabled:#94a3b8;--zest-color-bg-disabled:#334155;--zest-color-standard-bg:#3b82f6;--zest-color-standard-bg-hover:#2563eb;--zest-color-success-bg:#10b981;--zest-color-success-bg-hover:#059669;--zest-color-danger-bg:#ef4444;--zest-color-danger-bg-hover:#dc2626;--zest-color-danger-glow:rgba(239,68,68,.7)}}[data-theme=dark] .ZestButton-module_button__KDafc{--zest-color-text-disabled:#94a3b8;--zest-color-bg-disabled:#334155;--zest-color-standard-bg:#3b82f6;--zest-color-standard-bg-hover:#2563eb;--zest-color-success-bg:#10b981;--zest-color-success-bg-hover:#059669;--zest-color-danger-bg:#ef4444;--zest-color-danger-bg-hover:#dc2626;--zest-color-danger-glow:rgba(239,68,68,.7)}[data-theme=light] .ZestButton-module_button__KDafc{--zest-color-text-primary:#fff;--zest-color-text-disabled:#6b7280;--zest-color-bg-disabled:#cbd5e1;--zest-color-standard-bg:#1e40af;--zest-color-standard-bg-hover:#1a35a0;--zest-color-success-bg:#059669;--zest-color-success-bg-hover:#047857;--zest-color-danger-bg:#dc2626;--zest-color-danger-bg-hover:#b91c1c;--zest-color-danger-glow:rgba(239,68,68,.6)}.ZestButton-module_button__KDafc{align-items:center;background-color:var(--zest-color-standard-bg);border:none;border-radius:8px;color:var(--zest-color-text-primary);cursor:pointer;display:inline-flex;font-family:Segoe UI,Roboto,sans-serif;font-weight:600;justify-content:center;overflow:hidden;padding:.6em 1.2em;position:relative;transition:background-color .2s ease,box-shadow .2s ease}.ZestButton-module_button__KDafc:hover:not(:disabled){background-color:var(--zest-color-standard-bg-hover)}.ZestButton-module_button__KDafc:disabled,.ZestButton-module_disabled__gw6y3{background-color:var(--zest-color-bg-disabled);color:var(--zest-color-text-disabled);cursor:not-allowed}.ZestButton-module_fullWidth__2ziwk{width:100%}.ZestButton-module_sm__G1vAP{font-size:.85rem;padding:.4em .8em}.ZestButton-module_md__Y-PMO{font-size:1rem;padding:.6em 1.2em}.ZestButton-module_lg__AQgdf{font-size:1.125rem;padding:.8em 1.6em}.ZestButton-module_standard__T3EGM{background-color:var(--zest-color-standard-bg)}.ZestButton-module_standard__T3EGM:hover:not(:disabled){background-color:var(--zest-color-standard-bg-hover)}.ZestButton-module_success__XEptA{background-color:var(--zest-color-success-bg)}.ZestButton-module_success__XEptA:hover:not(:disabled){background-color:var(--zest-color-success-bg-hover)}.ZestButton-module_danger__nJpJ-{background-color:var(--zest-color-danger-bg)}.ZestButton-module_danger__nJpJ-:hover:not(:disabled){background-color:var(--zest-color-danger-bg-hover)}.ZestButton-module_inner__1j2Fr{align-items:center;display:inline-flex;justify-content:center;position:relative}.ZestButton-module_spinner__l2hLe{animation:ZestButton-module_spin__4asdw .75s linear infinite;color:var(--zest-color-text-primary);height:1em;position:absolute;width:1em}.ZestButton-module_content__hlea3{align-items:center;display:inline-flex;gap:.5em;justify-content:center}.ZestButton-module_label__8x263{display:inline-block}.ZestButton-module_icon__B3DFi{align-items:center;display:inline-flex;justify-content:center}.ZestButton-module_animatedCheck__8K4K-,.ZestButton-module_animatedX__KQnt7{animation:ZestButton-module_fadeIn__iEave .25s ease-out;color:#10b981;height:1.25em;width:1.25em}.ZestButton-module_animatedX__KQnt7{color:#ef4444}.ZestButton-module_animatedCheck__8K4K- path,.ZestButton-module_animatedX__KQnt7 line{stroke-dasharray:24;stroke-dashoffset:24;animation:ZestButton-module_drawCheck__3DyjT .4s ease-out forwards}.ZestButton-module_icon__B3DFi:first-child{margin-right:.7em}.ZestButton-module_icon__B3DFi:last-child{margin-left:.7em}@keyframes ZestButton-module_spin__4asdw{to{transform:rotate(1turn)}}@keyframes ZestButton-module_drawCheck__3DyjT{to{stroke-dashoffset:0}}@keyframes ZestButton-module_fadeIn__iEave{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes ZestButton-module_shakeIt__ox-R3{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}.ZestButton-module_shake__NtIjf{animation:ZestButton-module_shakeIt__ox-R3 .4s ease;box-shadow:0 0 0 2px var(--zest-color-danger-glow)}";
430
458
  var styles = {"button":"ZestButton-module_button__KDafc","disabled":"ZestButton-module_disabled__gw6y3","fullWidth":"ZestButton-module_fullWidth__2ziwk","sm":"ZestButton-module_sm__G1vAP","md":"ZestButton-module_md__Y-PMO","lg":"ZestButton-module_lg__AQgdf","standard":"ZestButton-module_standard__T3EGM","success":"ZestButton-module_success__XEptA","danger":"ZestButton-module_danger__nJpJ-","inner":"ZestButton-module_inner__1j2Fr","spinner":"ZestButton-module_spinner__l2hLe","spin":"ZestButton-module_spin__4asdw","content":"ZestButton-module_content__hlea3","label":"ZestButton-module_label__8x263","icon":"ZestButton-module_icon__B3DFi","animatedCheck":"ZestButton-module_animatedCheck__8K4K-","animatedX":"ZestButton-module_animatedX__KQnt7","fadeIn":"ZestButton-module_fadeIn__iEave","drawCheck":"ZestButton-module_drawCheck__3DyjT","shake":"ZestButton-module_shake__NtIjf","shakeIt":"ZestButton-module_shakeIt__ox-R3"};
459
+ styleInject(css_248z);
431
460
 
432
461
  // --- Components ---
433
462
  const AnimatedCheckmark = () => (jsxRuntimeExports.jsx("svg", { className: styles.animatedCheck, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: jsxRuntimeExports.jsx("path", { d: "M5 13l4 4L19 7" }) }));
434
- const AnimatedX = () => (jsxRuntimeExports.jsxs("svg", { className: styles.animatedX, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: [jsxRuntimeExports.jsx("path", { d: "M6 6L18 18" }), jsxRuntimeExports.jsx("path", { d: "M6 18L18 6" })] }));
435
- const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = false, className = "", disabled, children, onClick, ...props }) => {
463
+ const AnimatedX = () => (jsxRuntimeExports.jsxs("svg", { className: styles.animatedX, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: [jsxRuntimeExports.jsx("path", { d: "M6 6L18 18" }), jsxRuntimeExports.jsx("path", { d: "M18 6L6 18" })] }));
464
+ const ZestButton = ({ visualOptions, busyOptions, successOptions, confirmOptions, isDefault = false, className = "", disabled, children, onClick, ...rest }) => {
436
465
  const { variant = "standard", size = "md", fullWidth = false, iconLeft, iconRight, } = visualOptions || {};
437
466
  const { handleInternally = true, preventRageClick = true, minBusyDurationMs = 500, } = busyOptions || {};
438
467
  const { showCheckmark = true, showFailIcon = true, autoResetAfterMs = 2000, } = successOptions || {};
@@ -450,8 +479,8 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
450
479
  setCurrentChildren(children);
451
480
  }
452
481
  }, [children, awaitingConfirm]);
453
- const effectiveBusy = typeof props["aria-busy"] === "boolean"
454
- ? Boolean(props["aria-busy"])
482
+ const effectiveBusy = typeof rest["aria-busy"] === "boolean"
483
+ ? Boolean(rest["aria-busy"])
455
484
  : handleInternally
456
485
  ? internalBusy
457
486
  : false;
@@ -459,8 +488,6 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
459
488
  effectiveBusy ||
460
489
  (preventRageClick && (wasSuccessful || wasFailed));
461
490
  const handleClick = async (e) => {
462
- if (preventRageClick && internalBusy)
463
- return;
464
491
  if (handleInternally && typeof onClick === "function") {
465
492
  try {
466
493
  setWasSuccessful(false);
@@ -501,10 +528,14 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
501
528
  }, [wasSuccessful, wasFailed, autoResetAfterMs]);
502
529
  // Enter key handler if isDefault
503
530
  require$$0.useEffect(() => {
504
- if (!isDefault || isDisabled)
531
+ if (!isDefault)
505
532
  return;
506
533
  const listener = (e) => {
507
534
  var _a;
535
+ // Don't trigger if the button is disabled
536
+ if (isDisabled) {
537
+ return;
538
+ }
508
539
  const target = e.target;
509
540
  if (e.key === "Enter" &&
510
541
  !e.repeat &&
@@ -526,14 +557,14 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
526
557
  setAwaitingConfirm(false);
527
558
  };
528
559
  const handleConfirmClick = (e) => {
529
- if (!props.confirmOptions) {
560
+ if (!confirmOptions) {
530
561
  return handleClick(e);
531
562
  }
532
563
  if (awaitingConfirm) {
533
564
  stopWaiting();
534
565
  return handleClick(e);
535
566
  }
536
- const { displayLabel, timeoutSecs } = props.confirmOptions;
567
+ const { displayLabel, timeoutSecs } = confirmOptions;
537
568
  const startTime = Date.now();
538
569
  setAwaitingConfirm(true);
539
570
  confirmIntervalRef.current = setInterval(() => {
@@ -546,7 +577,7 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
546
577
  const timeRemaining = timeoutSecs - elapsedSecs;
547
578
  setCurrentChildren(`${displayLabel} (${timeRemaining}s)`);
548
579
  }
549
- }, 100); // ✅ update once per second
580
+ }, 1000); // ✅ update once per second
550
581
  };
551
582
  // cleanup on unmount
552
583
  require$$0.useEffect(() => {
@@ -564,22 +595,28 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
564
595
  return (jsxRuntimeExports.jsx("span", { className: `${styles.icon} ${styles.fadeIn}`, children: jsxRuntimeExports.jsx(AnimatedCheckmark, {}) }));
565
596
  }
566
597
  else if (wasFailed && showFailIcon) {
567
- return (jsxRuntimeExports.jsx("span", { className: `${styles.icon} ${styles.fadeIn} ${styles.failShake}`, children: jsxRuntimeExports.jsx(AnimatedX, {}) }));
598
+ return (jsxRuntimeExports.jsx("span", { className: `${styles.icon} ${styles.fadeIn} ${styles.shake}`, children: jsxRuntimeExports.jsx(AnimatedX, {}) }));
568
599
  }
569
600
  else if (iconLeft) {
570
601
  return jsxRuntimeExports.jsx("span", { className: styles.icon, children: iconLeft });
571
602
  }
572
603
  return null;
573
604
  };
605
+ // Sanitize props to prevent passing non-standard attributes to the DOM
606
+ delete rest.visualOptions;
607
+ delete rest.busyOptions;
608
+ delete rest.successOptions;
609
+ delete rest.confirmOptions;
610
+ delete rest.isDefault;
574
611
  return (jsxRuntimeExports.jsx("button", { ref: buttonRef, className: [
575
612
  styles.button,
576
613
  styles[variant],
577
614
  styles[size],
578
615
  fullWidth ? styles.fullWidth : "",
579
616
  isDisabled ? styles.disabled : "",
580
- wasFailed ? styles.failGlow : "",
617
+ wasFailed ? styles.shake : "",
581
618
  className,
582
- ].join(" "), disabled: isDisabled, "aria-busy": effectiveBusy, onClick: handleConfirmClick, ...props, children: jsxRuntimeExports.jsxs("span", { className: styles.inner, children: [renderLeftIcon(), jsxRuntimeExports.jsxs("span", { className: styles.content, children: [currentChildren, iconRight && jsxRuntimeExports.jsx("span", { className: styles.icon, children: iconRight })] })] }) }));
619
+ ].join(" "), disabled: isDisabled, "aria-busy": effectiveBusy, onClick: handleConfirmClick, ...rest, children: jsxRuntimeExports.jsxs("span", { className: styles.inner, children: [renderLeftIcon(), jsxRuntimeExports.jsxs("span", { className: styles.content, children: [currentChildren, iconRight && jsxRuntimeExports.jsx("span", { className: styles.icon, children: iconRight })] })] }) }));
583
620
  };
584
621
 
585
622
  module.exports = ZestButton;
@@ -1 +1 @@
1
- {"version":3,"file":"index.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","../../UI/SpinnerIcon.tsx","../../UI/ZestButton.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\";\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(type, key, props, owner, debugStack, debugTask) {\n var refProp = 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 !== refProp ? refProp : 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 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 maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\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 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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\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 { FaSpinner } from \"react-icons/fa6\";\nimport { IconBaseProps } from \"react-icons\";\n\ninterface SpinnerIconProps extends IconBaseProps {\n className?: string;\n}\n\nconst SpinnerIcon: React.FC<SpinnerIconProps> = ({ className, ...props }) => (\n <FaSpinner className={className} {...props} />\n);\n\nexport default SpinnerIcon;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport SpinnerIcon from \"./SpinnerIcon\";\nimport styles from \"../Styles/ZestButton.module.css\";\n\n// --- Types ---\n\nexport type ZestVariant = \"standard\" | \"success\" | \"danger\";\nexport type ZestSize = \"sm\" | \"md\" | \"lg\";\n\n/**\n * Visual appearance of the button\n */\ninterface VisualOptions {\n variant?: ZestVariant;\n size?: ZestSize;\n fullWidth?: boolean;\n iconLeft?: React.ReactNode;\n iconRight?: React.ReactNode;\n}\n\n/**\n * Behavior during async operations\n */\ninterface BusyOptions {\n handleInternally?: boolean;\n preventRageClick?: boolean;\n minBusyDurationMs?: number;\n}\n\n/**\n * Behavior after a successful or failed click\n */\ninterface SuccessOptions {\n showCheckmark?: boolean;\n showFailIcon?: boolean;\n autoResetAfterMs?: number;\n}\n\ninterface ConfirmOptions {\n displayLabel: string;\n timeoutSecs: number;\n}\n\n/**\n * All supported props\n */\nexport interface ZestButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n visualOptions?: VisualOptions;\n busyOptions?: BusyOptions;\n successOptions?: SuccessOptions;\n confirmOptions?: ConfirmOptions;\n isDefault?: boolean;\n}\n\n// --- Components ---\n\nconst AnimatedCheckmark: React.FC = () => (\n <svg\n className={styles.animatedCheck}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M5 13l4 4L19 7\" />\n </svg>\n);\n\nconst AnimatedX: React.FC = () => (\n <svg\n className={styles.animatedX}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M6 6L18 18\" />\n <path d=\"M6 18L18 6\" />\n </svg>\n);\n\nconst ZestButton: React.FC<ZestButtonProps> = ({\n visualOptions,\n busyOptions,\n successOptions,\n isDefault = false,\n className = \"\",\n disabled,\n children,\n onClick,\n ...props\n}) => {\n const {\n variant = \"standard\",\n size = \"md\",\n fullWidth = false,\n iconLeft,\n iconRight,\n } = visualOptions || {};\n\n const {\n handleInternally = true,\n preventRageClick = true,\n minBusyDurationMs = 500,\n } = busyOptions || {};\n\n const {\n showCheckmark = true,\n showFailIcon = true,\n autoResetAfterMs = 2000,\n } = successOptions || {};\n\n const [internalBusy, setInternalBusy] = useState(false);\n const [wasSuccessful, setWasSuccessful] = useState(false);\n const [wasFailed, setWasFailed] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const [currentChildren, setCurrentChildren] =\n useState<React.ReactNode>(children);\n const [awaitingConfirm, setAwaitingConfirm] = useState(false);\n\n // ✅ interval ref for confirm countdown\n const confirmIntervalRef = useRef<ReturnType<typeof setInterval> | null>(\n null\n );\n\n // keep children in sync when not in confirm mode\n useEffect(() => {\n if (!awaitingConfirm) {\n setCurrentChildren(children);\n }\n }, [children, awaitingConfirm]);\n\n const effectiveBusy =\n typeof props[\"aria-busy\"] === \"boolean\"\n ? Boolean(props[\"aria-busy\"])\n : handleInternally\n ? internalBusy\n : false;\n\n const isDisabled =\n disabled ||\n effectiveBusy ||\n (preventRageClick && (wasSuccessful || wasFailed));\n\n const handleClick = async (e: React.MouseEvent<HTMLButtonElement>) => {\n if (preventRageClick && internalBusy) return;\n\n if (handleInternally && typeof onClick === \"function\") {\n try {\n setWasSuccessful(false);\n setWasFailed(false);\n setInternalBusy(true);\n const startTime = Date.now();\n\n await onClick(e);\n\n const elapsed = Date.now() - startTime;\n const remaining = Math.max(minBusyDurationMs - elapsed, 0);\n if (remaining > 0) {\n await new Promise((resolve) => setTimeout(resolve, remaining));\n }\n\n if (showCheckmark) setWasSuccessful(true);\n } catch (err) {\n console.error(err);\n if (showFailIcon) setWasFailed(true);\n } finally {\n setInternalBusy(false);\n }\n } else if (onClick) {\n onClick(e);\n }\n };\n\n // auto-reset success/failure state\n useEffect(() => {\n if ((wasSuccessful || wasFailed) && autoResetAfterMs) {\n const timeout = setTimeout(() => {\n setWasSuccessful(false);\n setWasFailed(false);\n }, autoResetAfterMs);\n return () => clearTimeout(timeout);\n }\n }, [wasSuccessful, wasFailed, autoResetAfterMs]);\n\n // Enter key handler if isDefault\n useEffect(() => {\n if (!isDefault || isDisabled) return;\n const listener = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement;\n if (\n e.key === \"Enter\" &&\n !e.repeat &&\n !e.defaultPrevented &&\n !(target instanceof HTMLTextAreaElement)\n ) {\n e.preventDefault();\n buttonRef.current?.click();\n }\n };\n document.addEventListener(\"keydown\", listener);\n return () => document.removeEventListener(\"keydown\", listener);\n }, [isDefault, isDisabled]);\n\n const stopWaiting = () => {\n if (confirmIntervalRef.current) {\n clearInterval(confirmIntervalRef.current);\n confirmIntervalRef.current = null;\n }\n setCurrentChildren(children);\n setAwaitingConfirm(false);\n };\n\n const handleConfirmClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (!props.confirmOptions) {\n return handleClick(e);\n }\n\n if (awaitingConfirm) {\n stopWaiting();\n return handleClick(e);\n }\n\n const { displayLabel, timeoutSecs } = props.confirmOptions;\n const startTime = Date.now();\n setAwaitingConfirm(true);\n\n confirmIntervalRef.current = setInterval(() => {\n const elapsed = Date.now() - startTime;\n if (elapsed >= timeoutSecs * 1000) {\n stopWaiting();\n } else {\n const elapsedSecs = Math.floor(elapsed / 1000);\n const timeRemaining = timeoutSecs - elapsedSecs;\n setCurrentChildren(`${displayLabel} (${timeRemaining}s)`);\n }\n }, 100); // ✅ update once per second\n };\n\n // cleanup on unmount\n useEffect(() => {\n return () => {\n if (confirmIntervalRef.current) {\n clearInterval(confirmIntervalRef.current);\n }\n };\n }, []);\n\n const renderLeftIcon = () => {\n if (effectiveBusy) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn}`}>\n <SpinnerIcon className={styles.spinner} size={18} />\n </span>\n );\n } else if (wasSuccessful && showCheckmark) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn}`}>\n <AnimatedCheckmark />\n </span>\n );\n } else if (wasFailed && showFailIcon) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn} ${styles.failShake}`}>\n <AnimatedX />\n </span>\n );\n } else if (iconLeft) {\n return <span className={styles.icon}>{iconLeft}</span>;\n }\n return null;\n };\n\n return (\n <button\n ref={buttonRef}\n className={[\n styles.button,\n styles[variant],\n styles[size],\n fullWidth ? styles.fullWidth : \"\",\n isDisabled ? styles.disabled : \"\",\n wasFailed ? styles.failGlow : \"\",\n className,\n ].join(\" \")}\n disabled={isDisabled}\n aria-busy={effectiveBusy}\n onClick={handleConfirmClick}\n {...props}\n >\n <span className={styles.inner}>\n {renderLeftIcon()}\n <span className={styles.content}>\n {currentChildren}\n {iconRight && <span className={styles.icon}>{iconRight}</span>}\n </span>\n </span>\n </button>\n );\n};\n\nexport default ZestButton;\n"],"names":["jsxRuntimeModule","require$$0","require$$1","_jsx","FaSpinner","_jsxs","useState","useRef","useEffect"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.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","../../UI/SpinnerIcon.tsx","../../node_modules/style-inject/dist/style-inject.es.js","../../UI/ZestButton.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\";\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(type, key, props, owner, debugStack, debugTask) {\n var refProp = 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 !== refProp ? refProp : 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 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 maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\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 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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\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 { FaSpinner } from \"react-icons/fa6\";\nimport { IconBaseProps } from \"react-icons\";\n\ninterface SpinnerIconProps extends IconBaseProps {\n className?: string;\n}\n\nconst SpinnerIcon: React.FC<SpinnerIconProps> = ({ className, ...props }) => (\n <FaSpinner className={className} {...props} />\n);\n\nexport default SpinnerIcon;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport SpinnerIcon from \"./SpinnerIcon\";\nimport styles from \"../Styles/ZestButton.module.css\";\n\n// --- Types ---\n\nexport type ZestVariant = \"standard\" | \"success\" | \"danger\";\nexport type ZestSize = \"sm\" | \"md\" | \"lg\";\n\n/**\n * Visual appearance of the button\n */\ninterface VisualOptions {\n variant?: ZestVariant;\n size?: ZestSize;\n fullWidth?: boolean;\n iconLeft?: React.ReactNode;\n iconRight?: React.ReactNode;\n}\n\n/**\n * Behavior during async operations\n */\ninterface BusyOptions {\n handleInternally?: boolean;\n preventRageClick?: boolean;\n minBusyDurationMs?: number;\n}\n\n/**\n * Behavior after a successful or failed click\n */\ninterface SuccessOptions {\n showCheckmark?: boolean;\n showFailIcon?: boolean;\n autoResetAfterMs?: number;\n}\n\ninterface ConfirmOptions {\n displayLabel: string;\n timeoutSecs: number;\n}\n\n/**\n * All supported props\n */\nexport interface ZestButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n visualOptions?: VisualOptions;\n busyOptions?: BusyOptions;\n successOptions?: SuccessOptions;\n confirmOptions?: ConfirmOptions;\n isDefault?: boolean;\n}\n\n// --- Components ---\n\nconst AnimatedCheckmark: React.FC = () => (\n <svg\n className={styles.animatedCheck}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M5 13l4 4L19 7\" />\n </svg>\n);\n\nconst AnimatedX: React.FC = () => (\n <svg\n className={styles.animatedX}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M6 6L18 18\" />\n <path d=\"M18 6L6 18\" />\n </svg>\n);\n\nconst ZestButton: React.FC<ZestButtonProps> = ({\n visualOptions,\n busyOptions,\n successOptions,\n confirmOptions,\n isDefault = false,\n className = \"\",\n disabled,\n children,\n onClick,\n ...rest\n}) => {\n const {\n variant = \"standard\",\n size = \"md\",\n fullWidth = false,\n iconLeft,\n iconRight,\n } = visualOptions || {};\n\n const {\n handleInternally = true,\n preventRageClick = true,\n minBusyDurationMs = 500,\n } = busyOptions || {};\n\n const {\n showCheckmark = true,\n showFailIcon = true,\n autoResetAfterMs = 2000,\n } = successOptions || {};\n\n const [internalBusy, setInternalBusy] = useState(false);\n const [wasSuccessful, setWasSuccessful] = useState(false);\n const [wasFailed, setWasFailed] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const [currentChildren, setCurrentChildren] =\n useState<React.ReactNode>(children);\n const [awaitingConfirm, setAwaitingConfirm] = useState(false);\n\n // ✅ interval ref for confirm countdown\n const confirmIntervalRef = useRef<ReturnType<typeof setInterval> | null>(\n null\n );\n\n // keep children in sync when not in confirm mode\n useEffect(() => {\n if (!awaitingConfirm) {\n setCurrentChildren(children);\n }\n }, [children, awaitingConfirm]);\n\n const effectiveBusy =\n typeof rest[\"aria-busy\"] === \"boolean\"\n ? Boolean(rest[\"aria-busy\"])\n : handleInternally\n ? internalBusy\n : false;\n\n const isDisabled =\n disabled ||\n effectiveBusy ||\n (preventRageClick && (wasSuccessful || wasFailed));\n\n const handleClick = async (e: React.MouseEvent<HTMLButtonElement>) => {\n if (handleInternally && typeof onClick === \"function\") {\n try {\n setWasSuccessful(false);\n setWasFailed(false);\n setInternalBusy(true);\n const startTime = Date.now();\n\n await onClick(e);\n\n const elapsed = Date.now() - startTime;\n const remaining = Math.max(minBusyDurationMs - elapsed, 0);\n if (remaining > 0) {\n await new Promise((resolve) => setTimeout(resolve, remaining));\n }\n\n if (showCheckmark) setWasSuccessful(true);\n } catch (err) {\n console.error(err);\n if (showFailIcon) setWasFailed(true);\n } finally {\n setInternalBusy(false);\n }\n } else if (onClick) {\n onClick(e);\n }\n };\n\n // auto-reset success/failure state\n useEffect(() => {\n if ((wasSuccessful || wasFailed) && autoResetAfterMs) {\n const timeout = setTimeout(() => {\n setWasSuccessful(false);\n setWasFailed(false);\n }, autoResetAfterMs);\n return () => clearTimeout(timeout);\n }\n }, [wasSuccessful, wasFailed, autoResetAfterMs]);\n\n // Enter key handler if isDefault\n useEffect(() => {\n if (!isDefault) return;\n\n const listener = (e: KeyboardEvent) => {\n // Don't trigger if the button is disabled\n if (isDisabled) {\n return;\n }\n\n const target = e.target as HTMLElement;\n if (\n e.key === \"Enter\" &&\n !e.repeat &&\n !e.defaultPrevented &&\n !(target instanceof HTMLTextAreaElement)\n ) {\n e.preventDefault();\n buttonRef.current?.click();\n }\n };\n\n document.addEventListener(\"keydown\", listener);\n return () => document.removeEventListener(\"keydown\", listener);\n }, [isDefault, isDisabled]);\n\n const stopWaiting = () => {\n if (confirmIntervalRef.current) {\n clearInterval(confirmIntervalRef.current);\n confirmIntervalRef.current = null;\n }\n setCurrentChildren(children);\n setAwaitingConfirm(false);\n };\n\n const handleConfirmClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (!confirmOptions) {\n return handleClick(e);\n }\n\n if (awaitingConfirm) {\n stopWaiting();\n return handleClick(e);\n }\n\n const { displayLabel, timeoutSecs } = confirmOptions;\n const startTime = Date.now();\n setAwaitingConfirm(true);\n\n confirmIntervalRef.current = setInterval(() => {\n const elapsed = Date.now() - startTime;\n if (elapsed >= timeoutSecs * 1000) {\n stopWaiting();\n } else {\n const elapsedSecs = Math.floor(elapsed / 1000);\n const timeRemaining = timeoutSecs - elapsedSecs;\n setCurrentChildren(`${displayLabel} (${timeRemaining}s)`);\n }\n }, 1000); // ✅ update once per second\n };\n\n // cleanup on unmount\n useEffect(() => {\n return () => {\n if (confirmIntervalRef.current) {\n clearInterval(confirmIntervalRef.current);\n }\n };\n }, []);\n\n const renderLeftIcon = () => {\n if (effectiveBusy) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn}`}>\n <SpinnerIcon className={styles.spinner} size={18} />\n </span>\n );\n } else if (wasSuccessful && showCheckmark) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn}`}>\n <AnimatedCheckmark />\n </span>\n );\n } else if (wasFailed && showFailIcon) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn} ${styles.shake}`}>\n <AnimatedX />\n </span>\n );\n } else if (iconLeft) {\n return <span className={styles.icon}>{iconLeft}</span>;\n }\n return null;\n };\n\n // Sanitize props to prevent passing non-standard attributes to the DOM\n delete (rest as any).visualOptions;\n delete (rest as any).busyOptions;\n delete (rest as any).successOptions;\n delete (rest as any).confirmOptions;\n delete (rest as any).isDefault;\n\n return (\n <button\n ref={buttonRef}\n className={[\n styles.button,\n styles[variant],\n styles[size],\n fullWidth ? styles.fullWidth : \"\",\n isDisabled ? styles.disabled : \"\",\n wasFailed ? styles.shake : \"\",\n className,\n ].join(\" \")}\n disabled={isDisabled}\n aria-busy={effectiveBusy}\n onClick={handleConfirmClick}\n {...rest}\n >\n <span className={styles.inner}>\n {renderLeftIcon()}\n <span className={styles.content}>\n {currentChildren}\n {iconRight && <span className={styles.icon}>{iconRight}</span>}\n </span>\n </span>\n </button>\n );\n};\n\nexport default ZestButton;\n"],"names":["jsxRuntimeModule","require$$0","require$$1","_jsx","FaSpinner","_jsxs","useState","useRef","useEffect"],"mappings":"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","x_google_ignoreList":[0,1,2,4]}
package/dist/esm/index.js CHANGED
@@ -425,12 +425,41 @@ var jsxRuntimeExports = requireJsxRuntime();
425
425
 
426
426
  const SpinnerIcon = ({ className, ...props }) => (jsxRuntimeExports.jsx(FaSpinner, { className: className, ...props }));
427
427
 
428
+ function styleInject(css, ref) {
429
+ if ( ref === void 0 ) ref = {};
430
+ var insertAt = ref.insertAt;
431
+
432
+ if (typeof document === 'undefined') { return; }
433
+
434
+ var head = document.head || document.getElementsByTagName('head')[0];
435
+ var style = document.createElement('style');
436
+ style.type = 'text/css';
437
+
438
+ if (insertAt === 'top') {
439
+ if (head.firstChild) {
440
+ head.insertBefore(style, head.firstChild);
441
+ } else {
442
+ head.appendChild(style);
443
+ }
444
+ } else {
445
+ head.appendChild(style);
446
+ }
447
+
448
+ if (style.styleSheet) {
449
+ style.styleSheet.cssText = css;
450
+ } else {
451
+ style.appendChild(document.createTextNode(css));
452
+ }
453
+ }
454
+
455
+ var css_248z = ".ZestButton-module_button__KDafc{--zest-color-text-primary:#fff;--zest-color-text-disabled:#6b7280;--zest-color-bg-disabled:#cbd5e1;--zest-color-standard-bg:#1e40af;--zest-color-standard-bg-hover:#1a35a0;--zest-color-success-bg:#059669;--zest-color-success-bg-hover:#047857;--zest-color-danger-bg:#dc2626;--zest-color-danger-bg-hover:#b91c1c;--zest-color-danger-glow:rgba(239,68,68,.6)}@media (prefers-color-scheme:dark){.ZestButton-module_button__KDafc{--zest-color-text-disabled:#94a3b8;--zest-color-bg-disabled:#334155;--zest-color-standard-bg:#3b82f6;--zest-color-standard-bg-hover:#2563eb;--zest-color-success-bg:#10b981;--zest-color-success-bg-hover:#059669;--zest-color-danger-bg:#ef4444;--zest-color-danger-bg-hover:#dc2626;--zest-color-danger-glow:rgba(239,68,68,.7)}}[data-theme=dark] .ZestButton-module_button__KDafc{--zest-color-text-disabled:#94a3b8;--zest-color-bg-disabled:#334155;--zest-color-standard-bg:#3b82f6;--zest-color-standard-bg-hover:#2563eb;--zest-color-success-bg:#10b981;--zest-color-success-bg-hover:#059669;--zest-color-danger-bg:#ef4444;--zest-color-danger-bg-hover:#dc2626;--zest-color-danger-glow:rgba(239,68,68,.7)}[data-theme=light] .ZestButton-module_button__KDafc{--zest-color-text-primary:#fff;--zest-color-text-disabled:#6b7280;--zest-color-bg-disabled:#cbd5e1;--zest-color-standard-bg:#1e40af;--zest-color-standard-bg-hover:#1a35a0;--zest-color-success-bg:#059669;--zest-color-success-bg-hover:#047857;--zest-color-danger-bg:#dc2626;--zest-color-danger-bg-hover:#b91c1c;--zest-color-danger-glow:rgba(239,68,68,.6)}.ZestButton-module_button__KDafc{align-items:center;background-color:var(--zest-color-standard-bg);border:none;border-radius:8px;color:var(--zest-color-text-primary);cursor:pointer;display:inline-flex;font-family:Segoe UI,Roboto,sans-serif;font-weight:600;justify-content:center;overflow:hidden;padding:.6em 1.2em;position:relative;transition:background-color .2s ease,box-shadow .2s ease}.ZestButton-module_button__KDafc:hover:not(:disabled){background-color:var(--zest-color-standard-bg-hover)}.ZestButton-module_button__KDafc:disabled,.ZestButton-module_disabled__gw6y3{background-color:var(--zest-color-bg-disabled);color:var(--zest-color-text-disabled);cursor:not-allowed}.ZestButton-module_fullWidth__2ziwk{width:100%}.ZestButton-module_sm__G1vAP{font-size:.85rem;padding:.4em .8em}.ZestButton-module_md__Y-PMO{font-size:1rem;padding:.6em 1.2em}.ZestButton-module_lg__AQgdf{font-size:1.125rem;padding:.8em 1.6em}.ZestButton-module_standard__T3EGM{background-color:var(--zest-color-standard-bg)}.ZestButton-module_standard__T3EGM:hover:not(:disabled){background-color:var(--zest-color-standard-bg-hover)}.ZestButton-module_success__XEptA{background-color:var(--zest-color-success-bg)}.ZestButton-module_success__XEptA:hover:not(:disabled){background-color:var(--zest-color-success-bg-hover)}.ZestButton-module_danger__nJpJ-{background-color:var(--zest-color-danger-bg)}.ZestButton-module_danger__nJpJ-:hover:not(:disabled){background-color:var(--zest-color-danger-bg-hover)}.ZestButton-module_inner__1j2Fr{align-items:center;display:inline-flex;justify-content:center;position:relative}.ZestButton-module_spinner__l2hLe{animation:ZestButton-module_spin__4asdw .75s linear infinite;color:var(--zest-color-text-primary);height:1em;position:absolute;width:1em}.ZestButton-module_content__hlea3{align-items:center;display:inline-flex;gap:.5em;justify-content:center}.ZestButton-module_label__8x263{display:inline-block}.ZestButton-module_icon__B3DFi{align-items:center;display:inline-flex;justify-content:center}.ZestButton-module_animatedCheck__8K4K-,.ZestButton-module_animatedX__KQnt7{animation:ZestButton-module_fadeIn__iEave .25s ease-out;color:#10b981;height:1.25em;width:1.25em}.ZestButton-module_animatedX__KQnt7{color:#ef4444}.ZestButton-module_animatedCheck__8K4K- path,.ZestButton-module_animatedX__KQnt7 line{stroke-dasharray:24;stroke-dashoffset:24;animation:ZestButton-module_drawCheck__3DyjT .4s ease-out forwards}.ZestButton-module_icon__B3DFi:first-child{margin-right:.7em}.ZestButton-module_icon__B3DFi:last-child{margin-left:.7em}@keyframes ZestButton-module_spin__4asdw{to{transform:rotate(1turn)}}@keyframes ZestButton-module_drawCheck__3DyjT{to{stroke-dashoffset:0}}@keyframes ZestButton-module_fadeIn__iEave{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes ZestButton-module_shakeIt__ox-R3{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}.ZestButton-module_shake__NtIjf{animation:ZestButton-module_shakeIt__ox-R3 .4s ease;box-shadow:0 0 0 2px var(--zest-color-danger-glow)}";
428
456
  var styles = {"button":"ZestButton-module_button__KDafc","disabled":"ZestButton-module_disabled__gw6y3","fullWidth":"ZestButton-module_fullWidth__2ziwk","sm":"ZestButton-module_sm__G1vAP","md":"ZestButton-module_md__Y-PMO","lg":"ZestButton-module_lg__AQgdf","standard":"ZestButton-module_standard__T3EGM","success":"ZestButton-module_success__XEptA","danger":"ZestButton-module_danger__nJpJ-","inner":"ZestButton-module_inner__1j2Fr","spinner":"ZestButton-module_spinner__l2hLe","spin":"ZestButton-module_spin__4asdw","content":"ZestButton-module_content__hlea3","label":"ZestButton-module_label__8x263","icon":"ZestButton-module_icon__B3DFi","animatedCheck":"ZestButton-module_animatedCheck__8K4K-","animatedX":"ZestButton-module_animatedX__KQnt7","fadeIn":"ZestButton-module_fadeIn__iEave","drawCheck":"ZestButton-module_drawCheck__3DyjT","shake":"ZestButton-module_shake__NtIjf","shakeIt":"ZestButton-module_shakeIt__ox-R3"};
457
+ styleInject(css_248z);
429
458
 
430
459
  // --- Components ---
431
460
  const AnimatedCheckmark = () => (jsxRuntimeExports.jsx("svg", { className: styles.animatedCheck, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: jsxRuntimeExports.jsx("path", { d: "M5 13l4 4L19 7" }) }));
432
- const AnimatedX = () => (jsxRuntimeExports.jsxs("svg", { className: styles.animatedX, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: [jsxRuntimeExports.jsx("path", { d: "M6 6L18 18" }), jsxRuntimeExports.jsx("path", { d: "M6 18L18 6" })] }));
433
- const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = false, className = "", disabled, children, onClick, ...props }) => {
461
+ const AnimatedX = () => (jsxRuntimeExports.jsxs("svg", { className: styles.animatedX, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: [jsxRuntimeExports.jsx("path", { d: "M6 6L18 18" }), jsxRuntimeExports.jsx("path", { d: "M18 6L6 18" })] }));
462
+ const ZestButton = ({ visualOptions, busyOptions, successOptions, confirmOptions, isDefault = false, className = "", disabled, children, onClick, ...rest }) => {
434
463
  const { variant = "standard", size = "md", fullWidth = false, iconLeft, iconRight, } = visualOptions || {};
435
464
  const { handleInternally = true, preventRageClick = true, minBusyDurationMs = 500, } = busyOptions || {};
436
465
  const { showCheckmark = true, showFailIcon = true, autoResetAfterMs = 2000, } = successOptions || {};
@@ -448,8 +477,8 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
448
477
  setCurrentChildren(children);
449
478
  }
450
479
  }, [children, awaitingConfirm]);
451
- const effectiveBusy = typeof props["aria-busy"] === "boolean"
452
- ? Boolean(props["aria-busy"])
480
+ const effectiveBusy = typeof rest["aria-busy"] === "boolean"
481
+ ? Boolean(rest["aria-busy"])
453
482
  : handleInternally
454
483
  ? internalBusy
455
484
  : false;
@@ -457,8 +486,6 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
457
486
  effectiveBusy ||
458
487
  (preventRageClick && (wasSuccessful || wasFailed));
459
488
  const handleClick = async (e) => {
460
- if (preventRageClick && internalBusy)
461
- return;
462
489
  if (handleInternally && typeof onClick === "function") {
463
490
  try {
464
491
  setWasSuccessful(false);
@@ -499,10 +526,14 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
499
526
  }, [wasSuccessful, wasFailed, autoResetAfterMs]);
500
527
  // Enter key handler if isDefault
501
528
  useEffect(() => {
502
- if (!isDefault || isDisabled)
529
+ if (!isDefault)
503
530
  return;
504
531
  const listener = (e) => {
505
532
  var _a;
533
+ // Don't trigger if the button is disabled
534
+ if (isDisabled) {
535
+ return;
536
+ }
506
537
  const target = e.target;
507
538
  if (e.key === "Enter" &&
508
539
  !e.repeat &&
@@ -524,14 +555,14 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
524
555
  setAwaitingConfirm(false);
525
556
  };
526
557
  const handleConfirmClick = (e) => {
527
- if (!props.confirmOptions) {
558
+ if (!confirmOptions) {
528
559
  return handleClick(e);
529
560
  }
530
561
  if (awaitingConfirm) {
531
562
  stopWaiting();
532
563
  return handleClick(e);
533
564
  }
534
- const { displayLabel, timeoutSecs } = props.confirmOptions;
565
+ const { displayLabel, timeoutSecs } = confirmOptions;
535
566
  const startTime = Date.now();
536
567
  setAwaitingConfirm(true);
537
568
  confirmIntervalRef.current = setInterval(() => {
@@ -544,7 +575,7 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
544
575
  const timeRemaining = timeoutSecs - elapsedSecs;
545
576
  setCurrentChildren(`${displayLabel} (${timeRemaining}s)`);
546
577
  }
547
- }, 100); // ✅ update once per second
578
+ }, 1000); // ✅ update once per second
548
579
  };
549
580
  // cleanup on unmount
550
581
  useEffect(() => {
@@ -562,22 +593,28 @@ const ZestButton = ({ visualOptions, busyOptions, successOptions, isDefault = fa
562
593
  return (jsxRuntimeExports.jsx("span", { className: `${styles.icon} ${styles.fadeIn}`, children: jsxRuntimeExports.jsx(AnimatedCheckmark, {}) }));
563
594
  }
564
595
  else if (wasFailed && showFailIcon) {
565
- return (jsxRuntimeExports.jsx("span", { className: `${styles.icon} ${styles.fadeIn} ${styles.failShake}`, children: jsxRuntimeExports.jsx(AnimatedX, {}) }));
596
+ return (jsxRuntimeExports.jsx("span", { className: `${styles.icon} ${styles.fadeIn} ${styles.shake}`, children: jsxRuntimeExports.jsx(AnimatedX, {}) }));
566
597
  }
567
598
  else if (iconLeft) {
568
599
  return jsxRuntimeExports.jsx("span", { className: styles.icon, children: iconLeft });
569
600
  }
570
601
  return null;
571
602
  };
603
+ // Sanitize props to prevent passing non-standard attributes to the DOM
604
+ delete rest.visualOptions;
605
+ delete rest.busyOptions;
606
+ delete rest.successOptions;
607
+ delete rest.confirmOptions;
608
+ delete rest.isDefault;
572
609
  return (jsxRuntimeExports.jsx("button", { ref: buttonRef, className: [
573
610
  styles.button,
574
611
  styles[variant],
575
612
  styles[size],
576
613
  fullWidth ? styles.fullWidth : "",
577
614
  isDisabled ? styles.disabled : "",
578
- wasFailed ? styles.failGlow : "",
615
+ wasFailed ? styles.shake : "",
579
616
  className,
580
- ].join(" "), disabled: isDisabled, "aria-busy": effectiveBusy, onClick: handleConfirmClick, ...props, children: jsxRuntimeExports.jsxs("span", { className: styles.inner, children: [renderLeftIcon(), jsxRuntimeExports.jsxs("span", { className: styles.content, children: [currentChildren, iconRight && jsxRuntimeExports.jsx("span", { className: styles.icon, children: iconRight })] })] }) }));
617
+ ].join(" "), disabled: isDisabled, "aria-busy": effectiveBusy, onClick: handleConfirmClick, ...rest, children: jsxRuntimeExports.jsxs("span", { className: styles.inner, children: [renderLeftIcon(), jsxRuntimeExports.jsxs("span", { className: styles.content, children: [currentChildren, iconRight && jsxRuntimeExports.jsx("span", { className: styles.icon, children: iconRight })] })] }) }));
581
618
  };
582
619
 
583
620
  export { ZestButton as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.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","../../UI/SpinnerIcon.tsx","../../UI/ZestButton.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\";\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(type, key, props, owner, debugStack, debugTask) {\n var refProp = 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 !== refProp ? refProp : 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 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 maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\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 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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\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 { FaSpinner } from \"react-icons/fa6\";\nimport { IconBaseProps } from \"react-icons\";\n\ninterface SpinnerIconProps extends IconBaseProps {\n className?: string;\n}\n\nconst SpinnerIcon: React.FC<SpinnerIconProps> = ({ className, ...props }) => (\n <FaSpinner className={className} {...props} />\n);\n\nexport default SpinnerIcon;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport SpinnerIcon from \"./SpinnerIcon\";\nimport styles from \"../Styles/ZestButton.module.css\";\n\n// --- Types ---\n\nexport type ZestVariant = \"standard\" | \"success\" | \"danger\";\nexport type ZestSize = \"sm\" | \"md\" | \"lg\";\n\n/**\n * Visual appearance of the button\n */\ninterface VisualOptions {\n variant?: ZestVariant;\n size?: ZestSize;\n fullWidth?: boolean;\n iconLeft?: React.ReactNode;\n iconRight?: React.ReactNode;\n}\n\n/**\n * Behavior during async operations\n */\ninterface BusyOptions {\n handleInternally?: boolean;\n preventRageClick?: boolean;\n minBusyDurationMs?: number;\n}\n\n/**\n * Behavior after a successful or failed click\n */\ninterface SuccessOptions {\n showCheckmark?: boolean;\n showFailIcon?: boolean;\n autoResetAfterMs?: number;\n}\n\ninterface ConfirmOptions {\n displayLabel: string;\n timeoutSecs: number;\n}\n\n/**\n * All supported props\n */\nexport interface ZestButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n visualOptions?: VisualOptions;\n busyOptions?: BusyOptions;\n successOptions?: SuccessOptions;\n confirmOptions?: ConfirmOptions;\n isDefault?: boolean;\n}\n\n// --- Components ---\n\nconst AnimatedCheckmark: React.FC = () => (\n <svg\n className={styles.animatedCheck}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M5 13l4 4L19 7\" />\n </svg>\n);\n\nconst AnimatedX: React.FC = () => (\n <svg\n className={styles.animatedX}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M6 6L18 18\" />\n <path d=\"M6 18L18 6\" />\n </svg>\n);\n\nconst ZestButton: React.FC<ZestButtonProps> = ({\n visualOptions,\n busyOptions,\n successOptions,\n isDefault = false,\n className = \"\",\n disabled,\n children,\n onClick,\n ...props\n}) => {\n const {\n variant = \"standard\",\n size = \"md\",\n fullWidth = false,\n iconLeft,\n iconRight,\n } = visualOptions || {};\n\n const {\n handleInternally = true,\n preventRageClick = true,\n minBusyDurationMs = 500,\n } = busyOptions || {};\n\n const {\n showCheckmark = true,\n showFailIcon = true,\n autoResetAfterMs = 2000,\n } = successOptions || {};\n\n const [internalBusy, setInternalBusy] = useState(false);\n const [wasSuccessful, setWasSuccessful] = useState(false);\n const [wasFailed, setWasFailed] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const [currentChildren, setCurrentChildren] =\n useState<React.ReactNode>(children);\n const [awaitingConfirm, setAwaitingConfirm] = useState(false);\n\n // ✅ interval ref for confirm countdown\n const confirmIntervalRef = useRef<ReturnType<typeof setInterval> | null>(\n null\n );\n\n // keep children in sync when not in confirm mode\n useEffect(() => {\n if (!awaitingConfirm) {\n setCurrentChildren(children);\n }\n }, [children, awaitingConfirm]);\n\n const effectiveBusy =\n typeof props[\"aria-busy\"] === \"boolean\"\n ? Boolean(props[\"aria-busy\"])\n : handleInternally\n ? internalBusy\n : false;\n\n const isDisabled =\n disabled ||\n effectiveBusy ||\n (preventRageClick && (wasSuccessful || wasFailed));\n\n const handleClick = async (e: React.MouseEvent<HTMLButtonElement>) => {\n if (preventRageClick && internalBusy) return;\n\n if (handleInternally && typeof onClick === \"function\") {\n try {\n setWasSuccessful(false);\n setWasFailed(false);\n setInternalBusy(true);\n const startTime = Date.now();\n\n await onClick(e);\n\n const elapsed = Date.now() - startTime;\n const remaining = Math.max(minBusyDurationMs - elapsed, 0);\n if (remaining > 0) {\n await new Promise((resolve) => setTimeout(resolve, remaining));\n }\n\n if (showCheckmark) setWasSuccessful(true);\n } catch (err) {\n console.error(err);\n if (showFailIcon) setWasFailed(true);\n } finally {\n setInternalBusy(false);\n }\n } else if (onClick) {\n onClick(e);\n }\n };\n\n // auto-reset success/failure state\n useEffect(() => {\n if ((wasSuccessful || wasFailed) && autoResetAfterMs) {\n const timeout = setTimeout(() => {\n setWasSuccessful(false);\n setWasFailed(false);\n }, autoResetAfterMs);\n return () => clearTimeout(timeout);\n }\n }, [wasSuccessful, wasFailed, autoResetAfterMs]);\n\n // Enter key handler if isDefault\n useEffect(() => {\n if (!isDefault || isDisabled) return;\n const listener = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement;\n if (\n e.key === \"Enter\" &&\n !e.repeat &&\n !e.defaultPrevented &&\n !(target instanceof HTMLTextAreaElement)\n ) {\n e.preventDefault();\n buttonRef.current?.click();\n }\n };\n document.addEventListener(\"keydown\", listener);\n return () => document.removeEventListener(\"keydown\", listener);\n }, [isDefault, isDisabled]);\n\n const stopWaiting = () => {\n if (confirmIntervalRef.current) {\n clearInterval(confirmIntervalRef.current);\n confirmIntervalRef.current = null;\n }\n setCurrentChildren(children);\n setAwaitingConfirm(false);\n };\n\n const handleConfirmClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (!props.confirmOptions) {\n return handleClick(e);\n }\n\n if (awaitingConfirm) {\n stopWaiting();\n return handleClick(e);\n }\n\n const { displayLabel, timeoutSecs } = props.confirmOptions;\n const startTime = Date.now();\n setAwaitingConfirm(true);\n\n confirmIntervalRef.current = setInterval(() => {\n const elapsed = Date.now() - startTime;\n if (elapsed >= timeoutSecs * 1000) {\n stopWaiting();\n } else {\n const elapsedSecs = Math.floor(elapsed / 1000);\n const timeRemaining = timeoutSecs - elapsedSecs;\n setCurrentChildren(`${displayLabel} (${timeRemaining}s)`);\n }\n }, 100); // ✅ update once per second\n };\n\n // cleanup on unmount\n useEffect(() => {\n return () => {\n if (confirmIntervalRef.current) {\n clearInterval(confirmIntervalRef.current);\n }\n };\n }, []);\n\n const renderLeftIcon = () => {\n if (effectiveBusy) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn}`}>\n <SpinnerIcon className={styles.spinner} size={18} />\n </span>\n );\n } else if (wasSuccessful && showCheckmark) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn}`}>\n <AnimatedCheckmark />\n </span>\n );\n } else if (wasFailed && showFailIcon) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn} ${styles.failShake}`}>\n <AnimatedX />\n </span>\n );\n } else if (iconLeft) {\n return <span className={styles.icon}>{iconLeft}</span>;\n }\n return null;\n };\n\n return (\n <button\n ref={buttonRef}\n className={[\n styles.button,\n styles[variant],\n styles[size],\n fullWidth ? styles.fullWidth : \"\",\n isDisabled ? styles.disabled : \"\",\n wasFailed ? styles.failGlow : \"\",\n className,\n ].join(\" \")}\n disabled={isDisabled}\n aria-busy={effectiveBusy}\n onClick={handleConfirmClick}\n {...props}\n >\n <span className={styles.inner}>\n {renderLeftIcon()}\n <span className={styles.content}>\n {currentChildren}\n {iconRight && <span className={styles.icon}>{iconRight}</span>}\n </span>\n </span>\n </button>\n );\n};\n\nexport default ZestButton;\n"],"names":["jsxRuntimeModule","require$$0","require$$1","_jsx","_jsxs"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.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","../../UI/SpinnerIcon.tsx","../../node_modules/style-inject/dist/style-inject.es.js","../../UI/ZestButton.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\";\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(type, key, props, owner, debugStack, debugTask) {\n var refProp = 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 !== refProp ? refProp : 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 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 maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\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 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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\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) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\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 { FaSpinner } from \"react-icons/fa6\";\nimport { IconBaseProps } from \"react-icons\";\n\ninterface SpinnerIconProps extends IconBaseProps {\n className?: string;\n}\n\nconst SpinnerIcon: React.FC<SpinnerIconProps> = ({ className, ...props }) => (\n <FaSpinner className={className} {...props} />\n);\n\nexport default SpinnerIcon;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport SpinnerIcon from \"./SpinnerIcon\";\nimport styles from \"../Styles/ZestButton.module.css\";\n\n// --- Types ---\n\nexport type ZestVariant = \"standard\" | \"success\" | \"danger\";\nexport type ZestSize = \"sm\" | \"md\" | \"lg\";\n\n/**\n * Visual appearance of the button\n */\ninterface VisualOptions {\n variant?: ZestVariant;\n size?: ZestSize;\n fullWidth?: boolean;\n iconLeft?: React.ReactNode;\n iconRight?: React.ReactNode;\n}\n\n/**\n * Behavior during async operations\n */\ninterface BusyOptions {\n handleInternally?: boolean;\n preventRageClick?: boolean;\n minBusyDurationMs?: number;\n}\n\n/**\n * Behavior after a successful or failed click\n */\ninterface SuccessOptions {\n showCheckmark?: boolean;\n showFailIcon?: boolean;\n autoResetAfterMs?: number;\n}\n\ninterface ConfirmOptions {\n displayLabel: string;\n timeoutSecs: number;\n}\n\n/**\n * All supported props\n */\nexport interface ZestButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n visualOptions?: VisualOptions;\n busyOptions?: BusyOptions;\n successOptions?: SuccessOptions;\n confirmOptions?: ConfirmOptions;\n isDefault?: boolean;\n}\n\n// --- Components ---\n\nconst AnimatedCheckmark: React.FC = () => (\n <svg\n className={styles.animatedCheck}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M5 13l4 4L19 7\" />\n </svg>\n);\n\nconst AnimatedX: React.FC = () => (\n <svg\n className={styles.animatedX}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M6 6L18 18\" />\n <path d=\"M18 6L6 18\" />\n </svg>\n);\n\nconst ZestButton: React.FC<ZestButtonProps> = ({\n visualOptions,\n busyOptions,\n successOptions,\n confirmOptions,\n isDefault = false,\n className = \"\",\n disabled,\n children,\n onClick,\n ...rest\n}) => {\n const {\n variant = \"standard\",\n size = \"md\",\n fullWidth = false,\n iconLeft,\n iconRight,\n } = visualOptions || {};\n\n const {\n handleInternally = true,\n preventRageClick = true,\n minBusyDurationMs = 500,\n } = busyOptions || {};\n\n const {\n showCheckmark = true,\n showFailIcon = true,\n autoResetAfterMs = 2000,\n } = successOptions || {};\n\n const [internalBusy, setInternalBusy] = useState(false);\n const [wasSuccessful, setWasSuccessful] = useState(false);\n const [wasFailed, setWasFailed] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const [currentChildren, setCurrentChildren] =\n useState<React.ReactNode>(children);\n const [awaitingConfirm, setAwaitingConfirm] = useState(false);\n\n // ✅ interval ref for confirm countdown\n const confirmIntervalRef = useRef<ReturnType<typeof setInterval> | null>(\n null\n );\n\n // keep children in sync when not in confirm mode\n useEffect(() => {\n if (!awaitingConfirm) {\n setCurrentChildren(children);\n }\n }, [children, awaitingConfirm]);\n\n const effectiveBusy =\n typeof rest[\"aria-busy\"] === \"boolean\"\n ? Boolean(rest[\"aria-busy\"])\n : handleInternally\n ? internalBusy\n : false;\n\n const isDisabled =\n disabled ||\n effectiveBusy ||\n (preventRageClick && (wasSuccessful || wasFailed));\n\n const handleClick = async (e: React.MouseEvent<HTMLButtonElement>) => {\n if (handleInternally && typeof onClick === \"function\") {\n try {\n setWasSuccessful(false);\n setWasFailed(false);\n setInternalBusy(true);\n const startTime = Date.now();\n\n await onClick(e);\n\n const elapsed = Date.now() - startTime;\n const remaining = Math.max(minBusyDurationMs - elapsed, 0);\n if (remaining > 0) {\n await new Promise((resolve) => setTimeout(resolve, remaining));\n }\n\n if (showCheckmark) setWasSuccessful(true);\n } catch (err) {\n console.error(err);\n if (showFailIcon) setWasFailed(true);\n } finally {\n setInternalBusy(false);\n }\n } else if (onClick) {\n onClick(e);\n }\n };\n\n // auto-reset success/failure state\n useEffect(() => {\n if ((wasSuccessful || wasFailed) && autoResetAfterMs) {\n const timeout = setTimeout(() => {\n setWasSuccessful(false);\n setWasFailed(false);\n }, autoResetAfterMs);\n return () => clearTimeout(timeout);\n }\n }, [wasSuccessful, wasFailed, autoResetAfterMs]);\n\n // Enter key handler if isDefault\n useEffect(() => {\n if (!isDefault) return;\n\n const listener = (e: KeyboardEvent) => {\n // Don't trigger if the button is disabled\n if (isDisabled) {\n return;\n }\n\n const target = e.target as HTMLElement;\n if (\n e.key === \"Enter\" &&\n !e.repeat &&\n !e.defaultPrevented &&\n !(target instanceof HTMLTextAreaElement)\n ) {\n e.preventDefault();\n buttonRef.current?.click();\n }\n };\n\n document.addEventListener(\"keydown\", listener);\n return () => document.removeEventListener(\"keydown\", listener);\n }, [isDefault, isDisabled]);\n\n const stopWaiting = () => {\n if (confirmIntervalRef.current) {\n clearInterval(confirmIntervalRef.current);\n confirmIntervalRef.current = null;\n }\n setCurrentChildren(children);\n setAwaitingConfirm(false);\n };\n\n const handleConfirmClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (!confirmOptions) {\n return handleClick(e);\n }\n\n if (awaitingConfirm) {\n stopWaiting();\n return handleClick(e);\n }\n\n const { displayLabel, timeoutSecs } = confirmOptions;\n const startTime = Date.now();\n setAwaitingConfirm(true);\n\n confirmIntervalRef.current = setInterval(() => {\n const elapsed = Date.now() - startTime;\n if (elapsed >= timeoutSecs * 1000) {\n stopWaiting();\n } else {\n const elapsedSecs = Math.floor(elapsed / 1000);\n const timeRemaining = timeoutSecs - elapsedSecs;\n setCurrentChildren(`${displayLabel} (${timeRemaining}s)`);\n }\n }, 1000); // ✅ update once per second\n };\n\n // cleanup on unmount\n useEffect(() => {\n return () => {\n if (confirmIntervalRef.current) {\n clearInterval(confirmIntervalRef.current);\n }\n };\n }, []);\n\n const renderLeftIcon = () => {\n if (effectiveBusy) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn}`}>\n <SpinnerIcon className={styles.spinner} size={18} />\n </span>\n );\n } else if (wasSuccessful && showCheckmark) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn}`}>\n <AnimatedCheckmark />\n </span>\n );\n } else if (wasFailed && showFailIcon) {\n return (\n <span className={`${styles.icon} ${styles.fadeIn} ${styles.shake}`}>\n <AnimatedX />\n </span>\n );\n } else if (iconLeft) {\n return <span className={styles.icon}>{iconLeft}</span>;\n }\n return null;\n };\n\n // Sanitize props to prevent passing non-standard attributes to the DOM\n delete (rest as any).visualOptions;\n delete (rest as any).busyOptions;\n delete (rest as any).successOptions;\n delete (rest as any).confirmOptions;\n delete (rest as any).isDefault;\n\n return (\n <button\n ref={buttonRef}\n className={[\n styles.button,\n styles[variant],\n styles[size],\n fullWidth ? styles.fullWidth : \"\",\n isDisabled ? styles.disabled : \"\",\n wasFailed ? styles.shake : \"\",\n className,\n ].join(\" \")}\n disabled={isDisabled}\n aria-busy={effectiveBusy}\n onClick={handleConfirmClick}\n {...rest}\n >\n <span className={styles.inner}>\n {renderLeftIcon()}\n <span className={styles.content}>\n {currentChildren}\n {iconRight && <span className={styles.icon}>{iconRight}</span>}\n </span>\n </span>\n </button>\n );\n};\n\nexport default ZestButton;\n"],"names":["jsxRuntimeModule","require$$0","require$$1","_jsx","_jsxs"],"mappings":"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","x_google_ignoreList":[0,1,2,4]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jattac.libs.web.zest-button",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "A delightful and functional button component for React applications.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",