@ecohouse/ui 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -40,6 +40,7 @@ var colors = {
40
40
  red: "#A63E3E",
41
41
  lightGrey: "#B7B7B7",
42
42
  primaryMuted: "#B464360F",
43
+ primaryHover: "#B4643633",
43
44
  redMuted: "#A63E3E0F",
44
45
  redHover: "#A63E3E33",
45
46
  grey0: grey["0"],
@@ -148,6 +149,38 @@ var avatarTypography = {
148
149
  letterSpacing: 0
149
150
  }
150
151
  };
152
+ var datePickerTypography = {
153
+ field: {
154
+ fontFamily: fonts.sans,
155
+ fontSize: 12,
156
+ fontWeight: "400",
157
+ lineHeight: 12,
158
+ letterSpacing: 0.36
159
+ },
160
+ /** Calendar month/year heading — Bold, centered, White. */
161
+ monthHeading: {
162
+ fontFamily: fonts.sans,
163
+ fontSize: 14,
164
+ fontWeight: "700",
165
+ lineHeight: 14,
166
+ letterSpacing: 0
167
+ },
168
+ /** Weekday header (ԵՐ, ԵՔ, ...) — Regular, uppercase, centered, Grey/300. */
169
+ weekday: {
170
+ fontFamily: fonts.sans,
171
+ fontSize: 12,
172
+ fontWeight: "400",
173
+ lineHeight: 12,
174
+ letterSpacing: 0
175
+ },
176
+ day: {
177
+ fontFamily: fonts.sans,
178
+ fontSize: 14,
179
+ fontWeight: "400",
180
+ lineHeight: 14,
181
+ letterSpacing: 0
182
+ }
183
+ };
151
184
  var textareaTypography = {
152
185
  label: {
153
186
  fontFamily: fonts.sans,
@@ -248,6 +281,25 @@ function CalendarIcon({ size = 20, color = colors.primary, strokeWidth = 1.5 })
248
281
  ) });
249
282
  }
250
283
 
284
+ // src/icons/CalendarOutline/calendarOutlinePath.ts
285
+ var CALENDAR_OUTLINE_PATH = "M10.6667 1.33334V4.00001M5.33333 1.33334V4.00001M2 6.66668H14M5.2 2.66668H10.8C11.9201 2.66668 12.4802 2.66668 12.908 2.88466C13.2843 3.07641 13.5903 3.38237 13.782 3.7587C14 4.18652 14 4.74657 14 5.86668V11.4667C14 12.5868 14 13.1468 13.782 13.5747C13.5903 13.951 13.2843 14.2569 12.908 14.4487C12.4802 14.6667 11.9201 14.6667 10.8 14.6667H5.2C4.0799 14.6667 3.51984 14.6667 3.09202 14.4487C2.71569 14.2569 2.40973 13.951 2.21799 13.5747C2 13.1468 2 12.5868 2 11.4667V5.86668C2 4.74657 2 4.18652 2.21799 3.7587C2.40973 3.38237 2.71569 3.07641 3.09202 2.88466C3.51984 2.66668 4.0799 2.66668 5.2 2.66668Z";
286
+ function CalendarOutlineIcon({
287
+ size = 20,
288
+ color = colors.primary,
289
+ strokeWidth = 1.5
290
+ }) {
291
+ return /* @__PURE__ */ jsxRuntime.jsx(Svg__default.default, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
292
+ Svg.Path,
293
+ {
294
+ d: CALENDAR_OUTLINE_PATH,
295
+ stroke: color,
296
+ strokeWidth,
297
+ strokeLinecap: "round",
298
+ strokeLinejoin: "round"
299
+ }
300
+ ) });
301
+ }
302
+
251
303
  // src/icons/Camera/cameraPath.ts
252
304
  var CAMERA_PATH = "M9.48898 7H6.2002C5.08009 7 4.51962 7 4.0918 7.21799C3.71547 7.40973 3.40973 7.71547 3.21799 8.0918C3 8.51962 3 9.08009 3 10.2002V15.8002C3 16.9203 3 17.4796 3.21799 17.9074C3.40973 18.2837 3.71547 18.5905 4.0918 18.7822C4.5192 19 5.07899 19 6.19691 19H17.8031C18.921 19 19.48 19 19.9074 18.7822C20.2837 18.5905 20.5905 18.2837 20.7822 17.9074C21 17.48 21 16.921 21 15.8031V10.1969C21 9.07899 21 8.5192 20.7822 8.0918C20.5905 7.71547 20.2837 7.40973 19.9074 7.21799C19.4796 7 18.9203 7 17.8002 7H14.5108M9.48898 7H9.55078M9.48898 7C9.50151 7.00001 9.51468 7 9.52857 7L9.55078 7M9.48898 7C9.38286 6.99995 9.32339 6.99941 9.27637 6.99414C8.68878 6.92835 8.28578 6.36908 8.40918 5.79084C8.42066 5.73703 8.44336 5.66894 8.4883 5.53412L8.49023 5.52841C8.54156 5.37443 8.56723 5.29743 8.59558 5.22949C8.88586 4.53389 9.54322 4.06083 10.2949 4.00541C10.3683 4 10.449 4 10.6113 4H13.3886C13.5509 4 13.6322 4 13.7057 4.00541C14.4574 4.06083 15.114 4.53389 15.4043 5.22949C15.4326 5.29743 15.4584 5.37434 15.5098 5.52832C15.556 5.66699 15.5791 5.73636 15.5908 5.79093C15.7142 6.36917 15.3118 6.92835 14.7242 6.99414C14.6772 6.99941 14.6171 6.99995 14.5108 7M9.55078 7H14.449M14.449 7H14.5108M14.449 7L14.4712 7C14.4851 7 14.4983 7.00001 14.5108 7M12 16C10.3431 16 9 14.6569 9 13C9 11.3431 10.3431 10 12 10C13.6569 10 15 11.3431 15 13C15 14.6569 13.6569 16 12 16Z";
253
305
  function CameraIcon({ size = 24, color = colors.primary, strokeWidth = 2 }) {
@@ -312,6 +364,21 @@ function ChevronDownIcon({
312
364
  ) });
313
365
  }
314
366
 
367
+ // src/icons/ChevronLeft/chevronLeftPath.ts
368
+ var CHEVRON_LEFT_PATH = "M12.5 15L7.5 10L12.5 5";
369
+ function ChevronLeftIcon({ size = 20, color = colors.primary, strokeWidth = 2 }) {
370
+ return /* @__PURE__ */ jsxRuntime.jsx(Svg__default.default, { width: size, height: size, viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
371
+ Svg.Path,
372
+ {
373
+ d: CHEVRON_LEFT_PATH,
374
+ stroke: color,
375
+ strokeWidth,
376
+ strokeLinecap: "round",
377
+ strokeLinejoin: "round"
378
+ }
379
+ ) });
380
+ }
381
+
315
382
  // src/icons/Clock/clockPath.ts
316
383
  var CLOCK_PATH = "M12 7V12H17M12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21Z";
317
384
  function ClockIcon({ size = 24, color = colors.primary, strokeWidth = 2 }) {
@@ -606,10 +673,12 @@ var icons = {
606
673
  bell: BellIcon,
607
674
  building: BuildingIcon,
608
675
  calendar: CalendarIcon,
676
+ calendarOutline: CalendarOutlineIcon,
609
677
  camera: CameraIcon,
610
678
  check: CheckIcon,
611
679
  checkBadge: CheckBadgeIcon,
612
680
  chevronDown: ChevronDownIcon,
681
+ chevronLeft: ChevronLeftIcon,
613
682
  clock: ClockIcon,
614
683
  facebook: FacebookIcon,
615
684
  heart: HeartIcon,
@@ -631,8 +700,19 @@ var icons = {
631
700
  };
632
701
  var iconNames = Object.keys(icons);
633
702
  var iconGroups = {
634
- navigation: ["arrowRight", "chevronDown", "home", "navigate"],
635
- actions: ["show", "bell", "camera", "key", "check", "checkBadge", "search", "calendar", "heart"],
703
+ navigation: ["arrowRight", "chevronDown", "chevronLeft", "home", "navigate"],
704
+ actions: [
705
+ "show",
706
+ "bell",
707
+ "camera",
708
+ "key",
709
+ "check",
710
+ "checkBadge",
711
+ "search",
712
+ "calendar",
713
+ "calendarOutline",
714
+ "heart"
715
+ ],
636
716
  objects: ["bag", "building", "clock", "user", "video"],
637
717
  communication: ["mail", "phone"],
638
718
  social: ["facebook", "instagram", "linkedin"],
@@ -698,13 +778,104 @@ function useApplyWebClassName(ref, className, enabled = true) {
698
778
  };
699
779
  }, [ref, className, enabled]);
700
780
  }
