@trackunit/react-form-components 0.0.105 → 0.0.106

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/index.cjs.js CHANGED
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var i18nLibraryTranslation = require('@trackunit/i18n-library-translation');
7
- var cssClassVarianceUtilities = require('@trackunit/css-class-variance-utilities');
8
7
  var reactComponents = require('@trackunit/react-components');
9
- var tailwindStyledComponents = require('@trackunit/tailwind-styled-components');
8
+ var cssClassVarianceUtilities = require('@trackunit/css-class-variance-utilities');
10
9
  var React = require('react');
10
+ var tailwindStyledComponents = require('@trackunit/tailwind-styled-components');
11
11
  var reactDom = require('react-dom');
12
12
 
13
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -75,13 +75,26 @@ const setupLibraryTranslations = () => {
75
75
  i18nLibraryTranslation.registerTranslations(translations);
76
76
  };
77
77
 
78
+ const cvaActionButton = cssClassVarianceUtilities.cvaMerge(["drop-shadow-none", "rounded-md"], {
79
+ variants: {
80
+ size: {
81
+ small: ["w-6", "h-6"],
82
+ medium: ["w-8", "h-8"],
83
+ },
84
+ },
85
+ defaultVariants: {
86
+ size: "medium",
87
+ },
88
+ });
89
+ const cvaActionContainer = cssClassVarianceUtilities.cvaMerge(["flex", "items-center", "m-1"]);
90
+
78
91
  /**
79
92
  * The ActionButton component is a wrapper over IconButton to perform an action when the onClick event is triggered.
80
93
  *
81
94
  * @param {ActionButtonProps} props - The props for the ActionButton component
82
95
  * @returns {JSX.Element} ActionButton component
83
96
  */
