jattac.libs.web.zest-textbox 0.2.1 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/style-inject/dist/style-inject.es.js","../UI/utils/numericInputFilter.ts","../UI/hooks/useThemeDetector.ts","../UI/hooks/usePasswordVisibility.ts","../UI/hooks/useCharacterCounter.ts","../UI/hooks/useHelperText.ts","../UI/IconEyeOpen.tsx","../UI/IconEyeSlashed.tsx","../UI/components/PasswordToggleButton.tsx","../UI/components/CharacterCounter.tsx","../UI/components/ProgressBar.tsx","../UI/components/HelperTextDisplay.tsx","../UI/contexts/ZestTextboxConfigContext.tsx","../UI/hooks/useZestTextboxConfig.ts","../UI/ZestTextbox.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\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","export const filterNumericInput = (value: string): string => {\n // Allow digits, a single leading hyphen, and a single decimal point\n const parts = value.split('.');\n let integerPart = parts[0].replace(/[^0-9-]/g, '');\n let decimalPart = parts.length > 1 ? '.' + parts[1].replace(/[^0-9]/g, '') : '';\n\n // Ensure only one leading hyphen\n if (integerPart.startsWith('-')) {\n integerPart = '-' + integerPart.substring(1).replace(/-/g, '');\n } else {\n integerPart = integerPart.replace(/-/g, '');\n }\n\n let newValue = integerPart + decimalPart;\n\n // Prevent multiple decimal points\n if (newValue.indexOf('.') !== -1 && newValue.indexOf('.') !== newValue.lastIndexOf('.')) {\n newValue = newValue.substring(0, newValue.lastIndexOf('.'));\n }\n\n return newValue;\n};\n","import { useState, useEffect } from \"react\";\nimport { ZestProps } from \"../types\";\n\nexport const useThemeDetector = (theme: ZestProps['theme'] = \"system\") => {\n const [isDark, setIsDark] = useState(false);\n\n useEffect(() => {\n if (theme === \"dark\") {\n setIsDark(true);\n return;\n }\n if (theme === \"light\") {\n setIsDark(false);\n return;\n }\n\n // System theme\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handleChange = () => setIsDark(mediaQuery.matches);\n\n handleChange(); // Set initial theme\n mediaQuery.addEventListener(\"change\", handleChange);\n\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }, [theme]);\n\n return isDark;\n};\n","import { useState } from \"react\";\n\nexport const usePasswordVisibility = (isPasswordType: boolean) => {\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n\n const togglePasswordVisibility = () => {\n if (isPasswordType) {\n setIsPasswordVisible((prev) => !prev);\n }\n };\n\n return { isPasswordVisible, togglePasswordVisibility };\n};\n","import { useMemo } from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\n\nexport const useCharacterCounter = (\n value: string,\n maxLength: number | undefined,\n animatedCounter: boolean\n) => {\n const currentLength = value.length;\n const showCounter = typeof maxLength === \"number\";\n const charPercentage = showCounter ? (currentLength / maxLength) * 100 : 0;\n\n const counterColorClass = useMemo(() => {\n if (!animatedCounter || !showCounter) return \"\";\n\n if (charPercentage > 90) {\n return styles.counterOrange;\n } else if (charPercentage > 70) {\n return styles.counterYellow;\n }\n return \"\";\n }, [animatedCounter, showCounter, charPercentage]);\n\n return { currentLength, charPercentage, counterColorClass, showCounter };\n};\n","import { useState, useEffect, ReactNode } from \"react\";\nimport { HelperTextConfig } from \"../types\";\n\nexport const useHelperText = (\n value: string,\n helperTextConfig: HelperTextConfig | undefined\n) => {\n const [helperTextNode, setHelperTextNode] = useState<ReactNode>(null);\n\n useEffect(() => {\n if (!helperTextConfig) {\n setHelperTextNode(null);\n return;\n }\n\n const formatted = helperTextConfig.formatter\n ? helperTextConfig.formatter(value)\n : value;\n\n const finalNode = helperTextConfig.templater\n ? helperTextConfig.templater(formatted)\n : formatted;\n\n setHelperTextNode(finalNode);\n }, [value, helperTextConfig]);\n\n return helperTextNode;\n};\n","import React from 'react';\n\nexport const IconEyeOpen: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\" {...props}>\n <path d=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13 13 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5s3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5s-3.879-1.168-5.168-2.457A13 13 0 0 1 1.172 8z\"/>\n <path d=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0\"/>\n </svg>\n);\n","import React from 'react';\n\nexport const IconEyeSlashed: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\" {...props}>\n <path d=\"M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z\"/>\n <path d=\"M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.288.822.822.073.073.026.026a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829l.822.822zm-2.943-1.288.822.822.073.073.026.026a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829l.822.822z\"/>\n <path d=\"M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.88 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 6.854-12-12 .708-.708 12 12-.708.708z\"/>\n </svg>\n);\n","import React from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\nimport { IconEyeOpen } from \"../IconEyeOpen\";\nimport { IconEyeSlashed } from \"../IconEyeSlashed\";\n\ninterface PasswordToggleButtonProps {\n isPassword: boolean;\n isPasswordVisible: boolean;\n onToggle: () => void;\n}\n\nexport const PasswordToggleButton: React.FC<PasswordToggleButtonProps> = ({\n isPassword,\n isPasswordVisible,\n onToggle,\n}) => {\n if (!isPassword) return null;\n\n return (\n <div className={styles.passwordToggle} onClick={onToggle}>\n <div className={styles.tooltip}>\n {isPasswordVisible ? \"Hide password\" : \"Show password\"}\n </div>\n {isPasswordVisible ? (\n <IconEyeOpen className={styles.eyeIcon} />\n ) : (\n <IconEyeSlashed className={styles.eyeIcon} />\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\n\ninterface CharacterCounterProps {\n showCounter: boolean;\n currentLength: number;\n maxLength: number | undefined;\n counterColorClass: string;\n}\n\nexport const CharacterCounter: React.FC<CharacterCounterProps> = ({\n showCounter,\n currentLength,\n maxLength,\n counterColorClass,\n}) => {\n if (!showCounter) return null;\n\n return (\n <div className={`${styles.counter} ${counterColorClass}`}>\n {currentLength} / {maxLength}\n </div>\n );\n};\n","import React from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\n\ninterface ProgressBarProps {\n showProgressBar: boolean;\n showCounter: boolean;\n charPercentage: number;\n counterColorClass: string;\n}\n\nexport const ProgressBar: React.FC<ProgressBarProps> = ({\n showProgressBar,\n showCounter,\n charPercentage,\n counterColorClass,\n}) => {\n if (!showProgressBar || !showCounter) return null;\n\n return (\n <div className={styles.progressBarContainer}>\n <div\n className={`${styles.progressBar} ${counterColorClass}`}\n style={{ width: `${charPercentage}%` }}\n />\n </div>\n );\n};\n","import React, { ReactNode } from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\n\ninterface HelperTextDisplayProps {\n helperTextNode: ReactNode;\n className?: string;\n}\n\nexport const HelperTextDisplay: React.FC<HelperTextDisplayProps> = ({\n helperTextNode,\n className,\n}) => {\n if (!helperTextNode) return null;\n\n return (\n <div\n key={String(helperTextNode)} // Force re-mount to trigger animation\n className={`${styles.helperText} ${className || \"\"}`}\n >\n {helperTextNode}\n </div>\n );\n};\n","import React, { createContext, useContext, ReactNode } from \"react\";\nimport { ZestProps } from \"../types\";\n\n// Define the shape of the context value\ninterface ZestTextboxConfigContextType {\n defaultZestProps: ZestProps;\n}\n\n// Create the context with a default empty object\nconst ZestTextboxConfigContext = createContext<\n ZestTextboxConfigContextType | undefined\n>(undefined);\n\n// Create a provider component\ninterface ZestTextboxConfigProviderProps {\n children: ReactNode;\n value?: ZestProps; // The default ZestProps to provide\n}\n\nexport const ZestTextboxConfigProvider: React.FC<\n ZestTextboxConfigProviderProps\n> = ({ children, value = {} }) => {\n return (\n <ZestTextboxConfigContext.Provider value={{ defaultZestProps: value }}>\n {children}\n </ZestTextboxConfigContext.Provider>\n );\n};\n\n// Custom hook to use the ZestTextboxConfigContext\nexport const useZestTextboxConfig = () => {\n const context = useContext(ZestTextboxConfigContext);\n if (context === undefined) {\n // This error will be caught by the useZestTextboxConfig hook in ZestTextbox.tsx\n // if the component is used outside of a provider.\n return { defaultZestProps: {} };\n }\n return context;\n};\n","import { useEffect, useState, useMemo } from \"react\";\nimport { ZestProps, ZestConfigValue, ZestTextboxSize, HelperTextConfig, ResolvedZestProps } from \"../types\";\nimport { useZestTextboxConfig as useZestTextboxContext } from \"../contexts/ZestTextboxConfigContext\";\n\n// Helper function to resolve a ZestConfigValue\nasync function resolveZestConfigValue<T>(\n configValue: ZestConfigValue<T> | undefined,\n defaultValue: T\n): Promise<T> {\n if (configValue === undefined) {\n return defaultValue;\n }\n if (typeof configValue === \"function\") {\n const result = (configValue as () => T | Promise<T>)();\n return result instanceof Promise ? await result : result;\n }\n return configValue;\n}\n\nconst defaultResolvedZestProps: ResolvedZestProps = {\n zSize: \"md\",\n stretch: false,\n showProgressBar: false,\n animatedCounter: false,\n theme: \"system\",\n isMultiline: false,\n onTextChanged: undefined,\n helperTextConfig: undefined,\n};\n\nexport const useZestTextboxConfig = (componentZestProps: ZestProps | undefined) => {\n const { defaultZestProps: contextDefaultZestProps } = useZestTextboxContext();\n\n const [resolvedZestProps, setResolvedZestProps] = useState<ResolvedZestProps>(defaultResolvedZestProps);\n\n // Memoize the merged props to avoid unnecessary re-renders\n const mergedZestProps = useMemo(() => {\n // Component props take precedence over context default props, which take precedence over hardcoded defaults\n return { ...defaultResolvedZestProps, ...contextDefaultZestProps, ...componentZestProps };\n }, [contextDefaultZestProps, componentZestProps]);\n\n useEffect(() => {\n const resolveProps = async () => {\n const newResolvedProps: ResolvedZestProps = { ...defaultResolvedZestProps }; // Initialize with defaults\n\n // Resolve each property that can be a ZestConfigValue\n newResolvedProps.zSize = await resolveZestConfigValue(\n mergedZestProps.zSize,\n defaultResolvedZestProps.zSize\n );\n newResolvedProps.stretch = await resolveZestConfigValue(\n mergedZestProps.stretch,\n defaultResolvedZestProps.stretch\n );\n newResolvedProps.showProgressBar = await resolveZestConfigValue(\n mergedZestProps.showProgressBar,\n defaultResolvedZestProps.showProgressBar\n );\n newResolvedProps.animatedCounter = await resolveZestConfigValue(\n mergedZestProps.animatedCounter,\n defaultResolvedZestProps.animatedCounter\n );\n newResolvedProps.theme = await resolveZestConfigValue(\n mergedZestProps.theme,\n defaultResolvedZestProps.theme\n );\n newResolvedProps.isMultiline = await resolveZestConfigValue(\n mergedZestProps.isMultiline,\n defaultResolvedZestProps.isMultiline\n );\n // onTextChanged is no longer a ZestConfigValue, so it's directly assigned\n newResolvedProps.onTextChanged = mergedZestProps.onTextChanged;\n\n newResolvedProps.helperTextConfig = await resolveZestConfigValue(\n mergedZestProps.helperTextConfig,\n defaultResolvedZestProps.helperTextConfig\n );\n\n setResolvedZestProps(newResolvedProps);\n };\n\n resolveProps();\n }, [mergedZestProps]); // Re-run effect if merged props change\n\n return resolvedZestProps;\n};","import React, { useState } from \"react\";\nimport styles from \"../Styles/ZestTextbox.module.css\";\nimport { IconEyeOpen } from \"./IconEyeOpen\";\nimport { IconEyeSlashed } from \"./IconEyeSlashed\";\n\nimport { ZestTextboxSize, HelperTextConfig, ZestProps } from \"./types\";\n\ntype SharedProps = {\n /**\n * An object containing all custom configurations and behaviors specific to the ZestTextbox component.\n * This encapsulates all non-native HTML input/textarea props for better discoverability and DX.\n * @see ZestProps\n */\n zest?: ZestProps;\n /**\n * A custom CSS class to apply to the main textbox element.\n */\n className?: string;\n /**\n * The maximum number of characters allowed in the input.\n * Enables the character counter.\n */\n maxLength?: number;\n /**\n * The type of the input element. All standard HTML input types are supported.\n * Special handling is applied for `password` and `number`.\n * @default 'text'\n */\n type?:\n | \"text\"\n | \"email\"\n | \"password\"\n | \"number\"\n | \"tel\"\n | \"url\"\n | \"search\"\n | \"color\"\n | \"date\"\n | \"datetime-local\"\n | \"month\"\n | \"time\"\n | \"week\";\n};\n\ntype InputOnlyProps = SharedProps &\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"onChange\"> & {\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n };\n\ntype TextareaOnlyProps = SharedProps &\n Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, \"onChange\"> & {\n onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;\n };\n\ntype ZestTextboxProps = InputOnlyProps | TextareaOnlyProps;\n\nimport { filterNumericInput } from \"./utils/numericInputFilter\";\nimport { useThemeDetector } from \"./hooks/useThemeDetector\";\nimport { usePasswordVisibility } from \"./hooks/usePasswordVisibility\";\nimport { useCharacterCounter } from \"./hooks/useCharacterCounter\";\nimport { useHelperText } from \"./hooks/useHelperText\";\nimport { PasswordToggleButton } from \"./components/PasswordToggleButton\";\nimport { CharacterCounter } from \"./components/CharacterCounter\";\nimport { ProgressBar } from \"./components/ProgressBar\";\nimport { HelperTextDisplay } from \"./components/HelperTextDisplay\";\nimport { useZestTextboxConfig } from \"./hooks/useZestTextboxConfig\";\n\n// ... other imports\n\nexport const ZestTextbox: React.FC<ZestTextboxProps> = (props) => {\n const {\n className = \"\",\n maxLength,\n onChange,\n type,\n zest, // Destructure the new zest prop\n ...rest\n } = props;\n\n const resolvedZestProps = useZestTextboxConfig(zest);\n const {\n zSize,\n stretch: fullWidth,\n showProgressBar,\n animatedCounter,\n theme,\n helperTextConfig,\n onTextChanged,\n isMultiline,\n } = resolvedZestProps;\n\n const [value, setValue] = useState(\"\");\n\n const isDark = useThemeDetector(theme);\n const isPassword = type === \"password\";\n const { isPasswordVisible, togglePasswordVisibility } = usePasswordVisibility(isPassword);\n const { currentLength, charPercentage, counterColorClass, showCounter } = useCharacterCounter(value, maxLength, animatedCounter);\n const helperTextNode = useHelperText(value, helperTextConfig);\n\n const classList = [\n styles.textbox,\n styles[zSize],\n fullWidth ? styles.fullWidth : \"\",\n className,\n isDark ? styles.dark : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => {\n let newValue = e.target.value;\n\n const isNumeric = type === \"number\" || type === \"tel\";\n if (isNumeric) {\n newValue = filterNumericInput(newValue);\n }\n\n if (maxLength !== undefined && newValue.length > maxLength) return;\n\n setValue(newValue);\n\n if (onChange) onChange(e as never);\n if (onTextChanged) onTextChanged(newValue);\n };\n\n const isNumeric = type === \"number\" || type === \"tel\";\n const inputType = isPassword && isPasswordVisible ? \"text\" : isNumeric ? \"tel\" : type;\n\n const commonProps = {\n className: classList,\n maxLength,\n onChange: handleInputChange,\n value,\n type: inputType,\n ...rest,\n };\n\n return (\n <div className={styles.wrapper}>\n {isMultiline ? ( // Use isMultiline from zest\n <textarea\n {...(commonProps as React.TextareaHTMLAttributes<HTMLTextAreaElement>)}\n />\n ) : (\n <input\n {...(commonProps as React.InputHTMLAttributes<HTMLInputElement>)}\n />\n )}\n\n <HelperTextDisplay\n helperTextNode={helperTextNode}\n className={helperTextConfig?.className || ''}\n />\n\n <CharacterCounter\n showCounter={showCounter}\n currentLength={currentLength}\n maxLength={maxLength}\n counterColorClass={counterColorClass}\n />\n\n <PasswordToggleButton\n isPassword={isPassword}\n isPasswordVisible={isPasswordVisible}\n onToggle={togglePasswordVisibility}\n />\n\n <ProgressBar\n showProgressBar={showProgressBar}\n showCounter={showCounter}\n charPercentage={charPercentage}\n counterColorClass={counterColorClass}\n />\n </div>\n );\n};\n\nexport default ZestTextbox;"],"names":["_jsxs","_jsx","useZestTextboxConfig","useZestTextboxContext"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/style-inject/dist/style-inject.es.js","../UI/utils/numericInputFilter.ts","../UI/hooks/useThemeDetector.ts","../UI/hooks/usePasswordVisibility.ts","../UI/hooks/useCharacterCounter.ts","../UI/hooks/useHelperText.ts","../UI/IconEyeOpen.tsx","../UI/IconEyeSlashed.tsx","../UI/components/PasswordToggleButton.tsx","../UI/components/CharacterCounter.tsx","../UI/components/ProgressBar.tsx","../UI/components/HelperTextDisplay.tsx","../UI/contexts/ZestTextboxConfigContext.tsx","../UI/utils/defaultParsersAndValidators.ts","../UI/hooks/useZestTextboxConfig.ts","../UI/hooks/useParsedAndValidatedInput.ts","../UI/ZestTextbox.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\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","export const filterNumericInput = (value: string): string => {\n // Allow digits, a single leading hyphen, and a single decimal point\n const parts = value.split('.');\n let integerPart = parts[0].replace(/[^0-9-]/g, '');\n let decimalPart = parts.length > 1 ? '.' + parts[1].replace(/[^0-9]/g, '') : '';\n\n // Ensure only one leading hyphen\n if (integerPart.startsWith('-')) {\n integerPart = '-' + integerPart.substring(1).replace(/-/g, '');\n } else {\n integerPart = integerPart.replace(/-/g, '');\n }\n\n let newValue = integerPart + decimalPart;\n\n // Prevent multiple decimal points\n if (newValue.indexOf('.') !== -1 && newValue.indexOf('.') !== newValue.lastIndexOf('.')) {\n newValue = newValue.substring(0, newValue.lastIndexOf('.'));\n }\n\n return newValue;\n};\n","import { useState, useEffect } from \"react\";\nimport { ZestProps } from \"../types\";\n\nexport const useThemeDetector = (theme: ZestProps['theme'] = \"system\") => {\n const [isDark, setIsDark] = useState(false);\n\n useEffect(() => {\n if (theme === \"dark\") {\n setIsDark(true);\n return;\n }\n if (theme === \"light\") {\n setIsDark(false);\n return;\n }\n\n // System theme\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handleChange = () => setIsDark(mediaQuery.matches);\n\n handleChange(); // Set initial theme\n mediaQuery.addEventListener(\"change\", handleChange);\n\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }, [theme]);\n\n return isDark;\n};\n","import { useState } from \"react\";\n\nexport const usePasswordVisibility = (isPasswordType: boolean) => {\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n\n const togglePasswordVisibility = () => {\n if (isPasswordType) {\n setIsPasswordVisible((prev) => !prev);\n }\n };\n\n return { isPasswordVisible, togglePasswordVisibility };\n};\n","import { useMemo } from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\n\nexport const useCharacterCounter = (\n value: string,\n maxLength: number | undefined,\n animatedCounter: boolean\n) => {\n const currentLength = value.length;\n const showCounter = typeof maxLength === \"number\";\n const charPercentage = showCounter ? (currentLength / maxLength) * 100 : 0;\n\n const counterColorClass = useMemo(() => {\n if (!animatedCounter || !showCounter) return \"\";\n\n if (charPercentage > 90) {\n return styles.counterOrange;\n } else if (charPercentage > 70) {\n return styles.counterYellow;\n }\n return \"\";\n }, [animatedCounter, showCounter, charPercentage]);\n\n return { currentLength, charPercentage, counterColorClass, showCounter };\n};\n","import { useState, useEffect, ReactNode } from \"react\";\nimport { HelperTextConfig } from \"../types\";\n\nexport const useHelperText = (\n value: string,\n helperTextConfig: HelperTextConfig | undefined\n) => {\n const [helperTextNode, setHelperTextNode] = useState<ReactNode>(null);\n\n useEffect(() => {\n if (!helperTextConfig) {\n setHelperTextNode(null);\n return;\n }\n\n const formatted = helperTextConfig.formatter\n ? helperTextConfig.formatter(value)\n : value;\n\n const finalNode = helperTextConfig.templater\n ? helperTextConfig.templater(formatted)\n : formatted;\n\n setHelperTextNode(finalNode);\n }, [value, helperTextConfig]);\n\n return helperTextNode;\n};\n","import React from 'react';\n\nexport const IconEyeOpen: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\" {...props}>\n <path d=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13 13 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5s3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5s-3.879-1.168-5.168-2.457A13 13 0 0 1 1.172 8z\"/>\n <path d=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0\"/>\n </svg>\n);\n","import React from 'react';\n\nexport const IconEyeSlashed: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\" {...props}>\n <path d=\"M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z\"/>\n <path d=\"M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.288.822.822.073.073.026.026a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829l.822.822zm-2.943-1.288.822.822.073.073.026.026a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829l.822.822z\"/>\n <path d=\"M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.88 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 6.854-12-12 .708-.708 12 12-.708.708z\"/>\n </svg>\n);\n","import React from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\nimport { IconEyeOpen } from \"../IconEyeOpen\";\nimport { IconEyeSlashed } from \"../IconEyeSlashed\";\n\ninterface PasswordToggleButtonProps {\n isPassword: boolean;\n isPasswordVisible: boolean;\n onToggle: () => void;\n}\n\nexport const PasswordToggleButton: React.FC<PasswordToggleButtonProps> = ({\n isPassword,\n isPasswordVisible,\n onToggle,\n}) => {\n if (!isPassword) return null;\n\n return (\n <div className={styles.passwordToggle} onClick={onToggle}>\n <div className={styles.tooltip}>\n {isPasswordVisible ? \"Hide password\" : \"Show password\"}\n </div>\n {isPasswordVisible ? (\n <IconEyeOpen className={styles.eyeIcon} />\n ) : (\n <IconEyeSlashed className={styles.eyeIcon} />\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\n\ninterface CharacterCounterProps {\n showCounter: boolean;\n currentLength: number;\n maxLength: number | undefined;\n counterColorClass: string;\n}\n\nexport const CharacterCounter: React.FC<CharacterCounterProps> = ({\n showCounter,\n currentLength,\n maxLength,\n counterColorClass,\n}) => {\n if (!showCounter) return null;\n\n return (\n <div className={`${styles.counter} ${counterColorClass}`}>\n {currentLength} / {maxLength}\n </div>\n );\n};\n","import React from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\n\ninterface ProgressBarProps {\n showProgressBar: boolean;\n showCounter: boolean;\n charPercentage: number;\n counterColorClass: string;\n}\n\nexport const ProgressBar: React.FC<ProgressBarProps> = ({\n showProgressBar,\n showCounter,\n charPercentage,\n counterColorClass,\n}) => {\n if (!showProgressBar || !showCounter) return null;\n\n return (\n <div className={styles.progressBarContainer}>\n <div\n className={`${styles.progressBar} ${counterColorClass}`}\n style={{ width: `${charPercentage}%` }}\n />\n </div>\n );\n};\n","import React, { ReactNode } from \"react\";\nimport styles from \"../../Styles/ZestTextbox.module.css\";\n\ninterface HelperTextDisplayProps {\n helperTextNode: ReactNode;\n className?: string;\n}\n\nexport const HelperTextDisplay: React.FC<HelperTextDisplayProps> = ({\n helperTextNode,\n className,\n}) => {\n if (!helperTextNode) return null;\n\n return (\n <div\n key={String(helperTextNode)} // Force re-mount to trigger animation\n className={`${styles.helperText} ${className || \"\"}`}\n >\n {helperTextNode}\n </div>\n );\n};\n","import React, { createContext, useContext, ReactNode } from \"react\";\nimport { ZestProps } from \"../types\";\n\n// Define the shape of the context value\ninterface ZestTextboxConfigContextType {\n defaultZestProps: ZestProps;\n}\n\n// Create the context with a default empty object\nconst ZestTextboxConfigContext = createContext<\n ZestTextboxConfigContextType | undefined\n>(undefined);\n\n// Create a provider component\ninterface ZestTextboxConfigProviderProps {\n children: ReactNode;\n value?: ZestProps; // The default ZestProps to provide\n}\n\nexport const ZestTextboxConfigProvider: React.FC<\n ZestTextboxConfigProviderProps\n> = ({ children, value = {} }) => {\n return (\n <ZestTextboxConfigContext.Provider value={{ defaultZestProps: value }}>\n {children}\n </ZestTextboxConfigContext.Provider>\n );\n};\n\n// Custom hook to use the ZestTextboxConfigContext\nexport const useZestTextboxConfig = () => {\n const context = useContext(ZestTextboxConfigContext);\n if (context === undefined) {\n // This error will be caught by the useZestTextboxConfig hook in ZestTextbox.tsx\n // if the component is used outside of a provider.\n return { defaultZestProps: {} };\n }\n return context;\n};\n","import { InputParser, InputValidator } from \"../types\";\n\nexport const defaultNumberParser: InputParser<number> = (value: string) => {\n const parsed = parseFloat(value);\n return isNaN(parsed) ? undefined : parsed;\n};\n\nexport const defaultNumberValidator: InputValidator<number> = (value: number | undefined) => {\n if (value === undefined) {\n return \"Invalid number format.\";\n }\n return true;\n};\n\n// You can add more default parsers/validators here for other types like 'email', 'date', etc.\n","import { useEffect, useState, useMemo } from \"react\";\nimport { ZestProps, ZestConfigValue, ZestTextboxSize, HelperTextConfig, ResolvedZestProps, InputParser, InputValidator } from \"../types\";\nimport { useZestTextboxConfig as useZestTextboxContext } from \"../contexts/ZestTextboxConfigContext\";\nimport { defaultNumberParser, defaultNumberValidator } from \"../utils/defaultParsersAndValidators\"; // Import defaults\n\n// Helper function to resolve a ZestConfigValue\nasync function resolveZestConfigValue<T>(\n configValue: ZestConfigValue<T> | undefined,\n defaultValue: T\n): Promise<T> {\n if (configValue === undefined) {\n return defaultValue;\n }\n if (typeof configValue === \"function\") {\n const result = (configValue as () => T | Promise<T>)();\n return result instanceof Promise ? await result : result;\n }\n return configValue;\n}\n\nconst defaultResolvedZestProps: ResolvedZestProps = {\n zSize: \"md\",\n stretch: false,\n showProgressBar: false,\n animatedCounter: false,\n theme: \"system\",\n isMultiline: false,\n onTextChanged: undefined,\n helperTextConfig: undefined,\n parser: undefined,\n validator: undefined,\n};\n\nexport const useZestTextboxConfig = (componentZestProps: ZestProps | undefined, inputType?: string) => { // Added inputType\n const { defaultZestProps: contextDefaultZestProps } = useZestTextboxContext();\n\n const [resolvedZestProps, setResolvedZestProps] = useState<ResolvedZestProps>(defaultResolvedZestProps);\n\n // Memoize the merged props to avoid unnecessary re-renders\n const mergedZestProps = useMemo(() => {\n // Start with hardcoded defaults\n let currentMergedProps: ZestProps = { ...defaultResolvedZestProps };\n\n // Apply context defaults\n currentMergedProps = { ...currentMergedProps, ...contextDefaultZestProps };\n\n // Apply type-specific defaults if not already overridden by context\n if (inputType === \"number\") {\n if (currentMergedProps.parser === undefined) {\n currentMergedProps.parser = defaultNumberParser;\n }\n if (currentMergedProps.validator === undefined) {\n currentMergedProps.validator = defaultNumberValidator;\n }\n }\n\n // Apply component-level props (highest precedence)\n currentMergedProps = { ...currentMergedProps, ...componentZestProps };\n\n return currentMergedProps;\n }, [contextDefaultZestProps, componentZestProps, inputType]); // Added inputType to dependencies\n\n useEffect(() => {\n const resolveProps = async () => {\n const newResolvedProps: ResolvedZestProps = { ...defaultResolvedZestProps }; // Initialize with defaults\n\n // Resolve each property that can be a ZestConfigValue\n newResolvedProps.zSize = await resolveZestConfigValue(\n mergedZestProps.zSize,\n defaultResolvedZestProps.zSize\n );\n newResolvedProps.stretch = await resolveZestConfigValue(\n mergedZestProps.stretch,\n defaultResolvedZestProps.stretch\n );\n newResolvedProps.showProgressBar = await resolveZestConfigValue(\n mergedZestProps.showProgressBar,\n defaultResolvedZestProps.showProgressBar\n );\n newResolvedProps.animatedCounter = await resolveZestConfigValue(\n mergedZestProps.animatedCounter,\n defaultResolvedZestProps.animatedCounter\n );\n newResolvedProps.theme = await resolveZestConfigValue(\n mergedZestProps.theme,\n defaultResolvedZestProps.theme\n );\n newResolvedProps.isMultiline = await resolveZestConfigValue(\n mergedZestProps.isMultiline,\n defaultResolvedZestProps.isMultiline\n );\n // onTextChanged is no longer a ZestConfigValue, so it's directly assigned\n newResolvedProps.onTextChanged = mergedZestProps.onTextChanged;\n\n newResolvedProps.helperTextConfig = await resolveZestConfigValue(\n mergedZestProps.helperTextConfig,\n defaultResolvedZestProps.helperTextConfig\n );\n newResolvedProps.parser = await resolveZestConfigValue(\n mergedZestProps.parser,\n defaultResolvedZestProps.parser\n );\n newResolvedProps.validator = await resolveZestConfigValue(\n mergedZestProps.validator,\n defaultResolvedZestProps.validator\n );\n\n setResolvedZestProps(newResolvedProps);\n };\n\n resolveProps();\n }, [mergedZestProps]); // Re-run effect if merged props change\n\n return resolvedZestProps;\n};","import { useState, useEffect, useCallback } from \"react\";\nimport { InputParser, InputValidator } from \"../types\";\n\ninterface UseParsedAndValidatedInputArgs<T> {\n rawValue: string;\n inputType?: string; // Added inputType\n parser: InputParser<T> | undefined;\n validator: InputValidator<T> | undefined;\n // The onTextChanged callback should receive the parsed value\n onParsedAndValidatedChange: ((value: T | undefined) => void) | undefined;\n}\n\nexport const useParsedAndValidatedInput = <T>({\n rawValue,\n inputType, // Destructure inputType\n parser,\n validator,\n onParsedAndValidatedChange,\n}: UseParsedAndValidatedInputArgs<T>) => {\n const [parsedValue, setParsedValue] = useState<T | undefined>(undefined);\n const [isValid, setIsValid] = useState(true);\n const [validationMessage, setValidationMessage] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n let currentParsedValue: T | undefined = undefined;\n let currentIsValid = true;\n let currentValidationMessage: string | undefined = undefined;\n\n // 1. Parse the raw value\n if (parser) {\n currentParsedValue = parser(rawValue, inputType); // Pass inputType to parser\n } else {\n // If no parser, treat rawValue as the parsed value (e.g., for text inputs)\n currentParsedValue = rawValue as unknown as T;\n }\n\n // 2. Validate the parsed value\n if (validator) {\n const validationResult = validator(currentParsedValue, inputType); // Pass inputType to validator\n if (typeof validationResult === \"string\") {\n currentIsValid = false;\n currentValidationMessage = validationResult;\n } else {\n currentIsValid = validationResult;\n if (!currentIsValid) {\n currentValidationMessage = \"Invalid input.\"; // Generic message if validator returns false\n }\n }\n }\n\n setParsedValue(currentParsedValue);\n setIsValid(currentIsValid);\n setValidationMessage(currentValidationMessage);\n\n // 3. Call the consumer's callback with the parsed and validated value\n // Only call if a callback is provided and the input is valid\n if (onParsedAndValidatedChange && currentIsValid) {\n onParsedAndValidatedChange(currentParsedValue);\n }\n }, [rawValue, inputType, parser, validator, onParsedAndValidatedChange]); // Add inputType to dependencies\n\n return { parsedValue, isValid, validationMessage };\n};\n","import React, { useState } from \"react\";\nimport styles from \"../Styles/ZestTextbox.module.css\";\nimport { IconEyeOpen } from \"./IconEyeOpen\";\nimport { IconEyeSlashed } from \"./IconEyeSlashed\";\n\nimport { ZestTextboxSize, HelperTextConfig, ZestProps } from \"./types\";\n\ntype SharedProps = {\n /**\n * An object containing all custom configurations and behaviors specific to the ZestTextbox component.\n * This encapsulates all non-native HTML input/textarea props for better discoverability and DX.\n * @see ZestProps\n */\n zest?: ZestProps;\n /**\n * A custom CSS class to apply to the main textbox element.\n */\n className?: string;\n /**\n * The maximum number of characters allowed in the input.\n * Enables the character counter.\n */\n maxLength?: number;\n /**\n * The type of the input element. All standard HTML input types are supported.\n * Special handling is applied for `password` and `number`.\n * @default 'text'\n */\n type?:\n | \"text\"\n | \"email\"\n | \"password\"\n | \"number\"\n | \"tel\"\n | \"url\"\n | \"search\"\n | \"color\"\n | \"date\"\n | \"datetime-local\"\n | \"month\"\n | \"time\"\n | \"week\";\n};\n\ntype InputOnlyProps = SharedProps &\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"onChange\"> & {\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n };\n\ntype TextareaOnlyProps = SharedProps &\n Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, \"onChange\"> & {\n onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;\n };\n\ntype ZestTextboxProps = InputOnlyProps | TextareaOnlyProps;\n\nimport { filterNumericInput } from \"./utils/numericInputFilter\";\nimport { useThemeDetector } from \"./hooks/useThemeDetector\";\nimport { usePasswordVisibility } from \"./hooks/usePasswordVisibility\";\nimport { useCharacterCounter } from \"./hooks/useCharacterCounter\";\nimport { useHelperText } from \"./hooks/useHelperText\";\nimport { PasswordToggleButton } from \"./components/PasswordToggleButton\";\nimport { CharacterCounter } from \"./components/CharacterCounter\";\nimport { ProgressBar } from \"./components/ProgressBar\";\nimport { HelperTextDisplay } from \"./components/HelperTextDisplay\";\nimport { useZestTextboxConfig } from \"./hooks/useZestTextboxConfig\";\nimport { useParsedAndValidatedInput } from \"./hooks/useParsedAndValidatedInput\";\n\n// ... other imports\n\nconst ZestTextbox: React.FC<ZestTextboxProps> = (props) => {\n const {\n className = \"\",\n maxLength,\n onChange,\n type,\n zest, // Destructure the new zest prop\n ...rest\n } = props;\n\n const resolvedZestProps = useZestTextboxConfig(zest, type);\n const {\n zSize,\n stretch: fullWidth,\n showProgressBar,\n animatedCounter,\n theme,\n helperTextConfig,\n onTextChanged,\n isMultiline,\n parser,\n validator,\n } = resolvedZestProps;\n\n const [value, setValue] = useState(\"\");\n\n const isDark = useThemeDetector(theme);\n const isPassword = type === \"password\";\n const { isPasswordVisible, togglePasswordVisibility } = usePasswordVisibility(isPassword);\n const { currentLength, charPercentage, counterColorClass, showCounter } = useCharacterCounter(value, maxLength, animatedCounter);\n\n const {\n parsedValue,\n isValid,\n validationMessage,\n } = useParsedAndValidatedInput({\n rawValue: value,\n inputType: type, // Pass the type prop here\n parser: parser,\n validator: validator,\n onParsedAndValidatedChange: onTextChanged,\n });\n\n // Prioritize validation message over regular helper text\n const finalHelperTextNode = validationMessage ? (\n <span style={{ color: \"red\" }}>{validationMessage}</span>\n ) : useHelperText(value, helperTextConfig);\n\n\n const classList = [\n styles.textbox,\n styles[zSize],\n fullWidth ? styles.fullWidth : \"\",\n className,\n isDark ? styles.dark : \"\",\n !isValid ? styles.error : \"\", // Add error class if not valid\n ]\n .filter(Boolean)\n .join(\" \");\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => {\n let newValue = e.target.value;\n\n const isNumeric = type === \"number\" || type === \"tel\";\n if (isNumeric) {\n newValue = filterNumericInput(newValue);\n }\n\n if (maxLength !== undefined && newValue.length > maxLength) return;\n\n setValue(newValue);\n\n if (onChange) onChange(e as never);\n // onTextChanged is now handled by useParsedAndValidatedInput\n };\n\n const isNumeric = type === \"number\" || type === \"tel\";\n const inputType = isPassword && isPasswordVisible ? \"text\" : isNumeric ? \"tel\" : type;\n\n const commonProps = {\n className: classList,\n maxLength,\n onChange: handleInputChange,\n value,\n type: inputType,\n ...rest,\n };\n\n return (\n <div className={styles.wrapper}>\n {isMultiline ? ( // Use isMultiline from zest\n <textarea\n {...(commonProps as React.TextareaHTMLAttributes<HTMLTextAreaElement>)}\n />\n ) : (\n <input\n {...(commonProps as React.InputHTMLAttributes<HTMLInputElement>)}\n />\n )}\n\n <HelperTextDisplay\n helperTextNode={finalHelperTextNode}\n className={helperTextConfig?.className || ''}\n />\n\n <CharacterCounter\n showCounter={showCounter}\n currentLength={currentLength}\n maxLength={maxLength}\n counterColorClass={counterColorClass}\n />\n\n <PasswordToggleButton\n isPassword={isPassword}\n isPasswordVisible={isPasswordVisible}\n onToggle={togglePasswordVisibility}\n />\n\n <ProgressBar\n showProgressBar={showProgressBar}\n showCounter={showCounter}\n charPercentage={charPercentage}\n counterColorClass={counterColorClass}\n />\n </div>\n );\n};\n\nexport default ZestTextbox;"],"names":["_jsxs","_jsx","useZestTextboxConfig","useZestTextboxContext"],"mappings":"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","x_google_ignoreList":[0,1]}
package/dist/index.js CHANGED
@@ -113,8 +113,8 @@ function styleInject(css, ref) {
113
113
  }
114
114
  }