781
+ var ITEM_RADIUS = 12;
782
+ var ICON_SIZE = 16;
783
+ var MenuItem = react.forwardRef(function MenuItem2({
784
+ icon,
785
+ label,
786
+ onPress,
787
+ disabled = false,
788
+ backgroundColor,
789
+ hoverColor,
790
+ style,
791
+ labelStyle,
792
+ className,
793
+ accessibilityLabel,
794
+ hitSlop = 4,
795
+ onHoverIn,
796
+ onHoverOut,
797
+ onPressIn,
798
+ onPressOut,
799
+ ...rest
800
+ }, forwardedRef) {
801
+ const containerRef = react.useRef(null);
802
+ const setContainerRef = react.useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);
803
+ const [hovered, setHovered] = react.useState(false);
804
+ useApplyWebClassName(containerRef, className);
805
+ const resolvedBackground = hovered ? hoverColor ?? colors.grey600 : backgroundColor ?? "transparent";
806
+ const resolvedAccessibilityLabel = accessibilityLabel ?? label;
807
+ return /* @__PURE__ */ jsxRuntime.jsxs(
808
+ reactNative.Pressable,
809
+ {
810
+ ...rest,
811
+ ref: setContainerRef,
812
+ onPress,
813
+ disabled,
814
+ hitSlop,
815
+ onHoverIn: (event) => {
816
+ setHovered(true);
817
+ onHoverIn?.(event);
818
+ },
819
+ onHoverOut: (event) => {
820
+ setHovered(false);
821
+ onHoverOut?.(event);
822
+ },
823
+ onPressIn: (event) => {
824
+ setHovered(true);
825
+ onPressIn?.(event);
826
+ },
827
+ onPressOut: (event) => {
828
+ setHovered(false);
829
+ onPressOut?.(event);
830
+ },
831
+ accessibilityRole: "menuitem",
832
+ accessibilityLabel: resolvedAccessibilityLabel,
833
+ accessibilityState: { disabled },
834
+ style: [
835
+ styles.root,
836
+ { backgroundColor: resolvedBackground },
837
+ disabled && styles.disabled,
838
+ style
839
+ ],
840
+ children: [
841
+ icon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles.iconSlot, children: icon }) : null,
842
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles.label, labelStyle], numberOfLines: 1, children: label })
843
+ ]
844
+ }
845
+ );
846
+ });
847
+ var styles = reactNative.StyleSheet.create({
848
+ root: {
849
+ minHeight: 40,
850
+ borderRadius: ITEM_RADIUS,
851
+ paddingVertical: 12,
852
+ paddingHorizontal: 12,
853
+ flexDirection: "row",
854
+ alignItems: "center",
855
+ gap: 8,
856
+ alignSelf: "stretch"
857
+ },
858
+ disabled: {
859
+ opacity: 0.5
860
+ },
861
+ iconSlot: {
862
+ width: ICON_SIZE,
863
+ height: ICON_SIZE,
864
+ alignItems: "center",
865
+ justifyContent: "center",
866
+ flexShrink: 0
867
+ },
868
+ label: {
869
+ ...avatarTypography.menuItem,
870
+ color: colors.white,
871
+ flex: 1
872
+ }
873
+ });
701
874
  var IMAGE_SIZE = 48;
702
875
  var CONTAINER_RADIUS = 71;
703
876
  var CHEVRON_SIZE = 20;
704
877
  var FALLBACK_ICON_SIZE = 20;
705
878
  var MENU_RADIUS = 16;
706
- var MENU_ITEM_RADIUS = 12;
707
- var MENU_ITEM_ICON_SIZE = 16;
708
879
  var Avatar = react.forwardRef(function Avatar2({
709
880
  name,
710
881
  email,
@@ -727,8 +898,8 @@ var Avatar = react.forwardRef(function Avatar2({
727
898
  const containerRef = react.useRef(null);
728
899
  const setContainerRef = react.useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);
729
900
  const [imageFailed, setImageFailed] = react.useState(false);
730
- const [hoveredKey, setHoveredKey] = react.useState(null);
731
- const hasMenu = Boolean(menuItems && menuItems.length > 0);
901
+ const resolvedMenuItems = menuItems ?? [];
902
+ const hasMenu = resolvedMenuItems.length > 0;
732
903
  const isInteractive = onPress != null || hasMenu;
733
904
  const isOpenControlled = typeof openProp === "boolean";
734
905
  const [uncontrolledOpen, setUncontrolledOpen] = react.useState(defaultOpen);
@@ -738,7 +909,6 @@ var Avatar = react.forwardRef(function Avatar2({
738
909
  (next) => {
739
910
  if (!isOpenControlled) setUncontrolledOpen(next);
740
911
  onOpenChange?.(next);
741
- if (!next) setHoveredKey(null);
742
912
  },
743
913
  [isOpenControlled, onOpenChange]
744
914
  );
@@ -791,7 +961,7 @@ var Avatar = react.forwardRef(function Avatar2({
791
961
  }, [isOpen, closeAndFocusTrigger]);
792
962
  const hasImage = Boolean(imageUrl) && !imageFailed;
793
963
  const resolvedAccessibilityLabel = accessibilityLabel ?? [name, email].filter(Boolean).join(", ");
794
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: wrapperRef, style: [styles.wrapper, isOpen && styles.wrapperOpen], children: [
964
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: wrapperRef, style: [styles2.wrapper, isOpen && styles2.wrapperOpen], children: [
795
965
  /* @__PURE__ */ jsxRuntime.jsxs(
796
966
  reactNative.Pressable,
797
967
  {
@@ -803,55 +973,42 @@ var Avatar = react.forwardRef(function Avatar2({
803
973
  accessibilityRole: isInteractive ? "button" : void 0,
804
974
  accessibilityLabel: resolvedAccessibilityLabel,
805
975
  accessibilityState: isInteractive ? { disabled, expanded: hasMenu ? isOpen : void 0 } : void 0,
806
- style: [styles.root, disabled && styles.disabled, style],
976
+ style: [styles2.root, disabled && styles2.disabled, style],
807
977
  children: [
808
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles.imageWrap, children: hasImage ? /* @__PURE__ */ jsxRuntime.jsx(
978
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles2.imageWrap, children: hasImage ? /* @__PURE__ */ jsxRuntime.jsx(
809
979
  reactNative.Image,
810
980
  {
811
981
  source: { uri: imageUrl ?? void 0 },
812
- style: styles.image,
982
+ style: styles2.image,
813
983
  onError: () => setImageFailed(true)
814
984
  }
815
- ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles.imageFallback, children: /* @__PURE__ */ jsxRuntime.jsx(UserIcon, { size: FALLBACK_ICON_SIZE, color: colors.primary }) }) }),
816
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles.textColumn, children: [
817
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles.name, numberOfLines: 1, children: name }),
818
- email ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles.email, numberOfLines: 1, children: email }) : null
985
+ ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles2.imageFallback, children: /* @__PURE__ */ jsxRuntime.jsx(UserIcon, { size: FALLBACK_ICON_SIZE, color: colors.primary }) }) }),
986
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles2.textColumn, children: [
987
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles2.name, numberOfLines: 1, children: name }),
988
+ email ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles2.email, numberOfLines: 1, children: email }) : null
819
989
  ] }),
820
- showChevron ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles.chevronSlot, isOpen && styles.chevronOpen], children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { size: CHEVRON_SIZE, color: isOpen ? colors.primary : colors.grey100 }) }) : null
990
+ showChevron ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles2.chevronSlot, isOpen && styles2.chevronOpen], children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { size: CHEVRON_SIZE, color: isOpen ? colors.primary : colors.grey100 }) }) : null
821
991
  ]
822
992
  }
823
993
  ),
824
- hasMenu && isOpen ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles.menu, menuWidth != null && { right: void 0, width: menuWidth }], children: menuItems.map((item) => {
994
+ hasMenu && isOpen ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles2.menu, menuWidth != null && { right: void 0, width: menuWidth }], children: resolvedMenuItems.map((item) => {
825
995
  const itemKey = item.key ?? item.label;
826
- const isHovered = hoveredKey === itemKey;
827
- const backgroundColor = isHovered ? item.hoverColor ?? colors.grey600 : item.backgroundColor ?? "transparent";
828
- return /* @__PURE__ */ jsxRuntime.jsxs(
829
- reactNative.Pressable,
996
+ return /* @__PURE__ */ jsxRuntime.jsx(
997
+ MenuItem,
830
998
  {
831
- onPress: () => handleItemPress(item),
999
+ icon: item.icon,
1000
+ label: item.label,
832
1001
  disabled: item.disabled,
833
- onHoverIn: () => setHoveredKey(itemKey),
834
- onHoverOut: () => setHoveredKey((current) => current === itemKey ? null : current),
835
- onPressIn: () => setHoveredKey(itemKey),
836
- onPressOut: () => setHoveredKey((current) => current === itemKey ? null : current),
837
- accessibilityRole: "menuitem",
838
- accessibilityState: { disabled: item.disabled },
839
- style: [
840
- styles.menuItem,
841
- { backgroundColor },
842
- item.disabled && styles.menuItemDisabled
843
- ],
844
- children: [
845
- item.icon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles.menuItemIcon, children: item.icon }) : null,
846
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles.menuItemLabel, numberOfLines: 1, children: item.label })
847
- ]
1002
+ backgroundColor: item.backgroundColor,
1003
+ hoverColor: item.hoverColor,
1004
+ onPress: () => handleItemPress(item)
848
1005
  },
849
1006
  itemKey
850
1007
  );
