jattac.libs.web.zest-textbox 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,6 +15,7 @@ A delightful, feature-rich, and highly customizable React textbox component. Bui
15
15
  - [Password Input with Visibility Toggle](#password-input-with-visibility-toggle)
16
16
  - [Character Counter & Progress Bar](#character-counter--progress-bar)
17
17
  - [Enhanced Numeric Input](#enhanced-numeric-input)
18
+ - [Custom Parser & Validator](#custom-parser--validator)
18
19
  - [Sizing](#sizing)
19
20
  - [Theming (Light/Dark/System)](#theming-lightdarksystem)
20
21
  - [Multiline Textarea](#multiline-textarea)
@@ -35,6 +36,7 @@ A delightful, feature-rich, and highly customizable React textbox component. Bui
35
36
  * **Password Visibility Toggle:** A crucial accessibility and usability feature for password fields.
36
37
  * **Character Counter & Progress Bar:** Visual feedback on input length, with engaging animations as limits are approached.
37
38
  * **Enhanced Numeric Input:** Intelligent filtering for numbers, decimals, and negative values.
39
+ * **Customizable Parsing & Validation:** Define how raw string input is converted to a desired type and validated, with context of the input `type`.
38
40
  * **Engaging Animations:** Subtle, delightful micro-interactions on focus and input.
39
41
  * **Accessible:** Built with `rem` units and best practices for inclusivity.
40
42
  * **Centralized Configuration:** Easily manage default behaviors and styles across your application using React Context.
@@ -53,7 +55,7 @@ Get started with `ZestTextbox` in seconds. It behaves just like a standard HTML
53
55
 
54
56
  ```jsx
55
57
  import React from 'react';
56
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
58
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
57
59
 
58
60
  const App = () => {
59
61
  return (
@@ -76,37 +78,41 @@ export default App;
76
78
  | `zest` | `ZestProps` | `undefined` | An object containing all custom configurations and behaviors specific to the ZestTextbox component. See `ZestProps` interface for details below. |
77
79
  | `className` | `string` | `""` | A custom CSS class to apply to the main textbox element. |
78
80
  | `maxLength` | `number` | `undefined` | The maximum number of characters allowed. Enables the character counter and progress bar. |
79
- | `type` | `string` | `'text'` | The type of the input element. All standard HTML input types are supported. Special handling is applied for `password` and `number`. |
81
+ | `type` | `HtmlInputType` | `'text'` | The type of the input element. All standard HTML input types are supported. Special handling is applied for `password` and `number`. |
80
82
 
81
83
  ### `ZestProps` Interface Details
82
84
 
83
85
  The `zest` prop is an object that encapsulates all the unique features of `ZestTextbox`. Its properties can accept primitive values, functions, or asynchronous functions (`ZestConfigValue<T>`) for dynamic configuration, especially useful with [Centralized Configuration](#centralized-configuration).
84
86
 
85
87
  ```typescript
86
- import { ZestTextboxSize, ZestConfigValue, HelperTextConfig } from 'jattac.libs.web.zest-textbox';
88
+ import { ZestTextboxSize, ZestConfigValue, HelperTextConfig, InputParser, InputValidator, HtmlInputType } from 'jattac.libs.web.zest-textbox';
87
89
 
88
90
  interface ZestProps {
89
91
  helperTextConfig?: ZestConfigValue<HelperTextConfig>;
90
- onTextChanged?: (value: string) => void; // Callback for text changes
92
+ onTextChanged?: <T>(value: T | undefined) => void; // Callback for parsed & validated text changes
91
93
  zSize?: ZestConfigValue<ZestTextboxSize>; // "sm" | "md" | "lg"
92
94
  stretch?: ZestConfigValue<boolean>; // Full width
93
95
  showProgressBar?: ZestConfigValue<boolean>; // Display character progress bar
94
96
  animatedCounter?: ZestConfigValue<boolean>; // Counter color changes
95
97
  theme?: ZestConfigValue<"light" | "dark" | "system">; // Color scheme
96
98
  isMultiline?: ZestConfigValue<boolean>; // Render as <textarea>
99
+ parser?: ZestConfigValue<InputParser<any>>; // Custom parser function
100
+ validator?: ZestConfigValue<InputValidator<any>>; // Custom validator function
97
101
  }
98
102
  ```
99
103
 
100
104
  | Property | Type (`ZestConfigValue<T>`) | Default | Description |
101
105
  | ----------------- | --------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
102
106
  | `helperTextConfig`| `ZestConfigValue<HelperTextConfig>` | `undefined` | Configuration for dynamic helper text displayed below the input. Can be an object, a function returning an object, or a promise of an object. |
103
- | `onTextChanged` | `(value: string) => void` | `undefined` | A callback function that is invoked whenever the textbox's value changes. Provides the raw string value. |
107
+ | `onTextChanged` | `<T>(value: T | undefined) => void` | `undefined` | A callback function that is invoked whenever the textbox's value changes. Provides the *parsed and validated* value. `T` is the type returned by the `parser`. |
104
108
  | `zSize` | `ZestConfigValue<"sm" | "md" | "lg">` | `'md'` | Sets the size of the textbox, affecting padding and font size. |
105
109
  | `stretch` | `ZestConfigValue<boolean>` | `false` | If `true`, the component will stretch to the full width of its container. |
106
110
  | `showProgressBar` | `ZestConfigValue<boolean>` | `false` | If `true`, a progress bar indicating character count vs. `maxLength` will be displayed. Requires `maxLength` to be set. |
107
111
  | `animatedCounter` | `ZestConfigValue<boolean>` | `false` | If `true`, the character counter will change color as it approaches the `maxLength`. Requires `maxLength` to be set. |
108
112
  | `theme` | `ZestConfigValue<"light" | "dark" | "system">` | `'system'` | Controls the component's color scheme. `'system'` automatically detects the OS/browser preference. |
109
113
  | `isMultiline` | `ZestConfigValue<boolean>` | `false` | If `true`, the component will render as a `<textarea>`. If `false` or undefined, it renders as an `<input>`. |
114
+ | `parser` | `ZestConfigValue<InputParser<any>>` | `undefined` | A function to parse the raw string input into a desired type. Receives `(value: string, inputType?: HtmlInputType)`. Returns `undefined` if parsing fails. Default parsers are provided for `type="number"`. |
115
+ | `validator` | `ZestConfigValue<InputValidator<any>>` | `undefined` | A function to validate the parsed value. Receives `(value: T | undefined, inputType?: HtmlInputType)`. Returns `true` for valid, or a string error message for invalid. Default validators are provided for `type="number"`. |
110
116
 
111
117
  ## Feature Examples
112
118
 
@@ -118,7 +124,7 @@ Simply set the `type` prop to `"password"` to enable the built-in visibility tog
118
124
 
119
125
  ```jsx
120
126
  import React from 'react';
121
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
127
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
122
128
 
123
129
  const PasswordExample = () => {
124
130
  return (
@@ -138,7 +144,7 @@ Enable the character counter with `maxLength` and add a visual progress bar and
138
144
 
139
145
  ```jsx
140
146
  import React from 'react';
141
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
147
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
142
148
 
143
149
  const CounterExample = () => {
144
150
  const [text, setText] = React.useState('');
@@ -164,21 +170,33 @@ export default CounterExample;
164
170
 
165
171
  ### Enhanced Numeric Input
166
172
 
167
- Set `type="number"` for intelligent filtering that allows only digits, a single decimal point, and a single leading negative sign.
173
+ Set `type="number"` for intelligent filtering that allows only digits, a single decimal point, and a single leading negative sign. The `onTextChanged` callback will now receive a `number | undefined`.
168
174
 
169
175
  ```jsx
170
176
  import React from 'react';
171
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
177
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
172
178
 
173
179
  const NumericExample = () => {
180
+ const [age, setAge] = React.useState<number | undefined>(undefined);
181
+ const [price, setPrice] = React.useState<number | undefined>(undefined);
182
+
174
183
  return (
175
184
  <div style={{ padding: '2rem', maxWidth: '400px', margin: '0 auto' }}>
176
- <h2>Numeric Input</h2>
177
- <ZestTextbox type="number" placeholder="Enter a number" />
178
- <br /><br />
179
- <ZestTextbox type="number" placeholder="Enter a decimal" defaultValue="3.14" />
185
+ <h2>Enhanced Numeric Input</h2>
186
+ <p>Age: {age === undefined ? 'N/A' : age}</p>
187
+ <ZestTextbox
188
+ type="number"
189
+ placeholder="Enter your age"
190
+ onTextChanged={setAge}
191
+ />
180
192
  <br /><br />
181
- <ZestTextbox type="number" placeholder="Enter a negative number" defaultValue="-100" />
193
+ <p>Price: {price === undefined ? 'N/A' : `$${price.toFixed(2)}`}</p>
194
+ <ZestTextbox
195
+ type="number"
196
+ placeholder="Enter a price"
197
+ onTextChanged={setPrice}
198
+ defaultValue="19.99"
199
+ />
182
200
  </div>
183
201
  );
184
202
  };
@@ -186,13 +204,66 @@ const NumericExample = () => {
186
204
  export default NumericExample;
187
205
  ```
188
206
 
207
+ ### Custom Parser & Validator
208
+
209
+ Define your own `parser` and `validator` functions to handle specific input requirements. The `inputType` is passed to these functions for context. Here, we'll create a custom parser and validator for a "positive integer" number input.
210
+
211
+ ```jsx
212
+ import React from 'react';
213
+ import ZestTextbox, { InputParser, InputValidator, HtmlInputType } from 'jattac.libs.web.zest-textbox';
214
+
215
+ // Custom parser for positive integers
216
+ const positiveIntegerParser: InputParser<number> = (value: string, inputType?: HtmlInputType) => {
217
+ if (inputType === 'number') {
218
+ const parsed = parseInt(value, 10);
219
+ return isNaN(parsed) ? undefined : parsed;
220
+ }
221
+ return undefined;
222
+ };
223
+
224
+ // Custom validator for positive integers
225
+ const positiveIntegerValidator: InputValidator<number> = (parsedValue: number | undefined, inputType?: HtmlInputType) => {
226
+ if (inputType === 'number') {
227
+ if (parsedValue === undefined) {
228
+ return "Please enter a valid integer.";
229
+ }
230
+ if (parsedValue <= 0) {
231
+ return "Value must be a positive integer.";
232
+ }
233
+ }
234
+ return true;
235
+ };
236
+
237
+ const CustomNumericParserValidatorExample = () => {
238
+ const [quantity, setQuantity] = React.useState<number | undefined>(undefined);
239
+
240
+ return (
241
+ <div style={{ padding: '2rem', maxWidth: '400px', margin: '0 auto' }}>
242
+ <h2>Custom Numeric Parser & Validator</h2>
243
+ <p>Quantity: {quantity === undefined ? 'N/A' : quantity}</p>
244
+ <ZestTextbox
245
+ type="number"
246
+ placeholder="Enter positive quantity"
247
+ onTextChanged={setQuantity}
248
+ zest={{
249
+ parser: positiveIntegerParser,
250
+ validator: positiveIntegerValidator,
251
+ }}
252
+ />
253
+ </div>
254
+ );
255
+ };
256
+
257
+ export default CustomNumericParserValidatorExample;
258
+ ```
259
+
189
260
  ### Sizing
190
261
 
191
262
  Control the size of the textbox with the `zSize` property within the `zest` prop. Options are `"sm"`, `"md"` (default), and `"lg"`.
192
263
 
193
264
  ```jsx
194
265
  import React from 'react';
195
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
266
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
196
267
 
197
268
  const SizingExample = () => {
198
269
  return (
@@ -216,7 +287,7 @@ Force the component into a specific theme or let it adapt to the user's system p
216
287
 
217
288
  ```jsx
218
289
  import React from 'react';
219
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
290
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
220
291
 
221
292
  const ThemingExample = () => {
222
293
  return (
@@ -240,7 +311,7 @@ Render `ZestTextbox` as a `<textarea>` by setting `isMultiline` to `true` in the
240
311
 
241
312
  ```jsx
242
313
  import React from 'react';
243
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
314
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
244
315
 
245
316
  const MultilineExample = () => {
246
317
  return (
@@ -264,7 +335,7 @@ Provide dynamic helper text below the input using `helperTextConfig`. You can fo
264
335
 
265
336
  ```jsx
266
337
  import React from 'react';
267
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
338
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
268
339
 
269
340
  const HelperTextExample = () => {
270
341
  const [value, setValue] = React.useState('');
@@ -321,7 +392,7 @@ Make the textbox take up the full width of its parent container by setting `stre
321
392
 
322
393
  ```jsx
323
394
  import React from 'react';
324
- import { ZestTextbox } from 'jattac.libs.web.zest-textbox';
395
+ import ZestTextbox from 'jattac.libs.web.zest-textbox';
325
396
 
326
397
  const StretchExample = () => {
327
398
  return (
@@ -346,11 +417,30 @@ To maintain consistency and reduce boilerplate, `ZestTextbox` supports centraliz
346
417
 
347
418
  ### Usage Example
348
419
 
349
- Here's how you can set up a global theme and size, and then override it for a specific component:
420
+ Here's how you can set up a global theme and size, and then override it for a specific component. You can also define global default parsers and validators here.
350
421
 
351
422
  ```jsx
352
423
  import React from 'react';
353
- import { ZestTextbox, ZestTextboxConfigProvider } from 'jattac.libs.web.zest-textbox';
424
+ import ZestTextbox, { ZestTextboxConfigProvider, InputParser, InputValidator, HtmlInputType } from 'jattac.libs.web.zest-textbox';
425
+
426
+ // Global default parser for positive numbers
427
+ const globalPositiveNumberParser: InputParser<number> = (value: string, inputType?: HtmlInputType) => {
428
+ if (inputType === 'number') {
429
+ const parsed = parseFloat(value);
430
+ return isNaN(parsed) || parsed <= 0 ? undefined : parsed;
431
+ }
432
+ return undefined;
433
+ };
434
+
435
+ // Global default validator for positive numbers
436
+ const globalPositiveNumberValidator: InputValidator<number> = (parsedValue: number | undefined, inputType?: HtmlInputType) => {
437
+ if (inputType === 'number') {
438
+ if (parsedValue === undefined) {
439
+ return "Please enter a valid positive number.";
440
+ }
441
+ }
442
+ return true;
443
+ };
354
444
 
355
445
  const AppWithCentralConfig = () => {
356
446
  // Define your global default ZestProps
@@ -358,15 +448,20 @@ const AppWithCentralConfig = () => {
358
448
  theme: "dark", // All textboxes will be dark by default
359
449
  zSize: () => "lg", // All textboxes will be large by default (function example)
360
450
  animatedCounter: Promise.resolve(true), // Async example
451
+ parser: globalPositiveNumberParser, // Apply global positive number parser
452
+ validator: globalPositiveNumberValidator, // Apply global positive number validator
361
453
  };
362
454
 
455
+ const [amount, setAmount] = React.useState<number | undefined>(undefined);
456
+
363
457
  return (
364
458
  <ZestTextboxConfigProvider value={globalDefaultZestProps}>
365
459
  <div style={{ padding: '2rem', maxWidth: '600px', margin: '0 auto' }}>
366
460
  <h1>Centralized Configuration Example</h1>
367
461
 
368
462
  <h3>Default ZestTextbox (inherits global defaults)</h3>
369
- <ZestTextbox placeholder="I'm large, dark, and animated!" />
463
+ <ZestTextbox placeholder="I'm large, dark, animated, and expect positive numbers!" type="number" onTextChanged={setAmount} />
464
+ <p>Amount: {amount === undefined ? 'N/A' : amount}</p>
370
465
  <br /><br />
371
466
 
372
467
  <h3>Overridden ZestTextbox (component props take precedence)</h3>
@@ -377,7 +472,7 @@ const AppWithCentralConfig = () => {
377
472
  <br /><br />
378
473
 
379
474
  <h3>Another Default ZestTextbox</h3>
380
- <ZestTextbox placeholder="I'm also large, dark, and animated!" />
475
+ <ZestTextbox placeholder="I'm also large, dark, animated, and expect positive numbers!" type="number" />
381
476
  </div>
382
477
  </ZestTextboxConfigProvider>
383
478
  );
@@ -399,10 +494,10 @@ The resolution order for `ZestProps` is as follows:
399
494
  The `ZestTextbox` component has been refactored internally for improved maintainability, readability, and reusability. Its core logic is now distributed across several custom React hooks and smaller, focused sub-components. This internal restructuring does **not** introduce any breaking changes to the public API.
400
495
 
401
496
  The internal structure now includes:
402
- * `UI/hooks/`: Contains custom React hooks (e.g., `useThemeDetector`, `usePasswordVisibility`, `useCharacterCounter`, `useHelperText`, `useZestTextboxConfig`).
497
+ * `UI/hooks/`: Contains custom React hooks (e.g., `useThemeDetector`, `usePasswordVisibility`, `useCharacterCounter`, `useHelperText`, `useZestTextboxConfig`, `useParsedAndValidatedInput`).
403
498
  * `UI/components/`: Contains smaller, focused UI components (e.g., `PasswordToggleButton`, `CharacterCounter`, `ProgressBar`, `HelperTextDisplay`).
404
- * `UI/utils/`: Contains utility functions (e.g., `numericInputFilter`).
405
- * `UI/types.ts`: Defines shared TypeScript interfaces and types.
499
+ * `UI/utils/`: Contains utility functions (e.g., `numericInputFilter`, `defaultParsersAndValidators`).
500
+ * `UI/types.ts`: Defines shared TypeScript interfaces and types (e.g., `HtmlInputType`, `InputParser`, `InputValidator`, `ZestConfigValue`, `ResolvedZestProps`).
406
501
  * `UI/contexts/`: Contains React Contexts and Providers (e.g., `ZestTextboxConfigContext`, `ZestTextboxConfigProvider`).
407
502
 
408
503
  ## Breaking Changes
@@ -1,7 +1,7 @@
1
- import { InputParser, InputValidator } from "../types";
1
+ import { InputParser, InputValidator, HtmlInputType } from "../types";
2
2
  interface UseParsedAndValidatedInputArgs<T> {
3
3
  rawValue: string;
4
- inputType?: string;
4
+ inputType?: HtmlInputType;
5
5
  parser: InputParser<T> | undefined;
6
6
  validator: InputValidator<T> | undefined;
7
7
  onParsedAndValidatedChange: ((value: T | undefined) => void) | undefined;
@@ -1,2 +1,2 @@
1
- import { ZestProps, ResolvedZestProps } from "../types";
2
- export declare const useZestTextboxConfig: (componentZestProps: ZestProps | undefined, inputType?: string) => ResolvedZestProps;
1
+ import { ZestProps, ResolvedZestProps, HtmlInputType } from "../types";
2
+ export declare const useZestTextboxConfig: (componentZestProps: ZestProps | undefined, inputType?: HtmlInputType) => ResolvedZestProps;
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import React, { ReactNode } from 'react';
2
2
 
3
3
  type ZestTextboxSize = "sm" | "md" | "lg";
4
+ type HtmlInputType = "text" | "email" | "password" | "number" | "tel" | "url" | "search" | "color" | "date" | "datetime-local" | "month" | "time" | "week";
4
5
  type ZestConfigValue<T> = T | (() => T) | (() => Promise<T>);
5
- type InputParser<T> = (value: string, inputType?: string) => T | undefined;
6
- type InputValidator<T> = (value: T | undefined, inputType?: string) => boolean | string;
6
+ type InputParser<T> = (value: string, inputType?: HtmlInputType) => T | undefined;
7
+ type InputValidator<T> = (value: T | undefined, inputType?: HtmlInputType) => boolean | string;
7
8
  interface HelperTextConfig {
8
9
  /**
9
10
  * A function to process the raw input value into a new string.
@@ -105,7 +106,7 @@ type SharedProps = {
105
106
  * Special handling is applied for `password` and `number`.
106
107
  * @default 'text'
107
108
  */
108
- type?: "text" | "email" | "password" | "number" | "tel" | "url" | "search" | "color" | "date" | "datetime-local" | "month" | "time" | "week";
109
+ type?: HtmlInputType;
109
110
  };
110
111
  type InputOnlyProps = SharedProps & Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "onChange"> & {
111
112
  onChange?: React.ChangeEventHandler<HTMLInputElement>;
package/dist/index.esm.js CHANGED
@@ -252,11 +252,19 @@ var useZestTextboxConfig$1 = function () {
252
252
  return context;
253
253
  };
254
254
 
255
- var defaultNumberParser = function (value) {
255
+ var defaultNumberParser = function (value, inputType) {
256
+ if (inputType !== "number" && inputType !== "tel") {
257
+ // If not a number type, don't parse as number
258
+ return undefined;
259
+ }
256
260
  var parsed = parseFloat(value);
257
261
  return isNaN(parsed) ? undefined : parsed;
258
262
  };
259
- var defaultNumberValidator = function (value) {
263
+ var defaultNumberValidator = function (value, inputType) {
264
+ if (inputType !== "number" && inputType !== "tel") {
265
+ // If not a number type, always consider valid for this validator
266
+ return true;
267
+ }
260
268
  if (value === undefined) {
261
269
  return "Invalid number format.";
262
270
  }
@@ -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/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]}
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, HtmlInputType } from \"../types\";\n\nexport const defaultNumberParser: InputParser<number> = (value: string, inputType?: HtmlInputType) => {\n if (inputType !== \"number\" && inputType !== \"tel\") {\n // If not a number type, don't parse as number\n return undefined;\n }\n const parsed = parseFloat(value);\n return isNaN(parsed) ? undefined : parsed;\n};\n\nexport const defaultNumberValidator: InputValidator<number> = (value: number | undefined, inputType?: HtmlInputType) => {\n if (inputType !== \"number\" && inputType !== \"tel\") {\n // If not a number type, always consider valid for this validator\n return true;\n }\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.","import { useEffect, useState, useMemo } from \"react\";\nimport { ZestProps, ZestConfigValue, ZestTextboxSize, HelperTextConfig, ResolvedZestProps, InputParser, InputValidator, HtmlInputType } 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?: HtmlInputType) => { // Updated inputType to HtmlInputType\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};\n","import { useState, useEffect, useCallback } from \"react\";\nimport { InputParser, InputValidator, HtmlInputType } from \"../types\";\n\ninterface UseParsedAndValidatedInputArgs<T> {\n rawValue: string;\n inputType?: HtmlInputType; // Updated inputType to HtmlInputType\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};","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, HtmlInputType } 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?: HtmlInputType;\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
@@ -254,11 +254,19 @@ var useZestTextboxConfig$1 = function () {
254
254
  return context;
255
255
  };
256
256
 
257
- var defaultNumberParser = function (value) {
257
+ var defaultNumberParser = function (value, inputType) {
258
+ if (inputType !== "number" && inputType !== "tel") {
259
+ // If not a number type, don't parse as number
260
+ return undefined;
261
+ }
258
262
  var parsed = parseFloat(value);
259
263
  return isNaN(parsed) ? undefined : parsed;
260
264
  };
261
- var defaultNumberValidator = function (value) {
265
+ var defaultNumberValidator = function (value, inputType) {
266
+ if (inputType !== "number" && inputType !== "tel") {
267
+ // If not a number type, always consider valid for this validator
268
+ return true;
269
+ }
262
270
  if (value === undefined) {
263
271
  return "Invalid number format.";
264
272
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.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":["useState","useEffect","useMemo","_jsxs","_jsx","createContext","useZestTextboxConfig","useContext","useZestTextboxContext"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index.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, HtmlInputType } from \"../types\";\n\nexport const defaultNumberParser: InputParser<number> = (value: string, inputType?: HtmlInputType) => {\n if (inputType !== \"number\" && inputType !== \"tel\") {\n // If not a number type, don't parse as number\n return undefined;\n }\n const parsed = parseFloat(value);\n return isNaN(parsed) ? undefined : parsed;\n};\n\nexport const defaultNumberValidator: InputValidator<number> = (value: number | undefined, inputType?: HtmlInputType) => {\n if (inputType !== \"number\" && inputType !== \"tel\") {\n // If not a number type, always consider valid for this validator\n return true;\n }\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.","import { useEffect, useState, useMemo } from \"react\";\nimport { ZestProps, ZestConfigValue, ZestTextboxSize, HelperTextConfig, ResolvedZestProps, InputParser, InputValidator, HtmlInputType } 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?: HtmlInputType) => { // Updated inputType to HtmlInputType\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};\n","import { useState, useEffect, useCallback } from \"react\";\nimport { InputParser, InputValidator, HtmlInputType } from \"../types\";\n\ninterface UseParsedAndValidatedInputArgs<T> {\n rawValue: string;\n inputType?: HtmlInputType; // Updated inputType to HtmlInputType\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};","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, HtmlInputType } 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?: HtmlInputType;\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":["useState","useEffect","useMemo","_jsxs","_jsx","createContext","useZestTextboxConfig","useContext","useZestTextboxContext"],"mappings":"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","x_google_ignoreList":[0,1]}
package/dist/types.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import React from "react";
2
2
  export type ZestTextboxSize = "sm" | "md" | "lg";
3
+ export type HtmlInputType = "text" | "email" | "password" | "number" | "tel" | "url" | "search" | "color" | "date" | "datetime-local" | "month" | "time" | "week";
3
4
  export type ZestConfigValue<T> = T | (() => T) | (() => Promise<T>);
4
- export type InputParser<T> = (value: string, inputType?: string) => T | undefined;
5
- export type InputValidator<T> = (value: T | undefined, inputType?: string) => boolean | string;
5
+ export type InputParser<T> = (value: string, inputType?: HtmlInputType) => T | undefined;
6
+ export type InputValidator<T> = (value: T | undefined, inputType?: HtmlInputType) => boolean | string;
6
7
  export interface HelperTextConfig {
7
8
  /**
8
9
  * A function to process the raw input value into a new string.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jattac.libs.web.zest-textbox",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "A delightful, feature-rich, and highly customizable React textbox component. Packed with features like automatic theme detection, password visibility toggle, character counters, and engaging animations.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",