115
115
 
116
- var css_248z = "/* === Base Textbox Styles (input & textarea) === */\n.ZestTextbox-module_textbox__0M5Wq {\n font-family: \"Segoe UI\", Roboto, sans-serif;\n font-weight: 500;\n line-height: 1.25;\n border: 1px solid #ccc;\n border-radius: 0.5rem; /* 8px */\n color: #111827;\n background-color: #ffffff;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n display: inline-block;\n width: auto;\n box-sizing: border-box;\n resize: none;\n font-size: 1rem; /* 16px */\n padding-bottom: 0.5rem; /* Reduced padding to make space for progress bar */\n}\n\n.ZestTextbox-module_textbox__0M5Wq:focus {\n outline: none;\n border-color: #8B5CF6;\n box-shadow: 0 0 0 0.125rem rgba(139, 92, 246, 0.25); /* 2px */\n animation: ZestTextbox-module_pulse-light__CKfhA 0.5s 1;\n}\n\n/* === Sizes === */\n.ZestTextbox-module_sm__yyxXO {\n padding: 0.5rem 0.75rem; /* 8px 12px */\n font-size: 0.875rem; /* 14px */\n}\n\n.ZestTextbox-module_md__fvL10 {\n padding: 0.625rem 0.875rem; /* 10px 14px */\n font-size: 1rem; /* 16px */\n}\n\n.ZestTextbox-module_lg__fU93- {\n padding: 0.75rem 1rem; /* 12px 16px */\n font-size: 1.125rem; /* 18px */\n}\n\n/* === Full Width === */\n.ZestTextbox-module_fullWidth__xn4fT {\n width: 100%;\n}\n\n/* === Disabled State === */\n.ZestTextbox-module_textbox__0M5Wq:disabled {\n background-color: #f3f4f6;\n color: #9ca3af;\n cursor: not-allowed;\n pointer-events: none;\n border-color: #d1d5db;\n}\n\n/* === Multiline (textarea) specific enhancements === */\ntextarea.ZestTextbox-module_textbox__0M5Wq {\n min-height: 6.25rem; /* 100px */\n line-height: 1.5;\n resize: vertical;\n}\n\n.ZestTextbox-module_wrapper__0ok2A {\n position: relative;\n display: inline-block;\n}\n\n.ZestTextbox-module_counter__waqIT {\n position: absolute;\n right: 0.625rem; /* 10px */\n bottom: 0.375rem; /* 6px */\n font-size: 0.75rem;\n color: #6b7280;\n pointer-events: none;\n user-select: none;\n}\n\n/* === Dark Mode Support === */\n.dark .ZestTextbox-module_textbox__0M5Wq {\n background-color: #1f2937;\n border-color: #374151;\n color: #f3f4f6;\n}\n\n.dark .ZestTextbox-module_textbox__0M5Wq:focus {\n border-color: #A78BFA;\n box-shadow: 0 0 0 0.125rem rgba(167, 139, 250, 0.35); /* 2px */\n animation: ZestTextbox-module_pulse-dark__L9PYJ 0.5s 1;\n}\n\n.dark .ZestTextbox-module_textbox__0M5Wq:disabled {\n background-color: #374151;\n color: #9ca3af;\n border-color: #4b5563;\n}\n\n.dark .ZestTextbox-module_counter__waqIT {\n color: #9ca3af;\n}\n\n/* === Password Toggle === */\n.ZestTextbox-module_passwordToggle__I2s4O {\n position: absolute;\n right: 0.625rem; /* 10px */\n top: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n}\n\n.ZestTextbox-module_eyeIcon__rKiBL {\n width: 1.25em;\n height: 1.25em;\n transition: transform 0.2s ease-in-out;\n}\n\n.ZestTextbox-module_rotate__Ajx19 {\n transform: rotate(180deg);\n}\n\n.ZestTextbox-module_tooltip__etRdj {\n position: absolute;\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n background-color: #333;\n color: #fff;\n padding: 0.25rem 0.5rem; /* 4px 8px */\n border-radius: 0.25rem; /* 4px */\n font-size: 0.75rem;\n white-space: nowrap;\n margin-right: 0.5rem; /* 8px */\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n}\n\n.ZestTextbox-module_passwordToggle__I2s4O:hover .ZestTextbox-module_tooltip__etRdj {\n opacity: 1;\n visibility: visible;\n}\n\n.dark .ZestTextbox-module_passwordToggle__I2s4O {\n color: #9ca3af;\n}\n\n.dark .ZestTextbox-module_tooltip__etRdj {\n background-color: #4b5563;\n color: #f3f4f6;\n}\n\n/* === Progress Bar === */\n.ZestTextbox-module_progressBarContainer__0qFKf {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 0.1875rem; /* 3px */\n background-color: #e5e7eb;\n border-bottom-left-radius: 0.5rem; /* 8px */\n border-bottom-right-radius: 0.5rem; /* 8px */\n overflow: hidden;\n}\n\n.ZestTextbox-module_progressBar__vwttj {\n height: 100%;\n background-color: #8B5CF6;\n transition: width 0.2s ease, background-color 0.3s ease;\n}\n\n/* === Animated Counter Colors === */\n.ZestTextbox-module_counterYellow__uYGfs {\n color: #A78BFA;\n}\n\n.ZestTextbox-module_counterOrange__b9baX {\n color: #8B5CF6;\n}\n\n.dark .ZestTextbox-module_progressBarContainer__0qFKf {\n background-color: #374151;\n}\n\n.dark .ZestTextbox-module_progressBar__vwttj {\n background-color: #A78BFA;\n}\n\n.dark .ZestTextbox-module_counterYellow__uYGfs {\n color: #C4B5FD;\n}\n\n.dark .ZestTextbox-module_counterOrange__b9baX {\n color: #A78BFA;\n}\n\n@keyframes ZestTextbox-module_pulse-light__CKfhA {\n 0% {\n box-shadow: 0 0 0 0.125rem rgba(139, 92, 246, 0.25); /* 2px */\n }\n 50% {\n box-shadow: 0 0 0 0.25rem rgba(139, 92, 246, 0.35); /* 4px */\n }\n 100% {\n box-shadow: 0 0 0 0.125rem rgba(139, 92, 246, 0.25); /* 2px */\n }\n}\n\n@keyframes ZestTextbox-module_pulse-dark__L9PYJ {\n 0% {\n box-shadow: 0 0 0 0.125rem rgba(167, 139, 250, 0.35); /* 2px */\n }\n 50% {\n box-shadow: 0 0 0 0.25rem rgba(167, 139, 250, 0.45); /* 4px */\n }\n 100% {\n box-shadow: 0 0 0 0.125rem rgba(167, 139, 250, 0.35); /* 2px */\n }\n}\n\n/* === Media Queries for Responsive Design === */\n@media (min-width: 48rem) { /* 768px */\n /* Tablet */\n .ZestTextbox-module_sm__yyxXO {\n font-size: 0.875rem; /* 14px */\n }\n .ZestTextbox-module_md__fvL10 {\n font-size: 1rem; /* 16px */\n }\n .ZestTextbox-module_lg__fU93- {\n font-size: 1.125rem; /* 18px */\n }\n}\n\n@media (min-width: 64rem) { /* 1024px */\n /* Desktop */\n .ZestTextbox-module_sm__yyxXO {\n padding: 0.375rem 0.625rem; /* 6px 10px */\n font-size: 0.875rem; /* 14px */\n }\n .ZestTextbox-module_md__fvL10 {\n padding: 0.625rem 0.875rem; /* 10px 14px */\n font-size: 1rem; /* 16px */\n }\n .ZestTextbox-module_lg__fU93- {\n padding: 0.75rem 1rem; /* 12px 16px */\n font-size: 1.125rem; /* 18px */\n }\n}\n\n/* === Helper Text === */\n.ZestTextbox-module_helperText__4twSg {\n font-size: 0.875rem; /* 14px */\n color: #6b7280;\n margin-top: 0.25rem; /* 4px */\n animation: ZestTextbox-module_fade-slide-in__re-Ln 0.3s ease-out forwards;\n}\n\n.dark .ZestTextbox-module_helperText__4twSg {\n color: #9ca3af;\n}\n\n@keyframes ZestTextbox-module_fade-slide-in__re-Ln {\n from {\n opacity: 0;\n transform: translateY(5px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n";
117
- var styles = {"textbox":"ZestTextbox-module_textbox__0M5Wq","pulse-light":"ZestTextbox-module_pulse-light__CKfhA","sm":"ZestTextbox-module_sm__yyxXO","md":"ZestTextbox-module_md__fvL10","lg":"ZestTextbox-module_lg__fU93-","fullWidth":"ZestTextbox-module_fullWidth__xn4fT","wrapper":"ZestTextbox-module_wrapper__0ok2A","counter":"ZestTextbox-module_counter__waqIT","pulse-dark":"ZestTextbox-module_pulse-dark__L9PYJ","passwordToggle":"ZestTextbox-module_passwordToggle__I2s4O","eyeIcon":"ZestTextbox-module_eyeIcon__rKiBL","rotate":"ZestTextbox-module_rotate__Ajx19","tooltip":"ZestTextbox-module_tooltip__etRdj","progressBarContainer":"ZestTextbox-module_progressBarContainer__0qFKf","progressBar":"ZestTextbox-module_progressBar__vwttj","counterYellow":"ZestTextbox-module_counterYellow__uYGfs","counterOrange":"ZestTextbox-module_counterOrange__b9baX","helperText":"ZestTextbox-module_helperText__4twSg","fade-slide-in":"ZestTextbox-module_fade-slide-in__re-Ln"};
116
+ var css_248z = "/* === Base Textbox Styles (input & textarea) === */\n.ZestTextbox-module_textbox__0M5Wq {\n font-family: \"Segoe UI\", Roboto, sans-serif;\n font-weight: 500;\n line-height: 1.25;\n border: 1px solid #ccc;\n border-radius: 0.5rem; /* 8px */\n color: #111827;\n background-color: #ffffff;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n display: inline-block;\n width: auto;\n box-sizing: border-box;\n resize: none;\n font-size: 1rem; /* 16px */\n padding-bottom: 0.5rem; /* Reduced padding to make space for progress bar */\n}\n\n.ZestTextbox-module_textbox__0M5Wq:focus {\n outline: none;\n border-color: #8B5CF6;\n box-shadow: 0 0 0 0.125rem rgba(139, 92, 246, 0.25); /* 2px */\n animation: ZestTextbox-module_pulse-light__CKfhA 0.5s 1;\n}\n\n/* === Error State === */\n.ZestTextbox-module_error__5RoCP {\n border-color: #ef4444; /* Red-500 */\n box-shadow: 0 0 0 0.125rem rgba(239, 68, 68, 0.25); /* Red-500 with 25% opacity */\n}\n\n.ZestTextbox-module_error__5RoCP:focus {\n border-color: #ef4444;\n box-shadow: 0 0 0 0.125rem rgba(239, 68, 68, 0.35);\n}\n\n/* === Sizes === */\n.ZestTextbox-module_sm__yyxXO {\n padding: 0.5rem 0.75rem; /* 8px 12px */\n font-size: 0.875rem; /* 14px */\n}\n\n.ZestTextbox-module_md__fvL10 {\n padding: 0.625rem 0.875rem; /* 10px 14px */\n font-size: 1rem; /* 16px */\n}\n\n.ZestTextbox-module_lg__fU93- {\n padding: 0.75rem 1rem; /* 12px 16px */\n font-size: 1.125rem; /* 18px */\n}\n\n/* === Full Width === */\n.ZestTextbox-module_fullWidth__xn4fT {\n width: 100%;\n}\n\n/* === Disabled State === */\n.ZestTextbox-module_textbox__0M5Wq:disabled {\n background-color: #f3f4f6;\n color: #9ca3af;\n cursor: not-allowed;\n pointer-events: none;\n border-color: #d1d5db;\n}\n\n/* === Multiline (textarea) specific enhancements === */\ntextarea.ZestTextbox-module_textbox__0M5Wq {\n min-height: 6.25rem; /* 100px */\n line-height: 1.5;\n resize: vertical;\n}\n\n.ZestTextbox-module_wrapper__0ok2A {\n position: relative;\n display: inline-block;\n}\n\n.ZestTextbox-module_counter__waqIT {\n position: absolute;\n right: 0.625rem; /* 10px */\n bottom: 0.375rem; /* 6px */\n font-size: 0.75rem;\n color: #6b7280;\n pointer-events: none;\n user-select: none;\n}\n\n/* === Dark Mode Support === */\n.dark .ZestTextbox-module_textbox__0M5Wq {\n background-color: #1f2937;\n border-color: #374151;\n color: #f3f4f6;\n}\n\n.dark .ZestTextbox-module_textbox__0M5Wq:focus {\n border-color: #A78BFA;\n box-shadow: 0 0 0 0.125rem rgba(167, 139, 250, 0.35); /* 2px */\n animation: ZestTextbox-module_pulse-dark__L9PYJ 0.5s 1;\n}\n\n.dark .ZestTextbox-module_textbox__0M5Wq:disabled {\n background-color: #374151;\n color: #9ca3af;\n border-color: #4b5563;\n}\n\n.dark .ZestTextbox-module_counter__waqIT {\n color: #9ca3af;\n}\n\n.dark .ZestTextbox-module_error__5RoCP {\n border-color: #f87171; /* Red-400 for dark mode */\n box-shadow: 0 0 0 0.125rem rgba(248, 113, 113, 0.35);\n}\n\n.dark .ZestTextbox-module_error__5RoCP:focus {\n border-color: #f87171;\n box-shadow: 0 0 0 0.125rem rgba(248, 113, 113, 0.45);\n}\n\n/* === Password Toggle === */\n.ZestTextbox-module_passwordToggle__I2s4O {\n position: absolute;\n right: 0.625rem; /* 10px */\n top: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n}\n\n.ZestTextbox-module_eyeIcon__rKiBL {\n width: 1.25em;\n height: 1.25em;\n transition: transform 0.2s ease-in-out;\n}\n\n.ZestTextbox-module_rotate__Ajx19 {\n transform: rotate(180deg);\n}\n\n.ZestTextbox-module_tooltip__etRdj {\n position: absolute;\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n background-color: #333;\n color: #fff;\n padding: 0.25rem 0.5rem; /* 4px 8px */\n border-radius: 0.25rem; /* 4px */\n font-size: 0.75rem;\n white-space: nowrap;\n margin-right: 0.5rem; /* 8px */\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n}\n\n.ZestTextbox-module_passwordToggle__I2s4O:hover .ZestTextbox-module_tooltip__etRdj {\n opacity: 1;\n visibility: visible;\n}\n\n.dark .ZestTextbox-module_passwordToggle__I2s4O {\n color: #9ca3af;\n}\n\n.dark .ZestTextbox-module_tooltip__etRdj {\n background-color: #4b5563;\n color: #f3f4f6;\n}\n\n/* === Progress Bar === */\n.ZestTextbox-module_progressBarContainer__0qFKf {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 0.1875rem; /* 3px */\n background-color: #e5e7eb;\n border-bottom-left-radius: 0.5rem; /* 8px */\n border-bottom-right-radius: 0.5rem; /* 8px */\n overflow: hidden;\n}\n\n.ZestTextbox-module_progressBar__vwttj {\n height: 100%;\n background-color: #8B5CF6;\n transition: width 0.2s ease, background-color 0.3s ease;\n}\n\n/* === Animated Counter Colors === */\n.ZestTextbox-module_counterYellow__uYGfs {\n color: #A78BFA;\n}\n\n.ZestTextbox-module_counterOrange__b9baX {\n color: #8B5CF6;\n}\n\n.dark .ZestTextbox-module_progressBarContainer__0qFKf {\n background-color: #374151;\n}\n\n.dark .ZestTextbox-module_progressBar__vwttj {\n background-color: #A78BFA;\n}\n\n.dark .ZestTextbox-module_counterYellow__uYGfs {\n color: #C4B5FD;\n}\n\n.dark .ZestTextbox-module_counterOrange__b9baX {\n color: #A78BFA;\n}\n\n@keyframes ZestTextbox-module_pulse-light__CKfhA {\n 0% {\n box-shadow: 0 0 0 0.125rem rgba(139, 92, 246, 0.25); /* 2px */\n }\n 50% {\n box-shadow: 0 0 0 0.25rem rgba(139, 92, 246, 0.35); /* 4px */\n }\n 100% {\n box-shadow: 0 0 0 0.125rem rgba(139, 92, 246, 0.25); /* 2px */\n }\n}\n\n@keyframes ZestTextbox-module_pulse-dark__L9PYJ {\n 0% {\n box-shadow: 0 0 0 0.125rem rgba(167, 139, 250, 0.35); /* 2px */\n }\n 50% {\n box-shadow: 0 0 0 0.25rem rgba(167, 139, 250, 0.45); /* 4px */\n }\n 100% {\n box-shadow: 0 0 0 0.125rem rgba(167, 139, 250, 0.35); /* 2px */\n }\n}\n\n/* === Media Queries for Responsive Design === */\n@media (min-width: 48rem) { /* 768px */\n /* Tablet */\n .ZestTextbox-module_sm__yyxXO {\n font-size: 0.875rem; /* 14px */\n }\n .ZestTextbox-module_md__fvL10 {\n font-size: 1rem; /* 16px */\n }\n .ZestTextbox-module_lg__fU93- {\n font-size: 1.125rem; /* 18px */\n }\n}\n\n@media (min-width: 64rem) { /* 1024px */\n /* Desktop */\n .ZestTextbox-module_sm__yyxXO {\n padding: 0.375rem 0.625rem; /* 6px 10px */\n font-size: 0.875rem; /* 14px */\n }\n .ZestTextbox-module_md__fvL10 {\n padding: 0.625rem 0.875rem; /* 10px 14px */\n font-size: 1rem; /* 16px */\n }\n .ZestTextbox-module_lg__fU93- {\n padding: 0.75rem 1rem; /* 12px 16px */\n font-size: 1.125rem; /* 18px */\n }\n}\n\n/* === Helper Text === */\n.ZestTextbox-module_helperText__4twSg {\n font-size: 0.875rem; /* 14px */\n color: #6b7280;\n margin-top: 0.25rem; /* 4px */\n animation: ZestTextbox-module_fade-slide-in__re-Ln 0.3s ease-out forwards;\n}\n\n.dark .ZestTextbox-module_helperText__4twSg {\n color: #9ca3af;\n}\n\n@keyframes ZestTextbox-module_fade-slide-in__re-Ln {\n from {\n opacity: 0;\n transform: translateY(5px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}";
117
+ var styles = {"textbox":"ZestTextbox-module_textbox__0M5Wq","pulse-light":"ZestTextbox-module_pulse-light__CKfhA","error":"ZestTextbox-module_error__5RoCP","sm":"ZestTextbox-module_sm__yyxXO","md":"ZestTextbox-module_md__fvL10","lg":"ZestTextbox-module_lg__fU93-","fullWidth":"ZestTextbox-module_fullWidth__xn4fT","wrapper":"ZestTextbox-module_wrapper__0ok2A","counter":"ZestTextbox-module_counter__waqIT","pulse-dark":"ZestTextbox-module_pulse-dark__L9PYJ","passwordToggle":"ZestTextbox-module_passwordToggle__I2s4O","eyeIcon":"ZestTextbox-module_eyeIcon__rKiBL","rotate":"ZestTextbox-module_rotate__Ajx19","tooltip":"ZestTextbox-module_tooltip__etRdj","progressBarContainer":"ZestTextbox-module_progressBarContainer__0qFKf","progressBar":"ZestTextbox-module_progressBar__vwttj","counterYellow":"ZestTextbox-module_counterYellow__uYGfs","counterOrange":"ZestTextbox-module_counterOrange__b9baX","helperText":"ZestTextbox-module_helperText__4twSg","fade-slide-in":"ZestTextbox-module_fade-slide-in__re-Ln"};
118
118
  styleInject(css_248z);