851
1008
  }) }) : null
852
1009
  ] });
853
1010
  });
854
- var styles = reactNative.StyleSheet.create({
1011
+ var styles2 = reactNative.StyleSheet.create({
855
1012
  wrapper: {
856
1013
  position: "relative",
857
1014
  alignSelf: "flex-start"
@@ -934,30 +1091,6 @@ var styles = reactNative.StyleSheet.create({
934
1091
  elevation: 8
935
1092
  }
936
1093
  })
937
- },
938
- menuItem: {
939
- minHeight: 40,
940
- borderRadius: MENU_ITEM_RADIUS,
941
- paddingVertical: 12,
942
- paddingHorizontal: 12,
943
- flexDirection: "row",
944
- alignItems: "center",
945
- gap: 8
946
- },
947
- menuItemDisabled: {
948
- opacity: 0.5
949
- },
950
- menuItemIcon: {
951
- width: MENU_ITEM_ICON_SIZE,
952
- height: MENU_ITEM_ICON_SIZE,
953
- alignItems: "center",
954
- justifyContent: "center",
955
- flexShrink: 0
956
- },
957
- menuItemLabel: {
958
- ...avatarTypography.menuItem,
959
- color: colors.white,
960
- flex: 1
961
1094
  }
962
1095
  });
963
1096
  var variantConfig = {
@@ -1032,7 +1165,7 @@ var Button = react.forwardRef(
1032
1165
  useApplyWebClassName(textRef, textClassName);
1033
1166
  const iconNode = customIcon ?? /* @__PURE__ */ jsxRuntime.jsx(ArrowRightIcon, { size: metrics.iconSize, color: preset.iconColor });
1034
1167
  const containerStyle = [
1035
- styles2.base,
1168
+ styles3.base,
1036
1169
  {
1037
1170
  minHeight: metrics.minHeight,
1038
1171
  borderRadius: metrics.borderRadius,
@@ -1043,15 +1176,15 @@ var Button = react.forwardRef(
1043
1176
  paddingRight: hasIcon ? metrics.paddingRightWithIcon : metrics.paddingRight,
1044
1177
  gap: hasIcon ? metrics.gap : 0
1045
1178
  },
1046
- disabled && styles2.disabled,
1179
+ disabled && styles3.disabled,
1047
1180
  style
1048
1181
  ];
1049
1182
  const labelStyle = [
1050
- styles2.label,
1183
+ styles3.label,
1051
1184
  metrics.text,
1052
1185
  { color: preset.textColor },
1053
- reactNative.Platform.OS === "android" ? styles2.labelAndroid : null,
1054
- !hasIcon && styles2.labelCentered,
1186
+ reactNative.Platform.OS === "android" ? styles3.labelAndroid : null,
1187
+ !hasIcon && styles3.labelCentered,
1055
1188
  textStyle
1056
1189
  ];
1057
1190
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1072,7 +1205,7 @@ var Button = react.forwardRef(
1072
1205
  reactNative.View,
1073
1206
  {
1074
1207
  style: [
1075
- styles2.iconContainer,
1208
+ styles3.iconContainer,
1076
1209
  {
1077
1210
  width: metrics.iconContainerSize,
1078
1211
  height: metrics.iconContainerSize,
@@ -1088,7 +1221,7 @@ var Button = react.forwardRef(
1088
1221
  );
1089
1222
  }
1090
1223
  );
1091
- var styles2 = reactNative.StyleSheet.create({
1224
+ var styles3 = reactNative.StyleSheet.create({
1092
1225
  base: {
1093
1226
  flexDirection: "row",
1094
1227
  alignItems: "center",
@@ -1166,13 +1299,13 @@ var Checkbox = react.forwardRef(function Checkbox2({
1166
1299
  accessibilityRole: "checkbox",
1167
1300
  accessibilityLabel: resolvedAccessibilityLabel,
1168
1301
  accessibilityState: { checked: isActive, disabled },
1169
- style: [styles3.root, disabled && styles3.disabled, style],
1302
+ style: [styles4.root, disabled && styles4.disabled, style],
1170
1303
  children: [
1171
1304
  /* @__PURE__ */ jsxRuntime.jsx(
1172
1305
  reactNative.View,
1173
1306
  {
1174
1307
  style: [
1175
- styles3.box,
1308
+ styles4.box,
1176
1309
  {
1177
1310
  backgroundColor: chrome.backgroundColor,
1178
1311
  borderColor: chrome.borderColor
@@ -1181,12 +1314,12 @@ var Checkbox = react.forwardRef(function Checkbox2({
1181
1314
  children: isActive ? /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { size: CHECK_SIZE, color: colors.primary, strokeWidth: CHECK_STROKE }) : null
1182
1315
  }
1183
1316
  ),
1184
- labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles3.label, labelStyle], children: labelContent }) : labelContent : null
1317
+ labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles4.label, labelStyle], children: labelContent }) : labelContent : null
1185
1318
  ]
1186
1319
  }
1187
1320
  );
1188
1321
  });
1189
- var styles3 = reactNative.StyleSheet.create({
1322
+ var styles4 = reactNative.StyleSheet.create({
1190
1323
  root: {
1191
1324
  flexDirection: "row",
1192
1325
  alignItems: "center",
@@ -1210,7 +1343,525 @@ var styles3 = reactNative.StyleSheet.create({
1210
1343
  color: colors.white
1211
1344
  }
1212
1345
  });
1213
- var DEFAULT_WIDTH = 308;
1346
+
1347
+ // src/utils/dateUtils.ts
1348
+ function startOfDay(date) {
1349
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
1350
+ }
1351
+ function isSameDay(a, b) {
1352
+ if (a == null || b == null) return false;
1353
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
1354
+ }
1355
+ function isSameMonth(a, b) {
1356
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
1357
+ }
1358
+ function addMonths(date, amount) {
1359
+ return new Date(date.getFullYear(), date.getMonth() + amount, 1);
1360
+ }
1361
+ function isBefore(a, b) {
1362
+ return startOfDay(a).getTime() < startOfDay(b).getTime();
1363
+ }
1364
+ function isAfter(a, b) {
1365
+ return startOfDay(a).getTime() > startOfDay(b).getTime();
1366
+ }
1367
+ function isWithinRange(date, start, end) {
1368
+ const time = startOfDay(date).getTime();
1369
+ return time >= startOfDay(start).getTime() && time <= startOfDay(end).getTime();
1370
+ }
1371
+ function isDateDisabled(date, min, max) {
1372
+ if (min && isBefore(date, min)) return true;
1373
+ if (max && isAfter(date, max)) return true;
1374
+ return false;
1375
+ }
1376
+ function formatDate(date) {
1377
+ const day = String(date.getDate()).padStart(2, "0");
1378
+ const month = String(date.getMonth() + 1).padStart(2, "0");
1379
+ return `${day}.${month}.${date.getFullYear()}`;
1380
+ }
1381
+ function getMonthMatrix(monthDate, weekStartsOn = 1) {
1382
+ const year = monthDate.getFullYear();
1383
+ const month = monthDate.getMonth();
1384
+ const firstOfMonth = new Date(year, month, 1);
1385
+ const firstWeekday = firstOfMonth.getDay();
1386
+ const leadingDays = (firstWeekday - weekStartsOn + 7) % 7;
1387
+ const gridStart = new Date(year, month, 1 - leadingDays);
1388
+ const weeks = [];
1389
+ let cursor = gridStart;
1390
+ for (let week = 0; week < 6; week += 1) {
1391
+ const days = [];
1392
+ for (let day = 0; day < 7; day += 1) {
1393
+ days.push(cursor);
1394
+ cursor = new Date(cursor.getFullYear(), cursor.getMonth(), cursor.getDate() + 1);
1395
+ }
1396
+ weeks.push(days);
1397
+ }
1398
+ return weeks;
1399
+ }
1400
+ var DEFAULT_MONTH_NAMES = [
1401
+ "\u0540\u0578\u0582\u0576\u057E\u0561\u0580",
1402
+ "\u0553\u0565\u057F\u0580\u057E\u0561\u0580",
1403
+ "\u0544\u0561\u0580\u057F",
1404
+ "\u0531\u057A\u0580\u056B\u056C",
1405
+ "\u0544\u0561\u0575\u056B\u057D",
1406
+ "\u0540\u0578\u0582\u0576\u056B\u057D",
1407
+ "\u0540\u0578\u0582\u056C\u056B\u057D",
1408
+ "\u0555\u0563\u0578\u057D\u057F\u0578\u057D",
1409
+ "\u054D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580",
1410
+ "\u0540\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580",
1411
+ "\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580",
1412
+ "\u0534\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580"
1413
+ ];
1414
+ var DEFAULT_WEEKDAY_LABELS = ["\u0535\u0550", "\u0535\u0554", "\u0549\u0550", "\u0540\u0546", "\u0548\u0552\u0550", "\u0547\u0532", "\u053F\u0550"];
1415
+ var EMPTY_RANGE = { start: null, end: null };
1416
+ var DEFAULT_WIDTH = 380;
1417
+ var TRIGGER_HEIGHT = 44;
1418
+ var TRIGGER_RADIUS = 60;
1419
+ var MENU_RADIUS2 = 20;
1420
+ var ICON_SIZE2 = 20;
1421
+ var NAV_ICON_SIZE = 20;
1422
+ var DAY_CELL_HEIGHT = 44;
1423
+ var DAY_CIRCLE_SIZE = 44;
1424
+ var DatePicker = react.forwardRef(
1425
+ function DatePicker2(props, forwardedRef) {
1426
+ const {
1427
+ placeholder = "Select date",
1428
+ open: openProp,
1429
+ defaultOpen = false,
1430
+ onOpenChange,
1431
+ disabled = false,
1432
+ closeOnSelect = true,
1433
+ minDate,
1434
+ maxDate,
1435
+ defaultVisibleMonth,
1436
+ monthNames = DEFAULT_MONTH_NAMES,
1437
+ weekdayLabels = DEFAULT_WEEKDAY_LABELS,
1438
+ formatValue = formatDate,
1439
+ weekStartsOn = 1,
1440
+ style,
1441
+ className,
1442
+ accessibilityLabel,
1443
+ // Pulled out only to keep them off `rest` (which is spread onto the root View);
1444
+ // the real values are read from `props` directly below to preserve discriminated typing.
1445
+ range: _range,
1446
+ value: _value,
1447
+ defaultValue: _defaultValue,
1448
+ onValueChange: _onValueChange,
1449
+ ...rest
1450
+ } = props;
1451
+ const isRange = props.range === true;
1452
+ const valueProp = props.value;
1453
+ const rootRef = react.useRef(null);
1454
+ const triggerRef = react.useRef(null);
1455
+ const setRootRef = react.useMemo(() => mergeRefs(rootRef, forwardedRef), [forwardedRef]);
1456
+ const isOpenControlled = typeof openProp === "boolean";
1457
+ const isValueControlled = valueProp !== void 0;
1458
+ const [uncontrolledSingle, setUncontrolledSingle] = react.useState(
1459
+ !isRange ? props.defaultValue ?? null : null
1460
+ );
1461
+ const [uncontrolledRange, setUncontrolledRange] = react.useState(
1462
+ isRange ? props.defaultValue ?? EMPTY_RANGE : EMPTY_RANGE
1463
+ );
1464
+ const [uncontrolledOpen, setUncontrolledOpen] = react.useState(defaultOpen);
1465
+ const [hoveredDayKey, setHoveredDayKey] = react.useState(null);
1466
+ const rangeValue = isRange ? isValueControlled ? valueProp ?? EMPTY_RANGE : uncontrolledRange : EMPTY_RANGE;
1467
+ const singleValue = !isRange ? isValueControlled ? valueProp ?? null : uncontrolledSingle : null;
1468
+ const isOpen = isOpenControlled ? openProp : uncontrolledOpen;
1469
+ const [visibleMonth, setVisibleMonth] = react.useState(() => {
1470
+ const anchor = defaultVisibleMonth ?? (isRange ? rangeValue.start : singleValue) ?? /* @__PURE__ */ new Date();
1471
+ return new Date(anchor.getFullYear(), anchor.getMonth(), 1);
1472
+ });
1473
+ useApplyWebClassName(rootRef, className);
1474
+ const setOpen = react.useCallback(
1475
+ (next) => {
1476
+ if (!isOpenControlled) setUncontrolledOpen(next);
1477
+ onOpenChange?.(next);
1478
+ if (next) {
1479
+ const anchor = (isRange ? rangeValue.start : singleValue) ?? /* @__PURE__ */ new Date();
1480
+ setVisibleMonth(new Date(anchor.getFullYear(), anchor.getMonth(), 1));
1481
+ } else {
1482
+ setHoveredDayKey(null);
1483
+ }
1484
+ },
1485
+ [isOpenControlled, isRange, onOpenChange, rangeValue.start, singleValue]
1486
+ );
1487
+ react.useEffect(() => {
1488
+ if (reactNative.Platform.OS !== "web" || !isOpen) return;
1489
+ const handlePointerDown = (event) => {
1490
+ const root = rootRef.current;
1491
+ const target = event.target;
1492
+ if (root?.contains && target instanceof Node && !root.contains(target)) {
1493
+ setOpen(false);
1494
+ }
1495
+ };
1496
+ document.addEventListener("mousedown", handlePointerDown);
1497
+ document.addEventListener("touchstart", handlePointerDown);
1498
+ return () => {
1499
+ document.removeEventListener("mousedown", handlePointerDown);
1500
+ document.removeEventListener("touchstart", handlePointerDown);
1501
+ };
1502
+ }, [isOpen, setOpen]);
1503
+ const focusTrigger = react.useCallback(() => {
1504
+ const node = triggerRef.current;
1505
+ node?.focus?.();
1506
+ }, []);
1507
+ const closeAndFocusTrigger = react.useCallback(() => {
1508
+ setOpen(false);
1509
+ focusTrigger();
1510
+ }, [focusTrigger, setOpen]);
1511
+ react.useEffect(() => {
1512
+ if (reactNative.Platform.OS !== "web" || !isOpen) return;
1513
+ const handleKeyDown = (event) => {
1514
+ if (event.key === "Escape") {
1515
+ event.preventDefault();
1516
+ closeAndFocusTrigger();
1517
+ }
1518
+ };
1519
+ document.addEventListener("keydown", handleKeyDown);
1520
+ return () => document.removeEventListener("keydown", handleKeyDown);
1521
+ }, [isOpen, closeAndFocusTrigger]);
1522
+ const handleTriggerPress = () => {
1523
+ if (disabled) return;
1524
+ setOpen(!isOpen);
1525
+ };
1526
+ const handleDayPress = react.useCallback(
1527
+ (day) => {
1528
+ if (disabled || isDateDisabled(day, minDate, maxDate)) return;
1529
+ const picked = startOfDay(day);
1530
+ if (!isRange) {
1531
+ if (!isValueControlled) setUncontrolledSingle(picked);
1532
+ props.onValueChange?.(picked);
1533
+ if (closeOnSelect) setOpen(false);
1534
+ return;
1535
+ }
1536
+ const { start, end } = rangeValue;
1537
+ const startingNewRange = !start || start && end;
1538
+ const nextRange = startingNewRange ? { start: picked, end: null } : isBefore(picked, start) ? { start: picked, end: null } : { start, end: picked };
1539
+ if (!isValueControlled) setUncontrolledRange(nextRange);
1540
+ props.onValueChange?.(nextRange);
1541
+ if (closeOnSelect && nextRange.start && nextRange.end) setOpen(false);
1542
+ },
1543
+ [
1544
+ closeOnSelect,
1545
+ disabled,
1546
+ isRange,
1547
+ isValueControlled,
1548
+ maxDate,
1549
+ minDate,
1550
+ props,
1551
+ rangeValue,
1552
+ setOpen
1553
+ ]
1554
+ );
1555
+ const handlePrevMonth = () => setVisibleMonth((current) => addMonths(current, -1));
1556
+ const handleNextMonth = () => setVisibleMonth((current) => addMonths(current, 1));
1557
+ const weeks = react.useMemo(
1558
+ () => getMonthMatrix(visibleMonth, weekStartsOn),
1559
+ [visibleMonth, weekStartsOn]
1560
+ );
1561
+ const today = react.useMemo(() => startOfDay(/* @__PURE__ */ new Date()), []);
1562
+ const hasValue = isRange ? rangeValue.start != null : singleValue != null;
1563
+ const triggerLabel = isRange ? rangeValue.start && rangeValue.end ? `${formatValue(rangeValue.start)} - ${formatValue(rangeValue.end)}` : rangeValue.start ? `${formatValue(rangeValue.start)} - ...` : placeholder : singleValue ? formatValue(singleValue) : placeholder;
1564
+ const triggerBorderColor = isOpen ? colors.primaryMuted : colors.grey700;
1565
+ const triggerTextColor = hasValue ? colors.white : colors.grey100;
1566
+ const resolvedAccessibilityLabel = accessibilityLabel ?? placeholder;
1567
+ return /* @__PURE__ */ jsxRuntime.jsx(
1568
+ reactNative.View,
1569
+ {
1570
+ ...rest,
1571
+ ref: setRootRef,
1572
+ style: [styles5.root, isOpen && styles5.rootOpen, disabled && styles5.disabled, style],
1573
+ accessibilityState: { disabled, expanded: isOpen },
1574
+ children: /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles5.triggerWrap, isOpen && styles5.triggerWrapOpen], children: [
1575
+ /* @__PURE__ */ jsxRuntime.jsxs(
1576
+ reactNative.Pressable,
1577
+ {
1578
+ ref: triggerRef,
1579
+ onPress: handleTriggerPress,
1580
+ disabled,
1581
+ accessibilityRole: "button",
1582
+ accessibilityLabel: resolvedAccessibilityLabel,
1583
+ accessibilityState: { disabled, expanded: isOpen },
1584
+ style: [
1585
+ styles5.trigger,
1586
+ { borderColor: triggerBorderColor, backgroundColor: colors.grey700 }
1587
+ ],
1588
+ children: [
1589
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles5.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: triggerLabel }),
1590
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(CalendarOutlineIcon, { size: ICON_SIZE2, color: colors.grey100 }) })
1591
+ ]
1592
+ }
1593
+ ),
1594
+ isOpen ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.menu, children: [
1595
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.calendarHeader, children: [
1596
+ /* @__PURE__ */ jsxRuntime.jsx(
1597
+ reactNative.Pressable,
1598
+ {
1599
+ onPress: handlePrevMonth,
1600
+ hitSlop: 8,
1601
+ accessibilityRole: "button",
1602
+ accessibilityLabel: "Previous month",
1603
+ style: styles5.navButton,
1604
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { size: NAV_ICON_SIZE, color: colors.white })
1605
+ }
1606
+ ),
1607
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.Text, { style: styles5.monthHeading, children: [
1608
+ monthNames[visibleMonth.getMonth()],
1609
+ " ",
1610
+ visibleMonth.getFullYear()
1611
+ ] }),
1612
+ /* @__PURE__ */ jsxRuntime.jsx(
1613
+ reactNative.Pressable,
1614
+ {
1615
+ onPress: handleNextMonth,
1616
+ hitSlop: 8,
1617
+ accessibilityRole: "button",
1618
+ accessibilityLabel: "Next month",
1619
+ style: styles5.navButton,
1620
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.navIconMirror, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { size: NAV_ICON_SIZE, color: colors.white }) })
1621
+ }
1622
+ )
1623
+ ] }),
1624
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { children: [
1625
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.weekdayRow, children: weekdayLabels.map((weekdayLabel, index) => /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.dayCellWrap, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.weekdayText, children: weekdayLabel }) }, `${weekdayLabel}-${index}`)) }),
1626
+ weeks.map((week, weekIndex) => {
1627
+ let rangeHighlightStyle = null;
1628
+ if (isRange && rangeValue.start && rangeValue.end) {
1629
+ const rangeIndices = week.reduce((acc, day, index) => {
1630
+ if (isWithinRange(day, rangeValue.start, rangeValue.end)) {
1631
+ acc.push(index);
1632
+ }
1633
+ return acc;
1634
+ }, []);
1635
+ if (rangeIndices.length > 0) {
1636
+ const first = rangeIndices[0];
1637
+ const last = rangeIndices[rangeIndices.length - 1];
1638
+ const startsHere = isSameDay(week[first], rangeValue.start);
1639
+ const endsHere = isSameDay(week[last], rangeValue.end);
1640
+ const cellPct = 100 / 7;
1641
+ const halfCellPct = cellPct / 2;
1642
+ let leftPct = first * cellPct;
1643
+ let widthPct = (last - first + 1) * cellPct;
1644
+ if (startsHere) {
1645
+ leftPct += halfCellPct;
1646
+ widthPct -= halfCellPct;
1647
+ }
1648
+ if (endsHere) {
1649
+ widthPct -= halfCellPct;
1650
+ }
1651
+ if (widthPct > 0) {
1652
+ rangeHighlightStyle = {
1653
+ left: `${leftPct}%`,
1654
+ width: `${widthPct}%`
1655
+ };
1656
+ }
1657
+ }
1658
+ }
1659
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1660
+ reactNative.View,
1661
+ {
1662
+ style: [styles5.weekRow, weekIndex > 0 && styles5.weekRowSpaced],
1663
+ children: [
1664
+ rangeHighlightStyle ? /* @__PURE__ */ jsxRuntime.jsx(
1665
+ reactNative.View,
1666
+ {
1667
+ pointerEvents: "none",
1668
+ style: [styles5.rangeHighlight, rangeHighlightStyle]
1669
+ }
1670
+ ) : null,
1671
+ week.map((day, dayIndex) => {
1672
+ const inCurrentMonth = isSameMonth(day, visibleMonth);
1673
+ const isToday = isSameDay(day, today);
1674
+ const isSelectedSingle = !isRange && isSameDay(day, singleValue);
1675
+ const isRangeStart = isRange && isSameDay(day, rangeValue.start);
1676
+ const isRangeEnd = isRange && isSameDay(day, rangeValue.end);
1677
+ const isSelectedEndpoint = isSelectedSingle || isRangeStart || isRangeEnd;
1678
+ const dayDisabled = disabled || isDateDisabled(day, minDate, maxDate);
1679
+ const dayKey = startOfDay(day).getTime();
1680
+ const isHovered = !dayDisabled && !isSelectedEndpoint && hoveredDayKey === dayKey;
1681
+ const dayTextColor = isSelectedEndpoint ? colors.white : dayDisabled ? colors.grey400 : isToday ? colors.primary : !inCurrentMonth ? colors.grey300 : colors.white;
1682
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1683
+ reactNative.Pressable,
1684
+ {
1685
+ onPress: () => handleDayPress(day),
1686
+ disabled: dayDisabled,
1687
+ onHoverIn: () => setHoveredDayKey(dayKey),
1688
+ onHoverOut: () => setHoveredDayKey((current) => current === dayKey ? null : current),
1689
+ onPressIn: () => setHoveredDayKey(dayKey),
1690
+ onPressOut: () => setHoveredDayKey((current) => current === dayKey ? null : current),
1691
+ style: styles5.dayCellWrap,
1692
+ accessibilityRole: "button",
1693
+ accessibilityLabel: formatValue(day),
1694
+ accessibilityState: {
1695
+ disabled: dayDisabled,
1696
+ selected: isSelectedEndpoint
1697
+ },
1698
+ children: [
1699
+ /* @__PURE__ */ jsxRuntime.jsx(
1700
+ reactNative.View,
1701
+ {
1702
+ style: [
1703
+ styles5.dayCircle,
1704
+ isSelectedEndpoint && styles5.dayCircleSelected,
1705
+ isHovered && styles5.dayCircleHovered
1706
+ ],
1707
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles5.dayText, { color: dayTextColor }], children: day.getDate() })
1708
+ }
1709
+ ),
1710
+ isToday && !isSelectedEndpoint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.todayDot }) : null
1711
+ ]
1712
+ },
1713
+ dayIndex
1714
+ );
1715
+ })
1716
+ ]
1717
+ },
1718
+ weekIndex
1719
+ );
1720
+ })
1721
+ ] })
1722
+ ] }) : null
1723
+ ] })
1724
+ }
1725
+ );
1726
+ }
1727
+ );
1728
+ var styles5 = reactNative.StyleSheet.create({
1729
+ root: {
1730
+ width: DEFAULT_WIDTH,
1731
+ gap: 8,
1732
+ alignSelf: "flex-start"
1733
+ },
1734
+ rootOpen: {
1735
+ zIndex: 30
1736
+ },
1737
+ disabled: {
1738
+ opacity: 0.6
1739
+ },
1740
+ triggerWrap: {
1741
+ position: "relative",
1742
+ zIndex: 1
1743
+ },
1744
+ triggerWrapOpen: {
1745
+ zIndex: 20
1746
+ },
1747
+ trigger: {
1748
+ height: TRIGGER_HEIGHT,
1749
+ borderRadius: TRIGGER_RADIUS,
1750
+ borderWidth: 1,
1751
+ paddingVertical: 10,
1752
+ paddingHorizontal: 16,
1753
+ flexDirection: "row",
1754
+ alignItems: "center",
1755
+ gap: 10,
1756
+ overflow: "hidden"
1757
+ },
1758
+ triggerText: {
1759
+ ...datePickerTypography.field,
1760
+ flex: 1,
1761
+ minWidth: 0
1762
+ },
1763
+ iconSlot: {
1764
+ width: ICON_SIZE2,
1765
+ height: ICON_SIZE2,
1766
+ alignItems: "center",
1767
+ justifyContent: "center",
1768
+ flexShrink: 0
1769
+ },
1770
+ menu: {
1771
+ position: "absolute",
1772
+ top: "100%",
1773
+ left: 0,
1774
+ right: 0,
1775
+ marginTop: 8,
1776
+ zIndex: 10,
1777
+ borderRadius: MENU_RADIUS2,
1778
+ padding: 12,
1779
+ gap: 0,
1780
+ backgroundColor: colors.grey700,
1781
+ ...reactNative.Platform.select({
1782
+ web: {
1783
+ boxShadow: `0 8px 24px ${colors.black}73`
1784
+ },
1785
+ default: {
1786
+ elevation: 8
1787
+ }
1788
+ })
1789
+ },
1790
+ calendarHeader: {
1791
+ height: 36,
1792
+ flexDirection: "row",
1793
+ alignItems: "center",
1794
+ justifyContent: "space-between"
1795
+ },
1796
+ navButton: {
1797
+ width: 36,
1798
+ height: 36,
1799
+ alignItems: "center",
1800
+ justifyContent: "center"
1801
+ },
1802
+ navIconMirror: {
1803
+ transform: [{ scaleX: -1 }]
1804
+ },
1805
+ monthHeading: {
1806
+ ...datePickerTypography.monthHeading,
1807
+ color: colors.white,
1808
+ textAlign: "center"
1809
+ },
1810
+ weekdayRow: {
1811
+ flexDirection: "row"
1812
+ },
1813
+ weekdayText: {
1814
+ ...datePickerTypography.weekday,
1815
+ color: colors.grey300,
1816
+ textAlign: "center",
1817
+ textTransform: "uppercase"
1818
+ },
1819
+ weekRow: {
1820
+ flexDirection: "row",
1821
+ position: "relative"
1822
+ },
1823
+ weekRowSpaced: {
1824
+ marginTop: 8
1825
+ },
1826
+ rangeHighlight: {
1827
+ position: "absolute",
1828
+ top: (DAY_CELL_HEIGHT - DAY_CIRCLE_SIZE) / 2,
1829
+ bottom: (DAY_CELL_HEIGHT - DAY_CIRCLE_SIZE) / 2,
1830
+ borderRadius: DAY_CIRCLE_SIZE / 2,
1831
+ backgroundColor: colors.primaryHover
1832
+ },
1833
+ dayCellWrap: {
1834
+ flex: 1,
1835
+ height: DAY_CELL_HEIGHT,
1836
+ alignItems: "center",
1837
+ justifyContent: "center"
1838
+ },
1839
+ dayCircle: {
1840
+ width: DAY_CIRCLE_SIZE,
1841
+ height: DAY_CIRCLE_SIZE,
1842
+ borderRadius: DAY_CIRCLE_SIZE / 2,
1843
+ alignItems: "center",
1844
+ justifyContent: "center"
1845
+ },
1846
+ dayCircleSelected: {
1847
+ backgroundColor: colors.primary
1848
+ },
1849
+ dayCircleHovered: {
1850
+ backgroundColor: colors.grey600
1851
+ },
1852
+ dayText: {
1853
+ ...datePickerTypography.day
1854
+ },
1855
+ todayDot: {
1856
+ position: "absolute",
1857
+ bottom: 2,
1858
+ width: 4,
1859
+ height: 4,
1860
+ borderRadius: 2,
1861
+ backgroundColor: colors.primary
1862
+ }
1863
+ });
1864
+ var DEFAULT_WIDTH2 = 308;
1214
1865
  var sizeConfig2 = {
1215
1866
  lg: {
1216
1867
  height: 44,
@@ -1334,13 +1985,13 @@ var Input = react.forwardRef(function Input2({
1334
1985
  const rightIconNode = rightIcon ?? /* @__PURE__ */ jsxRuntime.jsx(ShowIcon, { size: metrics.iconSize, color: chrome.rightIconColor });
1335
1986
  useApplyWebClassName(rootRef, className);
1336
1987
  useApplyWebClassName(inputRef, inputClassName);
1337
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: rootRef, style: [styles4.root, disabled && styles4.disabled, style], children: [
1338
- showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles4.label, { color: chrome.labelColor }], children: label }) : null,
1988
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: rootRef, style: [styles6.root, disabled && styles6.disabled, style], children: [
1989
+ showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles6.label, { color: chrome.labelColor }], children: label }) : null,
1339
1990
  /* @__PURE__ */ jsxRuntime.jsxs(
1340
1991
  reactNative.View,
1341
1992
  {
1342
1993
  style: [
1343
- styles4.field,
1994
+ styles6.field,
1344
1995
  {
1345
1996
  height: metrics.height,
1346
1997
  borderRadius: metrics.borderRadius,
@@ -1355,7 +2006,7 @@ var Input = react.forwardRef(function Input2({
1355
2006
  fieldStyle
1356
2007
  ],
1357
2008
  children: [
1358
- hasLeftIcon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles4.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: leftIconNode }) : null,
2009
+ hasLeftIcon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles6.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: leftIconNode }) : null,
1359
2010
  /* @__PURE__ */ jsxRuntime.jsx(
1360
2011
  reactNative.TextInput,
1361
2012
  {
@@ -1379,11 +2030,11 @@ var Input = react.forwardRef(function Input2({
1379
2030
  onBlur?.(event);
1380
2031
  },
1381
2032
  style: [
1382
- styles4.input,
2033
+ styles6.input,
1383
2034
  metrics.text,
1384
2035
  { color: chrome.textColor },
1385
- reactNative.Platform.OS === "web" ? styles4.inputWeb : null,
1386
- reactNative.Platform.OS === "android" ? styles4.inputAndroid : null,
2036
+ reactNative.Platform.OS === "web" ? styles6.inputWeb : null,
2037
+ reactNative.Platform.OS === "android" ? styles6.inputAndroid : null,
1387
2038
  inputStyle
1388
2039
  ],
1389
2040
  accessibilityLabel: resolvedAccessibilityLabel,
@@ -1395,22 +2046,22 @@ var Input = react.forwardRef(function Input2({
1395
2046
  {
1396
2047
  onPress: onRightIconPress,
1397
2048
  disabled,
1398
- style: [styles4.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }],
2049
+ style: [styles6.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }],
1399
2050
  accessibilityRole: "button",
1400
2051
  accessibilityLabel: rightIconAccessibilityLabel,
1401
2052
  hitSlop: 8,
1402
2053
  children: rightIconNode
1403
2054
  }
1404
- ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles4.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: rightIconNode }) : null
2055
+ ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles6.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: rightIconNode }) : null
1405
2056
  ]
1406
2057
  }
1407
2058
  ),
1408
- showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles4.hint, { color: chrome.hintColor }], children: hint }) : null
2059
+ showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles6.hint, { color: chrome.hintColor }], children: hint }) : null
1409
2060
  ] });
