@xaui/native 0.0.12 → 0.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.
Files changed (38) hide show
  1. package/README.md +8 -1
  2. package/dist/accordion/index.cjs +7 -2
  3. package/dist/accordion/index.js +7 -2
  4. package/dist/alert/index.cjs +25 -188
  5. package/dist/alert/index.js +1 -2
  6. package/dist/autocomplete/index.cjs +106 -403
  7. package/dist/autocomplete/index.js +1 -3
  8. package/dist/button/index.cjs +126 -4
  9. package/dist/button/index.d.cts +63 -1
  10. package/dist/button/index.d.ts +63 -1
  11. package/dist/button/index.js +117 -3
  12. package/dist/checkbox/index.cjs +5 -1
  13. package/dist/checkbox/index.js +5 -1
  14. package/dist/{chunk-OFYJYQ2M.js → chunk-2T6FKPJW.js} +1 -3
  15. package/dist/{chunk-LM23DOX3.js → chunk-7OFTYKK4.js} +13 -33
  16. package/dist/{chunk-63LRW4QD.js → chunk-MKHBEJLO.js} +8 -1
  17. package/dist/{chunk-RL47NQAU.js → chunk-NMZUPH3R.js} +7 -12
  18. package/dist/datepicker/index.cjs +115 -836
  19. package/dist/datepicker/index.js +1 -3
  20. package/dist/index.cjs +362 -1170
  21. package/dist/index.js +4 -6
  22. package/dist/indicator/index.cjs +8 -1
  23. package/dist/indicator/index.js +1 -1
  24. package/dist/menu/index.cjs +371 -0
  25. package/dist/menu/index.d.cts +107 -0
  26. package/dist/menu/index.d.ts +107 -0
  27. package/dist/menu/index.js +304 -0
  28. package/dist/select/index.cjs +40 -16
  29. package/dist/select/index.js +40 -16
  30. package/dist/view/index.cjs +12 -7
  31. package/dist/view/index.js +12 -7
  32. package/package.json +7 -6
  33. package/dist/chunk-CKGZOJVV.js +0 -815
  34. package/dist/chunk-SIXET7TJ.js +0 -172
  35. package/dist/icon/index.cjs +0 -1054
  36. package/dist/icon/index.d.cts +0 -42
  37. package/dist/icon/index.d.ts +0 -42
  38. package/dist/icon/index.js +0 -21
@@ -1,10 +1,8 @@
1
1
  import {
2
2
  Autocomplete,
3
3
  AutocompleteItem
4
- } from "../chunk-RL47NQAU.js";
4
+ } from "../chunk-NMZUPH3R.js";
5
5
  import "../chunk-GBHQCAKW.js";
6
- import "../chunk-CKGZOJVV.js";
7
- import "../chunk-SIXET7TJ.js";
8
6
  import "../chunk-NBRASCX4.js";
9
7
  export {
10
8
  Autocomplete,
@@ -30,7 +30,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/components/button/index.ts
31
31
  var button_exports = {};
32
32
  __export(button_exports, {
33
- Button: () => Button
33
+ Button: () => Button,
34
+ IconButton: () => IconButton
34
35
  });
35
36
  module.exports = __toCommonJS(button_exports);
36
37
 
@@ -233,7 +234,14 @@ var CircularActivityIndicator = ({
233
234
  borderWidth: strokeWidth,
234
235
  borderRadius: size / 2
235
236
  };
236
- return /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { key: index, style: [styles.layer] }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: layerStyle }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: [containerStyle, offsetStyle], collapsable: false }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: viewportStyle }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: containerStyle, collapsable: false }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: lineStyle }))))));
237
+ return /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { key: index, style: [styles.layer] }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: layerStyle }, /* @__PURE__ */ import_react6.default.createElement(
238
+ import_react_native5.Animated.View,
239
+ {
240
+ style: [containerStyle, offsetStyle],
241
+ collapsable: false
242
+ },
243
+ /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: viewportStyle }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: containerStyle, collapsable: false }, /* @__PURE__ */ import_react6.default.createElement(import_react_native5.Animated.View, { style: lineStyle })))
244
+ )));
237
245
  })