119
119
 
120
120
  var filterNumericInput = function (value) {
@@ -254,6 +254,18 @@ var useZestTextboxConfig$1 = function () {
254
254
  return context;
255
255
  };
256
256
 
257
+ var defaultNumberParser = function (value) {
258
+ var parsed = parseFloat(value);
259
+ return isNaN(parsed) ? undefined : parsed;
260
+ };
261
+ var defaultNumberValidator = function (value) {
262
+ if (value === undefined) {
263
+ return "Invalid number format.";
264
+ }
265
+ return true;
266
+ };
267
+ // You can add more default parsers/validators here for other types like 'email', 'date', etc.
268
+
257
269
  // Helper function to resolve a ZestConfigValue
258
270
  function resolveZestConfigValue(configValue, defaultValue) {
259
271
  return __awaiter(this, void 0, void 0, function () {
@@ -289,20 +301,36 @@ var defaultResolvedZestProps = {
289
301
  isMultiline: false,
290
302
  onTextChanged: undefined,
291
303
  helperTextConfig: undefined,
304
+ parser: undefined,
305
+ validator: undefined,
292
306
  };
293
- var useZestTextboxConfig = function (componentZestProps) {
307
+ var useZestTextboxConfig = function (componentZestProps, inputType) {
294
308
  var contextDefaultZestProps = useZestTextboxConfig$1().defaultZestProps;
295
309
  var _a = react.useState(defaultResolvedZestProps), resolvedZestProps = _a[0], setResolvedZestProps = _a[1];
296
310
  // Memoize the merged props to avoid unnecessary re-renders
297
311
  var mergedZestProps = react.useMemo(function () {
298
- // Component props take precedence over context default props, which take precedence over hardcoded defaults
299
- return __assign(__assign(__assign({}, defaultResolvedZestProps), contextDefaultZestProps), componentZestProps);
300
- }, [contextDefaultZestProps, componentZestProps]);
312
+ // Start with hardcoded defaults
313
+ var currentMergedProps = __assign({}, defaultResolvedZestProps);
314
+ // Apply context defaults
315
+ currentMergedProps = __assign(__assign({}, currentMergedProps), contextDefaultZestProps);
316
+ // Apply type-specific defaults if not already overridden by context
317
+ if (inputType === "number") {
318
+ if (currentMergedProps.parser === undefined) {
319
+ currentMergedProps.parser = defaultNumberParser;
320
+ }
321
+ if (currentMergedProps.validator === undefined) {
322
+ currentMergedProps.validator = defaultNumberValidator;
323
+ }
324
+ }
325
+ // Apply component-level props (highest precedence)
326
+ currentMergedProps = __assign(__assign({}, currentMergedProps), componentZestProps);
327
+ return currentMergedProps;
328
+ }, [contextDefaultZestProps, componentZestProps, inputType]); // Added inputType to dependencies
301
329
  react.useEffect(function () {
302
330
  var resolveProps = function () { return __awaiter(void 0, void 0, void 0, function () {
303
- var newResolvedProps, _a, _b, _c, _d, _e, _f, _g;
304
- return __generator(this, function (_h) {
305
- switch (_h.label) {
331
+ var newResolvedProps, _a, _b, _c, _d, _e, _f, _g, _h, _j;
332
+ return __generator(this, function (_k) {
333
+ switch (_k.label) {
306
334
  case 0:
307
335
  newResolvedProps = __assign({}, defaultResolvedZestProps);
308
336
  // Resolve each property that can be a ZestConfigValue
@@ -310,33 +338,41 @@ var useZestTextboxConfig = function (componentZestProps) {
310
338
  return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.zSize, defaultResolvedZestProps.zSize)];
311
339
  case 1:
312
340
  // Resolve each property that can be a ZestConfigValue
313
- _a.zSize = _h.sent();
341
+ _a.zSize = _k.sent();
314
342
  _b = newResolvedProps;
315
343
  return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.stretch, defaultResolvedZestProps.stretch)];
316
344
  case 2:
317
- _b.stretch = _h.sent();
345
+ _b.stretch = _k.sent();
318
346
  _c = newResolvedProps;
319
347
  return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.showProgressBar, defaultResolvedZestProps.showProgressBar)];
320
348
  case 3:
321
- _c.showProgressBar = _h.sent();
349
+ _c.showProgressBar = _k.sent();
322
350
  _d = newResolvedProps;
323
351
  return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.animatedCounter, defaultResolvedZestProps.animatedCounter)];
324
352
  case 4:
325
- _d.animatedCounter = _h.sent();
353
+ _d.animatedCounter = _k.sent();
326
354
  _e = newResolvedProps;
327
355
  return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.theme, defaultResolvedZestProps.theme)];
328
356
  case 5:
329
- _e.theme = _h.sent();
357
+ _e.theme = _k.sent();
330
358
  _f = newResolvedProps;
331
359
  return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.isMultiline, defaultResolvedZestProps.isMultiline)];
332
360
  case 6:
333
- _f.isMultiline = _h.sent();
361
+ _f.isMultiline = _k.sent();
334
362
  // onTextChanged is no longer a ZestConfigValue, so it's directly assigned
335
363
  newResolvedProps.onTextChanged = mergedZestProps.onTextChanged;
336
364
  _g = newResolvedProps;
337
365
  return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.helperTextConfig, defaultResolvedZestProps.helperTextConfig)];
338
366
  case 7:
339
- _g.helperTextConfig = _h.sent();
367
+ _g.helperTextConfig = _k.sent();
368
+ _h = newResolvedProps;
369
+ return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.parser, defaultResolvedZestProps.parser)];
370
+ case 8:
371
+ _h.parser = _k.sent();
372
+ _j = newResolvedProps;
373
+ return [4 /*yield*/, resolveZestConfigValue(mergedZestProps.validator, defaultResolvedZestProps.validator)];
374
+ case 9:
375
+ _j.validator = _k.sent();
340
376
  setResolvedZestProps(newResolvedProps);