1410
2061
  });
1411
- var styles4 = reactNative.StyleSheet.create({
2062
+ var styles6 = reactNative.StyleSheet.create({
1412
2063
  root: {
1413
- width: DEFAULT_WIDTH,
2064
+ width: DEFAULT_WIDTH2,
1414
2065
  gap: 8,
1415
2066
  alignSelf: "flex-start"
1416
2067
  },
@@ -1445,13 +2096,13 @@ var styles4 = reactNative.StyleSheet.create({
1445
2096
  ...inputTypography.hint
1446
2097
  }
1447
2098
  });
1448
- var DEFAULT_WIDTH2 = 308;
1449
- var TRIGGER_HEIGHT = 44;
1450
- var TRIGGER_RADIUS = 60;
1451
- var MENU_RADIUS2 = 24;
2099
+ var DEFAULT_WIDTH3 = 308;
2100
+ var TRIGGER_HEIGHT2 = 44;
2101
+ var TRIGGER_RADIUS2 = 60;
2102
+ var MENU_RADIUS3 = 24;
1452
2103
  var MENU_MAX_LIST_HEIGHT = 248;
1453
- var ITEM_RADIUS = 12;
1454
- var ICON_SIZE = 20;
2104
+ var ITEM_RADIUS2 = 12;
2105
+ var ICON_SIZE3 = 20;
1455
2106
  var CHIP_GAP = 6;
1456
2107
  var FALLBACK_ELLIPSIS_WIDTH = 20;
1457
2108
  function itemBackground(state) {
@@ -1524,25 +2175,25 @@ function MultiValueChips({ options, disabled, onRemove }) {
1524
2175
  const next = Math.ceil(event.nativeEvent.layout.width);
1525
2176
  setEllipsisWidth((current) => current === next ? current : next);
1526
2177
  };
1527
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.multiValueRoot, children: [
1528
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { pointerEvents: "none", style: styles5.measureRow, children: [
2178
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles7.multiValueRoot, children: [
2179
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { pointerEvents: "none", style: styles7.measureRow, children: [
1529
2180
  options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
1530
2181
  reactNative.View,
1531
2182
  {
1532
- style: styles5.chip,
2183
+ style: styles7.chip,
1533
2184
  onLayout: (event) => handleChipLayout(option.value, event),
1534
2185
  children: [
1535
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.chipLabel, numberOfLines: 1, children: option.label }),
1536
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.chipRemove, children: "\xD7" })
2186
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.chipLabel, numberOfLines: 1, children: option.label }),
2187
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.chipRemove, children: "\xD7" })
1537
2188
  ]
1538
2189
  },
1539
2190
  `measure-${option.value}`
1540
2191
  )),