84
- const ActionButton = ({ type, value, dataTestId, iconSize, disabled }) => {
97
+ const ActionButton = ({ type, value, dataTestId, iconSize, disabled, className, }) => {
85
98
  const getIconName = () => {
86
99
  switch (type) {
87
100
  case "PHONE_NUMBER":
@@ -107,9 +120,8 @@ const ActionButton = ({ type, value, dataTestId, iconSize, disabled }) => {
107
120
  return window.open(`tel:${value}`);
108
121
  }
109
122
  };
110
- return (jsxRuntime.jsx("div", { className: "flex p-1", children: jsxRuntime.jsx(reactComponents.IconButton, { className: cvaActionButton(), disabled: disabled, dataTestId: dataTestId || "testIconButtonId", size: "small", color: "tertiary", icon: jsxRuntime.jsx(reactComponents.Icon, { size: "small", name: getIconName() }), onClick: ButtonAction }) }));
123
+ return (jsxRuntime.jsx("div", { className: cvaActionContainer({ className }), children: jsxRuntime.jsx(reactComponents.IconButton, { disabled: disabled, dataTestId: dataTestId || "testIconButtonId", size: "small", color: "tertiary", icon: jsxRuntime.jsx(reactComponents.Icon, { size: "small", name: getIconName() }), onClick: ButtonAction, className: cvaActionButton({ size: iconSize }) }) }));
111
124
  };
112
- const cvaActionButton = cssClassVarianceUtilities.cvaMerge(["drop-shadow-none", "rounded-md"]);
113
125
 
114
126
  /******************************************************************************
115
127
  Copyright (c) Microsoft Corporation.
@@ -148,6 +160,96 @@ function __awaiter(thisArg, _arguments, P, generator) {
148
160
  });
149
161
  }
150
162
 
163
+ const cvaInputBase = cssClassVarianceUtilities.cvaMerge([
164
+ "component-baseInput-shadow",
165
+ "component-baseInput-border",
166
+ "component-baseInput-background",
167
+ "border-slate-300",
168
+ "focus-within:ring-2",
169
+ "focus-within:ring-offset-2",
170
+ "focus-within:ring-offset-white",
171
+ "focus-within:ring-primary-500",
172
+ "focus-within:border-slate-400",
173
+ "hover:border-slate-400",
174
+ "hover:bg-slate-50",
175
+ "transition",
176
+ ]);
177
+ const cvaInputBaseDisabled = cssClassVarianceUtilities.cvaMerge(["bg-slate-100", "hover:bg-slate-100", "hover:border-slate-300"]);
178
+ const cvaInputBaseInvalid = cssClassVarianceUtilities.cvaMerge(["border-danger-600", "focus-within:ring-danger-600"]);
179
+ const cvaInput = cssClassVarianceUtilities.cvaMerge(["relative", "flex", "h-10", cvaInputBase()], {
180
+ variants: {
181
+ size: {
182
+ small: ["h-8"],
183
+ medium: ["h-10"],
184
+ },
185
+ disabled: {
186
+ true: cvaInputBaseDisabled(),
187
+ false: "",
188
+ },
189
+ invalid: {
190
+ true: cvaInputBaseInvalid(),
191
+ false: "",
192
+ },
193
+ },
194
+ });
195
+ const cvaInputField = cssClassVarianceUtilities.cvaMerge([
196
+ "w-full",
197
+ "px-3",
198
+ "border-0",
199
+ "bg-transparent",
200
+ "text-base",
201
+ "text-slate-900",
202
+ "placeholder-slate-400",
203
+ "focus-visible:outline-none",
204
+ ], {
205
+ variants: {
206
+ size: {
207
+ small: ["py-1"],
208
+ medium: ["py-2"],
209
+ },
210
+ disabled: {
211
+ true: ["text-slate-700"],
212
+ false: "",
213
+ },
214
+ },
215
+ });
216
+ const cvaInputAddon = cssClassVarianceUtilities.cvaMerge([
217
+ "flex",
218
+ "justify-center",
219
+ "items-center",
220
+ "px-3",
221
+ "border-slate-300",
222
+ "text-slate-500",
223
+ "bg-slate-50",
224
+ ]);
225
+ const cvaInputAddonBefore = cssClassVarianceUtilities.cvaMerge([cvaInputAddon(), "border-r", "rounded-l-lg"]);
226
+ const cvaInputAddonAfter = cssClassVarianceUtilities.cvaMerge([cvaInputAddon(), "border-l", "rounded-r-lg"]);
227
+ const cvaInputPrefix = cssClassVarianceUtilities.cvaMerge([
228
+ "flex",
229
+ "justify-center",
230
+ "items-center",
231
+ "text-slate-400",
232
+ "hover:component-search-prefix",
233
+ "component-baseInput-prefix",
234
+ "component-search-borderless",
235
+ "px-3",
236
+ ], {
237
+ variants: {
238
+ disabled: {
239
+ true: ["text-slate-500"],
240
+ false: "",
241
+ },
242
+ },
243
+ });
244
+ const cvaInputSuffix = cssClassVarianceUtilities.cvaMerge(["flex", "justify-center", "items-center", "text-slate-400", "px-3"], {
245
+ variants: {
246
+ disabled: {
247
+ true: ["text-slate-500"],
248
+ false: "",
249
+ },
250
+ },
251
+ });
252
+
151
253
  /**
152
254
  * A base input component that can be used for text inputs, password inputs, etc.
153
255
  * A reference to the input element is provided as the `ref` prop.
@@ -157,28 +259,47 @@ function __awaiter(thisArg, _arguments, P, generator) {
157
259
  * This is a base used by our other input components such as TextInput, NumberInput, PasswordInput, etc.
158
260
  */
159
261
  const BaseInput = React__namespace.forwardRef((_a, ref) => {
160
- var { className, isInvalid, dataTestId, prefix, suffix, addonBefore, addonAfter, actions, fieldSize = "medium", nonInteractive = false, type } = _a, rest = __rest(_a, ["className", "isInvalid", "dataTestId", "prefix", "suffix", "addonBefore", "addonAfter", "actions", "fieldSize", "nonInteractive", "type"]);
262
+ var { className, isInvalid, dataTestId, prefix, suffix, addonBefore, addonAfter, actions, fieldSize = "medium", nonInteractive = false, type, inputClassName, addonBeforeClassName } = _a, rest = __rest(_a, ["className", "isInvalid", "dataTestId", "prefix", "suffix", "addonBefore", "addonAfter", "actions", "fieldSize", "nonInteractive", "type", "inputClassName", "addonBeforeClassName"]);
161
263
  const isReadOnlyWithPlaceholder = React.useMemo(() => !!rest.readOnly && !!rest.placeholder && !rest.value, [rest.readOnly, rest.placeholder, rest.value]);
162
- return (jsxRuntime.jsxs(InputContainer$1, { "$fieldSize": fieldSize, "$invalid": isInvalid, "$disabled": rest.disabled || rest.readOnly, className: className, "data-testid": dataTestId && `${dataTestId}-container`, children: [addonBefore && addonBefore !== undefined ? (jsxRuntime.jsx(AddonBefore, { "data-testid": dataTestId && `${dataTestId}-addonBefore`, children: addonBefore })) : null, prefix && addonBefore !== prefix ? (jsxRuntime.jsx(InputPrefix, { "data-testid": dataTestId && `${dataTestId}-prefix`, children: prefix })) : null, jsxRuntime.jsx("input", Object.assign({ ref: ref, "data-testid": dataTestId, className: tailwindStyledComponents.tws `tu-input__field`, type: isReadOnlyWithPlaceholder ? "text" : type }, rest, { readOnly: rest.readOnly || nonInteractive })), suffix && addonBefore !== suffix ? (jsxRuntime.jsx(InputSuffix, { "data-testid": dataTestId && `${dataTestId}-suffix`, children: suffix })) : null, actions && addonBefore !== actions ? actions : null, addonAfter && addonAfter !== undefined && addonBefore !== addonAfter ? (jsxRuntime.jsx(AddonAfter, { "data-testid": dataTestId && `${dataTestId}-addonAfter`, children: addonAfter })) : null] }));
264
+ const renderAsDisabled = rest.disabled || rest.readOnly;
265
+ return (jsxRuntime.jsxs("div", { className: cvaInput({
266
+ disabled: renderAsDisabled,
267
+ invalid: isInvalid,
268
+ size: fieldSize,
269
+ className,
270
+ }), "data-testid": dataTestId && `${dataTestId}-container`, children: [addonBefore && addonBefore !== undefined ? (jsxRuntime.jsx("div", { className: cvaInputAddonBefore({ className: addonBeforeClassName }), "data-testid": dataTestId && `${dataTestId}-addonBefore`, children: addonBefore })) : null, prefix && addonBefore !== prefix ? (jsxRuntime.jsx("div", { className: cvaInputPrefix({
271
+ disabled: renderAsDisabled,
272
+ }), "data-testid": dataTestId && `${dataTestId}-prefix`, children: prefix })) : null, jsxRuntime.jsx("input", Object.assign({ ref: ref, "data-testid": dataTestId, className: cvaInputField({ size: fieldSize, disabled: renderAsDisabled, className: inputClassName }), type: isReadOnlyWithPlaceholder ? "text" : type }, rest, { readOnly: rest.readOnly || nonInteractive })), suffix && addonBefore !== suffix ? (jsxRuntime.jsx("div", { className: cvaInputSuffix({
273
+ disabled: renderAsDisabled,
274
+ }), "data-testid": dataTestId && `${dataTestId}-suffix`, children: suffix })) : null, actions && addonBefore !== actions ? actions : null, addonAfter && addonAfter !== undefined && addonBefore !== addonAfter ? (jsxRuntime.jsx("div", { className: cvaInputAddonAfter(), "data-testid": dataTestId && `${dataTestId}-addonAfter`, children: addonAfter })) : null] }));
275
+ });
276
+
277
+ const cvaLabel = cssClassVarianceUtilities.cvaMerge([
278
+ "text-base",
279
+ "text-slate-700",
280
+ "overflow-hidden",
281
+ "whitespace-nowrap",
282
+ "text-ellipsis",
283
+ "hover:text-slate-800",
284
+ "group-hover:text-slate-800",
285
+ "active:text-slate-800",
286
+ "group-active:text-slate-800",
287
+ ], {
288
+ variants: {
289
+ invalid: {
290
+ true: "text-red-600 hover:text-red-700 group-hover:text-red-700 active:text-red-700 group-active:text-red-700",
291
+ false: "",
292
+ },
293
+ disabled: {
294
+ true: "text-slate-400 hover:text-slate-400 group-hover:text-slate-400",
295
+ false: "",
296
+ },
297
+ },
298
+ defaultVariants: {
299
+ invalid: false,
300
+ disabled: false,
301
+ },
163
302
  });
164
- const InputPrefix = tailwindStyledComponents.tw.div `
165
- tu-input__prefix
166
- `;
167
- const InputSuffix = tailwindStyledComponents.tw.div `
168
- tu-input__suffix
169
- `;
170
- const AddonBefore = tailwindStyledComponents.tw.div `
171
- tu-input__addon-before
172
- `;
173
- const AddonAfter = tailwindStyledComponents.tw.div `
174
- tu-input__addon-after
175
- `;
176
- const InputContainer$1 = tailwindStyledComponents.tw.label `
177
- tu-input
178
- ${({ $invalid }) => ($invalid ? tailwindStyledComponents.tws `tu-input--invalid` : null)}
179
- ${({ $disabled }) => ($disabled ? tailwindStyledComponents.tws `tu-input--disabled` : null)}
180
- ${({ $fieldSize }) => ($fieldSize === "small" ? tailwindStyledComponents.tws `tu-input--small` : null)}
181
- `;
182
303
 
183
304
  /**
184
305
  * The CheckIcon component is used by the checkbox to display the checked state.
@@ -190,6 +311,130 @@ const CheckIcon = ({ className, dataTestId }) => {
190
311
  return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, "data-testid": dataTestId, fill: "none", viewBox: "0 0 10 10", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m2 5.5 2 2L8.5 3" }) }));
191
312
  };
192
313
 
314
+ const cvaCheckbox = cssClassVarianceUtilities.cvaMerge([
315
+ "w-4",
316
+ "h-4",
317
+ "border-solid",
318
+ "border",
319
+ "shrink-0",
320
+ "border-slate-300",
321
+ "flex",
322
+ "rounded",
323
+ "hover:bg-slate-100",
324
+ "bg-white",
325
+ "items-center",
326
+ "shadow-sm",
327
+ "justify-center",
328
+ "box-border",
329
+ "transition",
330
+ "focus:bg-slate-200",
331
+ "outline-0",
332
+ "active:bg-slate-200",
333
+ "active:ring-2",
334
+ "active:ring-offset-2",
335
+ "active:ring-blue-700",
336
+ "focus:ring-2",
337
+ "focus:ring-offset-2",
338
+ "focus:ring-blue-700",
339
+ "cursor-pointer",
340
+ "group-active:ring-2",
341
+ "group-active:ring-offset-2",
342
+ "group-active:ring-blue-700",
343
+ ], {
344
+ variants: {
345
+ disabled: {
346
+ true: [
347
+ "bg-slate-300",
348
+ "border-slate-300",
349
+ "cursor-not-allowed",
350
+ "group-hover:bg-slate-300",
351
+ "group-focus:bg-slate-300",
352
+ "hover:bg-slate-300",
353
+ "focus:bg-slate-300",
354
+ "active:bg-slate-300",
355
+ "focus:ring-0",
356
+ "focus:ring-offset-0",
357
+ "group-active:ring-0",
358
+ "group-active:ring-offset-0",
359
+ ],
360
+ false: "",
361
+ },
362
+ invalid: {
363
+ true: [
364
+ "border-red-600",
365
+ "active:ring-red-700",
366
+ "focus:ring-red-700",
367
+ "group-focus:ring-2",
368
+ "group-focus:ring-offset-2",
369
+ ],
370
+ false: "",
371
+ },
372
+ state: {
373
+ selected: [
374
+ "bg-blue-600",
375
+ "border-blue-600",
376
+ "hover:bg-blue-700",
377
+ "hover:border-blue-700",
378
+ "active:bg-blue-700",
379
+ "focus:bg-blue-700",
380
+ "group-hover:bg-blue-700",
381
+ "group-hover:border-blue-700",
382
+ "group-focus:bg-blue-700",
383
+ "group-focus:border-blue-700",
384
+ ],
385
+ deselected: ["group-hover:bg-slate-100"],
386
+ indeterminate: [
387
+ "bg-blue-600",
388
+ "border-blue-600",
389
+ "hover:bg-blue-700",
390
+ "hover:border-blue-700",
391
+ "focus:bg-blue-800",
392
+ "focus:border-blue-800",
393
+ "active:bg-blue-800",
394
+ "active:border-blue-800",
395
+ "group-hover:bg-blue-700",
396
+ "group-hover:border-blue-700",
397
+ "group-focus:bg-blue-800",
398
+ "group-focus:border-blue-800",
399
+ ],
400
+ },
401
+ },
402
+ compoundVariants: [
403
+ {
404
+ state: "selected",
405
+ invalid: true,
406
+ className: [
407
+ "bg-red-600",
408
+ "border-red-600",
409
+ "hover:bg-red-700",
410
+ "hover:border-red-700",
411
+ "group-hover:bg-red-700",
412
+ "group-hover:border-red-700",
413
+ "active:bg-red-700",
414
+ "active:ring-red-700",
415
+ "group-active:bg-red-700",
416
+ "group-active:border-red-700",
417
+ "group-active:ring-red-700",
418
+ "group-active:ring-2",
419
+ "group-active:ring-offset-2",
420
+ ],
421
+ },
422
+ ],
423
+ defaultVariants: {
424
+ state: "deselected",
425
+ }
426
+ });
427
+ const cvaCheckboxContainer = cssClassVarianceUtilities.cvaMerge([
428
+ "grid",
429
+ "outline-none",
430
+ "grid-cols-min-fr",
431
+ "items-center",
432
+ "gap-2",
433
+ "group",
434
+ ]);
435
+ const cvaCheckboxInput = cssClassVarianceUtilities.cvaMerge(["absolute", "opacity-0", "m-0", "pointer-events-none", "hidden"]);
436
+ const cvaCheckboxIcon = cssClassVarianceUtilities.cvaMerge(["w-2.5", "h-2.5", "text-white"]);
437
+
193
438
  /**
194
439
  * The IndeterminateIcon component is used by the checkbox to display the Indeterminate state.
195
440
  *
@@ -213,8 +458,8 @@ const IndeterminateIcon = ({ className }) => (jsxRuntime.jsx("svg", { xmlns: "ht
213
458
  * @returns {JSX.Element} Checkbox component
214
459
  */
215
460
  const Checkbox = React__namespace.forwardRef((_a, ref) => {
216
- var { className, dataTestId, onChange, checked = false, disabled = false, isInvalid = false, readOnly, indeterminate = false, suffix, label, tabIndex = 0 } = _a, rest = __rest(_a, ["className", "dataTestId", "onChange", "checked", "disabled", "isInvalid", "readOnly", "indeterminate", "suffix", "label", "tabIndex"]);
217
- const icon = indeterminate ? jsxRuntime.jsx(StyledIndeterminateIcon, {}) : checked && jsxRuntime.jsx(StyledCheckIcon, {});
461
+ var { className, dataTestId = "checkbox", onChange, checked = false, disabled = false, isInvalid = false, readOnly, indeterminate = false, suffix, label, tabIndex = 0 } = _a, rest = __rest(_a, ["className", "dataTestId", "onChange", "checked", "disabled", "isInvalid", "readOnly", "indeterminate", "suffix", "label", "tabIndex"]);
462
+ const icon = indeterminate ? (jsxRuntime.jsx(IndeterminateIcon, { className: cvaCheckboxIcon() })) : (checked && jsxRuntime.jsx(CheckIcon, { className: cvaCheckboxIcon() }));
218
463
  const internalRef = React__namespace.useRef(null);
219
464
  const isReadonly = disabled || readOnly;
220
465
  const onKeyPress = e => {
@@ -228,32 +473,16 @@ const Checkbox = React__namespace.forwardRef((_a, ref) => {
228
473
  }
229
474
  };
230
475
  const uuid = rest.id || dataTestId;
231
- return (jsxRuntime.jsxs(CheckboxContainer, { "data-testid": dataTestId && `${dataTestId}Container`, htmlFor: uuid, className: className, ref: internalRef, onKeyPress: onKeyPress, children: [jsxRuntime.jsx(HiddenInput$1, Object.assign({ type: "checkbox", checked: !indeterminate && checked, onChange: onChange, disabled: disabled, "data-testid": dataTestId, readOnly: readOnly, "aria-checked": !indeterminate && checked, role: "checkbox", id: uuid }, rest, { ref: ref })), jsxRuntime.jsx(CheckboxWrapper, { id: uuid, "$disabled": isReadonly, "$checked": checked, "$indeterminate": indeterminate, "$isInvalid": isReadonly ? false : isInvalid, tabIndex: isReadonly ? -1 : tabIndex, children: icon }), label && (jsxRuntime.jsx(Label$2, { className: tailwindStyledComponents.tws `cursor-pointer`, "$disabled": isReadonly, "$isInvalid": isReadonly ? false : isInvalid, children: label })), suffix] }));
476
+ return (jsxRuntime.jsxs("label", { "data-testid": dataTestId && `${dataTestId}-container`, htmlFor: uuid, className: cvaCheckboxContainer({ className }), ref: internalRef, onKeyPress: onKeyPress, children: [jsxRuntime.jsx("input", Object.assign({ type: "checkbox", className: cvaCheckboxInput(), checked: !indeterminate && checked, onChange: onChange, disabled: disabled, "data-testid": dataTestId, readOnly: readOnly, "aria-checked": !indeterminate && checked, id: uuid }, rest, { ref: ref })), jsxRuntime.jsx("span", { id: uuid, tabIndex: isReadonly ? -1 : tabIndex, className: cvaCheckbox({
477
+ disabled: isReadonly,
478
+ invalid: isReadonly ? false : isInvalid,
479
+ state: indeterminate ? "indeterminate" : checked ? "selected" : "deselected",
480
+ }), children: icon }), label && (jsxRuntime.jsx("span", { className: cvaLabel({
481
+ invalid: isReadonly ? false : isInvalid,
482
+ disabled: isReadonly,
483
+ className: "cursor-pointer",
484
+ }), children: label })), suffix] }));
232
485
  });
233
- const StyledCheckIcon = tailwindStyledComponents.twx(CheckIcon) `tu-checkbox--icon`;
234
- const StyledIndeterminateIcon = tailwindStyledComponents.twx(IndeterminateIcon) `tu-checkbox--icon`;
235
- const CheckboxContainer = tailwindStyledComponents.tw.label `tu-checkbox--container group`;
236
- const HiddenInput$1 = tailwindStyledComponents.tw.input `tu-checkbox--input`;
237
- const CheckboxWrapper = tailwindStyledComponents.tw.span `
238
- tu-checkbox
239
- ${({ $checked, $disabled, $indeterminate }) => {
240
- if ($disabled) {
241
- return tailwindStyledComponents.tws `tu-checkbox--disabled`;
242
- }
243
- return $indeterminate
244
- ? tailwindStyledComponents.tws `tu-checkbox--indeterminate`
245
- : $checked
246
- ? tailwindStyledComponents.tws `tu-checkbox--selected`
247
- : tailwindStyledComponents.tws `tu-checkbox--deselected`;
248
- }}
249
-
250
- ${({ $isInvalid }) => $isInvalid && tailwindStyledComponents.tws `tu-checkbox--invalid`}
251
- `;
252
- const Label$2 = tailwindStyledComponents.tw.span `
253
- tu-label
254
- ${({ $disabled }) => $disabled && tailwindStyledComponents.tws `tu-label--disabled`}
255
- ${({ $isInvalid }) => $isInvalid && tailwindStyledComponents.tws `tu-label--invalid`}
256
- `;
257
486
 
258
487
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
259
488
  // require the crypto API and do not support built-in fallback to lower quality random number
@@ -2704,14 +2933,28 @@ const DateInput = React.forwardRef((_a, ref) => {
2704
2933
  * @param {LabelProps} props - The props for the Label component
2705
2934
  * @returns {JSX.Element} Label component
2706
2935
  */
2707
- const Label$1 = ({ id, htmlFor, children, className, dataTestId, disabled, isInvalid, }) => {
2708
- return (jsxRuntime.jsx(Root$2, { id: id || "", htmlFor: htmlFor || "", className: className, "data-testid": dataTestId, "$disabled": disabled, "$isInvalid": isInvalid, children: children }));
2936
+ const Label = ({ id, htmlFor, children, className, dataTestId, disabled, isInvalid, }) => {
2937
+ return (jsxRuntime.jsx("label", { id: id || "", htmlFor: htmlFor || "", className: cvaLabel({ invalid: isInvalid, disabled, className }), "data-testid": dataTestId, children: children }));
2709
2938
  };
2710
- const Root$2 = tailwindStyledComponents.tw.label `
2711
- tu-label
2712
- ${({ $disabled }) => $disabled && tailwindStyledComponents.tws `tu-label--disabled`}
2713
- ${({ $isInvalid }) => $isInvalid && tailwindStyledComponents.tws `tu-label--invalid`}
2714
- `;
2939
+
2940
+ const cvaFormGroup = cssClassVarianceUtilities.cvaMerge(["component-formGroup-gap"], {
2941
+ variants: {
2942
+ disabled: {
2943
+ true: "pointer-events-none",
2944
+ false: "",
2945
+ },
2946
+ },
2947
+ });
2948
+ const cvaFormGroupContainerBefore = cssClassVarianceUtilities.cvaMerge(["flex", "gap-1", "mb-1"]);
2949
+ const cvaFormGroupContainerAfter = cssClassVarianceUtilities.cvaMerge(["flex", "justify-between", "mt-1", "text-xs", "text-slate-500"], {
2950
+ variants: {
2951
+ invalid: {
2952
+ true: "text-danger-500",
2953
+ false: "",
2954
+ },
2955
+ },
2956
+ });
2957
+ const cvaHelpAddon = cssClassVarianceUtilities.cvaMerge(["ml-auto"]);
2715
2958
 
2716
2959
  /**
2717
2960
  * The FormGroup component should be used to wrap any Input element that needs a label.
@@ -2721,27 +2964,8 @@ ${({ $isInvalid }) => $isInvalid && tailwindStyledComponents.tws `tu-label--inva
2721
2964
  * @returns {JSX.Element} FormGroup component
2722
2965
  */
2723
2966
  const FormGroup = ({ isInvalid, helpText, helpAddon, tip, className, dataTestId, label, htmlFor, children, disabled = false, }) => {
2724
- return (jsxRuntime.jsxs(FormGroupRoot, { className: className, "data-testid": dataTestId, "$disabled": disabled, children: [jsxRuntime.jsxs(ContainerBefore, { children: [jsxRuntime.jsx(FormGroupLabel, { dataTestId: dataTestId && `${dataTestId}-label`, htmlFor: htmlFor, id: htmlFor + "-label", children: label }), tip && jsxRuntime.jsx(reactComponents.Tip, { dataTestId: dataTestId && `${dataTestId}-tip`, children: tip })] }), children, jsxRuntime.jsxs(ContainerAfter, { "$isInvalid": isInvalid, children: [helpText && jsxRuntime.jsx("span", { "data-testid": dataTestId && `${dataTestId}-helpText`, children: helpText }), helpAddon && jsxRuntime.jsx(HelpAddon, { "data-testid": dataTestId && `${dataTestId}-helpAddon`, children: helpAddon })] })] }));
2967
+ return (jsxRuntime.jsxs("div", { className: cvaFormGroup({ disabled, className }), "data-testid": dataTestId, children: [jsxRuntime.jsxs("div", { className: cvaFormGroupContainerBefore({ className }), children: [jsxRuntime.jsx(Label, { className: "component-formGroup-font", dataTestId: dataTestId && `${dataTestId}-label`, htmlFor: htmlFor, id: htmlFor + "-label", children: label }), tip && jsxRuntime.jsx(reactComponents.Tip, { dataTestId: dataTestId && `${dataTestId}-tip`, children: tip })] }), children, jsxRuntime.jsxs("div", { className: cvaFormGroupContainerAfter({ invalid: isInvalid }), children: [helpText && jsxRuntime.jsx("span", { "data-testid": dataTestId && `${dataTestId}-helpText`, children: helpText }), helpAddon && (jsxRuntime.jsx("span", { className: cvaHelpAddon(), "data-testid": dataTestId && `${dataTestId}-helpAddon`, children: helpAddon }))] })] }));
2725
2968
  };
2726
- const FormGroupRoot = tailwindStyledComponents.tw.div `
2727
- tu-form-group
2728
- ${({ $disabled }) => {
2729
- return $disabled ? "pointer-events-none" : null;
2730
- }}
2731
- `;
2732
- const ContainerBefore = tailwindStyledComponents.tw.div `
2733
- tu-form-group__container-before
2734
- `;
2735
- const FormGroupLabel = tailwindStyledComponents.twx(Label$1) `
2736
- component-formGroup-font
2737
- `;
2738
- const ContainerAfter = tailwindStyledComponents.tw.div `
2739
- tu-form-group__container-after
2740
- ${({ $isInvalid }) => ($isInvalid ? tailwindStyledComponents.tws `tu-form-group__container-after--invalid` : null)}
2741
- `;
2742
- const HelpAddon = tailwindStyledComponents.tw.span `
2743
- tu-form-group__help-addon
2744
- `;
2745
2969
 
2746
2970
  /**
2747
2971
  * The date field component is used for entering date values.
@@ -2757,6 +2981,45 @@ const DateField = React.forwardRef((_a, ref) => {
2757
2981
  return (jsxRuntime.jsx(FormGroup, { htmlFor: htmlForId, label: label, tip: tip, isInvalid: renderAsInvalid, helpText: (renderAsInvalid && errorMessage) || helpText, helpAddon: helpAddon, disabled: rest.disabled, dataTestId: dataTestId && `${dataTestId}-FormGroup`, children: jsxRuntime.jsx(DateInput, Object.assign({ id: htmlForId, "aria-labelledby": htmlForId + "-label", ref: ref, defaultValue: defaultValue, isInvalid: renderAsInvalid }, rest, { className: className, dataTestId: dataTestId })) }));
2758
2982
  });
2759
2983
 
2984
+ const cvaDropZone = cssClassVarianceUtilities.cvaMerge([
2985
+ "flex",
2986
+ "component-baseInput-background",
2987
+ "justify-center",
2988
+ "text-slate-500",
2989
+ "rounded-sm",
2990
+ "border-2",
2991
+ "border-gray-200",
2992
+ "border-dashed",
2993
+ "hover:bg-slate-100",
2994
+ "hover:border-solid",
2995
+ "hover:border-primary-500",
2996
+ ], {
2997
+ variants: {
2998
+ size: {
2999
+ small: ["p-2"],
3000
+ medium: ["p-4"],
3001
+ large: ["p-8"],
3002
+ },
3003
+ disabled: { true: ["bg-slate-100", "hover:bg-slate-100"], false: "" },
3004
+ dragActive: { true: ["border-gray-200", "bg-slate-100"], false: "" },
3005
+ dropComplete: {
3006
+ true: ["border-solid", "border-primary-500", "bg-slate-100", "hover:border-solid", "hover:border-gray-200"],
3007
+ false: "",
3008
+ },
3009
+ invalid: { true: ["border-danger-600", "text-danger-500"], false: "" },
3010
+ },
3011
+ });
3012
+ const cvaDropZoneLabel = cssClassVarianceUtilities.cvaMerge([
3013
+ "h-full",
3014
+ "pt-1",
3015
+ "pb-1",
3016
+ "gap-2",
3017
+ "items-center",
3018
+ "flex-col",
3019
+ "flex",
3020
+ "justify-center",
3021
+ ]);
3022
+
2760
3023
  /**
2761
3024
  * The Drop Zone can be used to drag and drop files
2762
3025
  *
@@ -2796,26 +3059,13 @@ const DropZone = (_a) => {
2796
3059
  setFileDropped(true);
2797
3060
  }
2798
3061
  };
2799
- return (jsxRuntime.jsxs(Root$1, Object.assign({ "$disabled": disabled, "$isInvalid": isInvalid, "$dragActive": dragActive, "$fileDropped": fileDropped, "$size": size, className: className, "data-testid": dataTestId, onDragEnter: handleDrag, onDragLeave: handleDrag, onDragOver: handleDrag, onDrop: handleDrop, onClick: e => {
3062
+ return (jsxRuntime.jsxs("div", Object.assign({ className: cvaDropZone({ size, dropComplete: fileDropped, dragActive, disabled, invalid: isInvalid, className }), "data-testid": dataTestId, onDragEnter: handleDrag, onDragLeave: handleDrag, onDragOver: handleDrag, onDrop: handleDrop, onClick: e => {
2800
3063
  if (disabled) {
2801
3064
  e.preventDefault();
2802
3065
  e.stopPropagation();
2803
3066
  }
2804
- } }, rest, { children: [jsxRuntime.jsx("input", { title: "Hidden File Input", type: "file", id: "input-file-upload", onChange: handleChange, className: "hidden" }), jsxRuntime.jsxs(DropZoneLabel, { htmlFor: "input-file-upload", "data-testid": dataTestId && `${dataTestId}-label`, children: [jsxRuntime.jsx(reactComponents.Icon, { type: "solid", name: "ArrowUpCircleIcon", color: isInvalid ? "danger" : "neutral", style: !isInvalid ? { color: "rgb(156 163 175)" } : {} }), jsxRuntime.jsx("span", { children: label })] })] })));
2805
- };
2806
- const Root$1 = tailwindStyledComponents.tw.div `
2807
- tu-drop-zone
2808
- ${({ $size }) => ($size === "small" ? tailwindStyledComponents.tws `tu-drop-zone--small` : null)}
2809
- ${({ $size }) => ($size === "medium" ? tailwindStyledComponents.tws `tu-drop-zone--medium` : null)}
2810
- ${({ $size }) => ($size === "large" ? tailwindStyledComponents.tws `tu-drop-zone--large` : null)}
2811
- ${({ $dragActive }) => ($dragActive ? tailwindStyledComponents.tws `tu-drop-zone--drag-active` : null)}
2812
- ${({ $fileDropped }) => ($fileDropped ? tailwindStyledComponents.tws `tu-drop-zone--drop-complete` : null)}
2813
- ${({ $isInvalid }) => ($isInvalid ? tailwindStyledComponents.tws `tu-drop-zone--invalid` : null)}
2814
- ${({ $disabled }) => ($disabled ? tailwindStyledComponents.tws `tu-drop-zone--disabled` : null)}
2815
- `;
2816
- const DropZoneLabel = tailwindStyledComponents.tw.label `
2817
- tu-drop-zone__label
2818
- `;
3067
+ } }, rest, { children: [jsxRuntime.jsx("input", { title: "Hidden File Input", type: "file", id: "input-file-upload", onChange: handleChange, className: "hidden" }), jsxRuntime.jsxs("label", { className: cvaDropZoneLabel(), htmlFor: "input-file-upload", "data-testid": dataTestId && `${dataTestId}-label`, children: [jsxRuntime.jsx(reactComponents.Icon, { type: "solid", name: "ArrowUpCircleIcon", color: isInvalid ? "danger" : "neutral", style: !isInvalid ? { color: "rgb(156 163 175)" } : {} }), jsxRuntime.jsx("span", { children: label })] })] })));
3068
+ };
2819
3069
 
2820
3070
  /**
2821
3071
  * A Email Input component is used for input of the type Email.
@@ -2877,39 +3127,40 @@ const NumberField = React.forwardRef((_a, ref) => {
2877
3127
  return (jsxRuntime.jsx(FormGroup, { htmlFor: htmlForId, label: label, tip: tip, isInvalid: renderAsInvalid, helpText: (renderAsInvalid && errorMessage) || helpText, helpAddon: helpAddon, dataTestId: dataTestId && `${dataTestId}-FormGroup`, children: jsxRuntime.jsx(NumberInput, Object.assign({ id: htmlForId, "aria-labelledby": htmlForId + "-label", ref: ref, maxLength: maxLength, value: value, isInvalid: renderAsInvalid }, rest, { className: className, dataTestId: dataTestId })) }));
2878
3128
  });
2879
3129
 
3130
+ const cvaOptionCardLabel = cssClassVarianceUtilities.cvaMerge([
3131
+ cvaInputBase(),
3132
+ "text-center",
3133
+ "component-baseInput-background",
3134
+ "aspect-square",
3135
+ "flex",
3136
+ "flex-col",
3137
+ "gap-2",
3138
+ "justify-center",
3139
+ "items-center",
3140
+ "p-6",
3141
+ "w-full",
3142
+ "peer-checked:bg-primary-50",
3143
+ "peer-checked:border-primary-600",
3144
+ "peer-checked:border-2",
3145
+ ], {
3146
+ variants: {
3147
+ disabled: {
3148
+ true: [cvaInputBaseDisabled(), "cursor-not-allowed"],
3149
+ false: ["cursor-pointer"],
3150
+ },
3151
+ },
3152
+ });
3153
+ const cvaOptionCardContent = cssClassVarianceUtilities.cvaMerge(["flex", "flex-col", "items-center"]);
3154
+ const cvaOptionCardContainer = cssClassVarianceUtilities.cvaMerge(["contents"]);
3155
+
2880
3156
  /**
2881
3157
  * A card version of a radio button that includes an icon, headings and a description.
2882
3158
  */
2883
3159
  const OptionCard = React.forwardRef((_a, ref) => {
2884
3160
  var { icon, heading, subheading, description, disabled, id, value, className, dataTestId } = _a, rest = __rest(_a, ["icon", "heading", "subheading", "description", "disabled", "id", "value", "className", "dataTestId"]);
2885
3161
  const htmlForId = id !== null && id !== void 0 ? id : "option-card-" + v4();
2886
- return (jsxRuntime.jsxs(Container$3, { "data-testid": dataTestId, children: [jsxRuntime.jsx("input", Object.assign({ ref: ref, id: htmlForId, type: "radio", value: value, className: "hidden peer" }, rest)), jsxRuntime.jsxs(Label, { htmlFor: htmlForId, className: className, "$disabled": disabled, children: [disabled && icon && React.cloneElement(icon, { className: `${icon.props.className} text-secondary-400` }), !disabled && icon, heading && (jsxRuntime.jsx(reactComponents.Heading, { variant: "secondary", subtle: disabled, children: heading })), (subheading || description) && (jsxRuntime.jsxs(Content, { children: [subheading && (jsxRuntime.jsx(reactComponents.Text, { weight: "thick", align: "center", subtle: disabled, children: subheading })), description && (jsxRuntime.jsx(reactComponents.Text, { subtle: true, align: "center", children: description }))] }))] })] }));
3162
+ return (jsxRuntime.jsxs("div", { "data-testid": dataTestId, className: cvaOptionCardContainer(), children: [jsxRuntime.jsx("input", Object.assign({ ref: ref, id: htmlForId, type: "radio", value: value, className: "hidden peer" }, rest)), jsxRuntime.jsxs("label", { htmlFor: htmlForId, className: cvaOptionCardLabel({ className, disabled }), children: [disabled && icon && React.cloneElement(icon, { className: `${icon.props.className} text-secondary-400` }), !disabled && icon, heading && (jsxRuntime.jsx(reactComponents.Heading, { variant: "secondary", subtle: disabled, children: heading })), (subheading || description) && (jsxRuntime.jsxs("div", { className: cvaOptionCardContent(), children: [subheading && (jsxRuntime.jsx(reactComponents.Text, { weight: "thick", align: "center", subtle: disabled, children: subheading })), description && (jsxRuntime.jsx(reactComponents.Text, { subtle: true, align: "center", children: description }))] }))] })] }));
2887
3163
  });
2888
- const Container$3 = tailwindStyledComponents.tw.div `
2889
- contents
2890
- `;
2891
- const Label = tailwindStyledComponents.tw.label `
2892
- tu-input-base
2893
- text-center
2894
- ${p => (p.$disabled ? "tu-input--disabled" : "")}
2895
- ${p => (p.$disabled ? "cursor-not-allowed" : "cursor-pointer")}
2896
- aspect-square
2897
- flex
2898
- flex-col
2899
- gap-2
2900
- justify-center
2901
- items-center
2902
- p-6
2903
- w-full
2904
- peer-checked:bg-primary-50
2905
- peer-checked:border-primary-600
2906
- peer-checked:border-2
2907
- `;
2908
- const Content = tailwindStyledComponents.tw.div `
2909
- flex
2910
- flex-col
2911
- items-center
2912
- `;
2913
3164
 
2914
3165
  // This file is a workaround for a bug in web browsers' "native"
2915
3166
  // ES6 importing system which is uncapable of importing "*.json" files.
@@ -10241,7 +10492,7 @@ var containerCSS = function containerCSS(_ref) {
10241
10492
  position: 'relative'
10242
10493
  };
10243
10494
  };
10244
- var SelectContainer$2 = function SelectContainer(props) {
10495
+ var SelectContainer$1 = function SelectContainer(props) {
10245
10496
  var children = props.children,
10246
10497
  innerProps = props.innerProps,
10247
10498
  isDisabled = props.isDisabled,
@@ -10630,7 +10881,7 @@ var inputStyle = function inputStyle(isHidden) {
10630
10881
  width: '100%'
10631
10882
  }, spacingStyle);
10632
10883
  };
10633
- var Input$1 = function Input(props) {
10884
+ var Input = function Input(props) {
10634
10885
  var cx = props.cx,
10635
10886
  value = props.value;
10636
10887
  var _cleanCommonProps = cleanCommonProps(props),
@@ -10652,7 +10903,7 @@ var Input$1 = function Input(props) {
10652
10903
  disabled: isDisabled
10653
10904
  }, innerProps)));
10654
10905
  };
10655
- var Input$1$1 = Input$1;
10906
+ var Input$1 = Input;
10656
10907
 
10657
10908
  var multiValueCSS = function multiValueCSS(_ref, unstyled) {
10658
10909
  var _ref$theme = _ref.theme,
@@ -10863,7 +11114,7 @@ var components = {
10863
11114
  GroupHeading: GroupHeading,
10864
11115
  IndicatorsContainer: IndicatorsContainer,
10865
11116
  IndicatorSeparator: IndicatorSeparator,
10866
- Input: Input$1$1,
11117
+ Input: Input$1,
10867
11118
  LoadingIndicator: LoadingIndicator,
10868
11119
  Menu: Menu$1,
10869
11120
  MenuList: MenuList,
@@ -10876,7 +11127,7 @@ var components = {
10876
11127
  MultiValueRemove: MultiValueRemove,
10877
11128
  Option: Option$1,
10878
11129
  Placeholder: Placeholder$1,
10879
- SelectContainer: SelectContainer$2,
11130
+ SelectContainer: SelectContainer$1,
10880
11131
  SingleValue: SingleValue$1,
10881
11132
  ValueContainer: ValueContainer
10882
11133
  };
@@ -13719,25 +13970,69 @@ var CreatableSelect$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {
13719
13970
  });
13720
13971
  var CreatableSelect$1$1 = CreatableSelect$1;
13721
13972
 
13973
+ const cvaSelect = cssClassVarianceUtilities.cvaMerge([
13974
+ "relative",
13975
+ "flex",
13976
+ "shadow-sm",
13977
+ "rounded-lg",
13978
+ "border",
13979
+ "border-slate-300",
13980
+ "focus-within:ring-2",
13981
+ "focus-within:ring-offset-2",
13982
+ "focus-within:ring-offset-white",
13983
+ "focus-within:ring-primary-600",
13984
+ "focus-within:border-slate-400",
13985
+ "hover:border-slate-400",
13986
+ "hover:bg-slate-50",
13987
+ "bg-white",
13988
+ "transition",
13989
+ ], {
13990
+ variants: {
13991
+ invalid: {
13992
+ true: "border-red-600 text-red-600 hover:border-red-600 focus-within:ring-red-600",
13993
+ false: "",
13994
+ },
13995
+ disabled: {
13996
+ true: "!bg-slate-100",
13997
+ false: "",
13998
+ },
13999
+ },
14000
+ defaultVariants: {
14001
+ invalid: false,
14002
+ disabled: false,
14003
+ },
14004
+ });
14005
+ const cvaSelectIcon = cssClassVarianceUtilities.cvaMerge("flex justify-center items-center text-slate-400 hover:text-slate-500 mr-2 cursor-pointer");
14006
+ const cvaSelectPrefix = cssClassVarianceUtilities.cvaMerge(["flex", "justify-center", "items-center", "text-slate-400", "pl-2"]);
14007
+ const cvaSelectXIcon = cssClassVarianceUtilities.cvaMerge([
14008
+ "flex justify-center items-center text-slate-400 hover:text-slate-500 mr-2 cursor-pointer",
14009
+ "ml-1",
14010
+ ]);
14011
+ const cvaSelectMenuList = cssClassVarianceUtilities.cvaMerge(["min-w-min", "shadow-md", "rounded-lg", "z-20", "bg-white", "p-1", "border", "border-slate-300", "gap-1", "grid"], {
14012
+ variants: {
14013
+ menuIsOpen: {
14014
+ true: "animate-fade-in-fast",
14015
+ false: "animate-fade-out-fast",
14016
+ },
14017
+ },
14018
+ });
14019
+ const cvaSelectDynamicTagContainer = cssClassVarianceUtilities.cvaMerge(["h-full", "flex", "gap-1", "items-center"], {
14020
+ variants: {
14021
+ visible: { true: "visible", false: "invisible" },
14022
+ },
14023
+ });
14024
+ const cvaSelectCounter = cssClassVarianceUtilities.cvaMerge(["overflow-hidden", "whitespace-nowrap"]);
14025
+ const cvaSelectMenu = cssClassVarianceUtilities.cvaMerge(["relative", "p-1", "grid", "gap-1"]);
14026
+
13722
14027
  /**
13723
14028
  * The SelectContainer component.
13724
14029
  *
13725
14030
  * @param {SelectContainerProps} props - The props for the SelectContainer component
13726
14031
  * @returns {JSX.Element} SelectContainer component
13727
14032
  */
13728
- const SelectContainer$1 = ({ children, label, hideLabel, id, hasError, error, description, info, dataTestId, isDisabled, }) => {
13729
- return (jsxRuntime.jsxs(Container$2, { "data-testid": dataTestId, "$hasError": hasError, "$isDisabled": isDisabled, children: [label && !hideLabel && jsxRuntime.jsx(Label$1, { htmlFor: id, children: label }), children, (hasError || info) && (jsxRuntime.jsx(InformativeText, { size: "small", "$hasError": hasError !== null && hasError !== void 0 ? hasError : false, children: hasError ? error : info }))] }));
14033
+ const SelectContainer = ({ children, label, hideLabel, id, hasError, error, description, info, dataTestId, isDisabled, }) => {
14034
+ return (jsxRuntime.jsxs("label", { className: cvaSelect({ invalid: hasError, disabled: isDisabled }), "data-testid": dataTestId, children: [label && !hideLabel && jsxRuntime.jsx(Label, { htmlFor: id, children: label }), children, (hasError || info) && jsxRuntime.jsx(reactComponents.Text, { size: "small", children: hasError ? error : info })] }));
13730
14035
  };
13731
- const Container$2 = tailwindStyledComponents.tw.label `
13732
- tu-select__container
13733
- tu-select
13734
- ${({ $hasError }) => ($hasError ? tailwindStyledComponents.tws `tu-select--invalid` : null)}
13735
- ${({ $isDisabled }) => ($isDisabled ? tailwindStyledComponents.tws `tu-select--disabled` : null)}
13736
- `;
13737
- const InformativeText = tailwindStyledComponents.twx(reactComponents.Text) `
13738
- tu-informative-text
13739
- ${p => (p.$hasError ? `tu-informative-text--error` : null)}
13740
- `;
13741
14036
 
13742
14037
  /**
13743
14038
  * @param {MultiValue<Option> | SingleValue<Option>} arg option to check type
@@ -13786,9 +14081,6 @@ const getOrderedOptions = (options, value) => {
13786
14081
  }
13787
14082
  return options || [];
13788
14083
  };
13789
- const SelectPrefix = tailwindStyledComponents.tw.div `
13790
- tu-select__prefix
13791
- `;
13792
14084
 
13793
14085
  /**
13794
14086
  * A single select menu item is a basic wrapper around Menu item designed to be used as a single value render in Select list
@@ -13868,7 +14160,7 @@ const TagsContainer = ({ items, width = "100%", itemsGap = 5, postFix, disabled
13868
14160
  const isLast = index === items.length;
13869
14161
  const counterRequired = requiredSpace > availableSpace && counter !== 0;
13870
14162
  if (isLast && counterRequired) {
13871
- return (jsxRuntime.jsx(TagWithWidth, { onWidthKnown: ({ width: reportedWidth }) => setCounterWidth(reportedWidth), color: "neutral", disabled: disabled, children: jsxRuntime.jsxs(Counter, { children: ["+", counter] }) }, item.text + index));
14163
+ return (jsxRuntime.jsx(TagWithWidth, { onWidthKnown: ({ width: reportedWidth }) => setCounterWidth(reportedWidth), color: "neutral", disabled: disabled, children: jsxRuntime.jsxs("div", { "data-testid": "select-counter", className: cvaSelectCounter(), children: ["+", counter] }) }, item.text + index));
13872
14164
  }
13873
14165
  if (isLast) {
13874
14166
  return null;
@@ -13887,19 +14179,10 @@ const TagsContainer = ({ items, width = "100%", itemsGap = 5, postFix, disabled
13887
14179
  return null;
13888
14180
  })
13889
14181
  .filter(element => element !== null);
13890
- return (jsxRuntime.jsxs(Container$1, { style: {
14182
+ return (jsxRuntime.jsxs("div", { style: {
13891
14183
  width: `${width}`,
13892
- }, "$ready": isReady, ref: containerRef, children: [renderedElements, postFix] }));
14184
+ }, className: cvaSelectDynamicTagContainer({ visible: isReady }), ref: containerRef, children: [renderedElements, postFix] }));
13893
14185
  };
13894
- const Container$1 = tailwindStyledComponents.tw.div `
13895
- tu-select__dynamic-tag--container
13896
- ${({ $ready }) => {
13897
- return $ready ? tailwindStyledComponents.tws `visible` : tailwindStyledComponents.tws `invisible`;
13898
- }}
13899
- `;
13900
- const Counter = tailwindStyledComponents.tw.div `
13901
- tu-select__counter
13902
- `;
13903
14186
 
13904
14187
  /**
13905
14188
  * A hook to retrieve components override object.
@@ -13943,7 +14226,7 @@ const useCustomComponents = (componentsProps, disabled, menuIsOpen, refMenuIsEna
13943
14226
  : [], postFix: searchInput, disabled: disabled })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [tags &&
13944
14227
  tags.slice(0, maxSelectedDisplayCount).map(({ props: tagProps }) => {
13945
14228
  var _a, _b;
13946
- return (jsxRuntime.jsx(reactComponents.Tag, { className: tailwindStyledComponents.tws `shrink-0 inline-flex`, onClose: e => {
14229
+ return (jsxRuntime.jsx(reactComponents.Tag, { className: "shrink-0 inline-flex", onClose: e => {
13947
14230
  var _a, _b;
13948
14231
  e.stopPropagation();
13949
14232
  refMenuIsEnabled.current = false;
@@ -13953,23 +14236,21 @@ const useCustomComponents = (componentsProps, disabled, menuIsOpen, refMenuIsEna
13953
14236
  }
13954
14237
  return (jsxRuntime.jsx(components.ValueContainer, Object.assign({}, props, { isDisabled: props.selectProps.isDisabled, children: props.children })));
13955
14238
  }, LoadingIndicator: props => {
13956
- return jsxRuntime.jsx(reactComponents.Spinner, { size: "small", className: tailwindStyledComponents.tws `mt-1.5 mr-1` });
14239
+ return jsxRuntime.jsx(reactComponents.Spinner, { size: "small", className: "mt-1.5 mr-1" });
13957
14240
  }, DropdownIndicator: props => {
13958
14241
  const icon = props.selectProps.menuIsOpen ? (jsxRuntime.jsx(reactComponents.Icon, { name: "ChevronUpIcon", size: "medium" })) : (jsxRuntime.jsx(reactComponents.Icon, { name: "ChevronDownIcon", size: "medium" }));
13959
- return props.selectProps.isLoading ? null : (jsxRuntime.jsx(components.DropdownIndicator, Object.assign({}, props, { children: jsxRuntime.jsx(StyledIcon, { children: dropdownIcon ? dropdownIcon : icon }) })));
14242
+ return props.selectProps.isLoading ? null : (jsxRuntime.jsx(components.DropdownIndicator, Object.assign({}, props, { children: jsxRuntime.jsx("div", { className: cvaSelectIcon(), children: dropdownIcon ? dropdownIcon : icon }) })));
13960
14243
  }, IndicatorSeparator: () => null, ClearIndicator: props => {
13961
14244
  if (disabled) {
13962
14245
  return null;
13963
14246
  }
13964
- return (jsxRuntime.jsx(components.ClearIndicator, Object.assign({}, props, { children: jsxRuntime.jsx(XMarkIcon, { onClick: props.clearValue, "data-testid": dataTestId && `${dataTestId}-XMarkIcon`, children: jsxRuntime.jsx(reactComponents.Icon, { name: "XCircleIcon", size: "medium" }) }) })));
14247
+ return (jsxRuntime.jsx(components.ClearIndicator, Object.assign({}, props, { children: jsxRuntime.jsx("div", { className: cvaSelectXIcon(), onClick: props.clearValue, "data-testid": dataTestId && `${dataTestId}-XMarkIcon`, children: jsxRuntime.jsx(reactComponents.Icon, { name: "XCircleIcon", size: "medium" }) }) })));
13965
14248
  }, Control: props => {
13966
- return (jsxRuntime.jsx(components.Control, Object.assign({}, props, { className: props.isDisabled ? tailwindStyledComponents.tws `tu-select__control--disabled` : "" })));
14249
+ return jsxRuntime.jsx(components.Control, Object.assign({}, props, { className: props.isDisabled ? "bg-slate-100" : "" }));
13967
14250
  }, SingleValue: props => {
13968
- return (jsxRuntime.jsx(components.SingleValue, Object.assign({}, props, { className: props.isDisabled ? tailwindStyledComponents.tws `tu-select__single-value--disabled` : "", children: jsxRuntime.jsx("div", { "data-testid": dataTestId + "-singleValue", children: props.children }) })));
14251
+ return (jsxRuntime.jsx(components.SingleValue, Object.assign({}, props, { className: props.isDisabled ? "text-slate-700" : "", children: jsxRuntime.jsx("div", { "data-testid": dataTestId + "-singleValue", children: props.children }) })));
13969
14252
  }, Menu: props => {
13970
- return (jsxRuntime.jsx(components.Menu, Object.assign({}, props, { className: props.selectProps.menuIsOpen
13971
- ? tailwindStyledComponents.tws `tu-select__menu-list animate-fade-in-fast`
13972
- : tailwindStyledComponents.tws `tu-select__menu-list animate-fade-out-fast` })));
14253
+ return (jsxRuntime.jsx(components.Menu, Object.assign({}, props, { className: cvaSelectMenuList({ menuIsOpen: props.selectProps.menuIsOpen }) })));
13973
14254
  }, MenuList: props => {
13974
14255
  return (jsxRuntime.jsx(components.MenuList, Object.assign({}, props, { innerProps: Object.assign(Object.assign({}, props.innerProps), { onScroll: e => {
13975
14256
  const listEl = e.currentTarget;
@@ -13990,13 +14271,6 @@ const useCustomComponents = (componentsProps, disabled, menuIsOpen, refMenuIsEna
13990
14271
  }, [componentsProps, disabled, maxSelectedDisplayCount]); // do not add dropdownIcon (it will cause issue with opening/closing list for selects with custom icon)
13991
14272
  return customComponents;
13992
14273
  };
13993
- const StyledIcon = tailwindStyledComponents.tw.div `
13994
- tu-select--icon
13995
- `;
13996
- const XMarkIcon = tailwindStyledComponents.tw.div `
13997
- tu-select--icon
13998
- tu-select__x-icon
13999
- `;
14000
14274
 
14001
14275
  /**
14002
14276
  * @template IsMulti
@@ -14085,7 +14359,7 @@ const useSelect = (_a) => {
14085
14359
  * @returns {JSX.Element} CreatableSelect component
14086
14360
  */
14087
14361
  const CreatableSelect = (props) => {
14088
- const { id, dataTestId = "select", async, maxMenuHeight = 200, label, error, disabled, isMulti, value, hideLabel, description, info, options, onChange, isLoading, classNamePrefix = "", filterOption, prefix, onInputChange, placeholder, isClearable } = props;
14362
+ const { id, dataTestId = "select", async, maxMenuHeight = 200, label, error, disabled, isMulti, value, hideLabel, description, info, options, onChange, isLoading, classNamePrefix = "", filterOption, prefix, onInputChange, placeholder, isClearable, } = props;
14089
14363
  const hasError = !!error;
14090
14364
  const { refPrefix, customStyles, menuIsOpen, customComponents, menuPlacement, openMenuHandler, closeMenuHandler, orderedOptions, } = useSelect(props);
14091
14365
  const selectProps = {
@@ -14115,7 +14389,7 @@ const CreatableSelect = (props) => {
14115
14389
  isClearable,
14116
14390
  id,
14117
14391
  };
14118
- return (jsxRuntime.jsx(SelectContainer$1, { label: label, hideLabel: hideLabel, id: id, hasError: hasError, error: error, description: description, info: info, dataTestId: dataTestId, isDisabled: disabled, children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [prefix !== undefined && (jsxRuntime.jsx(SelectPrefix, { "data-testid": dataTestId && `${dataTestId}-prefix`, ref: refPrefix, children: prefix })), async ? (jsxRuntime.jsx(AsyncCreatableSelect$1, Object.assign({ "aria-label": label, maxMenuHeight: maxMenuHeight, "data-testid": dataTestId, components: customComponents }, props, { onMenuOpen: () => {
14392
+ return (jsxRuntime.jsx(SelectContainer, { label: label, hideLabel: hideLabel, id: id, hasError: hasError, error: error, description: description, info: info, dataTestId: dataTestId, isDisabled: disabled, children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [prefix !== undefined && (jsxRuntime.jsx("div", { className: cvaSelectPrefix(), "data-testid": dataTestId && `${dataTestId}-prefix`, ref: refPrefix, children: prefix })), async ? (jsxRuntime.jsx(AsyncCreatableSelect$1, Object.assign({ "aria-label": label, maxMenuHeight: maxMenuHeight, "data-testid": dataTestId, components: customComponents }, props, { onMenuOpen: () => {
14119
14393
  !disabled && openMenuHandler();
14120
14394
  }, onMenuClose: () => {
14121
14395
  closeMenuHandler();
@@ -14172,14 +14446,8 @@ const Select = (props) => {
14172
14446
  onMenuScrollToBottom,
14173
14447
  onInputChange,
14174
14448
  };
14175
- return (jsxRuntime.jsxs(SelectContainer, { ref: refContainer, className: className, "data-testid": dataTestId, "$hasError": hasError, "$isDisabled": disabled, "$isReadOnly": readOnly, children: [prefix !== undefined && (jsxRuntime.jsx(SelectPrefix, { "data-testid": dataTestId && `${dataTestId}-prefix`, ref: refPrefix, children: prefix })), async ? (jsxRuntime.jsx(AsyncSelect$1, Object.assign({}, propsNoClassName, selectProps, async, { onMenuOpen: openMenuHandler, onMenuClose: closeMenuHandler }))) : (jsxRuntime.jsx(StateManagedSelect$1, Object.assign({}, propsNoClassName, selectProps, { options: filterOption ? orderedOptions : options, isMulti: isMulti, hideSelectedOptions: false, onMenuOpen: openMenuHandler, onMenuClose: closeMenuHandler })))] }));
14449
+ return (jsxRuntime.jsxs("div", { ref: refContainer, className: cvaSelect({ invalid: hasError, disabled: disabled || readOnly, className }), "data-testid": dataTestId, children: [prefix !== undefined && (jsxRuntime.jsx("div", { className: cvaSelectPrefix(), "data-testid": dataTestId && `${dataTestId}-prefix`, ref: refPrefix, children: prefix })), async ? (jsxRuntime.jsx(AsyncSelect$1, Object.assign({}, propsNoClassName, selectProps, async, { onMenuOpen: openMenuHandler, onMenuClose: closeMenuHandler }))) : (jsxRuntime.jsx(StateManagedSelect$1, Object.assign({}, propsNoClassName, selectProps, { options: filterOption ? orderedOptions : options, isMulti: isMulti, hideSelectedOptions: false, onMenuOpen: openMenuHandler, onMenuClose: closeMenuHandler })))] }));
14176
14450
  };
14177
- const SelectContainer = tailwindStyledComponents.tw.div `
14178
- tu-select
14179
- ${({ $hasError }) => ($hasError ? tailwindStyledComponents.tws `tu-select--invalid` : null)}
14180
- ${({ $isDisabled }) => ($isDisabled ? tailwindStyledComponents.tws `tu-select--disabled` : null)}
14181
- ${({ $isReadOnly }) => ($isReadOnly ? tailwindStyledComponents.tws `tu-select--readonly` : null)}
14182
- `;
14183
14451
  Select.displayName = "Select";
14184
14452
 
14185
14453
  const COUNTRY_CODES_NOT_SUPPORTED_BY_BACKEND = ["53", "98", "211", "247", "249", "383", "850", "963"];
@@ -14294,6 +14562,103 @@ const PhoneField = React.forwardRef((_a, ref) => {
14294
14562
  return (jsxRuntime.jsx(FormGroup, { htmlFor: htmlForId, label: label, tip: tip, isInvalid: renderAsInvalid, helpText: (renderAsInvalid && errorMessage) || helpText, helpAddon: helpAddon, disabled: rest.disabled, className: className, dataTestId: dataTestId && `${dataTestId}-FormGroup`, children: jsxRuntime.jsx(PhoneInput, Object.assign({ id: htmlForId, "aria-labelledby": htmlForId + "-label", value: combinedValue, defaultValue: defaultValue, ref: ref, dataTestId: dataTestId }, rest)) }));
14295
14563
  });
14296
14564
 
14565
+ const cvaRadioGroup = cssClassVarianceUtilities.cvaMerge(["flex", "gap-2", "flex-col", "items-start"], {
14566
+ variants: {
14567
+ layout: {
14568
+ inline: ["flex", "gap-3", "flex-row", "items-center"],
14569
+ },
14570
+ },
14571
+ });
14572
+ const cvaRadioItem = cssClassVarianceUtilities.cvaMerge([
14573
+ "w-4",
14574
+ "h-4",
14575
+ "appearance-none",
14576
+ "rounded-3xl",
14577
+ "bg-white",
14578
+ "border-solid",
14579
+ "border",
14580
+ "border-slate-300",
14581
+ "shadow-sm",
14582
+ "shrink-0",
14583
+ "transition",
14584
+ "box-border",
14585
+ "hover:cursor-pointer",
14586
+ "hover:bg-slate-100",
14587
+ "focus:ring-2",
14588
+ "focus:ring-offset-2",
14589
+ "focus:ring-blue-700",
14590
+ ], {
14591
+ variants: {
14592
+ checked: {
14593
+ true: [
14594
+ "border-solid",
14595
+ "border-4",
14596
+ "border-blue-600",
14597
+ "bg-white",
14598
+ "hover:bg-slate-100",
14599
+ "hover:cursor-pointer",
14600
+ "outline-0",
14601
+ "active:bg-slate-200",
14602
+ "active:ring-2",
14603
+ "active:ring-offset-2",
14604
+ "active:ring-blue-700",
14605
+ "focus:bg-slate-200",
14606
+ "focus:ring-2",
14607
+ "focus:ring-offset-2",
14608
+ "focus:ring-blue-700",
14609
+ "group-active:ring-2",
14610
+ "group-active:ring-offset-2",
14611
+ "group-active:ring-blue-700",
14612
+ ],
14613
+ false: "",
14614
+ },
14615
+ invalid: {
14616
+ true: [
14617
+ "border-red-600",
14618
+ "active:ring-red-700",
14619
+ "focus:ring-red-700",
14620
+ "group-focus:ring-2",
14621
+ "group-focus:ring-offset-2",
14622
+ ],
14623
+ false: "",
14624
+ },
14625
+ disabled: {
14626
+ true: [
14627
+ "bg-slate-400",
14628
+ "border-slate-300",
14629
+ "cursor-not-allowed",
14630
+ "group-hover:bg-slate-400",
14631
+ "group-focus:bg-slate-400",
14632
+ "hover:bg-slate-400",
14633
+ "focus:bg-slate-400",
14634
+ "active:bg-slate-400",
14635
+ "focus:ring-0",
14636
+ "focus:ring-offset-0",
14637
+ "group-active:ring-0",
14638
+ "group-active:ring-offset-0",
14639
+ ],
14640
+ false: "",
14641
+ },
14642
+ },
14643
+ compoundVariants: [
14644
+ {
14645
+ checked: true,
14646
+ disabled: true,
14647
+ className: ["bg-white"],
14648
+ },
14649
+ ],
14650
+ });
14651
+ const cvaRadioItemWrapper = cssClassVarianceUtilities.cvaMerge(["flex", "gap-2", "items-center"]);
14652
+ const cvaRadioItemLabelContainer = cssClassVarianceUtilities.cvaMerge(["gap-y-1", "grid"]);
14653
+ const cvaRadioItemDescription = cssClassVarianceUtilities.cvaMerge(["text-sm", "font-normal", "text-slate-500", "text-left", "whitespace-nowrap", "text-ellipsis", "overflow-hidden"], {
14654
+ variants: {
14655
+ disabled: {
14656
+ true: ["text-slate-400", "hover:text-slate-400", "group-hover:text-slate-400"],
14657
+ false: "",
14658
+ },
14659
+ },
14660
+ });
14661
+
14297
14662
  const RadioGroupContext = React__namespace.createContext(null);
14298
14663
 
14299
14664
  /**
@@ -14309,7 +14674,7 @@ const RadioGroupContext = React__namespace.createContext(null);
14309
14674
  * @returns {JSX.Element} RadioGroup component
14310
14675
  */
14311
14676
  const RadioGroup = ({ children, id, name, value, disabled, onChange, label, inline, className, dataTestId, isInvalid, }) => {
14312
- return (jsxRuntime.jsx(FormGroup, { label: label, dataTestId: dataTestId && `${dataTestId}-FormGroup`, children: jsxRuntime.jsx(Flex, { "$inline": inline, className: className, "data-testid": dataTestId, children: jsxRuntime.jsx(RadioGroupContext.Provider, { value: {
14677
+ return (jsxRuntime.jsx(FormGroup, { label: label, dataTestId: dataTestId && `${dataTestId}-FormGroup`, children: jsxRuntime.jsx("div", { className: cvaRadioGroup({ layout: inline ? "inline" : null, className }), "data-testid": dataTestId, children: jsxRuntime.jsx(RadioGroupContext.Provider, { value: {
14313
14678
  id,
14314
14679
  value,
14315
14680
  name: name || id,
@@ -14319,9 +14684,6 @@ const RadioGroup = ({ children, id, name, value, disabled, onChange, label, inli
14319
14684
  }, children: children }) }) }));
14320
14685
  };
14321
14686
  RadioGroup.displayName = "RadioGroup";
14322
- const Flex = tailwindStyledComponents.tw.div `
14323
- ${({ $inline }) => ($inline ? tailwindStyledComponents.tws `tu-radiogroup--inline` : tailwindStyledComponents.tws `tu-radiogroup`)}
14324
- `;
14325
14687
 
14326
14688
  /**
14327
14689
  * The RadioItem component.
@@ -14332,20 +14694,12 @@ ${({ $inline }) => ($inline ? tailwindStyledComponents.tws `tu-radiogroup--inlin
14332
14694
  const RadioItem = ({ label, value, dataTestId, className, description, }) => {
14333
14695
  const groupCtx = React__namespace.useContext(RadioGroupContext);
14334
14696
  const isChecked = (groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.value) === value;
14335
- return (jsxRuntime.jsxs(InputWrapper, { className: className, htmlFor: `${groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.id}-${value}`, "data-testid": dataTestId && `${dataTestId}-Wrapper`, children: [jsxRuntime.jsx(Input, { id: `${groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.id}-${value}`, type: "radio", role: "radio", value: value, checked: isChecked, "$disabled": groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.disabled, "$isInvalid": groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.isInvalid, onChange: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.onChange, "data-testid": dataTestId, "$checked": isChecked }), jsxRuntime.jsxs(LabelContainer$1, { children: [jsxRuntime.jsx(Label$1, { htmlFor: `${groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.id}-${value}`, dataTestId: dataTestId && `${dataTestId}-Label`, disabled: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.disabled, isInvalid: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.isInvalid, children: label }), description && (jsxRuntime.jsx(Description$1, { htmlFor: `${groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.id}-${value}`, "data-testid": dataTestId && `${dataTestId}-Description`, "$disabled": groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.disabled, children: description }))] })] }));
14336
- };
14337
- const InputWrapper = tailwindStyledComponents.tw.label `tu-radioitem__wrapper`;
14338
- const Input = tailwindStyledComponents.tw.input `
14339
- tu-radioitem
14340
- ${({ $checked }) => $checked && tailwindStyledComponents.tws `tu-radioitem--checked`}
14341
- ${({ $disabled }) => $disabled && tailwindStyledComponents.tws `tu-radioitem--disabled`}
14342
- ${({ $isInvalid }) => $isInvalid && tailwindStyledComponents.tws `tu-radioitem--invalid`}
14343
- `;
14344
- const LabelContainer$1 = tailwindStyledComponents.tw.div `tu-radioitem__label-container`;
14345
- const Description$1 = tailwindStyledComponents.tw.label `
14346
- tu-radioitem__description
14347
- ${({ $disabled }) => $disabled && tailwindStyledComponents.tws `tu-radioitem__description--disabled`}
14348
- `;
14697
+ return (jsxRuntime.jsxs("label", { className: cvaRadioItemWrapper({ className }), htmlFor: `${groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.id}-${value}`, "data-testid": dataTestId && `${dataTestId}-Wrapper`, children: [jsxRuntime.jsx("input", { id: `${groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.id}-${value}`, type: "radio", value: value, checked: isChecked, className: cvaRadioItem({
14698
+ checked: isChecked,
14699
+ disabled: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.disabled,
14700
+ invalid: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.isInvalid,
14701
+ }), onChange: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.onChange, "data-testid": dataTestId }), jsxRuntime.jsxs("div", { className: cvaRadioItemLabelContainer(), children: [jsxRuntime.jsx(Label, { htmlFor: `${groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.id}-${value}`, dataTestId: dataTestId && `${dataTestId}-Label`, disabled: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.disabled, isInvalid: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.isInvalid, children: label }), description && (jsxRuntime.jsx("label", { className: cvaRadioItemDescription({ disabled: groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.disabled }), htmlFor: `${groupCtx === null || groupCtx === void 0 ? void 0 : groupCtx.id}-${value}`, "data-testid": dataTestId && `${dataTestId}-Description`, children: description }))] })] }));
14702
+ };
14349
14703
 
14350
14704
  const cvaTimeRange = cssClassVarianceUtilities.cvaMerge([
14351
14705
  "flex",
@@ -14413,6 +14767,32 @@ const Schedule = ({ className, dataTestId, schedule, onChange, invalidKeys = []
14413
14767
  */
14414
14768
  const TextInput = React.forwardRef((props, ref) => (jsxRuntime.jsx(BaseInput, Object.assign({ ref: ref, type: "text" }, props))));
14415
14769
 
14770
+ const cvaSearch = cssClassVarianceUtilities.cvaMerge([
14771
+ "shadow-none",
14772
+ "component-search-borderless",
14773
+ "component-search-background",
14774
+ "hover:component-search-background",
14775
+ "hover:component-search-focus-hover",
14776
+ "focus:component-search-focus-hover",
14777
+ "focus-within:component-search-focus-within",
14778
+ "transition-all",
14779
+ "duration-300",
14780
+ ], {
14781
+ variants: {
14782
+ border: { true: ["!component-search-border"], false: "" },
14783
+ widenOnFocus: {
14784
+ true: [
14785
+ "component-search-width",
14786
+ "component-search-widen",
14787
+ "hover:component-search-widen",
14788
+ "focus-within:component-search-widen-focus",
14789
+ "focus-within:w-full",
14790
+ ],
14791
+ false: "w-full",
14792
+ },
14793
+ },
14794
+ });
14795
+
14416
14796
  /**
14417
14797
  * The Search component is used to render a search input field.
14418
14798
  *
@@ -14420,44 +14800,54 @@ const TextInput = React.forwardRef((props, ref) => (jsxRuntime.jsx(BaseInput, Ob
14420
14800
  * @returns {JSX.Element} Search component
14421
14801
  */
14422
14802
  const Search = (_a) => {
14423
- var { className, placeholder = "Search", value, widenInputOnFocus, showBorderWhenNotInFocus = false, disabled, onKeyUp, onChange, onFocus, onBlur, name, onClear, dataTestId, autoComplete = "on", ref } = _a, rest = __rest(_a, ["className", "placeholder", "value", "widenInputOnFocus", "showBorderWhenNotInFocus", "disabled", "onKeyUp", "onChange", "onFocus", "onBlur", "name", "onClear", "dataTestId", "autoComplete", "ref"]);
14424
- return (jsxRuntime.jsx(StyledTextInput, Object.assign({}, rest, { ref: ref, dataTestId: dataTestId, name: name, className: className, "$widenOnFocus": widenInputOnFocus, "$showBorderWhenNotInFocus": showBorderWhenNotInFocus, placeholder: placeholder, prefix: jsxRuntime.jsx(reactComponents.Icon, { name: "MagnifyingGlassIcon", size: "medium" }), suffix: onClear ? (jsxRuntime.jsx("button", { "data-testid": dataTestId && `${dataTestId}_suffix_component`, onClick: () => {
14803
+ var { className, placeholder = "Search", value, widenInputOnFocus, showBorderWhenNotInFocus = false, disabled, onKeyUp, onChange, onFocus, onBlur, name, onClear, dataTestId, autoComplete = "on" } = _a, rest = __rest(_a, ["className", "placeholder", "value", "widenInputOnFocus", "showBorderWhenNotInFocus", "disabled", "onKeyUp", "onChange", "onFocus", "onBlur", "name", "onClear", "dataTestId", "autoComplete"]);
14804
+ return (jsxRuntime.jsx(TextInput, Object.assign({}, rest, { dataTestId: dataTestId, name: name, className: cvaSearch({ className, border: showBorderWhenNotInFocus, widenOnFocus: widenInputOnFocus }), placeholder: placeholder, prefix: jsxRuntime.jsx(reactComponents.Icon, { name: "MagnifyingGlassIcon", size: "medium" }), suffix: onClear ? (jsxRuntime.jsx("button", { "data-testid": dataTestId && `${dataTestId}_suffix_component`, onClick: () => {
14425
14805
  onClear();
14426
14806
  }, children: jsxRuntime.jsx(reactComponents.Icon, { name: "XMarkIcon", size: "small" }) })) : undefined, value: value, disabled: disabled, onChange: onChange, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, autoComplete: autoComplete })));
14427
14807
  };
14428
- const StyledTextInput = tailwindStyledComponents.twx(TextInput) `
14429
- tu-search
14430
- ${({ $showBorderWhenNotInFocus }) => $showBorderWhenNotInFocus && tailwindStyledComponents.tws `tu-search--border`}
14431
- ${({ $widenOnFocus }) => $widenOnFocus && tailwindStyledComponents.tws `tu-search--widen-on-focus`}
14432
- `;
14808
+
14809
+ const cvaTextArea = cssClassVarianceUtilities.cvaMerge([
14810
+ cvaInputBase(),
14811
+ "block",
14812
+ "overflow-auto",
14813
+ "appearance-none",
14814
+ "px-3",
14815
+ "py-2",
14816
+ "bg-transparent",
14817
+ "text-base",
14818
+ "text-slate-900",
14819
+ "placeholder-slate-400",
14820
+ "focus-visible:outline-none",
14821
+ "w-full",
14822
+ "h-20",
14823
+ "transition",
14824
+ ], {
14825
+ variants: {
14826
+ disabled: {
14827
+ true: cvaInputBaseDisabled(),
14828
+ false: "",
14829
+ },
14830
+ invalid: {
14831
+ true: cvaInputBaseInvalid(),
14832
+ false: "",
14833
+ },
14834
+ resize: {
14835
+ both: "resize",
14836
+ vertical: "resize-y",
14837
+ horizontal: "resize-x",
14838
+ none: "resize-none",
14839
+ },
14840
+ },
14841
+ });
14433
14842
 
14434
14843
  /**
14435
14844
  * The TextArea is a base component, and should not be used very often.
14436
14845
  * For most cases the TextAreaField is the correct component.
14437
14846
  */
14438
14847
  const TextArea = React__namespace.forwardRef((_a, ref) => {
14439
- var { id, name, value, rows, disabled, placeholder, readOnly, tabIndex, onChange, onFocus, onBlur, maxLength, resize = "vertical", defaultValue, required, dataTestId, isInvalid } = _a, rest = __rest(_a, ["id", "name", "value", "rows", "disabled", "placeholder", "readOnly", "tabIndex", "onChange", "onFocus", "onBlur", "maxLength", "resize", "defaultValue", "required", "dataTestId", "isInvalid"]);
14440
- return (jsxRuntime.jsx(StyledTextArea, Object.assign({ id: id, name: name, value: value, rows: rows, disabled: disabled, placeholder: placeholder, readOnly: readOnly, tabIndex: tabIndex, onFocus: onFocus, onBlur: onBlur, maxLength: maxLength, "$resize": resize, "$invalid": isInvalid, ref: ref, defaultValue: defaultValue, required: required }, rest, { onChange: onChange, "data-testid": dataTestId })));
14848
+ var { id, name, value, rows, disabled, placeholder, readOnly, tabIndex, onChange, onFocus, onBlur, maxLength, resize = "vertical", defaultValue, required, dataTestId, isInvalid, className } = _a, rest = __rest(_a, ["id", "name", "value", "rows", "disabled", "placeholder", "readOnly", "tabIndex", "onChange", "onFocus", "onBlur", "maxLength", "resize", "defaultValue", "required", "dataTestId", "isInvalid", "className"]);
14849
+ return (jsxRuntime.jsx("textarea", Object.assign({ id: id, name: name, value: value, rows: rows, disabled: disabled, placeholder: placeholder, readOnly: readOnly, tabIndex: tabIndex, onFocus: onFocus, onBlur: onBlur, maxLength: maxLength, ref: ref, defaultValue: defaultValue, required: required, className: cvaTextArea({ className, resize, invalid: isInvalid, disabled }) }, rest, { onChange: onChange, "data-testid": dataTestId })));
14441
14850
  });
14442
- const StyledTextArea = tailwindStyledComponents.tw.textarea `
14443
- tu-textarea
14444
- ${({ $invalid }) => ($invalid ? tailwindStyledComponents.tws `tu-textarea--invalid` : null)}
14445
- ${({ disabled }) => (disabled ? tailwindStyledComponents.tws `tu-textarea--disabled` : null)}
14446
- ${({ $resize }) => {
14447
- switch ($resize) {
14448
- case "both":
14449
- return tailwindStyledComponents.tws `resize`;
14450
- case "horizontal":
14451
- return tailwindStyledComponents.tws `resize-x`;
14452
- case "vertical":
14453
- return tailwindStyledComponents.tws `resize-y`;
14454
- case "none":
14455
- return tailwindStyledComponents.tws `resize-none`;
14456
- default:
14457
- return null;
14458
- }
14459
- }};
14460
- `;
14461
14851
 
14462
14852
  /**
14463
14853
  * The TextLengthIndicator component shows a `{length}/{maxLength}` label.
@@ -14523,6 +14913,64 @@ const TimeRangeField = (_a) => {
14523
14913
  return (jsxRuntime.jsx(FormGroup, { htmlFor: htmlFor, label: label, tip: tip, isInvalid: renderAsInvalid, helpText: (renderAsInvalid && errorMessage) || helpText, dataTestId: dataTestId && `${dataTestId}-FormGroup`, disabled: disabled, children: jsxRuntime.jsx(TimeRange, Object.assign({ className: className, onChange: onChange, disabled: disabled, dataTestId: dataTestId, isInvalid: renderAsInvalid, children: children }, rest)) }));
14524
14914
  };
14525
14915
 
14916
+ const cvaToggleWrapper = cssClassVarianceUtilities.cvaMerge(["flex", "gap-2"]);
14917
+ cssClassVarianceUtilities.cvaMerge(["relative"]);
14918
+ const cvaToggleTrack = cssClassVarianceUtilities.cvaMerge([
14919
+ "shrink-0",
14920
+ "p-1",
14921
+ "cursor-pointer",
14922
+ "rounded-full",
14923
+ "bg-slate-300",
14924
+ "focus:bg-slate-400",
14925
+ "hover:bg-slate-400",
14926
+ "active:bg-slate-500",
14927
+ ], {
14928
+ variants: {
14929
+ size: {
14930
+ small: ["w-8", "h-4"],
14931
+ medium: ["w-9", "h-5"],
14932
+ },
14933
+ disabled: {
14934
+ true: ["cursor-not-allowed", "pointer-events-none", "bg-slate-200"],
14935
+ false: "",
14936
+ },
14937
+ toggled: {
14938
+ true: ["bg-blue-600", "focus:bg-blue-700", "hover:bg-blue-700", "active:bg-blue-800"],
14939
+ false: "",
14940
+ },
14941
+ },
14942
+ compoundVariants: [
14943
+ {
14944
+ disabled: true,
14945
+ toggled: true,
14946
+ className: ["bg-slate-400"],
14947
+ },
14948
+ ],
14949
+ defaultVariants: {
14950
+ size: "medium",
14951
+ },
14952
+ });
14953
+ const cvaToggleThumb = cssClassVarianceUtilities.cvaMerge(["block", "rounded-full", "bg-white", "h-full", "aspect-square", "translate-x-0", "transition-all"], {
14954
+ variants: {
14955
+ toggled: {
14956
+ true: ["translate-x-4"],
14957
+ false: "",
14958
+ },
14959
+ },
14960
+ defaultVariants: {},
14961
+ });
14962
+ const cvaToggleInput = cssClassVarianceUtilities.cvaMerge(["absolute", "opacity-0", "-z-10"]);
14963
+ const cvaToggleLabelContainer = cssClassVarianceUtilities.cvaMerge(["grid", "gap-1"]);
14964
+ const cvaToggleLabel = cssClassVarianceUtilities.cvaMerge([]);
14965
+ const cvaToggleDescription = cssClassVarianceUtilities.cvaMerge(["text-sm", "font-normal", "text-slate-500", "text-left", "whitespace-nowrap", "text-ellipsis", "overflow-hidden"], {
14966
+ variants: {
14967
+ disabled: {
14968
+ true: "text-slate-400 hover:text-slate-400 group-hover:text-slate-400",
14969
+ false: "",
14970
+ },
14971
+ },
14972
+ });
14973
+
14526
14974
  /**
14527
14975
  * Use Toggle when you have to only enable/disable a feature.
14528
14976
  *
@@ -14533,28 +14981,26 @@ const TimeRangeField = (_a) => {
14533
14981
  * @param {ToggleProps} props - The props for the Toggle component
14534
14982
  * @returns {JSX.Element} Toggle component
14535
14983
  */
14536
- const Toggle = React__namespace.forwardRef(({ toggled = false, onChange, onClick, disabled, size = "medium", id, tabIndex, required, className, dataTestId, onBlur, name, description = "", }, ref) => {
14537
- return (jsxRuntime.jsxs(ToggleWrapper, { className: className, onClick: onClick, children: [jsxRuntime.jsxs(InputContainer, { htmlFor: id, children: [jsxRuntime.jsx(HiddenInput, { name: name, type: "checkbox", checked: toggled, disabled: disabled, onChange: e => {
14538
- e.stopPropagation();
14539
- onChange(!toggled, e);
14540
- }, id: id, "aria-checked": toggled, role: "checkbox", tabIndex: tabIndex, required: required, ref: ref, "data-testid": dataTestId && `${dataTestId}-Input`, onBlur: onBlur }), jsxRuntime.jsx(SwitchContainer, { "$toggled": toggled, htmlFor: id, "$disabled": disabled, "$size": size, children: jsxRuntime.jsx(Switch, { "$toggled": toggled, htmlFor: id, "data-testid": dataTestId && `${dataTestId}-Switch` }) })] }), name || description ? (jsxRuntime.jsxs(LabelContainer, { children: [jsxRuntime.jsx(Label$1, { htmlFor: id, dataTestId: dataTestId && `${dataTestId}-Label`, disabled: disabled, children: name }), description && (jsxRuntime.jsx(Description, { htmlFor: id, "data-testid": dataTestId && `${dataTestId}-Description`, "$disabled": disabled, children: description }))] })) : null] }));
14984
+ const Toggle = React__namespace.forwardRef(({ toggled = false, onChange, onClick, disabled, size = "medium", id, tabIndex, required, className, dataTestId = "toggle", onBlur, name, description = "", }, ref) => {
14985
+ const showLabelContainer = Boolean(name || description);
14986
+ const getTestId = (suffix) => `${dataTestId}-${suffix}`;
14987
+ return (jsxRuntime.jsx("span", { className: className, onClick: onClick, "data-testid": getTestId("outer-wrapper"), children: jsxRuntime.jsxs("label", { className: cvaToggleWrapper(), htmlFor: id, "data-testid": getTestId("wrapper"), children: [jsxRuntime.jsx("span", { className: cvaToggleTrack({ disabled, size, toggled }), "data-testid": getTestId("track"), children: jsxRuntime.jsx("span", { className: cvaToggleThumb({ toggled }), "data-testid": getTestId("thumb") }) }), showLabelContainer && (jsxRuntime.jsxs("span", { className: cvaToggleLabelContainer(), "data-testid": getTestId("label-container"), children: [jsxRuntime.jsx(Label, { className: cvaToggleLabel(), "data-testid": getTestId("label"), disabled: disabled, children: name }), jsxRuntime.jsx("span", { className: cvaToggleDescription({ disabled }), "data-testid": getTestId("description"), children: description })] })), jsxRuntime.jsx("input", { name: name, className: cvaToggleInput(), type: "checkbox", checked: toggled, disabled: disabled, onChange: e => {
14988
+ e.stopPropagation();
14989
+ onChange(!toggled, e);
14990
+ }, id: id, "aria-checked": toggled, tabIndex: tabIndex, required: required, ref: ref, "data-testid": getTestId("input"), onBlur: onBlur })] }) }));
14541
14991
  });
14542
- Toggle.displayName = "Toggle";
14543
- const ToggleWrapper = tailwindStyledComponents.tw.div `tu-toggle__wrapper`;
14544
- const InputContainer = tailwindStyledComponents.tw.label `tu-toggle__input-container `;
14545
- const HiddenInput = tailwindStyledComponents.tw.input `tu-toggle__input`;
14546
- const Switch = tailwindStyledComponents.tw.label `
14547
- ${({ $toggled }) => ($toggled ? tailwindStyledComponents.tws `tu-toggle__switch` : tailwindStyledComponents.tws `tu-toggle`)}`;
14548
- const SwitchContainer = tailwindStyledComponents.tw.label `
14549
- tu-toggle__switch-container
14550
- ${({ $disabled }) => $disabled && tailwindStyledComponents.tws `tu-toggle--disabled`};
14551
- ${({ $size }) => ($size === "small" ? tailwindStyledComponents.tws `tu-toggle--small` : tailwindStyledComponents.tws `tu-toggle--medium`)};
14552
- ${({ $toggled }) => $toggled && tailwindStyledComponents.tws `tu-toggle--toggled`}`;
14553
- const LabelContainer = tailwindStyledComponents.tw.div `tu-toggle__label-container`;
14554
- const Description = tailwindStyledComponents.tw.label `
14555
- tu-toggle__description
14556
- ${({ $disabled }) => $disabled && tailwindStyledComponents.tws `tu-toggle__description--disabled`}
14557
- `;
14992
+
14993
+ const cvaUploadInputField = cssClassVarianceUtilities.cvaMerge([
14994
+ "px-0",
14995
+ "py-0",
14996
+ "file:w-0",
14997
+ "file:h-0",
14998
+ "file:invisible",
14999
+ "file:px-0",
15000
+ "dark:text-gray-400",
15001
+ "self-center",
15002
+ ]);
15003
+ const cvaUploadInputAddonBefore = cssClassVarianceUtilities.cvaMerge(["block", "truncate", "w-28", "pt-2"]);
14558
15004
 
14559
15005
  /**
14560
15006
  * A thin wrapper around the `BaseInput` component for upload input fields.
@@ -14563,7 +15009,7 @@ ${({ $disabled }) => $disabled && tailwindStyledComponents.tws `tu-toggle__descr
14563
15009
  */
14564
15010
  const UploadInput = React.forwardRef((_a, ref) => {
14565
15011
  var { disabled, acceptedTypes, nonInteractive, uploadLabel, multipleFiles } = _a, rest = __rest(_a, ["disabled", "acceptedTypes", "nonInteractive", "uploadLabel", "multipleFiles"]);
14566
- return (jsxRuntime.jsx(UploadInputContainer, { children: jsxRuntime.jsx(BaseInput, Object.assign({ addonBefore: uploadLabel, ref: ref, disabled: disabled, accept: acceptedTypes, multiple: multipleFiles, type: "file", nonInteractive: nonInteractive,
15012
+ return (jsxRuntime.jsx(UploadInputContainer, { children: jsxRuntime.jsx(BaseInput, Object.assign({ inputClassName: cvaUploadInputField(), addonBefore: uploadLabel, addonBeforeClassName: cvaUploadInputAddonBefore(), ref: ref, disabled: disabled, accept: acceptedTypes, multiple: multipleFiles, type: "file", nonInteractive: nonInteractive,
14567
15013
  // onClick used to work with nonInteractive option
14568
15014
  onClick: event => {
14569
15015
  if (nonInteractive) {
@@ -14604,7 +15050,7 @@ exports.DropZone = DropZone;
14604
15050
  exports.EmailField = EmailField;
14605
15051
  exports.EmailInput = EmailInput;
14606
15052
  exports.FormGroup = FormGroup;
14607
- exports.Label = Label$1;
15053
+ exports.Label = Label;
14608
15054
  exports.MultiSelectMenuItem = MultiSelectMenuItem;
14609
15055
  exports.NumberField = NumberField;
14610
15056
  exports.NumberInput = NumberInput;
@@ -14616,7 +15062,6 @@ exports.RadioItem = RadioItem;
14616
15062
  exports.Schedule = Schedule;
14617
15063
  exports.Search = Search;
14618
15064
  exports.Select = Select;
14619
- exports.SelectPrefix = SelectPrefix;
14620
15065
  exports.SingleSelectMenuItem = SingleSelectMenuItem;
14621
15066
  exports.TextArea = TextArea;
14622
15067
  exports.TextAreaField = TextAreaField;
@@ -14628,6 +15073,24 @@ exports.Toggle = Toggle;
14628
15073
  exports.UploadField = UploadField;
14629
15074
  exports.UploadInput = UploadInput;
14630
15075
  exports.ValueType = StateManagedSelect$1;
15076
+ exports.cvaInput = cvaInput;
15077
+ exports.cvaInputAddon = cvaInputAddon;
15078
+ exports.cvaInputAddonAfter = cvaInputAddonAfter;
15079
+ exports.cvaInputAddonBefore = cvaInputAddonBefore;
15080
+ exports.cvaInputBase = cvaInputBase;
15081
+ exports.cvaInputBaseDisabled = cvaInputBaseDisabled;
15082
+ exports.cvaInputBaseInvalid = cvaInputBaseInvalid;
15083
+ exports.cvaInputField = cvaInputField;
15084
+ exports.cvaInputPrefix = cvaInputPrefix;
15085
+ exports.cvaInputSuffix = cvaInputSuffix;
15086
+ exports.cvaSelect = cvaSelect;
15087
+ exports.cvaSelectCounter = cvaSelectCounter;
15088
+ exports.cvaSelectDynamicTagContainer = cvaSelectDynamicTagContainer;
15089
+ exports.cvaSelectIcon = cvaSelectIcon;
15090
+ exports.cvaSelectMenu = cvaSelectMenu;
15091
+ exports.cvaSelectMenuList = cvaSelectMenuList;
15092
+ exports.cvaSelectPrefix = cvaSelectPrefix;
15093
+ exports.cvaSelectXIcon = cvaSelectXIcon;
14631
15094
  exports.getOrderedOptions = getOrderedOptions;
14632
15095
  exports.isMultiValue = isMultiValue;
14633
15096
  exports.useCustomComponents = useCustomComponents;