elseware-ui 3.0.12 → 3.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
+ var react = require('react');
3
4
  var reactNative = require('react-native');
4
5
  var tailwindMerge = require('tailwind-merge');
5
- var react = require('react');
6
- var jsxRuntime = require('react/jsx-runtime');
7
- var jsxRuntime$1 = require('nativewind/jsx-runtime');
6
+ var jsxRuntime$1 = require('react/jsx-runtime');
7
+ var jsxRuntime = require('nativewind/jsx-runtime');
8
8
  var formik = require('formik');
9
9
 
10
10
  // src/components/data-entry/button/native/Button.native.tsx
@@ -29,6 +29,11 @@ function cn(...inputs) {
29
29
  }
30
30
 
31
31
  // src/utils/styles.ts
32
+ function extractTextColorClasses(className) {
33
+ return className.split(/\s+/).filter(
34
+ (token) => token.startsWith("text-") || token.startsWith("dark:text-") || token.startsWith("disabled:text-")
35
+ ).join(" ");
36
+ }
32
37
  function resolveAppearanceStyles({
33
38
  appearance = "solid",
34
39
  variant = "default",
@@ -51,7 +56,7 @@ var EUIProvider = ({
51
56
  children
52
57
  }) => {
53
58
  const [state, setState] = react.useState(config);
54
- return /* @__PURE__ */ jsxRuntime.jsx(EUIContext.Provider, { value: { config: state, setConfig: setState }, children });
59
+ return /* @__PURE__ */ jsxRuntime$1.jsx(EUIContext.Provider, { value: { config: state, setConfig: setState }, children });
55
60
  };
56
61
  var useEUIConfig = () => {
57
62
  const ctx = react.useContext(EUIContext);
@@ -148,14 +153,6 @@ var shapes = {
148
153
  };
149
154
 
150
155
  // src/components/data-entry/button/base/Button.styles.ts
151
- var buttonShapes = shapes;
152
- var buttonIconSizes = {
153
- xs: 14,
154
- sm: 16,
155
- md: 18,
156
- lg: 20,
157
- xl: 22
158
- };
159
156
  function resolveButtonVariantStyles({
160
157
  appearance,
161
158
  variant
@@ -168,164 +165,200 @@ function resolveButtonVariantStyles({
168
165
  ghost: variantsGhost
169
166
  });
170
167
  }
171
- function getButtonLabelColorClassName(className) {
172
- return className.split(/\s+/).filter(
173
- (token) => token.startsWith("text-") || token.startsWith("dark:text-") || token.startsWith("disabled:text-")
174
- ).join(" ");
175
- }
176
168
 
177
- // src/components/data-entry/button/native/Button.native.styles.ts
178
- var nativeButtonSizes = {
169
+ // src/components/data-entry/button/base/Button.tokens.ts
170
+ var buttonSizeTokens = {
179
171
  xs: {
180
- rootClassName: "min-h-[30px] px-2.5 py-1",
181
- labelClassName: "text-xs leading-[14px]",
182
- slotClassName: "h-[14px] w-[14px]"
172
+ padding: "px-2 py-1",
173
+ text: "text-xs",
174
+ icon: 14,
175
+ minHeight: "min-h-[30px]",
176
+ leading: "leading-[14px]",
177
+ slot: "h-[14px] w-[14px]"
183
178
  },
184
179
  sm: {
185
- rootClassName: "min-h-9 px-3 py-1.5",
186
- labelClassName: "text-sm leading-4",
187
- slotClassName: "h-4 w-4"
180
+ padding: "px-3 py-1.5",
181
+ text: "text-sm",
182
+ icon: 16,
183
+ minHeight: "min-h-9",
184
+ leading: "leading-4",
185
+ slot: "h-4 w-4"
188
186
  },
189
187
  md: {
190
- rootClassName: "min-h-11 px-4 py-2",
191
- labelClassName: "text-[15px] leading-[18px]",
192
- slotClassName: "h-[18px] w-[18px]"
188
+ padding: "px-4 py-2",
189
+ text: "text-base",
190
+ icon: 18,
191
+ minHeight: "min-h-11",
192
+ leading: "leading-[18px]",
193
+ slot: "h-[18px] w-[18px]"
193
194
  },
194
195
  lg: {
195
- rootClassName: "min-h-[50px] px-[18px] py-3",
196
- labelClassName: "text-[17px] leading-5",
197
- slotClassName: "h-5 w-5"
196
+ padding: "px-5 py-3",
197
+ text: "text-lg",
198
+ icon: 20,
199
+ minHeight: "min-h-[50px]",
200
+ leading: "leading-5",
201
+ slot: "h-5 w-5"
198
202
  },
199
203
  xl: {
200
- rootClassName: "min-h-14 px-[22px] py-4",
201
- labelClassName: "text-[19px] leading-[22px]",
202
- slotClassName: "h-[22px] w-[22px]"
204
+ padding: "px-6 py-4",
205
+ text: "text-xl",
206
+ icon: 22,
207
+ minHeight: "min-h-14",
208
+ leading: "leading-[22px]",
209
+ slot: "h-[22px] w-[22px]"
203
210
  }
204
211
  };
205
- var nativeLabelBaseStyle = {
206
- includeFontPadding: false,
207
- textAlignVertical: "center"
208
- };
209
- function Button({
210
- icon,
211
- text,
212
- children,
213
- loading = false,
214
- disabled = false,
215
- block = false,
216
- compact = false,
217
- mode,
218
- contentClassName,
219
- labelClassName,
220
- className,
221
- variant,
222
- appearance,
223
- shape,
224
- size,
225
- accessibilityRole = "button",
226
- accessibilityState,
227
- type: _type,
228
- onClick: _onClick,
229
- onMouseMove: _onMouseMove,
230
- onPress,
231
- ...rest
232
- }) {
212
+ var buttonShapes = shapes;
213
+ var buttonTextModeClassName = "border-transparent bg-transparent";
214
+
215
+ // src/components/data-entry/button/base/useButton.ts
216
+ function useButton(props) {
233
217
  const {
234
- shape: resolvedShape,
235
- size: resolvedSize,
236
- variant: resolvedVariant,
237
- appearance: resolvedAppearance
238
- } = useResolvedButtonConfig({
239
- compact,
218
+ // Consumed by the shared model
219
+ icon,
220
+ text,
221
+ children,
222
+ loading = false,
223
+ disabled = false,
224
+ block = false,
225
+ compact = false,
240
226
  mode,
241
227
  variant,
242
228
  appearance,
243
229
  shape,
244
- size
245
- });
246
- const metrics = nativeButtonSizes[resolvedSize];
247
- const iconSize = buttonIconSizes[resolvedSize];
248
- const variantStyles = resolveButtonVariantStyles({
230
+ size,
231
+ accessibilityState,
232
+ onPress,
233
+ // Owned by the platform views — pulled out here only so `rootRest` is a
234
+ // clean pass-through (no library props leak onto the DOM / native root).
235
+ type: _type,
236
+ glow: _glow,
237
+ className: _className,
238
+ contentClassName: _contentClassName,
239
+ labelClassName: _labelClassName,
240
+ accessibilityLabel: _accessibilityLabel,
241
+ accessibilityRole: _accessibilityRole,
242
+ testID: _testID,
243
+ onClick: _onClick,
244
+ onMouseMove: _onMouseMove,
245
+ ...rootRest
246
+ } = props;
247
+ const { shape: resolvedShape, size: resolvedSize, variant: resolvedVariant, appearance: resolvedAppearance } = useResolvedButtonConfig({ compact, mode, variant, appearance, shape, size });
248
+ const tokens = buttonSizeTokens[resolvedSize];
249
+ const variantClassName = resolveButtonVariantStyles({
249
250
  appearance: resolvedAppearance,
250
251
  variant: resolvedVariant
251
252
  });
252
- const labelColorClassName = getButtonLabelColorClassName(variantStyles);
253
- const content = text ?? children;
254
- const resolvedIcon = typeof icon === "function" ? icon({ color: "currentColor", size: iconSize }) : icon;
255
- return /* @__PURE__ */ jsxRuntime$1.jsx(
256
- reactNative.Pressable,
257
- {
258
- ...rest,
259
- accessibilityRole,
260
- accessibilityState: {
261
- disabled: disabled || loading,
262
- ...accessibilityState
263
- },
264
- className: cn(
265
- "relative items-center justify-center overflow-hidden",
266
- variantStyles,
267
- buttonShapes[resolvedShape],
268
- metrics.rootClassName,
269
- block && "w-full",
270
- mode === "text" && "border-transparent bg-transparent",
271
- (disabled || loading) && "opacity-55",
272
- !disabled && !loading && "active:opacity-80",
273
- className
274
- ),
275
- disabled: disabled || loading,
276
- onPress,
277
- style: ({ pressed }) => [
278
- pressed && !disabled && !loading ? { opacity: 0.82 } : null,
279
- disabled || loading ? { opacity: 0.55 } : null
280
- ],
281
- children: /* @__PURE__ */ jsxRuntime$1.jsxs(
282
- reactNative.View,
283
- {
284
- className: cn(
285
- "z-10 flex-row items-center justify-center gap-2",
286
- contentClassName
287
- ),
288
- children: [
289
- loading ? /* @__PURE__ */ jsxRuntime$1.jsx(
290
- reactNative.View,
291
- {
292
- className: cn(
293
- "shrink-0 items-center justify-center",
294
- metrics.slotClassName
295
- ),
296
- children: /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.ActivityIndicator, { className: labelColorClassName, size: "small" })
297
- }
298
- ) : null,
299
- !loading && resolvedIcon ? /* @__PURE__ */ jsxRuntime$1.jsx(
300
- reactNative.View,
301
- {
302
- className: cn(
303
- "shrink-0 items-center justify-center",
304
- metrics.slotClassName
305
- ),
306
- children: resolvedIcon
307
- }
308
- ) : null,
309
- typeof content === "string" || typeof content === "number" ? /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.View, { className: "items-center justify-center", children: /* @__PURE__ */ jsxRuntime$1.jsx(
310
- reactNative.Text,
311
- {
312
- className: cn(
313
- "font-bold",
314
- metrics.labelClassName,
315
- labelColorClassName,
316
- labelClassName
317
- ),
318
- numberOfLines: 1,
319
- style: nativeLabelBaseStyle,
320
- children: content
321
- }
322
- ) }) : content
323
- ]
324
- }
325
- )
326
- }
327
- );
253
+ const label = text ?? children;
254
+ const resolvedIcon = typeof icon === "function" ? icon({ color: "currentColor", size: tokens.icon }) : icon;
255
+ const isBusy = disabled || loading;
256
+ return {
257
+ size: resolvedSize,
258
+ shape: resolvedShape,
259
+ tokens,
260
+ isBusy,
261
+ isInteractive: !isBusy,
262
+ isTextMode: mode === "text",
263
+ block,
264
+ loading,
265
+ iconSize: tokens.icon,
266
+ icon: resolvedIcon,
267
+ label,
268
+ hasTextLabel: typeof label === "string" || typeof label === "number",
269
+ variantClassName,
270
+ shapeClassName: buttonShapes[resolvedShape],
271
+ labelColorClassName: extractTextColorClasses(variantClassName),
272
+ selected: accessibilityState?.selected,
273
+ onPress,
274
+ rootRest
275
+ };
328
276
  }
277
+ var NATIVE_ROOT = "relative items-center justify-center overflow-hidden";
278
+ var nativeLabelBaseStyle = {
279
+ includeFontPadding: false,
280
+ textAlignVertical: "center"
281
+ };
282
+ var Button = react.forwardRef(
283
+ function Button2(props, ref) {
284
+ const {
285
+ className,
286
+ contentClassName,
287
+ labelClassName,
288
+ accessibilityLabel,
289
+ accessibilityRole = "button",
290
+ testID
291
+ } = props;
292
+ const model = useButton(props);
293
+ return /* @__PURE__ */ jsxRuntime.jsx(
294
+ reactNative.Pressable,
295
+ {
296
+ ...model.rootRest,
297
+ ref,
298
+ accessibilityLabel,
299
+ accessibilityRole,
300
+ accessibilityState: { disabled: model.isBusy, selected: model.selected },
301
+ testID,
302
+ disabled: model.isBusy,
303
+ onPress: model.onPress,
304
+ className: cn(
305
+ NATIVE_ROOT,
306
+ model.variantClassName,
307
+ model.shapeClassName,
308
+ model.tokens.padding,
309
+ model.tokens.minHeight,
310
+ model.block && "w-full",
311
+ model.isTextMode && buttonTextModeClassName,
312
+ model.isBusy ? "opacity-55" : "active:opacity-80",
313
+ className
314
+ ),
315
+ style: ({ pressed }) => pressed && model.isInteractive ? { opacity: 0.82 } : null,
316
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
317
+ reactNative.View,
318
+ {
319
+ className: cn(
320
+ "z-10 flex-row items-center justify-center gap-2",
321
+ contentClassName
322
+ ),
323
+ children: [
324
+ (model.loading || model.icon) && /* @__PURE__ */ jsxRuntime.jsx(
325
+ reactNative.View,
326
+ {
327
+ className: cn(
328
+ "shrink-0 items-center justify-center",
329
+ model.tokens.slot
330
+ ),
331
+ children: model.loading ? /* @__PURE__ */ jsxRuntime.jsx(
332
+ reactNative.ActivityIndicator,
333
+ {
334
+ className: model.labelColorClassName,
335
+ size: "small"
336
+ }
337
+ ) : model.icon
338
+ }
339
+ ),
340
+ model.hasTextLabel ? /* @__PURE__ */ jsxRuntime.jsx(
341
+ reactNative.Text,
342
+ {
343
+ className: cn(
344
+ "font-bold",
345
+ model.tokens.text,
346
+ model.tokens.leading,
347
+ model.labelColorClassName,
348
+ labelClassName
349
+ ),
350
+ numberOfLines: 1,
351
+ style: nativeLabelBaseStyle,
352
+ children: model.label
353
+ }
354
+ ) : model.label
355
+ ]
356
+ }
357
+ )
358
+ }
359
+ );
360
+ }
361
+ );
329
362
  var Button_native_default = Button;
330
363
  function isMultiCheckbox(props) {
331
364
  return Array.isArray(props.options);
@@ -445,7 +478,7 @@ function Tick({
445
478
  checkedIconClassName,
446
479
  iconClassName
447
480
  }) {
448
- return /* @__PURE__ */ jsxRuntime$1.jsx(
481
+ return /* @__PURE__ */ jsxRuntime.jsx(
449
482
  reactNative.Text,
450
483
  {
451
484
  className: cn(
@@ -497,8 +530,8 @@ function Checkbox(checkboxProps) {
497
530
  const optionColumns = multiProps ? chunkCheckboxOptions(multiProps.options, multiProps.columns) : [];
498
531
  const singleChecked = singleField.value;
499
532
  const errorText = activeMeta.touched && typeof activeMeta.error === "string" ? activeMeta.error : null;
500
- return /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: cn(checkboxGroupClassName, groupClassName), children: [
501
- !isMulti && /* @__PURE__ */ jsxRuntime$1.jsxs(
533
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: cn(checkboxGroupClassName, groupClassName), children: [
534
+ !isMulti && /* @__PURE__ */ jsxRuntime.jsxs(
502
535
  reactNative.Pressable,
503
536
  {
504
537
  accessibilityRole: "checkbox",
@@ -510,7 +543,7 @@ function Checkbox(checkboxProps) {
510
543
  disabled,
511
544
  onPress: () => singleHelpers.setValue(!singleChecked),
512
545
  children: [
513
- /* @__PURE__ */ jsxRuntime$1.jsx(
546
+ /* @__PURE__ */ jsxRuntime.jsx(
514
547
  reactNative.View,
515
548
  {
516
549
  className: getIndicatorClassName({
@@ -522,7 +555,7 @@ function Checkbox(checkboxProps) {
522
555
  resolvedShape,
523
556
  variantCheckedClassName: variantStyles.checkedClassName
524
557
  }),
525
- children: singleChecked ? /* @__PURE__ */ jsxRuntime$1.jsx(
558
+ children: singleChecked ? /* @__PURE__ */ jsxRuntime.jsx(
526
559
  Tick,
527
560
  {
528
561
  checkedIconClassName,
@@ -531,11 +564,11 @@ function Checkbox(checkboxProps) {
531
564
  ) : null
532
565
  }
533
566
  ),
534
- resolvedLabel ? /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.Text, { className: cn(checkboxLabelClassName, labelClassName), children: resolvedLabel }) : null
567
+ resolvedLabel ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { className: cn(checkboxLabelClassName, labelClassName), children: resolvedLabel }) : null
535
568
  ]
536
569
  }
537
570
  ),
538
- isMulti && multiProps ? /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.View, { className: "w-full flex-row gap-6", children: optionColumns.map((columnOptions, columnIndex) => /* @__PURE__ */ jsxRuntime$1.jsx(
571
+ isMulti && multiProps ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: "w-full flex-row gap-6", children: optionColumns.map((columnOptions, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
539
572
  reactNative.View,
540
573
  {
541
574
  className: "min-w-0 flex-1 flex-col gap-2",
@@ -543,7 +576,7 @@ function Checkbox(checkboxProps) {
543
576
  const values = multiField.value ?? [];
544
577
  const checked = values.includes(option.value);
545
578
  const optionDisabled = disabled || option.disabled === true;
546
- return /* @__PURE__ */ jsxRuntime$1.jsxs(
579
+ return /* @__PURE__ */ jsxRuntime.jsxs(
547
580
  reactNative.Pressable,
548
581
  {
549
582
  accessibilityRole: "checkbox",
@@ -557,7 +590,7 @@ function Checkbox(checkboxProps) {
557
590
  checked ? values.filter((value) => value !== option.value) : [...values, option.value]
558
591
  ),
559
592
  children: [
560
- /* @__PURE__ */ jsxRuntime$1.jsx(
593
+ /* @__PURE__ */ jsxRuntime.jsx(
561
594
  reactNative.View,
562
595
  {
563
596
  className: getIndicatorClassName({
@@ -569,7 +602,7 @@ function Checkbox(checkboxProps) {
569
602
  resolvedShape,
570
603
  variantCheckedClassName: variantStyles.checkedClassName
571
604
  }),
572
- children: checked ? /* @__PURE__ */ jsxRuntime$1.jsx(
605
+ children: checked ? /* @__PURE__ */ jsxRuntime.jsx(
573
606
  Tick,
574
607
  {
575
608
  checkedIconClassName,
@@ -578,7 +611,7 @@ function Checkbox(checkboxProps) {
578
611
  ) : null
579
612
  }
580
613
  ),
581
- /* @__PURE__ */ jsxRuntime$1.jsx(
614
+ /* @__PURE__ */ jsxRuntime.jsx(
582
615
  reactNative.Text,
583
616
  {
584
617
  className: cn(
@@ -597,7 +630,7 @@ function Checkbox(checkboxProps) {
597
630
  },
598
631
  `${multiField.name}-column-${columnIndex}`
599
632
  )) }) : null,
600
- errorText ? /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.Text, { className: "px-2 py-1 text-sm font-medium text-eui-danger-500", children: errorText }) : null
633
+ errorText ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { className: "px-2 py-1 text-sm font-medium text-eui-danger-500", children: errorText }) : null
601
634
  ] });
602
635
  }
603
636
 
@@ -678,7 +711,7 @@ function InputLabel({
678
711
  lineHeight: floating === true ? nativeInputLabelMetrics.floatingFontSize : nativeInputLabelMetrics.restingFontSize,
679
712
  top: floating === true ? nativeInputLabelMetrics.floatingTop : nativeInputLabelMetrics.restingTop
680
713
  };
681
- return /* @__PURE__ */ jsxRuntime$1.jsx(
714
+ return /* @__PURE__ */ jsxRuntime.jsx(
682
715
  reactNative.Animated.Text,
683
716
  {
684
717
  className: cn(
@@ -742,8 +775,8 @@ function InputResponse({
742
775
  }
743
776
  ]
744
777
  };
745
- const content = message ?? /* @__PURE__ */ jsxRuntime$1.jsx(formik.ErrorMessage, { name, children: (errorMessage) => String(errorMessage) });
746
- return /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.Animated.View, { className: "w-full", style: animatedStyle, children: /* @__PURE__ */ jsxRuntime$1.jsx(
778
+ const content = message ?? /* @__PURE__ */ jsxRuntime.jsx(formik.ErrorMessage, { name, children: (errorMessage) => String(errorMessage) });
779
+ return /* @__PURE__ */ jsxRuntime.jsx(reactNative.Animated.View, { className: "w-full", style: animatedStyle, children: /* @__PURE__ */ jsxRuntime.jsx(
747
780
  reactNative.Text,
748
781
  {
749
782
  className: cn(
@@ -826,8 +859,8 @@ function DateSelector(dateSelectorProps) {
826
859
  event
827
860
  );
828
861
  };
829
- return /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: inputRootClassName, children: [
830
- /* @__PURE__ */ jsxRuntime$1.jsx(
862
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: inputRootClassName, children: [
863
+ /* @__PURE__ */ jsxRuntime.jsx(
831
864
  reactNative.View,
832
865
  {
833
866
  className: cn(
@@ -838,7 +871,7 @@ function DateSelector(dateSelectorProps) {
838
871
  className,
839
872
  styles
840
873
  ),
841
- children: /* @__PURE__ */ jsxRuntime$1.jsx(
874
+ children: /* @__PURE__ */ jsxRuntime.jsx(
842
875
  reactNative.TextInput,
843
876
  {
844
877
  accessibilityLabel: resolvedLabel,
@@ -860,7 +893,7 @@ function DateSelector(dateSelectorProps) {
860
893
  )
861
894
  }
862
895
  ),
863
- /* @__PURE__ */ jsxRuntime$1.jsx(
896
+ /* @__PURE__ */ jsxRuntime.jsx(
864
897
  InputLabel,
865
898
  {
866
899
  animatedValue: labelProgress,
@@ -871,7 +904,7 @@ function DateSelector(dateSelectorProps) {
871
904
  className: labelClassName
872
905
  }
873
906
  ),
874
- /* @__PURE__ */ jsxRuntime$1.jsx(
907
+ /* @__PURE__ */ jsxRuntime.jsx(
875
908
  InputResponse,
876
909
  {
877
910
  message: errorText,
@@ -923,7 +956,7 @@ function Form({
923
956
  onChange,
924
957
  onDirtyChange
925
958
  }) {
926
- return /* @__PURE__ */ jsxRuntime$1.jsx(
959
+ return /* @__PURE__ */ jsxRuntime.jsx(
927
960
  formik.Formik,
928
961
  {
929
962
  initialValues,
@@ -932,8 +965,8 @@ function Form({
932
965
  onSubmit: async (values, helpers) => {
933
966
  await onSubmit(values, helpers);
934
967
  },
935
- children: (formik) => /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: cn(className), children: [
936
- /* @__PURE__ */ jsxRuntime$1.jsx(
968
+ children: (formik) => /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: cn(className), children: [
969
+ /* @__PURE__ */ jsxRuntime.jsx(
937
970
  FormObservers,
938
971
  {
939
972
  formik,
@@ -941,7 +974,7 @@ function Form({
941
974
  onDirtyChange
942
975
  }
943
976
  ),
944
- /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.View, { className: cn(contentClassName), children: renderFormChildren(children, formik) })
977
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: cn(contentClassName), children: renderFormChildren(children, formik) })
945
978
  ] })
946
979
  }
947
980
  );
@@ -1014,7 +1047,7 @@ function FormResponse({
1014
1047
  return null;
1015
1048
  }
1016
1049
  const styles = resolveFormResponseStyles({ shape, size, variant });
1017
- return /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.View, { className: cn(styles.rootClassName, className), children: /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.Text, { className: cn(styles.textClassName, textClassName), children: text }) });
1050
+ return /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: cn(styles.rootClassName, className), children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { className: cn(styles.textClassName, textClassName), children: text }) });
1018
1051
  }
1019
1052
  function resolveInputType({
1020
1053
  passwordVisible,
@@ -1101,8 +1134,8 @@ function Input(inputProps) {
1101
1134
  setFocused(true);
1102
1135
  onFocus?.(event);
1103
1136
  };
1104
- return /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: inputRootClassName, children: [
1105
- /* @__PURE__ */ jsxRuntime$1.jsx(
1137
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: inputRootClassName, children: [
1138
+ /* @__PURE__ */ jsxRuntime.jsx(
1106
1139
  reactNative.View,
1107
1140
  {
1108
1141
  className: cn(
@@ -1112,7 +1145,7 @@ function Input(inputProps) {
1112
1145
  disabled && inputFrameDisabledClassName,
1113
1146
  className
1114
1147
  ),
1115
- children: /* @__PURE__ */ jsxRuntime$1.jsx(
1148
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1116
1149
  reactNative.TextInput,
1117
1150
  {
1118
1151
  accessibilityLabel: resolvedLabel,
@@ -1136,7 +1169,7 @@ function Input(inputProps) {
1136
1169
  )
1137
1170
  }
1138
1171
  ),
1139
- /* @__PURE__ */ jsxRuntime$1.jsx(
1172
+ /* @__PURE__ */ jsxRuntime.jsx(
1140
1173
  InputLabel,
1141
1174
  {
1142
1175
  animatedValue: labelProgress,
@@ -1147,7 +1180,7 @@ function Input(inputProps) {
1147
1180
  className: labelClassName
1148
1181
  }
1149
1182
  ),
1150
- type === "password" ? /* @__PURE__ */ jsxRuntime$1.jsx(
1183
+ type === "password" ? /* @__PURE__ */ jsxRuntime.jsx(
1151
1184
  reactNative.Pressable,
1152
1185
  {
1153
1186
  accessibilityRole: "button",
@@ -1155,10 +1188,10 @@ function Input(inputProps) {
1155
1188
  className: nativePasswordToggleClassName,
1156
1189
  disabled,
1157
1190
  onPress: () => setPasswordVisible((current) => !current),
1158
- children: /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.Text, { className: nativePasswordToggleTextClassName, children: passwordVisible ? "Hide" : "Show" })
1191
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { className: nativePasswordToggleTextClassName, children: passwordVisible ? "Hide" : "Show" })
1159
1192
  }
1160
1193
  ) : null,
1161
- /* @__PURE__ */ jsxRuntime$1.jsx(
1194
+ /* @__PURE__ */ jsxRuntime.jsx(
1162
1195
  InputResponse,
1163
1196
  {
1164
1197
  message: errorText,
@@ -1241,8 +1274,8 @@ function InputFile(inputFileProps) {
1241
1274
  await helpers.setTouched(true);
1242
1275
  }
1243
1276
  };
1244
- return /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: inputRootClassName, children: [
1245
- /* @__PURE__ */ jsxRuntime$1.jsx(
1277
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: inputRootClassName, children: [
1278
+ /* @__PURE__ */ jsxRuntime.jsx(
1246
1279
  reactNative.Pressable,
1247
1280
  {
1248
1281
  accessibilityLabel: resolvedLabel,
@@ -1259,7 +1292,7 @@ function InputFile(inputFileProps) {
1259
1292
  disabled && inputFrameDisabledClassName,
1260
1293
  className
1261
1294
  ),
1262
- children: /* @__PURE__ */ jsxRuntime$1.jsx(
1295
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1263
1296
  reactNative.Text,
1264
1297
  {
1265
1298
  numberOfLines: 1,
@@ -1275,7 +1308,7 @@ function InputFile(inputFileProps) {
1275
1308
  )
1276
1309
  }
1277
1310
  ),
1278
- /* @__PURE__ */ jsxRuntime$1.jsx(
1311
+ /* @__PURE__ */ jsxRuntime.jsx(
1279
1312
  InputLabel,
1280
1313
  {
1281
1314
  disabled,
@@ -1285,7 +1318,7 @@ function InputFile(inputFileProps) {
1285
1318
  className: labelClassName
1286
1319
  }
1287
1320
  ),
1288
- /* @__PURE__ */ jsxRuntime$1.jsx(
1321
+ /* @__PURE__ */ jsxRuntime.jsx(
1289
1322
  InputResponse,
1290
1323
  {
1291
1324
  message: errorText,
@@ -1380,8 +1413,8 @@ function Select(selectProps) {
1380
1413
  setFocused(true);
1381
1414
  onFocus?.(event);
1382
1415
  };
1383
- return /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: inputRootClassName, children: [
1384
- /* @__PURE__ */ jsxRuntime$1.jsx(
1416
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: inputRootClassName, children: [
1417
+ /* @__PURE__ */ jsxRuntime.jsx(
1385
1418
  reactNative.Pressable,
1386
1419
  {
1387
1420
  accessibilityLabel: resolvedLabel,
@@ -1400,7 +1433,7 @@ function Select(selectProps) {
1400
1433
  className,
1401
1434
  styles
1402
1435
  ),
1403
- children: /* @__PURE__ */ jsxRuntime$1.jsx(
1436
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1404
1437
  reactNative.Text,
1405
1438
  {
1406
1439
  numberOfLines: 1,
@@ -1416,7 +1449,7 @@ function Select(selectProps) {
1416
1449
  )
1417
1450
  }
1418
1451
  ),
1419
- /* @__PURE__ */ jsxRuntime$1.jsx(
1452
+ /* @__PURE__ */ jsxRuntime.jsx(
1420
1453
  InputLabel,
1421
1454
  {
1422
1455
  disabled,
@@ -1426,7 +1459,7 @@ function Select(selectProps) {
1426
1459
  className: labelClassName
1427
1460
  }
1428
1461
  ),
1429
- /* @__PURE__ */ jsxRuntime$1.jsx(
1462
+ /* @__PURE__ */ jsxRuntime.jsx(
1430
1463
  InputResponse,
1431
1464
  {
1432
1465
  message: errorText,
@@ -1436,15 +1469,15 @@ function Select(selectProps) {
1436
1469
  className: responseClassName
1437
1470
  }
1438
1471
  ),
1439
- /* @__PURE__ */ jsxRuntime$1.jsx(
1472
+ /* @__PURE__ */ jsxRuntime.jsx(
1440
1473
  reactNative.Modal,
1441
1474
  {
1442
1475
  animationType: "fade",
1443
1476
  onRequestClose: closeOptions,
1444
1477
  transparent: true,
1445
1478
  visible: open,
1446
- children: /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: "flex-1 justify-end bg-black/40 px-4 py-6", children: [
1447
- /* @__PURE__ */ jsxRuntime$1.jsx(
1479
+ children: /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: "flex-1 justify-end bg-black/40 px-4 py-6", children: [
1480
+ /* @__PURE__ */ jsxRuntime.jsx(
1448
1481
  reactNative.Pressable,
1449
1482
  {
1450
1483
  accessibilityLabel: "Close select options",
@@ -1453,9 +1486,9 @@ function Select(selectProps) {
1453
1486
  onPress: closeOptions
1454
1487
  }
1455
1488
  ),
1456
- /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.View, { className: "max-h-[70%] overflow-hidden rounded-lg bg-white shadow-xl dark:bg-eui-dark-500", children: /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.ScrollView, { children: options.map((option) => {
1489
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { className: "max-h-[70%] overflow-hidden rounded-lg bg-white shadow-xl dark:bg-eui-dark-500", children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.ScrollView, { children: options.map((option) => {
1457
1490
  const selected = option.value === field.value;
1458
- return /* @__PURE__ */ jsxRuntime$1.jsx(
1491
+ return /* @__PURE__ */ jsxRuntime.jsx(
1459
1492
  reactNative.Pressable,
1460
1493
  {
1461
1494
  accessibilityRole: "button",
@@ -1470,7 +1503,7 @@ function Select(selectProps) {
1470
1503
  selected && "bg-eui-secondary-500/10",
1471
1504
  option.disabled && "opacity-50"
1472
1505
  ),
1473
- children: /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.Text, { className: "text-base font-medium text-gray-950 dark:text-gray-50", children: String(option.label) })
1506
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { className: "text-base font-medium text-gray-950 dark:text-gray-50", children: String(option.label) })
1474
1507
  },
1475
1508
  option.value
1476
1509
  );
@@ -1601,8 +1634,8 @@ function Tags(tagsProps) {
1601
1634
  setFocused(true);
1602
1635
  onFocus?.(event);
1603
1636
  };
1604
- return /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: inputRootClassName, children: [
1605
- /* @__PURE__ */ jsxRuntime$1.jsxs(
1637
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: inputRootClassName, children: [
1638
+ /* @__PURE__ */ jsxRuntime.jsxs(
1606
1639
  reactNative.View,
1607
1640
  {
1608
1641
  className: cn(
@@ -1615,7 +1648,7 @@ function Tags(tagsProps) {
1615
1648
  styles
1616
1649
  ),
1617
1650
  children: [
1618
- tags.map((tag, index) => /* @__PURE__ */ jsxRuntime$1.jsxs(
1651
+ tags.map((tag, index) => /* @__PURE__ */ jsxRuntime.jsxs(
1619
1652
  reactNative.View,
1620
1653
  {
1621
1654
  className: cn(
@@ -1623,7 +1656,7 @@ function Tags(tagsProps) {
1623
1656
  tagClassName
1624
1657
  ),
1625
1658
  children: [
1626
- /* @__PURE__ */ jsxRuntime$1.jsx(
1659
+ /* @__PURE__ */ jsxRuntime.jsx(
1627
1660
  reactNative.Text,
1628
1661
  {
1629
1662
  className: "shrink text-sm font-medium text-eui-dark-700 dark:text-eui-light-300",
@@ -1632,7 +1665,7 @@ function Tags(tagsProps) {
1632
1665
  children: tag
1633
1666
  }
1634
1667
  ),
1635
- /* @__PURE__ */ jsxRuntime$1.jsx(
1668
+ /* @__PURE__ */ jsxRuntime.jsx(
1636
1669
  reactNative.Pressable,
1637
1670
  {
1638
1671
  accessibilityLabel: `Remove ${tag}`,
@@ -1644,7 +1677,7 @@ function Tags(tagsProps) {
1644
1677
  ),
1645
1678
  disabled,
1646
1679
  onPress: () => handleRemoveTag(index),
1647
- children: /* @__PURE__ */ jsxRuntime$1.jsx(
1680
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1648
1681
  reactNative.Text,
1649
1682
  {
1650
1683
  className: "text-xs font-bold text-eui-danger-500",
@@ -1658,7 +1691,7 @@ function Tags(tagsProps) {
1658
1691
  },
1659
1692
  `${tag}-${index}`
1660
1693
  )),
1661
- tags.length < resolvedLimit ? /* @__PURE__ */ jsxRuntime$1.jsx(
1694
+ tags.length < resolvedLimit ? /* @__PURE__ */ jsxRuntime.jsx(
1662
1695
  reactNative.TextInput,
1663
1696
  {
1664
1697
  accessibilityLabel: resolvedLabel,
@@ -1680,7 +1713,7 @@ function Tags(tagsProps) {
1680
1713
  value: input
1681
1714
  }
1682
1715
  ) : null,
1683
- /* @__PURE__ */ jsxRuntime$1.jsxs(
1716
+ /* @__PURE__ */ jsxRuntime.jsxs(
1684
1717
  reactNative.Text,
1685
1718
  {
1686
1719
  className: cn(
@@ -1698,7 +1731,7 @@ function Tags(tagsProps) {
1698
1731
  ]
1699
1732
  }
1700
1733
  ),
1701
- /* @__PURE__ */ jsxRuntime$1.jsx(
1734
+ /* @__PURE__ */ jsxRuntime.jsx(
1702
1735
  InputLabel,
1703
1736
  {
1704
1737
  disabled,
@@ -1708,7 +1741,7 @@ function Tags(tagsProps) {
1708
1741
  className: labelClassName
1709
1742
  }
1710
1743
  ),
1711
- /* @__PURE__ */ jsxRuntime$1.jsx(
1744
+ /* @__PURE__ */ jsxRuntime.jsx(
1712
1745
  InputResponse,
1713
1746
  {
1714
1747
  message: errorText,
@@ -1790,8 +1823,8 @@ function TextArea(textAreaProps) {
1790
1823
  setFocused(true);
1791
1824
  onFocus?.(event);
1792
1825
  };
1793
- return /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: inputRootClassName, children: [
1794
- /* @__PURE__ */ jsxRuntime$1.jsxs(
1826
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { className: inputRootClassName, children: [
1827
+ /* @__PURE__ */ jsxRuntime.jsxs(
1795
1828
  reactNative.View,
1796
1829
  {
1797
1830
  className: cn(
@@ -1804,7 +1837,7 @@ function TextArea(textAreaProps) {
1804
1837
  styles
1805
1838
  ),
1806
1839
  children: [
1807
- /* @__PURE__ */ jsxRuntime$1.jsx(
1840
+ /* @__PURE__ */ jsxRuntime.jsx(
1808
1841
  reactNative.TextInput,
1809
1842
  {
1810
1843
  accessibilityLabel: resolvedLabel,
@@ -1821,7 +1854,7 @@ function TextArea(textAreaProps) {
1821
1854
  value: field.value ?? ""
1822
1855
  }
1823
1856
  ),
1824
- /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.Text, { className: "absolute bottom-3 right-3 text-xs font-semibold text-eui-dark-50", children: [
1857
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.Text, { className: "absolute bottom-3 right-3 text-xs font-semibold text-eui-dark-50", children: [
1825
1858
  characterCount,
1826
1859
  "/",
1827
1860
  resolvedLimit
@@ -1829,7 +1862,7 @@ function TextArea(textAreaProps) {
1829
1862
  ]
1830
1863
  }
1831
1864
  ),
1832
- /* @__PURE__ */ jsxRuntime$1.jsx(
1865
+ /* @__PURE__ */ jsxRuntime.jsx(
1833
1866
  InputLabel,
1834
1867
  {
1835
1868
  disabled,
@@ -1839,7 +1872,7 @@ function TextArea(textAreaProps) {
1839
1872
  className: labelClassName
1840
1873
  }
1841
1874
  ),
1842
- /* @__PURE__ */ jsxRuntime$1.jsx(
1875
+ /* @__PURE__ */ jsxRuntime.jsx(
1843
1876
  InputResponse,
1844
1877
  {
1845
1878
  message: errorText,