1541
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.ellipsis, onLayout: handleEllipsisLayout, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.ellipsisText, children: "..." }) })
2192
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles7.ellipsis, onLayout: handleEllipsisLayout, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.ellipsisText, children: "..." }) })
1542
2193
  ] }),
1543
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.chipsRow, onLayout: handleContainerLayout, children: [
1544
- visible.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.chip, children: [
1545
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.chipLabel, numberOfLines: 1, children: option.label }),
2194
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles7.chipsRow, onLayout: handleContainerLayout, children: [
2195
+ visible.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles7.chip, children: [
2196
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.chipLabel, numberOfLines: 1, children: option.label }),
1546
2197
  /* @__PURE__ */ jsxRuntime.jsx(
1547
2198
  reactNative.Pressable,
1548
2199
  {
@@ -1554,11 +2205,11 @@ function MultiValueChips({ options, disabled, onRemove }) {
1554
2205
  hitSlop: 6,
1555
2206
  accessibilityRole: "button",
1556
2207
  accessibilityLabel: `Remove ${option.label}`,
1557
- children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.chipRemove, children: "\xD7" })
2208
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.chipRemove, children: "\xD7" })
1558
2209
  }
1559
2210
  )
1560
2211
  ] }, option.value)),
1561
- hasOverflow ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.ellipsis, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.ellipsisText, children: "..." }) }) : null
2212
+ hasOverflow ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles7.ellipsis, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.ellipsisText, children: "..." }) }) : null
1562
2213
  ] })