238
246
  ));
239
247
  };
@@ -598,7 +606,7 @@ var import_react_native9 = require("react-native");
598
606
  var runPressInAnimation = (animatedScale, animatedOpacity) => {
599
607
  import_react_native9.Animated.parallel([
600
608
  import_react_native9.Animated.spring(animatedScale, {
601
- toValue: 0.965,
609
+ toValue: 0.975,
602
610
  useNativeDriver: true,
603
611
  speed: 50,
604
612
  bounciness: 0
@@ -713,7 +721,121 @@ var Button = ({
713
721
  )
714
722
  ));
715
723
  };
724
+
725
+ // src/components/button/icon-button.tsx
726
+ var import_react13 = __toESM(require("react"), 1);
727
+ var import_react_native12 = require("react-native");
728
+
729
+ // src/components/button/icon-button.style.ts
730
+ var import_react_native11 = require("react-native");
731
+ var iconButtonStyles = import_react_native11.StyleSheet.create({
732
+ container: {
733
+ alignItems: "center",
734
+ justifyContent: "center"
735
+ },
736
+ button: {
737
+ alignItems: "center",
738
+ justifyContent: "center",
739
+ aspectRatio: 1
740
+ },
741
+ disabled: {
742
+ opacity: 0.5
743
+ }
744
+ });
745
+
746
+ // src/components/button/icon-button.hook.ts
747
+ var import_react12 = require("react");
748
+ var useIconButtonSizeStyles = (size) => {
749
+ const theme = useXUITheme();
750
+ return (0, import_react12.useMemo)(() => {
751
+ const sizeMap = {
752
+ xs: { width: 34, height: 34 },
753
+ sm: { width: 38, height: 38 },
754
+ md: { width: 42, height: 42 },
755
+ lg: { width: 50, height: 50 }
756
+ };
757
+ return sizeMap[size];
758
+ }, [size, theme]);
759
+ };
760
+
761
+ // src/components/button/icon-button.tsx
762
+ var IconButton = ({
763
+ icon,
764
+ themeColor = "primary",
765
+ variant = "solid",
766
+ size = "md",
767
+ radius = "md",
768
+ isDisabled = false,
769
+ isLoading = false,
770
+ customAppearance,
771
+ onPress,
772
+ onLongPress,
773
+ onPressIn,
774
+ onPressOut
775
+ }) => {
776
+ const animatedScale = import_react13.default.useRef(new import_react_native12.Animated.Value(1)).current;
777
+ const animatedOpacity = import_react13.default.useRef(new import_react_native12.Animated.Value(1)).current;
778
+ const sizeStyles = useIconButtonSizeStyles(size);
779
+ const radiusStyles = useBorderRadiusStyles(radius);
780
+ const variantStyles = useVariantSizesStyles(themeColor, variant);
781
+ const { textColor } = useTextStyles(themeColor, variant);
782
+ const handlePressIn = (event) => {
783
+ if (!isDisabled && !isLoading) {
784
+ runPressInAnimation(animatedScale, animatedOpacity);
785
+ }
786
+ onPressIn?.(event);
787
+ };
788
+ const handlePressOut = (event) => {
789
+ if (!isDisabled && !isLoading) {
790
+ runPressOutAnimation(animatedScale, animatedOpacity);
791
+ }
792
+ onPressOut?.(event);
793
+ };
794
+ const spinnerSize = {
795
+ xs: 14,
796
+ sm: 16,
797
+ md: 18,
798
+ lg: 20
799
+ }[size];
800
+ return /* @__PURE__ */ import_react13.default.createElement(import_react_native12.View, { style: [iconButtonStyles.container, customAppearance?.container] }, /* @__PURE__ */ import_react13.default.createElement(
801
+ import_react_native12.Pressable,
802
+ {
803
+ onPress: isDisabled || isLoading ? void 0 : onPress,
804
+ onLongPress: isDisabled || isLoading ? void 0 : onLongPress,
805
+ onPressIn: handlePressIn,
806
+ onPressOut: handlePressOut,
807
+ disabled: isDisabled || isLoading
808
+ },
809
+ /* @__PURE__ */ import_react13.default.createElement(
810
+ import_react_native12.Animated.View,
811
+ {
812
+ style: [
813
+ iconButtonStyles.button,
814
+ sizeStyles,
815
+ radiusStyles,
816
+ variantStyles,
817
+ isDisabled && iconButtonStyles.disabled,
818
+ {
819
+ transform: [{ scale: animatedScale }],
820
+ opacity: animatedOpacity
821
+ },
822
+ customAppearance?.button
823
+ ]
824
+ },
825
+ isLoading ? /* @__PURE__ */ import_react13.default.createElement(
826
+ ActivityIndicator,
827
+ {
828
+ variant: "circular",
829
+ themeColor: variant === "solid" || variant === "elevated" ? void 0 : themeColor,
830
+ color: variant === "solid" || variant === "elevated" ? textColor : void 0,
831
+ size: spinnerSize
832
+ }
833
+ ) : icon
834
+ )
835
+ ));
836
+ };
716
837
  // Annotate the CommonJS export names for ESM import in node:
717
838
  0 && (module.exports = {
718
- Button
839
+ Button,
840
+ IconButton
719
841
  });
@@ -96,4 +96,66 @@ type ButtonProps = {
96
96
 
97
97
  declare const Button: React.FC<ButtonProps>;
98
98
 
99
- export { Button, type ButtonProps, type ButtonRadius, type ButtonVariant, type SpinnerPlacement };
99
+ type IconButtonProps = {
100
+ /**
101
+ * Icon to display in the button
102
+ */
103
+ icon: ReactNode;
104
+ /**
105
+ * Button size
106
+ * @default 'md'
107
+ */
108
+ size?: Size;
109
+ /**
110
+ * Button variant
111
+ * @default 'solid'
112
+ */
113
+ variant?: ButtonVariant;
114
+ /**
115
+ * Theme color
116
+ * @default 'primary'
117
+ */
118
+ themeColor?: ThemeColor;
119
+ /**
120
+ * Border radius
121
+ * @default 'md'
122
+ */
123
+ radius?: ButtonRadius;
124
+ /**
125
+ * Whether the button is disabled
126
+ * @default false
127
+ */
128
+ isDisabled?: boolean;
129
+ /**
130
+ * Whether the button is loading
131
+ * @default false
132
+ */
133
+ isLoading?: boolean;
134
+ /**
135
+ * Custom appearance overrides
136
+ */
137
+ customAppearance?: {
138
+ container?: ViewStyle;
139
+ button?: ViewStyle;
140
+ };
141
+ /**
142
+ * Press handler
143
+ */
144
+ onPress?: (event: GestureResponderEvent) => void;
145
+ /**
146
+ * Long press handler
147
+ */
148
+ onLongPress?: (event: GestureResponderEvent) => void;
149
+ /**
150
+ * Press in handler
151
+ */
152
+ onPressIn?: (event: GestureResponderEvent) => void;
153
+ /**
154
+ * Press out handler
155
+ */
156
+ onPressOut?: (event: GestureResponderEvent) => void;
157
+ };
158
+
159
+ declare const IconButton: React.FC<IconButtonProps>;
160
+
161
+ export { Button, type ButtonProps, type ButtonRadius, type ButtonVariant, IconButton, type IconButtonProps, type SpinnerPlacement };
@@ -96,4 +96,66 @@ type ButtonProps = {
96
96
 
97
97
  declare const Button: React.FC<ButtonProps>;
98
98
 
99
- export { Button, type ButtonProps, type ButtonRadius, type ButtonVariant, type SpinnerPlacement };
99
+ type IconButtonProps = {
100
+ /**
101
+ * Icon to display in the button
102
+ */
103
+ icon: ReactNode;
104
+ /**
105
+ * Button size
106
+ * @default 'md'
107
+ */
108
+ size?: Size;
109
+ /**
110
+ * Button variant
111
+ * @default 'solid'
112
+ */
113
+ variant?: ButtonVariant;
114
+ /**
115
+ * Theme color
116
+ * @default 'primary'
117
+ */
118
+ themeColor?: ThemeColor;
119
+ /**
120
+ * Border radius
121
+ * @default 'md'
122
+ */
123
+ radius?: ButtonRadius;
124
+ /**
125
+ * Whether the button is disabled
126
+ * @default false
127
+ */
128
+ isDisabled?: boolean;
129
+ /**
130
+ * Whether the button is loading
131
+ * @default false
132
+ */
133
+ isLoading?: boolean;
134
+ /**
135
+ * Custom appearance overrides
136
+ */
137
+ customAppearance?: {
138
+ container?: ViewStyle;
139
+ button?: ViewStyle;
140
+ };
141
+ /**
142
+ * Press handler
143
+ */
144
+ onPress?: (event: GestureResponderEvent) => void;
145
+ /**
146
+ * Long press handler
147
+ */
148
+ onLongPress?: (event: GestureResponderEvent) => void;
149
+ /**
150
+ * Press in handler
151
+ */
152
+ onPressIn?: (event: GestureResponderEvent) => void;
153
+ /**
154
+ * Press out handler
155
+ */
156
+ onPressOut?: (event: GestureResponderEvent) => void;
157
+ };
158
+
159
+ declare const IconButton: React.FC<IconButtonProps>;
160
+
161
+ export { Button, type ButtonProps, type ButtonRadius, type ButtonVariant, IconButton, type IconButtonProps, type SpinnerPlacement };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ActivityIndicator
3
- } from "../chunk-63LRW4QD.js";
3
+ } from "../chunk-MKHBEJLO.js";
4
4
  import {
5
5
  useBorderRadiusStyles,
6
6
  useXUITheme
@@ -154,7 +154,7 @@ import { Animated } from "react-native";
154
154
  var runPressInAnimation = (animatedScale, animatedOpacity) => {
155
155
  Animated.parallel([
156
156
  Animated.spring(animatedScale, {
157
- toValue: 0.965,
157
+ toValue: 0.975,
158
158
  useNativeDriver: true,
159
159
  speed: 50,
160
160
  bounciness: 0
@@ -269,6 +269,120 @@ var Button = ({
269
269
  )
270
270
  ));
271
271
  };
272
+
273
+ // src/components/button/icon-button.tsx
274
+ import React2 from "react";
275
+ import { Pressable as Pressable2, View as View2, Animated as Animated3 } from "react-native";
276
+
277
+ // src/components/button/icon-button.style.ts
278
+ import { StyleSheet as StyleSheet2 } from "react-native";
279
+ var iconButtonStyles = StyleSheet2.create({
280
+ container: {
281
+ alignItems: "center",
282
+ justifyContent: "center"
283
+ },
284
+ button: {
285
+ alignItems: "center",
286
+ justifyContent: "center",
287
+ aspectRatio: 1
288
+ },
289
+ disabled: {
290
+ opacity: 0.5
291
+ }
292
+ });
293
+
294
+ // src/components/button/icon-button.hook.ts
295
+ import { useMemo as useMemo2 } from "react";
296
+ var useIconButtonSizeStyles = (size) => {
297
+ const theme = useXUITheme();
298
+ return useMemo2(() => {
299
+ const sizeMap = {
300
+ xs: { width: 34, height: 34 },
301
+ sm: { width: 38, height: 38 },
302
+ md: { width: 42, height: 42 },
303
+ lg: { width: 50, height: 50 }
304
+ };
305
+ return sizeMap[size];
306
+ }, [size, theme]);
307
+ };
308
+
309
+ // src/components/button/icon-button.tsx
310
+ var IconButton = ({
311
+ icon,
312
+ themeColor = "primary",
313
+ variant = "solid",
314
+ size = "md",
315
+ radius = "md",
316
+ isDisabled = false,
317
+ isLoading = false,
318
+ customAppearance,
319
+ onPress,
320
+ onLongPress,
321
+ onPressIn,
322
+ onPressOut
323
+ }) => {
324
+ const animatedScale = React2.useRef(new Animated3.Value(1)).current;
325
+ const animatedOpacity = React2.useRef(new Animated3.Value(1)).current;
326
+ const sizeStyles = useIconButtonSizeStyles(size);
327
+ const radiusStyles = useBorderRadiusStyles(radius);
328
+ const variantStyles = useVariantSizesStyles(themeColor, variant);
329
+ const { textColor } = useTextStyles(themeColor, variant);
330
+ const handlePressIn = (event) => {
331
+ if (!isDisabled && !isLoading) {
332
+ runPressInAnimation(animatedScale, animatedOpacity);
333
+ }
334
+ onPressIn?.(event);
335
+ };
336
+ const handlePressOut = (event) => {
337
+ if (!isDisabled && !isLoading) {
338
+ runPressOutAnimation(animatedScale, animatedOpacity);
339
+ }
340
+ onPressOut?.(event);
341
+ };
342
+ const spinnerSize = {
343
+ xs: 14,
344
+ sm: 16,
345
+ md: 18,
346
+ lg: 20
347
+ }[size];
348
+ return /* @__PURE__ */ React2.createElement(View2, { style: [iconButtonStyles.container, customAppearance?.container] }, /* @__PURE__ */ React2.createElement(
349
+ Pressable2,
350
+ {
351
+ onPress: isDisabled || isLoading ? void 0 : onPress,
352
+ onLongPress: isDisabled || isLoading ? void 0 : onLongPress,
353
+ onPressIn: handlePressIn,
354
+ onPressOut: handlePressOut,
355
+ disabled: isDisabled || isLoading
356
+ },
357
+ /* @__PURE__ */ React2.createElement(
358
+ Animated3.View,
359
+ {
360
+ style: [
361
+ iconButtonStyles.button,
362
+ sizeStyles,
363
+ radiusStyles,
364
+ variantStyles,
365
+ isDisabled && iconButtonStyles.disabled,
366
+ {
367
+ transform: [{ scale: animatedScale }],
368
+ opacity: animatedOpacity
369
+ },
370
+ customAppearance?.button
371
+ ]
372
+ },
373
+ isLoading ? /* @__PURE__ */ React2.createElement(
374
+ ActivityIndicator,
375
+ {
376
+ variant: "circular",
377
+ themeColor: variant === "solid" || variant === "elevated" ? void 0 : themeColor,
378
+ color: variant === "solid" || variant === "elevated" ? textColor : void 0,
379
+ size: spinnerSize
380
+ }
381
+ ) : icon
382
+ )
383
+ ));
384
+ };
272
385
  export {
273
- Button
386
+ Button,
387
+ IconButton
274
388
  };
@@ -173,7 +173,11 @@ function IndeterminateCheckIcon({
173
173
  }) {
174
174
  return /* @__PURE__ */ import_react.default.createElement(import_react_native_svg.default, { width: size, height: size, viewBox: "0 0 24 24" }, /* @__PURE__ */ import_react.default.createElement(import_react_native_svg.Line, { x1: "21", y1: "12", x2: "3", y2: "12", stroke: color, strokeWidth: 3 }));
175
175
  }
176
- function CheckboxIcon({ isIndeterminate, variant, ...props }) {
176
+ function CheckboxIcon({
177
+ isIndeterminate,
178
+ variant,
179
+ ...props
180
+ }) {
177
181
  const BaseIcon = isIndeterminate ? IndeterminateCheckIcon : CheckIcon;
178
182
  if (variant === "light" && !props.isChecked && !isIndeterminate) {
179
183
  return /* @__PURE__ */ import_react.default.createElement(PlaceholderCheckIcon, { size: props.size, color: props.placeholderColor ?? "" });
@@ -141,7 +141,11 @@ function IndeterminateCheckIcon({
141
141
  }) {
142
142
  return /* @__PURE__ */ React.createElement(Svg, { width: size, height: size, viewBox: "0 0 24 24" }, /* @__PURE__ */ React.createElement(Line, { x1: "21", y1: "12", x2: "3", y2: "12", stroke: color, strokeWidth: 3 }));
143
143
  }
144
- function CheckboxIcon({ isIndeterminate, variant, ...props }) {
144
+ function CheckboxIcon({
145
+ isIndeterminate,
146
+ variant,
147
+ ...props
148
+ }) {
145
149
  const BaseIcon = isIndeterminate ? IndeterminateCheckIcon : CheckIcon;
146
150
  if (variant === "light" && !props.isChecked && !isIndeterminate) {
147
151
  return /* @__PURE__ */ React.createElement(PlaceholderCheckIcon, { size: props.size, color: props.placeholderColor ?? "" });
@@ -1,6 +1,3 @@
1
- import {
2
- CloseIcon
3
- } from "./chunk-SIXET7TJ.js";
4
1
  import {
5
2
  useBorderRadiusStyles,
6
3
  useXUITheme
@@ -207,6 +204,7 @@ function DangerIcon({ color, size }) {
207
204
  }
208
205
 
209
206
  // src/components/alert/alert.tsx
207
+ import { CloseIcon } from "@xaui/icons";
210
208
  var iconMap = {
211
209
  default: InfoIcon,
212
210
  primary: InfoIcon,
@@ -1,12 +1,3 @@
1
- import {
2
- CalendarIcon,
3
- ChevronDownIcon,
4
- ChevronLeftIcon,
5
- ChevronRightIcon
6
- } from "./chunk-CKGZOJVV.js";
7
- import {
8
- CloseIcon
9
- } from "./chunk-SIXET7TJ.js";
10
1
  import {
11
2
  Portal,
12
3
  useXUITheme
@@ -228,9 +219,7 @@ var getWeekdayNames = (locale, firstDayOfWeek) => {
228
219
  const days = [];
229
220
  for (let i = 0; i < 7; i++) {
230
221
  const date = new Date(2024, 0, 1 + offset + i);
231
- days.push(
232
- date.toLocaleDateString(locale, { weekday: "short" }).slice(0, 2)
233
- );
222
+ days.push(date.toLocaleDateString(locale, { weekday: "short" }).slice(0, 2));
234
223
  }
235
224
  return days;
236
225
  };
@@ -943,6 +932,10 @@ var DatePickerDialogCalendar = ({
943
932
  // src/components/dialogs/datepicker-dialog/datepicker-dialog-header.tsx
944
933
  import React2, { useMemo as useMemo3 } from "react";
945
934
  import { Pressable as Pressable2, Text as Text2, View as View2 } from "react-native";
935
+ import { ChevronDownIcon } from "@xaui/icons/chevron-down";
936
+ import { ChevronLeftIcon } from "@xaui/icons/chevron-left";
937
+ import { ChevronRightIcon } from "@xaui/icons/chevron-right";
938
+ import { CloseIcon } from "@xaui/icons/close";
946
939
  var DatePickerDialogHeader = ({
947
940
  viewDate,
948
941
  selectedDate,
@@ -964,7 +957,7 @@ var DatePickerDialogHeader = ({
964
957
  const month = getMonthName(viewDate.getMonth(), locale);
965
958
  return `${month} ${viewDate.getFullYear()}`;
966
959
  }, [viewDate, locale]);
967
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(View2, { style: [styles2.header, { backgroundColor: colorScheme.main }] }, /* @__PURE__ */ React2.createElement(Text2, { style: [styles2.headerLabel, { color: colorScheme.foreground }] }, selectDateLabel), /* @__PURE__ */ React2.createElement(View2, { style: styles2.headerDateRow }, /* @__PURE__ */ React2.createElement(Text2, { style: [styles2.headerDate, { color: colorScheme.foreground }] }, dateText), /* @__PURE__ */ React2.createElement(
960
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(View2, { style: [styles2.header, { backgroundColor: colorScheme.main }] }, /* @__PURE__ */ React2.createElement(Text2, { style: [styles2.headerLabel, { color: colorScheme.foreground }] }, selectDateLabel), /* @__PURE__ */ React2.createElement(View2, { style: styles2.headerDateRow }, /* @__PURE__ */ React2.createElement(Text2, { style: [styles2.headerDate, { color: colorScheme.foreground }] }, dateText), selectedDate ? /* @__PURE__ */ React2.createElement(
968
961
  Pressable2,
969
962
  {
970
963
  onPress: onClearValue,
@@ -973,7 +966,7 @@ var DatePickerDialogHeader = ({
973
966
  accessibilityRole: "button"
974
967
  },
975
968
  /* @__PURE__ */ React2.createElement(CloseIcon, { size: 20, color: colorScheme.foreground })
976
- ))), /* @__PURE__ */ React2.createElement(View2, { style: styles2.navigationRow }, /* @__PURE__ */ React2.createElement(
969
+ ) : null)), /* @__PURE__ */ React2.createElement(View2, { style: styles2.navigationRow }, /* @__PURE__ */ React2.createElement(
977
970
  Pressable2,
978
971
  {
979
972
  style: styles2.monthYearButton,
@@ -981,20 +974,8 @@ var DatePickerDialogHeader = ({
981
974
  accessibilityLabel: `${monthYearLabel}, tap to change`,
982
975
  accessibilityRole: "button"
983
976
  },
984
- /* @__PURE__ */ React2.createElement(
985
- Text2,
986
- {
987
- style: [styles2.monthYearText, { color: theme.colors.foreground }]
988
- },
989
- monthYearLabel
990
- ),
991
- /* @__PURE__ */ React2.createElement(
992
- ChevronDownIcon,
993
- {
994
- size: 18,
995
- color: theme.colors.foreground
996
- }
997
- )
977
+ /* @__PURE__ */ React2.createElement(Text2, { style: [styles2.monthYearText, { color: theme.colors.foreground }] }, monthYearLabel),
978
+ /* @__PURE__ */ React2.createElement(ChevronDownIcon, { size: 18, color: theme.colors.foreground })
998
979
  ), /* @__PURE__ */ React2.createElement(View2, { style: styles2.navButtons }, /* @__PURE__ */ React2.createElement(
999
980
  Pressable2,
1000
981
  {
@@ -1099,10 +1080,7 @@ var DatePickerDialogYearPicker = ({ viewDate, themeColor, minDate, maxDate, onSe
1099
1080
  const isDefault = themeColor === "default";
1100
1081
  const accentColor = isDefault ? theme.colors.foreground : colorScheme.main;
1101
1082
  const accentFg = isDefault ? theme.colors.background : colorScheme.foreground;
1102
- const years = useMemo5(
1103
- () => getYearRange(minDate, maxDate),
1104
- [minDate, maxDate]
1105
- );
1083
+ const years = useMemo5(() => getYearRange(minDate, maxDate), [minDate, maxDate]);
1106
1084
  const currentYear = viewDate.getFullYear();
1107
1085
  const initialIndex = useMemo5(() => {
1108
1086
  const index = years.indexOf(currentYear);
@@ -1432,6 +1410,8 @@ var DatePickerDialog = ({
1432
1410
  // src/components/datepicker/datepicker-trigger.tsx
1433
1411
  import React6 from "react";
1434
1412
  import { Pressable as Pressable6, Text as Text6, TouchableOpacity, View as View6 } from "react-native";
1413
+ import { CalendarIcon } from "@xaui/icons/calendar";
1414
+ import { CloseIcon as CloseIcon2 } from "@xaui/icons/close";
1435
1415
  var DatePickerTrigger = ({
1436
1416
  triggerRef,
1437
1417
  isDisabled,
@@ -1497,7 +1477,7 @@ var DatePickerTrigger = ({
1497
1477
  style: styles.clearButton,
1498
1478
  hitSlop: { top: 8, right: 8, bottom: 8, left: 8 }
1499
1479
  },
1500
- /* @__PURE__ */ React6.createElement(CloseIcon, { color: theme.colors.foreground, size: 20 })
1480
+ /* @__PURE__ */ React6.createElement(CloseIcon2, { color: theme.colors.foreground, size: 20 })
1501
1481
  ) : calendarIcon ?? /* @__PURE__ */ React6.createElement(CalendarIcon, { color: theme.colors.foreground, size: 20 })
1502
1482
  );
1503
1483
  };
@@ -144,7 +144,14 @@ var CircularActivityIndicator = ({
144
144
  borderWidth: strokeWidth,
145
145
  borderRadius: size / 2
146
146
  };
147
- return /* @__PURE__ */ React.createElement(Animated.View, { key: index, style: [styles.layer] }, /* @__PURE__ */ React.createElement(Animated.View, { style: layerStyle }, /* @__PURE__ */ React.createElement(Animated.View, { style: [containerStyle, offsetStyle], collapsable: false }, /* @__PURE__ */ React.createElement(Animated.View, { style: viewportStyle }, /* @__PURE__ */ React.createElement(Animated.View, { style: containerStyle, collapsable: false }, /* @__PURE__ */ React.createElement(Animated.View, { style: lineStyle }))))));
147
+ return /* @__PURE__ */ React.createElement(Animated.View, { key: index, style: [styles.layer] }, /* @__PURE__ */ React.createElement(Animated.View, { style: layerStyle }, /* @__PURE__ */ React.createElement(
148
+ Animated.View,
149
+ {
150
+ style: [containerStyle, offsetStyle],
151
+ collapsable: false
152
+ },
153
+ /* @__PURE__ */ React.createElement(Animated.View, { style: viewportStyle }, /* @__PURE__ */ React.createElement(Animated.View, { style: containerStyle, collapsable: false }, /* @__PURE__ */ React.createElement(Animated.View, { style: lineStyle })))
154
+ )));
148
155
  })
149
156
  ));
150
157
  };
@@ -1,12 +1,6 @@
1
1
  import {
2
2
  CheckmarkIcon
3
3
  } from "./chunk-GBHQCAKW.js";
4
- import {
5
- ArrowBackIcon
6
- } from "./chunk-CKGZOJVV.js";
7
- import {
8
- CloseIcon
9
- } from "./chunk-SIXET7TJ.js";
10
4
  import {
11
5
  Portal,
12
6
  useXUITheme
@@ -275,7 +269,9 @@ var useAutocompleteInputState = ({
275
269
  selectedKey,
276
270
  onInputChange
277
271
  }) => {
278
- const [internalInputValue, setInternalInputValue] = useState(defaultInputValue ?? "");
272
+ const [internalInputValue, setInternalInputValue] = useState(
273
+ defaultInputValue ?? ""
274
+ );
279
275
  const currentInputValue = inputValue !== void 0 ? inputValue : internalInputValue;
280
276
  const updateInputValue = useCallback(
281
277
  (value) => {
@@ -343,6 +339,7 @@ import {
343
339
  TextInput,
344
340
  View
345
341
  } from "react-native";
342
+ import { ArrowBackIcon, CloseIcon } from "@xaui/icons";
346
343
 
347
344
  // src/components/dialogs/autocomplete-dialog/autocomplete-dialog.style.ts
348
345
  import { StyleSheet as StyleSheet2 } from "react-native";
@@ -459,10 +456,7 @@ var AutocompleteDialogHeader = ({
459
456
  value: inputValue,
460
457
  onChangeText: onInputChange,
461
458
  placeholder,
462
- placeholderTextColor: addOpacityToColor(
463
- theme.colors.foreground,
464
- 0.5
465
- ),
459
+ placeholderTextColor: addOpacityToColor(theme.colors.foreground, 0.5),
466
460
  style: [
467
461
  styles2.input,
468
462
  {
@@ -683,6 +677,7 @@ var AutocompleteDialog = ({
683
677
  // src/components/autocomplete/autocomplete-trigger.tsx
684
678
  import React3 from "react";
685
679
  import { Pressable as Pressable3, Text as Text2, TouchableOpacity, View as View3 } from "react-native";
680
+ import { CloseIcon as CloseIcon2 } from "@xaui/icons";
686
681
  var AutocompleteTrigger = ({
687
682
  triggerRef,
688
683
  isDisabled,
@@ -749,7 +744,7 @@ var AutocompleteTrigger = ({
749
744
  style: styles.clearButton,
750
745
  hitSlop: { top: 8, right: 8, bottom: 8, left: 8 }
751
746
  },
752
- clearIcon ?? /* @__PURE__ */ React3.createElement(CloseIcon, { color: theme.colors.foreground, size: 20 })
747
+ clearIcon ?? /* @__PURE__ */ React3.createElement(CloseIcon2, { color: theme.colors.foreground, size: 20 })
753
748
  ) : null
754
749
  );
755
750
  };