341
377
  return [2 /*return*/];
342
378
  }
@@ -347,24 +383,77 @@ var useZestTextboxConfig = function (componentZestProps) {
347
383
  return resolvedZestProps;
348
384
  };
349
385
 
386
+ var useParsedAndValidatedInput = function (_a) {
387
+ var rawValue = _a.rawValue, inputType = _a.inputType, // Destructure inputType
388
+ parser = _a.parser, validator = _a.validator, onParsedAndValidatedChange = _a.onParsedAndValidatedChange;
389
+ var _b = react.useState(undefined), parsedValue = _b[0], setParsedValue = _b[1];
390
+ var _c = react.useState(true), isValid = _c[0], setIsValid = _c[1];
391
+ var _d = react.useState(undefined), validationMessage = _d[0], setValidationMessage = _d[1];
392
+ react.useEffect(function () {
393
+ var currentParsedValue = undefined;
394
+ var currentIsValid = true;
395
+ var currentValidationMessage = undefined;
396
+ // 1. Parse the raw value
397
+ if (parser) {
398
+ currentParsedValue = parser(rawValue, inputType); // Pass inputType to parser
399
+ }
400
+ else {
401
+ // If no parser, treat rawValue as the parsed value (e.g., for text inputs)
402
+ currentParsedValue = rawValue;
403
+ }
404
+ // 2. Validate the parsed value
405
+ if (validator) {
406
+ var validationResult = validator(currentParsedValue, inputType); // Pass inputType to validator
407
+ if (typeof validationResult === "string") {
408
+ currentIsValid = false;
409
+ currentValidationMessage = validationResult;
410
+ }
411
+ else {
412
+ currentIsValid = validationResult;
413
+ if (!currentIsValid) {
414
+ currentValidationMessage = "Invalid input."; // Generic message if validator returns false
415
+ }
416
+ }
417
+ }
418
+ setParsedValue(currentParsedValue);
419
+ setIsValid(currentIsValid);
420
+ setValidationMessage(currentValidationMessage);
421
+ // 3. Call the consumer's callback with the parsed and validated value
422
+ // Only call if a callback is provided and the input is valid
423
+ if (onParsedAndValidatedChange && currentIsValid) {
424
+ onParsedAndValidatedChange(currentParsedValue);
425
+ }
426
+ }, [rawValue, inputType, parser, validator, onParsedAndValidatedChange]); // Add inputType to dependencies
427
+ return { parsedValue: parsedValue, isValid: isValid, validationMessage: validationMessage };
428
+ };
429
+
350
430
  // ... other imports