1563
2214
  ] });
1564
2215
  }
@@ -1769,7 +2420,7 @@ var Select = react.forwardRef(
1769
2420
  const leftIconNode = leftIcon ?? /* @__PURE__ */ jsxRuntime.jsx(
1770
2421
  UserIcon,
1771
2422
  {
1772
- size: ICON_SIZE,
2423
+ size: ICON_SIZE3,
1773
2424
  color: error ? colors.red : isOpen ? colors.primary : colors.grey100
1774
2425
  }
1775
2426
  );
@@ -1785,11 +2436,11 @@ var Select = react.forwardRef(
1785
2436
  {
1786
2437
  ...rest,
1787
2438
  ref: setRootRef,
1788
- style: [styles5.root, isOpen && styles5.rootOpen, disabled && styles5.disabled, style],
2439
+ style: [styles7.root, isOpen && styles7.rootOpen, disabled && styles7.disabled, style],
1789
2440
  accessibilityState: { disabled, expanded: isOpen },
1790
2441
  children: [
1791
- showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles5.label, { color: labelColor }], children: label }) : null,
1792
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles5.triggerWrap, isOpen && styles5.triggerWrapOpen], children: [
2442
+ showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles7.label, { color: labelColor }], children: label }) : null,
2443
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles7.triggerWrap, isOpen && styles7.triggerWrapOpen], children: [
1793
2444
  /* @__PURE__ */ jsxRuntime.jsxs(
1794
2445
  reactNative.Pressable,
1795
2446
  {
@@ -1800,29 +2451,29 @@ var Select = react.forwardRef(
1800
2451
  accessibilityLabel: resolvedAccessibilityLabel,
1801
2452
  accessibilityState: { disabled, expanded: isOpen },
1802
2453
  style: [
1803
- styles5.trigger,
2454
+ styles7.trigger,
1804
2455
  {
1805
2456
  borderColor: triggerBorderColor,
1806
2457
  backgroundColor: colors.grey700
1807
2458
  }
1808
2459
  ],
1809
2460
  children: [
1810
- hasLeftIcon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.iconSlot, children: leftIconNode }) : null,
1811
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.triggerContent, children: multiple && hasValue ? /* @__PURE__ */ jsxRuntime.jsx(
2461
+ hasLeftIcon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles7.iconSlot, children: leftIconNode }) : null,
2462
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles7.triggerContent, children: multiple && hasValue ? /* @__PURE__ */ jsxRuntime.jsx(
1812
2463
  MultiValueChips,
1813
2464
  {
1814
2465
  options: selectedOptions,
1815
2466
  disabled,
1816
2467
  onRemove: handleRemoveChip
1817
2468
  }
1818
- ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles5.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: multiple ? placeholder : singleLabel }) }),
1819
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles5.iconSlot, isOpen && styles5.chevronOpen], children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { size: ICON_SIZE, color: isOpen ? colors.primary : colors.grey100 }) })
2469
+ ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles7.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: multiple ? placeholder : singleLabel }) }),
2470
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles7.iconSlot, isOpen && styles7.chevronOpen], children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { size: ICON_SIZE3, color: isOpen ? colors.primary : colors.grey100 }) })
1820
2471
  ]
1821
2472
  }
1822
2473
  ),
1823
- isOpen ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.menu, children: [
1824
- showSearch ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.searchField, children: [
1825
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(SearchIcon, { size: ICON_SIZE, color: colors.grey100 }) }),
2474
+ isOpen ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles7.menu, children: [
2475
+ showSearch ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles7.searchField, children: [
2476
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles7.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(SearchIcon, { size: ICON_SIZE3, color: colors.grey100 }) }),
1826
2477
  /* @__PURE__ */ jsxRuntime.jsx(
1827
2478
  reactNative.TextInput,
1828
2479
  {
@@ -1833,9 +2484,9 @@ var Select = react.forwardRef(
1833
2484
  placeholder: searchPlaceholder,
1834
2485
  placeholderTextColor: colors.grey100,
1835
2486
  style: [
1836
- styles5.searchInput,
1837
- reactNative.Platform.OS === "web" ? styles5.searchInputWeb : null,
1838
- reactNative.Platform.OS === "android" ? styles5.searchInputAndroid : null
2487
+ styles7.searchInput,
2488
+ reactNative.Platform.OS === "web" ? styles7.searchInputWeb : null,
2489
+ reactNative.Platform.OS === "android" ? styles7.searchInputAndroid : null
1839
2490
  ],
1840
2491
  accessibilityLabel: searchPlaceholder
1841
2492
  }
@@ -1844,12 +2495,12 @@ var Select = react.forwardRef(
1844
2495
  /* @__PURE__ */ jsxRuntime.jsxs(
1845
2496
  reactNative.ScrollView,
1846
2497
  {
1847
- style: styles5.optionList,
1848
- contentContainerStyle: styles5.optionListContent,
2498
+ style: styles7.optionList,
2499
+ contentContainerStyle: styles7.optionListContent,
1849
2500
  keyboardShouldPersistTaps: "handled",
1850
2501
  showsVerticalScrollIndicator: false,
1851
2502
  children: [
1852
- loading ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.statusRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.statusText, children: "Loading..." }) }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.statusRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.statusText, children: emptyText }) }) : null,
2503
+ loading ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles7.statusRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.statusText, children: "Loading..." }) }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles7.statusRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.statusText, children: emptyText }) }) : null,
1853
2504
  !loading && filteredOptions.map((option) => {
1854
2505
  const isSelected = selectedValues.includes(option.value);
1855
2506
  const isHovered = hoveredValue === option.value;
@@ -1866,14 +2517,14 @@ var Select = react.forwardRef(
1866
2517
  accessibilityRole: multiple ? "checkbox" : "button",
1867
2518
  accessibilityState: { selected: isSelected, checked: isSelected, disabled },
1868
2519
  style: [
1869
- styles5.item,
2520
+ styles7.item,
1870
2521
  {
1871
2522
  backgroundColor: itemBackground(visualState)
1872
2523
  }
1873
2524
  ],
1874
2525
  children: [
1875
- multiple ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { pointerEvents: "none", style: styles5.itemCheckbox, children: /* @__PURE__ */ jsxRuntime.jsx(Checkbox, { value: isSelected, variant: "light" }) }) : null,
1876
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.itemLabel, numberOfLines: 1, children: option.label })
2526
+ multiple ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { pointerEvents: "none", style: styles7.itemCheckbox, children: /* @__PURE__ */ jsxRuntime.jsx(Checkbox, { value: isSelected, variant: "light" }) }) : null,
2527
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.itemLabel, numberOfLines: 1, children: option.label })
1877
2528
  ]
1878
2529
  },
1879
2530
  option.value
@@ -1884,15 +2535,15 @@ var Select = react.forwardRef(
1884
2535
  )
1885
2536
  ] }) : null
1886
2537
  ] }),
1887
- showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles5.hint, { color: hintColor }], children: hint }) : null
2538
+ showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles7.hint, { color: hintColor }], children: hint }) : null
1888
2539
  ]
1889
2540
  }
1890
2541
  );
1891
2542
  }
1892
2543
  );