351
431
  var ZestTextbox = function (props) {
352
432
  var _a = props.className, className = _a === void 0 ? "" : _a, maxLength = props.maxLength, onChange = props.onChange, type = props.type, zest = props.zest, // Destructure the new zest prop
353
433
  rest = __rest(props, ["className", "maxLength", "onChange", "type", "zest"]);
354
- var resolvedZestProps = useZestTextboxConfig(zest);
355
- var zSize = resolvedZestProps.zSize, fullWidth = resolvedZestProps.stretch, showProgressBar = resolvedZestProps.showProgressBar, animatedCounter = resolvedZestProps.animatedCounter, theme = resolvedZestProps.theme, helperTextConfig = resolvedZestProps.helperTextConfig, onTextChanged = resolvedZestProps.onTextChanged, isMultiline = resolvedZestProps.isMultiline;
434
+ var resolvedZestProps = useZestTextboxConfig(zest, type);
435
+ var zSize = resolvedZestProps.zSize, fullWidth = resolvedZestProps.stretch, showProgressBar = resolvedZestProps.showProgressBar, animatedCounter = resolvedZestProps.animatedCounter, theme = resolvedZestProps.theme, helperTextConfig = resolvedZestProps.helperTextConfig, onTextChanged = resolvedZestProps.onTextChanged, isMultiline = resolvedZestProps.isMultiline, parser = resolvedZestProps.parser, validator = resolvedZestProps.validator;
356
436
  var _b = react.useState(""), value = _b[0], setValue = _b[1];
357
437
  var isDark = useThemeDetector(theme);
358
438
  var isPassword = type === "password";
359
439
  var _c = usePasswordVisibility(isPassword), isPasswordVisible = _c.isPasswordVisible, togglePasswordVisibility = _c.togglePasswordVisibility;
360
440
  var _d = useCharacterCounter(value, maxLength, animatedCounter), currentLength = _d.currentLength, charPercentage = _d.charPercentage, counterColorClass = _d.counterColorClass, showCounter = _d.showCounter;
361
- var helperTextNode = useHelperText(value, helperTextConfig);
441
+ var _e = useParsedAndValidatedInput({
442
+ rawValue: value,
443
+ inputType: type, // Pass the type prop here
444
+ parser: parser,
445
+ validator: validator,
446
+ onParsedAndValidatedChange: onTextChanged,
447
+ }), isValid = _e.isValid, validationMessage = _e.validationMessage;
448
+ // Prioritize validation message over regular helper text
449
+ var finalHelperTextNode = validationMessage ? (jsxRuntime.jsx("span", { style: { color: "red" }, children: validationMessage })) : useHelperText(value, helperTextConfig);
362
450
  var classList = [
363
451
  styles.textbox,
364
452
  styles[zSize],
365
453
  fullWidth ? styles.fullWidth : "",
366
454
  className,
367
455
  isDark ? styles.dark : "",
456
+ !isValid ? styles.error : "", // Add error class if not valid
368
457
  ]
369
458
  .filter(Boolean)
370
459
  .join(" ");
@@ -379,14 +468,13 @@ var ZestTextbox = function (props) {
379
468
  setValue(newValue);
380
469
  if (onChange)
381
470
  onChange(e);
382
- if (onTextChanged)
383
- onTextChanged(newValue);
471
+ // onTextChanged is now handled by useParsedAndValidatedInput
384
472
  };
385
473
  var isNumeric = type === "number" || type === "tel";
386
474
  var inputType = isPassword && isPasswordVisible ? "text" : isNumeric ? "tel" : type;
387
475
  var commonProps = __assign({ className: classList, maxLength: maxLength, onChange: handleInputChange, value: value, type: inputType }, rest);
388
476
  return (jsxRuntime.jsxs("div", { className: styles.wrapper, children: [isMultiline ? ( // Use isMultiline from zest
389
- jsxRuntime.jsx("textarea", __assign({}, commonProps))) : (jsxRuntime.jsx("input", __assign({}, commonProps))), jsxRuntime.jsx(HelperTextDisplay, { helperTextNode: helperTextNode, className: (helperTextConfig === null || helperTextConfig === void 0 ? void 0 : helperTextConfig.className) || '' }), jsxRuntime.jsx(CharacterCounter, { showCounter: showCounter, currentLength: currentLength, maxLength: maxLength, counterColorClass: counterColorClass }), jsxRuntime.jsx(PasswordToggleButton, { isPassword: isPassword, isPasswordVisible: isPasswordVisible, onToggle: togglePasswordVisibility }), jsxRuntime.jsx(ProgressBar, { showProgressBar: showProgressBar, showCounter: showCounter, charPercentage: charPercentage, counterColorClass: counterColorClass })] }));
477
+ jsxRuntime.jsx("textarea", __assign({}, commonProps))) : (jsxRuntime.jsx("input", __assign({}, commonProps))), jsxRuntime.jsx(HelperTextDisplay, { helperTextNode: finalHelperTextNode, className: (helperTextConfig === null || helperTextConfig === void 0 ? void 0 : helperTextConfig.className) || '' }), jsxRuntime.jsx(CharacterCounter, { showCounter: showCounter, currentLength: currentLength, maxLength: maxLength, counterColorClass: counterColorClass }), jsxRuntime.jsx(PasswordToggleButton, { isPassword: isPassword, isPasswordVisible: isPasswordVisible, onToggle: togglePasswordVisibility }), jsxRuntime.jsx(ProgressBar, { showProgressBar: showProgressBar, showCounter: showCounter, charPercentage: charPercentage, counterColorClass: counterColorClass })] }));
390
478
  };
391
479
 
392
480
  exports.CharacterCounter = CharacterCounter;