1893
- var styles5 = reactNative.StyleSheet.create({
2544
+ var styles7 = reactNative.StyleSheet.create({
1894
2545
  root: {
1895
- width: DEFAULT_WIDTH2,
2546
+ width: DEFAULT_WIDTH3,
1896
2547
  gap: 8,
1897
2548
  alignSelf: "flex-start"
1898
2549
  },
@@ -1913,8 +2564,8 @@ var styles5 = reactNative.StyleSheet.create({
1913
2564
  zIndex: 20
1914
2565
  },
1915
2566
  trigger: {
1916
- height: TRIGGER_HEIGHT,
1917
- borderRadius: TRIGGER_RADIUS,
2567
+ height: TRIGGER_HEIGHT2,
2568
+ borderRadius: TRIGGER_RADIUS2,
1918
2569
  borderWidth: 1,
1919
2570
  paddingVertical: 12,
1920
2571
  paddingHorizontal: 16,
@@ -1980,8 +2631,8 @@ var styles5 = reactNative.StyleSheet.create({
1980
2631
  lineHeight: 16
1981
2632
  },
1982
2633
  iconSlot: {
1983
- width: ICON_SIZE,
1984
- height: ICON_SIZE,
2634
+ width: ICON_SIZE3,
2635
+ height: ICON_SIZE3,
1985
2636
  alignItems: "center",
1986
2637
  justifyContent: "center",
1987
2638
  flexShrink: 0
@@ -1996,7 +2647,7 @@ var styles5 = reactNative.StyleSheet.create({
1996
2647
  right: 0,
1997
2648
  marginTop: 8,
1998
2649
  zIndex: 10,
1999
- borderRadius: MENU_RADIUS2,
2650
+ borderRadius: MENU_RADIUS3,
2000
2651
  padding: 12,
2001
2652
  gap: 8,
2002
2653
  backgroundColor: colors.grey700,
@@ -2026,7 +2677,7 @@ var styles5 = reactNative.StyleSheet.create({
2026
2677
  },
2027
2678
  searchField: {
2028
2679
  height: 40,
2029
- borderRadius: ITEM_RADIUS,
2680
+ borderRadius: ITEM_RADIUS2,
2030
2681
  paddingHorizontal: 12,
2031
2682
  flexDirection: "row",
2032
2683
  alignItems: "center",
@@ -2048,7 +2699,7 @@ var styles5 = reactNative.StyleSheet.create({
2048
2699
  },
2049
2700
  item: {
2050
2701
  minHeight: 43,
2051
- borderRadius: ITEM_RADIUS,
2702
+ borderRadius: ITEM_RADIUS2,
2052
2703
  padding: 12,
2053
2704
  flexDirection: "row",
2054
2705
  alignItems: "center",
@@ -2066,7 +2717,7 @@ var styles5 = reactNative.StyleSheet.create({
2066
2717
  ...selectTypography.hint
2067
2718
  }
2068
2719
  });
2069
- var DEFAULT_WIDTH3 = 308;
2720
+ var DEFAULT_WIDTH4 = 308;
2070
2721
  var FIELD_HEIGHT = 100;
2071
2722
  var FIELD_RADIUS = 16;
2072
2723
  var FIELD_PADDING_VERTICAL = 12;
@@ -2152,13 +2803,13 @@ var Textarea = react.forwardRef(function Textarea2({
2152
2803
  const resolvedAccessibilityLabel = accessibilityLabel ?? (showLabel ? void 0 : label);
2153
2804
  useApplyWebClassName(rootRef, className);
2154
2805
  useApplyWebClassName(inputRef, inputClassName);
2155
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: rootRef, style: [styles6.root, disabled && styles6.disabled, style], children: [
2156
- showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles6.label, { color: chrome.labelColor }], children: label }) : null,
2806
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: rootRef, style: [styles8.root, disabled && styles8.disabled, style], children: [
2807
+ showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles8.label, { color: chrome.labelColor }], children: label }) : null,
2157
2808
  /* @__PURE__ */ jsxRuntime.jsx(
2158
2809
  reactNative.View,
2159
2810
  {
2160
2811
  style: [
2161
- styles6.field,
2812
+ styles8.field,
2162
2813
  {
2163
2814
  borderColor: chrome.borderColor,
2164
2815
  backgroundColor: chrome.backgroundColor
@@ -2190,11 +2841,11 @@ var Textarea = react.forwardRef(function Textarea2({
2190
2841
  onBlur?.(event);
2191
2842
  },
2192
2843
  style: [
2193
- styles6.input,
2844
+ styles8.input,
2194
2845
  textareaTypography.field,
2195
2846
  { color: chrome.textColor },
2196
- reactNative.Platform.OS === "web" ? styles6.inputWeb : null,
2197
- reactNative.Platform.OS === "android" ? styles6.inputAndroid : null,
2847
+ reactNative.Platform.OS === "web" ? styles8.inputWeb : null,
2848
+ reactNative.Platform.OS === "android" ? styles8.inputAndroid : null,
2198
2849
  inputStyle
2199
2850
  ],
2200
2851
  accessibilityLabel: resolvedAccessibilityLabel,
@@ -2203,12 +2854,12 @@ var Textarea = react.forwardRef(function Textarea2({
2203
2854
  )
2204
2855
  }
2205
2856
  ),
2206
- showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles6.hint, { color: chrome.hintColor }], children: hint }) : null
2857
+ showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles8.hint, { color: chrome.hintColor }], children: hint }) : null
2207
2858
  ] });
2208
2859
  });
2209
- var styles6 = reactNative.StyleSheet.create({
2860
+ var styles8 = reactNative.StyleSheet.create({
2210
2861
  root: {
2211
- width: DEFAULT_WIDTH3,
2862
+ width: DEFAULT_WIDTH4,
2212
2863
  gap: 8,
2213
2864
  alignSelf: "flex-start"
2214
2865
  },
@@ -2306,13 +2957,13 @@ var Toggle = react.forwardRef(function Toggle2({
2306
2957
  accessibilityRole: "switch",
2307
2958
  accessibilityLabel: resolvedAccessibilityLabel,
2308
2959
  accessibilityState: { checked: isActive, disabled },
2309
- style: [styles7.pressable, disabled && styles7.disabled, style],
2960
+ style: [styles9.pressable, disabled && styles9.disabled, style],
2310
2961
  children: [
2311
2962
  /* @__PURE__ */ jsxRuntime.jsx(
2312
2963
  reactNative.Animated.View,
2313
2964
  {
2314
2965
  style: [
2315
- styles7.track,
2966
+ styles9.track,
2316
2967
  {
2317
2968
  backgroundColor: trackBackgroundColor
2318
2969
  }
@@ -2321,7 +2972,7 @@ var Toggle = react.forwardRef(function Toggle2({
2321
2972
  reactNative.Animated.View,
2322
2973
  {
2323
2974
  style: [
2324
- styles7.thumb,
2975
+ styles9.thumb,
2325
2976
  {
2326
2977
  transform: [{ translateX: thumbTranslateX }]
2327
2978
  }
@@ -2330,12 +2981,12 @@ var Toggle = react.forwardRef(function Toggle2({
2330
2981
  )
2331
2982
  }
2332
2983
  ),
2333
- labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles7.label, labelStyle], children: labelContent }) : labelContent : null
2984
+ labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles9.label, labelStyle], children: labelContent }) : labelContent : null
2334
2985
  ]
2335
2986
  }
2336
2987
  );
2337
2988
  });
2338
- var styles7 = reactNative.StyleSheet.create({
2989
+ var styles9 = reactNative.StyleSheet.create({
2339
2990
  pressable: {
2340
2991
  flexDirection: "row",
2341
2992
  alignItems: "center",
@@ -2371,12 +3022,15 @@ exports.BellIcon = BellIcon;
2371
3022
  exports.BuildingIcon = BuildingIcon;
2372
3023
  exports.Button = Button;
2373
3024
  exports.CalendarIcon = CalendarIcon;
3025
+ exports.CalendarOutlineIcon = CalendarOutlineIcon;
2374
3026
  exports.CameraIcon = CameraIcon;
2375
3027
  exports.CheckBadgeIcon = CheckBadgeIcon;
2376
3028
  exports.CheckIcon = CheckIcon;
2377
3029
  exports.Checkbox = Checkbox;
2378
3030
  exports.ChevronDownIcon = ChevronDownIcon;
3031
+ exports.ChevronLeftIcon = ChevronLeftIcon;
2379
3032
  exports.ClockIcon = ClockIcon;
3033
+ exports.DatePicker = DatePicker;
2380
3034
  exports.FacebookIcon = FacebookIcon;
2381
3035
  exports.HeartIcon = HeartIcon;
2382
3036
  exports.HelpCircleIcon = HelpCircleIcon;
@@ -2389,6 +3043,7 @@ exports.LayoutGridIcon = LayoutGridIcon;
2389
3043
  exports.LinkedInIcon = LinkedInIcon;
2390
3044
  exports.LogOutIcon = LogOutIcon;
2391
3045
  exports.MailIcon = MailIcon;
3046
+ exports.MenuItem = MenuItem;
2392
3047
  exports.NavigateIcon = NavigateIcon;
2393
3048
  exports.PhoneIcon = PhoneIcon;
2394
3049
  exports.SearchIcon = SearchIcon;
@@ -2402,6 +3057,7 @@ exports.VideoIcon = VideoIcon;
2402
3057
  exports.avatarTypography = avatarTypography;
2403
3058
  exports.buttonTypography = buttonTypography;
2404
3059
  exports.colors = colors;
3060
+ exports.datePickerTypography = datePickerTypography;
2405
3061
  exports.fonts = fonts;
2406
3062
  exports.getIconsByGroup = getIconsByGroup;
2407
3063
  exports.grey = grey;