@ecohouse/ui 0.1.29 → 0.1.31

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
@@ -878,7 +878,7 @@ function LocationPinIcon({ size = 20, color = colors.grey200, strokeWidth = 2 })
878
878
  }
879
879
 
880
880
  // src/icons/LogOut/logOutPath.ts
881
- var LOG_OUT_PATH = "M10.6667 4.66667L14 8L10.6667 11.3333M14 8H6M8 11.3333C8 11.5304 8 11.6289 7.99268 11.7143C7.91655 12.6013 7.26324 13.3312 6.39002 13.5049C6.30602 13.5216 6.20801 13.5324 6.01223 13.5542L5.3313 13.6299C4.30832 13.7435 3.7968 13.8004 3.39044 13.6703C2.84862 13.4969 2.40628 13.101 2.17412 12.5817C2 12.1921 2 11.6775 2 10.6482V5.3518C2 4.32251 2 3.80787 2.17412 3.41835C2.40628 2.89899 2.84862 2.50307 3.39044 2.32969C3.79681 2.19965 4.3083 2.25648 5.33129 2.37015L6.01223 2.44581C6.20808 2.46757 6.306 2.47845 6.39002 2.49515C7.26324 2.66877 7.91655 3.39869 7.99268 4.28574C8 4.37109 8 4.46962 8 4.66667";
881
+ var LOG_OUT_PATH = "M10.6667 4.66667L14 8L10.6667 11.3333M14 8H6M6 2H5.2C4.0799 2 3.51984 2 3.09202 2.21799C2.7157 2.40973 2.40973 2.71569 2.21799 3.09202C2 3.51984 2 4.07989 2 5.2V10.8C2 11.9201 2 12.4802 2.21799 12.908C2.40973 13.2843 2.71569 13.5903 3.09202 13.782C3.51984 14 4.0799 14 5.2 14H6";
882
882
  function LogOutIcon({ size = 20, color = colors.red, strokeWidth = 1.5 }) {
883
883
  return /* @__PURE__ */ jsxRuntime.jsx(Svg16__default.default, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
884
884
  Svg16.Path,
@@ -2076,6 +2076,136 @@ var styles4 = reactNative.StyleSheet.create({
2076
2076
  })
2077
2077
  }
2078
2078
  });
2079
+ var IMAGE_SIZE2 = 32;
2080
+ var CARD_WIDTH = 268;
2081
+ var CARD_HEIGHT = 56;
2082
+ var LOG_OUT_SIZE = 16;
2083
+ var AvatarSimple = react.forwardRef(
2084
+ function AvatarSimple2({
2085
+ name,
2086
+ email,
2087
+ imageUrl,
2088
+ onLogOut,
2089
+ logOutAccessibilityLabel = "Log out",
2090
+ compact = false,
2091
+ style,
2092
+ className,
2093
+ ...rest
2094
+ }, forwardedRef) {
2095
+ const containerRef = react.useRef(null);
2096
+ const setContainerRef = react.useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);
2097
+ const [imageFailed, setImageFailed] = react.useState(false);
2098
+ const showImage = Boolean(imageUrl) && !imageFailed;
2099
+ useApplyWebClassName(containerRef, className);
2100
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2101
+ reactNative.View,
2102
+ {
2103
+ ...rest,
2104
+ ref: setContainerRef,
2105
+ style: [styles5.root, compact ? styles5.rootCompact : styles5.rootCard, style],
2106
+ accessibilityRole: "summary",
2107
+ accessibilityLabel: `${name}, ${email}`,
2108
+ children: [
2109
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.avatar, children: showImage ? /* @__PURE__ */ jsxRuntime.jsx(
2110
+ reactNative.Image,
2111
+ {
2112
+ source: { uri: imageUrl ?? void 0 },
2113
+ style: styles5.avatarImage,
2114
+ onError: () => setImageFailed(true),
2115
+ accessibilityIgnoresInvertColors: true
2116
+ }
2117
+ ) : null }),
2118
+ !compact ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.details, children: [
2119
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles5.textBlock, children: [
2120
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.name, numberOfLines: 1, children: name }),
2121
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles5.email, numberOfLines: 1, children: email })
2122
+ ] }),
2123
+ /* @__PURE__ */ jsxRuntime.jsx(
2124
+ reactNative.Pressable,
2125
+ {
2126
+ onPress: onLogOut,
2127
+ accessibilityRole: "button",
2128
+ accessibilityLabel: logOutAccessibilityLabel,
2129
+ hitSlop: 8,
2130
+ style: styles5.logOutButton,
2131
+ children: /* @__PURE__ */ jsxRuntime.jsx(LogOutIcon, { color: colors.primary, size: LOG_OUT_SIZE, strokeWidth: 2 })
2132
+ }
2133
+ )
2134
+ ] }) : null
2135
+ ]
2136
+ }
2137
+ );
2138
+ }
2139
+ );
2140
+ var styles5 = reactNative.StyleSheet.create({
2141
+ root: {
2142
+ flexDirection: "row",
2143
+ alignItems: "center",
2144
+ overflow: "hidden"
2145
+ },
2146
+ rootCard: {
2147
+ width: CARD_WIDTH,
2148
+ height: CARD_HEIGHT,
2149
+ gap: 12,
2150
+ borderRadius: 12,
2151
+ paddingVertical: 4,
2152
+ paddingHorizontal: 12,
2153
+ backgroundColor: colors.grey700
2154
+ },
2155
+ rootCompact: {
2156
+ width: IMAGE_SIZE2,
2157
+ height: IMAGE_SIZE2,
2158
+ borderRadius: IMAGE_SIZE2,
2159
+ backgroundColor: "transparent"
2160
+ },
2161
+ avatar: {
2162
+ width: IMAGE_SIZE2,
2163
+ height: IMAGE_SIZE2,
2164
+ borderRadius: 56,
2165
+ backgroundColor: colors.grey500,
2166
+ overflow: "hidden",
2167
+ flexShrink: 0
2168
+ },
2169
+ avatarImage: {
2170
+ width: IMAGE_SIZE2,
2171
+ height: IMAGE_SIZE2
2172
+ },
2173
+ details: {
2174
+ flex: 1,
2175
+ minWidth: 0,
2176
+ flexDirection: "row",
2177
+ alignItems: "center",
2178
+ gap: 12
2179
+ },
2180
+ textBlock: {
2181
+ flex: 1,
2182
+ minWidth: 0
2183
+ },
2184
+ name: {
2185
+ fontFamily: fonts.sans,
2186
+ fontSize: 12,
2187
+ fontWeight: "600",
2188
+ lineHeight: 16,
2189
+ letterSpacing: 0,
2190
+ color: colors.white
2191
+ },
2192
+ email: {
2193
+ marginTop: 2,
2194
+ fontFamily: fonts.sans,
2195
+ fontSize: 12,
2196
+ fontWeight: "400",
2197
+ lineHeight: 16,
2198
+ letterSpacing: 0,
2199
+ color: colors.grey0
2200
+ },
2201
+ logOutButton: {
2202
+ width: LOG_OUT_SIZE,
2203
+ height: LOG_OUT_SIZE,
2204
+ alignItems: "center",
2205
+ justifyContent: "center",
2206
+ flexShrink: 0
2207
+ }
2208
+ });
2079
2209
  var ICON_SIZE3 = 20;
2080
2210
  var webBlurStyle2 = reactNative.Platform.OS === "web" ? {
2081
2211
  backdropFilter: "blur(10.3px)",
@@ -2107,22 +2237,22 @@ var Badge = react.forwardRef(function Badge2({ label, variant = "default", icon:
2107
2237
  ...rest,
2108
2238
  ref: setContainerRef,
2109
2239
  style: [
2110
- styles5.base,
2240
+ styles6.base,
2111
2241
  { backgroundColor: preset.backgroundColor },
2112
- preset.border ? styles5.transparentBorder : null,
2242
+ preset.border ? styles6.transparentBorder : null,
2113
2243
  preset.blur ? webBlurStyle2 : null,
2114
2244
  style
2115
2245
  ],
2116
2246
  accessibilityRole: "text",
2117
2247
  accessibilityLabel: accessibilityLabel ?? label,
2118
2248
  children: [
2119
- Icon2 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles5.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(Icon2, { size: ICON_SIZE3, color: preset.iconColor }) }) : null,
2120
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles5.label, reactNative.Platform.OS === "android" ? styles5.labelAndroid : null], children: label })
2249
+ Icon2 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles6.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(Icon2, { size: ICON_SIZE3, color: preset.iconColor }) }) : null,
2250
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles6.label, reactNative.Platform.OS === "android" ? styles6.labelAndroid : null], children: label })
2121
2251
  ]
2122
2252
  }
2123
2253
  );
2124
2254
  });
2125
- var styles5 = reactNative.StyleSheet.create({
2255
+ var styles6 = reactNative.StyleSheet.create({
2126
2256
  base: {
2127
2257
  flexDirection: "row",
2128
2258
  alignItems: "center",
@@ -2195,7 +2325,7 @@ var Counter = react.forwardRef(function Counter2({
2195
2325
  if (!isControlled) setUncontrolledValue(next);
2196
2326
  onValueChange?.(next);
2197
2327
  };
2198
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ...rest, ref: setContainerRef, style: [styles6.base, style], children: [
2328
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ...rest, ref: setContainerRef, style: [styles7.base, style], children: [
2199
2329
  /* @__PURE__ */ jsxRuntime.jsx(
2200
2330
  reactNative.Pressable,
2201
2331
  {
@@ -2205,11 +2335,11 @@ var Counter = react.forwardRef(function Counter2({
2205
2335
  accessibilityRole: "button",
2206
2336
  accessibilityLabel: "Decrease value",
2207
2337
  accessibilityState: { disabled: decrementDisabled },
2208
- style: [styles6.button, webBlurStyle3, decrementDisabled && styles6.buttonDisabled],
2338
+ style: [styles7.button, webBlurStyle3, decrementDisabled && styles7.buttonDisabled],
2209
2339
  children: /* @__PURE__ */ jsxRuntime.jsx(MinusIcon, {})
2210
2340
  }
2211
2341
  ),
2212
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles6.value, children: resolvedValue }),
2342
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles7.value, children: resolvedValue }),
2213
2343
  /* @__PURE__ */ jsxRuntime.jsx(
2214
2344
  reactNative.Pressable,
2215
2345
  {
@@ -2219,13 +2349,13 @@ var Counter = react.forwardRef(function Counter2({
2219
2349
  accessibilityRole: "button",
2220
2350
  accessibilityLabel: "Increase value",
2221
2351
  accessibilityState: { disabled: incrementDisabled },
2222
- style: [styles6.button, webBlurStyle3, incrementDisabled && styles6.buttonDisabled],
2352
+ style: [styles7.button, webBlurStyle3, incrementDisabled && styles7.buttonDisabled],
2223
2353
  children: /* @__PURE__ */ jsxRuntime.jsx(PlusIcon, {})
2224
2354
  }
2225
2355
  )
2226
2356
  ] });
2227
2357
  });
2228
- var styles6 = reactNative.StyleSheet.create({
2358
+ var styles7 = reactNative.StyleSheet.create({
2229
2359
  base: {
2230
2360
  flexDirection: "row",
2231
2361
  alignItems: "center",
@@ -2255,6 +2385,17 @@ var OPTION_HORIZONTAL_PADDING = 16;
2255
2385
  var OPTION_CONTENT_GAP = 12;
2256
2386
  var OPTION_MIN_WIDTH = 97;
2257
2387
  var OPTION_MEASUREMENT_TOLERANCE = 0.5;
2388
+ var TRACK_PADDING = 4;
2389
+ var OPTION_GAP = 4;
2390
+ function buildIndicatorOutputRange(optionWidths) {
2391
+ const outputRange = [];
2392
+ let offset = 0;
2393
+ for (let index = 0; index < optionWidths.length; index += 1) {
2394
+ outputRange.push(offset);
2395
+ offset += optionWidths[index] + OPTION_GAP;
2396
+ }
2397
+ return outputRange;
2398
+ }
2258
2399
  var SegmentedToggle = react.forwardRef(
2259
2400
  function SegmentedToggle2({
2260
2401
  options,
@@ -2269,6 +2410,7 @@ var SegmentedToggle = react.forwardRef(
2269
2410
  onLayout,
2270
2411
  ...rest
2271
2412
  }, forwardedRef) {
2413
+ const optionCount = options.length;
2272
2414
  const containerRef = react.useRef(null);
2273
2415
  const isControlled = value !== void 0;
2274
2416
  const [uncontrolledValue, setUncontrolledValue] = react.useState(defaultValue);
@@ -2280,20 +2422,31 @@ var SegmentedToggle = react.forwardRef(
2280
2422
  const resolvedClassName = className?.trim() || void 0;
2281
2423
  const setContainerRef = react.useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);
2282
2424
  const progress = react.useRef(new reactNative.Animated.Value(selectedIndex)).current;
2283
- const [contentWidths, setContentWidths] = react.useState([0, 0]);
2425
+ const [contentWidths, setContentWidths] = react.useState(
2426
+ () => Array.from({ length: optionCount }, () => 0)
2427
+ );
2284
2428
  const [containerWidth, setContainerWidth] = react.useState(0);
2285
- const availableOptionWidth = Math.max(0, (containerWidth - 12) / 2);
2429
+ const trackChrome = TRACK_PADDING * 2 + OPTION_GAP * (optionCount - 1);
2430
+ const availableOptionWidth = Math.max(0, (containerWidth - trackChrome) / optionCount);
2286
2431
  const resolveContentOptionWidth = (contentWidth) => contentWidth > 0 ? Math.max(
2287
2432
  OPTION_MIN_WIDTH,
2288
2433
  contentWidth + OPTION_HORIZONTAL_PADDING * 2 + OPTION_MEASUREMENT_TOLERANCE
2289
2434
  ) : 0;
2290
- const optionWidths = fullWidth ? [availableOptionWidth, availableOptionWidth] : [resolveContentOptionWidth(contentWidths[0]), resolveContentOptionWidth(contentWidths[1])];
2291
- const selectedOptionWidth = optionWidths[selectedIndex];
2435
+ const optionWidths = fullWidth ? Array.from({ length: optionCount }, () => availableOptionWidth) : contentWidths.map((width) => resolveContentOptionWidth(width));
2436
+ const selectedOptionWidth = optionWidths[selectedIndex] ?? 0;
2437
+ const indicatorInputRange = options.map((_, index) => index);
2438
+ const indicatorOutputRange = buildIndicatorOutputRange(optionWidths);
2292
2439
  const indicatorTranslateX = progress.interpolate({
2293
- inputRange: [0, 1],
2294
- outputRange: [0, optionWidths[0] + 4]
2440
+ inputRange: indicatorInputRange,
2441
+ outputRange: indicatorOutputRange
2295
2442
  });
2296
2443
  useApplyWebClassName(containerRef, resolvedClassName);
2444
+ react.useEffect(() => {
2445
+ setContentWidths((current) => {
2446
+ if (current.length === optionCount) return current;
2447
+ return Array.from({ length: optionCount }, (_, index) => current[index] ?? 0);
2448
+ });
2449
+ }, [optionCount]);
2297
2450
  react.useEffect(() => {
2298
2451
  const animation = reactNative.Animated.timing(progress, {
2299
2452
  toValue: selectedIndex,
@@ -2322,9 +2475,9 @@ var SegmentedToggle = react.forwardRef(
2322
2475
  onLayout?.(event);
2323
2476
  },
2324
2477
  style: [
2325
- styles7.base,
2326
- fullWidth ? styles7.fullWidth : styles7.contentWidth,
2327
- disabled && styles7.disabled,
2478
+ styles8.base,
2479
+ fullWidth ? styles8.fullWidth : styles8.contentWidth,
2480
+ disabled && styles8.disabled,
2328
2481
  style
2329
2482
  ],
2330
2483
  accessibilityRole: "radiogroup",
@@ -2340,15 +2493,15 @@ var SegmentedToggle = react.forwardRef(
2340
2493
  const nextWidth = event.nativeEvent.layout.width;
2341
2494
  setContentWidths((currentWidths) => {
2342
2495
  if (currentWidths[index] === nextWidth) return currentWidths;
2343
- const nextWidths = [currentWidths[0], currentWidths[1]];
2496
+ const nextWidths = [...currentWidths];
2344
2497
  nextWidths[index] = nextWidth;
2345
2498
  return nextWidths;
2346
2499
  });
2347
2500
  },
2348
- style: styles7.optionMeasurement,
2501
+ style: styles8.optionMeasurement,
2349
2502
  children: [
2350
2503
  Icon2 ? /* @__PURE__ */ jsxRuntime.jsx(Icon2, { size: ICON_SIZE4 }) : null,
2351
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles7.label, styles7.contentWidthLabel], children: label })
2504
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles8.label, styles8.contentWidthLabel], children: label })
2352
2505
  ]
2353
2506
  },
2354
2507
  `${optionValue}-measurement`
@@ -2358,7 +2511,7 @@ var SegmentedToggle = react.forwardRef(
2358
2511
  {
2359
2512
  pointerEvents: "none",
2360
2513
  style: [
2361
- styles7.activeIndicator,
2514
+ styles8.activeIndicator,
2362
2515
  { width: selectedOptionWidth, transform: [{ translateX: indicatorTranslateX }] }
2363
2516
  ]
2364
2517
  }
@@ -2367,6 +2520,7 @@ var SegmentedToggle = react.forwardRef(
2367
2520
  const selected = optionValue === selectedValue;
2368
2521
  const iconColor = selected ? colors.primary : colors.whiteAlpha20;
2369
2522
  const labelColor = selected ? colors.whiteAlpha86 : colors.whiteAlpha40;
2523
+ const optionWidth = optionWidths[index] ?? 0;
2370
2524
  return /* @__PURE__ */ jsxRuntime.jsx(
2371
2525
  reactNative.Pressable,
2372
2526
  {
@@ -2377,21 +2531,18 @@ var SegmentedToggle = react.forwardRef(
2377
2531
  accessibilityLabel: label,
2378
2532
  accessibilityState: { selected, disabled },
2379
2533
  style: [
2380
- styles7.option,
2381
- fullWidth ? styles7.optionFullWidth : [
2382
- styles7.optionContentWidth,
2383
- optionWidths[index] > 0 && { width: optionWidths[index] }
2384
- ]
2534
+ styles8.option,
2535
+ fullWidth ? styles8.optionFullWidth : [styles8.optionContentWidth, optionWidth > 0 && { width: optionWidth }]
2385
2536
  ],
2386
- children: /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles7.optionContent, children: [
2537
+ children: /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles8.optionContent, children: [
2387
2538
  Icon2 ? /* @__PURE__ */ jsxRuntime.jsx(Icon2, { size: ICON_SIZE4, color: iconColor }) : null,
2388
2539
  /* @__PURE__ */ jsxRuntime.jsx(
2389
2540
  reactNative.Text,
2390
2541
  {
2391
2542
  numberOfLines: fullWidth ? 1 : void 0,
2392
2543
  style: [
2393
- styles7.label,
2394
- !fullWidth && styles7.contentWidthLabel,
2544
+ styles8.label,
2545
+ !fullWidth && styles8.contentWidthLabel,
2395
2546
  { color: labelColor }
2396
2547
  ],
2397
2548
  children: label
@@ -2407,12 +2558,12 @@ var SegmentedToggle = react.forwardRef(
2407
2558
  );
2408
2559
  }
2409
2560
  );
2410
- var styles7 = reactNative.StyleSheet.create({
2561
+ var styles8 = reactNative.StyleSheet.create({
2411
2562
  base: {
2412
2563
  height: 44,
2413
2564
  flexDirection: "row",
2414
- padding: 4,
2415
- gap: 4,
2565
+ padding: TRACK_PADDING,
2566
+ gap: OPTION_GAP,
2416
2567
  borderRadius: 60,
2417
2568
  backgroundColor: colors.grey700,
2418
2569
  overflow: "hidden"
@@ -2457,8 +2608,8 @@ var styles7 = reactNative.StyleSheet.create({
2457
2608
  },
2458
2609
  activeIndicator: {
2459
2610
  position: "absolute",
2460
- top: 4,
2461
- left: 4,
2611
+ top: TRACK_PADDING,
2612
+ left: TRACK_PADDING,
2462
2613
  height: 36,
2463
2614
  backgroundColor: colors.grey600,
2464
2615
  borderRadius: 60
@@ -2471,6 +2622,250 @@ var styles7 = reactNative.StyleSheet.create({
2471
2622
  flexShrink: 0
2472
2623
  }
2473
2624
  });
2625
+ var SIDEBAR_WIDTH = 300;
2626
+ var SIDEBAR_COLLAPSED_WIDTH = 72;
2627
+ var HEADER_HEIGHT = 64;
2628
+ var LOGO_WIDTH = 31;
2629
+ var LOGO_HEIGHT = 44;
2630
+ var TOGGLE_SIZE = 20;
2631
+ var MENU_ICON_SIZE = 16;
2632
+ var PROFILE_SECTION_HEIGHT = 80;
2633
+ var SIDEBAR_TRANSITION_MS = 300;
2634
+ var Sidebar = react.forwardRef(function Sidebar2({
2635
+ items,
2636
+ user,
2637
+ onLogOut,
2638
+ logoAccessibilityLabel = "Cortel Booking",
2639
+ navigationAccessibilityLabel = "Account navigation",
2640
+ collapseAccessibilityLabel = "Collapse sidebar",
2641
+ expandAccessibilityLabel = "Expand sidebar",
2642
+ logOutAccessibilityLabel = "Log out",
2643
+ collapsed: collapsedProp,
2644
+ defaultCollapsed = false,
2645
+ onCollapsedChange,
2646
+ style,
2647
+ className,
2648
+ ...rest
2649
+ }, forwardedRef) {
2650
+ const containerRef = react.useRef(null);
2651
+ const setContainerRef = react.useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);
2652
+ const [uncontrolledCollapsed, setUncontrolledCollapsed] = react.useState(defaultCollapsed);
2653
+ const collapsed = collapsedProp ?? uncontrolledCollapsed;
2654
+ const widthAnim = react.useRef(
2655
+ new reactNative.Animated.Value(collapsed ? SIDEBAR_COLLAPSED_WIDTH : SIDEBAR_WIDTH)
2656
+ ).current;
2657
+ const labelOpacity = react.useRef(new reactNative.Animated.Value(collapsed ? 0 : 1)).current;
2658
+ useApplyWebClassName(containerRef, className);
2659
+ react.useEffect(() => {
2660
+ const nextWidth = collapsed ? SIDEBAR_COLLAPSED_WIDTH : SIDEBAR_WIDTH;
2661
+ const nextOpacity = collapsed ? 0 : 1;
2662
+ const timing = {
2663
+ duration: SIDEBAR_TRANSITION_MS,
2664
+ easing: reactNative.Easing.inOut(reactNative.Easing.ease),
2665
+ useNativeDriver: false
2666
+ };
2667
+ const widthAnimation = reactNative.Animated.timing(widthAnim, { ...timing, toValue: nextWidth });
2668
+ const opacityAnimation = reactNative.Animated.timing(labelOpacity, { ...timing, toValue: nextOpacity });
2669
+ reactNative.Animated.parallel([widthAnimation, opacityAnimation]).start();
2670
+ return () => {
2671
+ widthAnimation.stop();
2672
+ opacityAnimation.stop();
2673
+ };
2674
+ }, [collapsed, labelOpacity, widthAnim]);
2675
+ const setCollapsed = (next) => {
2676
+ onCollapsedChange?.(next);
2677
+ if (collapsedProp === void 0) {
2678
+ setUncontrolledCollapsed(next);
2679
+ }
2680
+ };
2681
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2682
+ reactNative.Animated.View,
2683
+ {
2684
+ ...rest,
2685
+ ref: setContainerRef,
2686
+ style: [styles9.root, { width: widthAnim }, style],
2687
+ accessibilityRole: "menu",
2688
+ children: [
2689
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles9.header, collapsed ? styles9.headerCollapsed : styles9.headerExpanded], children: [
2690
+ /* @__PURE__ */ jsxRuntime.jsx(
2691
+ reactNative.Animated.View,
2692
+ {
2693
+ pointerEvents: collapsed ? "none" : "auto",
2694
+ style: [
2695
+ styles9.logoSlot,
2696
+ {
2697
+ opacity: labelOpacity,
2698
+ maxWidth: collapsed ? 0 : LOGO_WIDTH
2699
+ }
2700
+ ],
2701
+ accessibilityElementsHidden: collapsed,
2702
+ importantForAccessibility: collapsed ? "no-hide-descendants" : "auto",
2703
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2704
+ BrandLogo,
2705
+ {
2706
+ accessibilityLabel: logoAccessibilityLabel,
2707
+ height: LOGO_HEIGHT,
2708
+ variant: "brand",
2709
+ width: LOGO_WIDTH
2710
+ }
2711
+ )
2712
+ }
2713
+ ),
2714
+ /* @__PURE__ */ jsxRuntime.jsx(
2715
+ reactNative.Pressable,
2716
+ {
2717
+ accessibilityRole: "button",
2718
+ accessibilityLabel: collapsed ? expandAccessibilityLabel : collapseAccessibilityLabel,
2719
+ accessibilityState: { expanded: !collapsed },
2720
+ hitSlop: 8,
2721
+ onPress: () => setCollapsed(!collapsed),
2722
+ style: styles9.toggleButton,
2723
+ children: /* @__PURE__ */ jsxRuntime.jsx(SidebarIcon, { color: colors.grey100, size: TOGGLE_SIZE, strokeWidth: 2 })
2724
+ }
2725
+ )
2726
+ ] }),
2727
+ /* @__PURE__ */ jsxRuntime.jsx(
2728
+ reactNative.View,
2729
+ {
2730
+ accessibilityLabel: navigationAccessibilityLabel,
2731
+ accessibilityRole: "menu",
2732
+ style: styles9.nav,
2733
+ children: items.map((item) => {
2734
+ const isActive = Boolean(item.active);
2735
+ const iconColor = isActive ? colors.primary : colors.grey300;
2736
+ const Icon2 = item.icon;
2737
+ const iconNode = /* @__PURE__ */ jsxRuntime.jsx(Icon2, { color: iconColor, size: MENU_ICON_SIZE, strokeWidth: 1.5 });
2738
+ return /* @__PURE__ */ jsxRuntime.jsx(
2739
+ MenuItem,
2740
+ {
2741
+ icon: iconNode,
2742
+ label: item.label,
2743
+ accessibilityLabel: item.label,
2744
+ backgroundColor: isActive ? colors.grey700 : "transparent",
2745
+ hoverColor: colors.grey700,
2746
+ onPress: item.onPress,
2747
+ labelStyle: [
2748
+ styles9.menuLabel,
2749
+ { color: isActive ? colors.white : colors.grey200 },
2750
+ collapsed ? styles9.menuLabelCollapsed : styles9.menuLabelExpanded
2751
+ ],
2752
+ style: [styles9.menuItem, collapsed ? styles9.menuItemCollapsed : null]
2753
+ },
2754
+ item.key
2755
+ );
2756
+ })
2757
+ }
2758
+ ),
2759
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles9.footer, collapsed ? styles9.footerCollapsed : styles9.footerExpanded], children: /* @__PURE__ */ jsxRuntime.jsx(
2760
+ AvatarSimple,
2761
+ {
2762
+ name: user.name,
2763
+ email: user.email,
2764
+ imageUrl: user.imageUrl,
2765
+ onLogOut,
2766
+ logOutAccessibilityLabel,
2767
+ compact: collapsed
2768
+ }
2769
+ ) })
2770
+ ]
2771
+ }
2772
+ );
2773
+ });
2774
+ var styles9 = reactNative.StyleSheet.create({
2775
+ root: {
2776
+ flexDirection: "column",
2777
+ alignSelf: "stretch",
2778
+ height: "100%",
2779
+ minHeight: "100%",
2780
+ flexShrink: 0,
2781
+ backgroundColor: colors.dark,
2782
+ borderRightWidth: 1,
2783
+ borderRightColor: colors.grey700,
2784
+ overflow: "hidden"
2785
+ },
2786
+ header: {
2787
+ zIndex: 1,
2788
+ height: HEADER_HEIGHT,
2789
+ width: "100%",
2790
+ flexDirection: "row",
2791
+ alignItems: "center",
2792
+ borderBottomWidth: 1,
2793
+ borderBottomColor: colors.grey700,
2794
+ backgroundColor: colors.dark
2795
+ },
2796
+ headerExpanded: {
2797
+ justifyContent: "space-between",
2798
+ paddingHorizontal: 24
2799
+ },
2800
+ headerCollapsed: {
2801
+ justifyContent: "center",
2802
+ paddingHorizontal: 0
2803
+ },
2804
+ logoSlot: {
2805
+ minWidth: 0,
2806
+ height: LOGO_HEIGHT,
2807
+ flexShrink: 0,
2808
+ overflow: "hidden"
2809
+ },
2810
+ toggleButton: {
2811
+ width: TOGGLE_SIZE,
2812
+ height: TOGGLE_SIZE,
2813
+ alignItems: "center",
2814
+ justifyContent: "center",
2815
+ flexShrink: 0
2816
+ },
2817
+ nav: {
2818
+ flexGrow: 1,
2819
+ flexShrink: 1,
2820
+ flexBasis: 0,
2821
+ width: "100%",
2822
+ minHeight: 0,
2823
+ padding: 16,
2824
+ gap: 10
2825
+ },
2826
+ menuItem: {
2827
+ gap: 8
2828
+ },
2829
+ menuItemCollapsed: {
2830
+ gap: 0
2831
+ },
2832
+ menuLabel: {
2833
+ fontFamily: fonts.sans,
2834
+ fontSize: 12,
2835
+ fontWeight: "600",
2836
+ lineHeight: 16,
2837
+ letterSpacing: 0
2838
+ },
2839
+ menuLabelExpanded: {
2840
+ flexGrow: 1,
2841
+ flexShrink: 1,
2842
+ opacity: 1
2843
+ },
2844
+ menuLabelCollapsed: {
2845
+ flexGrow: 0,
2846
+ flexShrink: 0,
2847
+ width: 0,
2848
+ maxWidth: 0,
2849
+ opacity: 0,
2850
+ overflow: "hidden"
2851
+ },
2852
+ footer: {
2853
+ height: PROFILE_SECTION_HEIGHT,
2854
+ width: "100%",
2855
+ flexGrow: 0,
2856
+ flexShrink: 0,
2857
+ marginTop: "auto",
2858
+ alignItems: "center",
2859
+ justifyContent: "center",
2860
+ paddingVertical: 12
2861
+ },
2862
+ footerExpanded: {
2863
+ paddingHorizontal: 16
2864
+ },
2865
+ footerCollapsed: {
2866
+ paddingHorizontal: 0
2867
+ }
2868
+ });
2474
2869
  var defaultLanguageOptions = [
2475
2870
  { value: "hy", label: "\u0540\u0561\u0575" },
2476
2871
  { value: "en", label: "Eng" },
@@ -2558,7 +2953,7 @@ var LanguageSwitcher = react.forwardRef(
2558
2953
  {
2559
2954
  ...rest,
2560
2955
  ref: setWrapperRef,
2561
- style: [styles8.wrapper, isOpen && styles8.wrapperOpen, disabled && styles8.disabled, style],
2956
+ style: [styles10.wrapper, isOpen && styles10.wrapperOpen, disabled && styles10.disabled, style],
2562
2957
  children: [
2563
2958
  /* @__PURE__ */ jsxRuntime.jsxs(
2564
2959
  reactNative.Pressable,
@@ -2573,17 +2968,17 @@ var LanguageSwitcher = react.forwardRef(
2573
2968
  onHoverIn: () => setTriggerHovered(true),
2574
2969
  onHoverOut: () => setTriggerHovered(false),
2575
2970
  style: ({ pressed }) => [
2576
- styles8.trigger,
2577
- (triggerHovered || pressed || isOpen) && styles8.triggerActive
2971
+ styles10.trigger,
2972
+ (triggerHovered || pressed || isOpen) && styles10.triggerActive
2578
2973
  ],
2579
2974
  children: [
2580
2975
  /* @__PURE__ */ jsxRuntime.jsx(GlobeIcon, { size: ICON_SIZE5, color: colors.white, strokeWidth: 2 }),
2581
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles8.triggerLabel, numberOfLines: 1, children: selectedOption?.label ?? "" }),
2582
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles8.chevron, isOpen && styles8.chevronOpen], children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { size: ICON_SIZE5, color: colors.white, strokeWidth: 2 }) })
2976
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles10.triggerLabel, numberOfLines: 1, children: selectedOption?.label ?? "" }),
2977
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles10.chevron, isOpen && styles10.chevronOpen], children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { size: ICON_SIZE5, color: colors.white, strokeWidth: 2 }) })
2583
2978
  ]
2584
2979
  }
2585
2980
  ),
2586
- isOpen && options.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles8.menu, accessibilityRole: "menu", children: options.map((option) => {
2981
+ isOpen && options.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles10.menu, accessibilityRole: "menu", children: options.map((option) => {
2587
2982
  const selected = option.value === selectedValue;
2588
2983
  return /* @__PURE__ */ jsxRuntime.jsx(
2589
2984
  reactNative.Pressable,
@@ -2595,10 +2990,10 @@ var LanguageSwitcher = react.forwardRef(
2595
2990
  onHoverIn: () => setHoveredValue(option.value),
2596
2991
  onHoverOut: () => setHoveredValue(null),
2597
2992
  style: ({ pressed }) => [
2598
- styles8.item,
2599
- selected ? styles8.itemSelected : (hoveredValue === option.value || pressed) && styles8.itemHovered
2993
+ styles10.item,
2994
+ selected ? styles10.itemSelected : (hoveredValue === option.value || pressed) && styles10.itemHovered
2600
2995
  ],
2601
- children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles8.itemLabel, selected && styles8.itemLabelSelected], children: option.label })
2996
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles10.itemLabel, selected && styles10.itemLabelSelected], children: option.label })
2602
2997
  },
2603
2998
  option.value
2604
2999
  );
@@ -2608,7 +3003,7 @@ var LanguageSwitcher = react.forwardRef(
2608
3003
  );
2609
3004
  }
2610
3005
  );
2611
- var styles8 = reactNative.StyleSheet.create({
3006
+ var styles10 = reactNative.StyleSheet.create({
2612
3007
  wrapper: {
2613
3008
  position: "relative",
2614
3009
  width: CONTROL_WIDTH,
@@ -2704,17 +3099,17 @@ var StatCard = react.forwardRef(function StatCard2({
2704
3099
  {
2705
3100
  ...rest,
2706
3101
  ref: setContainerRef,
2707
- style: [styles9.base, style],
3102
+ style: [styles11.base, style],
2708
3103
  accessibilityRole: "text",
2709
3104
  accessibilityLabel: accessibilityLabel ?? label,
2710
3105
  children: [
2711
3106
  /* @__PURE__ */ jsxRuntime.jsx(Icon2, { ...iconProps, size: iconSize, color: iconProps?.color ?? colors.white }),
2712
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles9.label, children: label })
3107
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles11.label, children: label })
2713
3108
  ]
2714
3109
  }
2715
3110
  );
2716
3111
  });
2717
- var styles9 = reactNative.StyleSheet.create({
3112
+ var styles11 = reactNative.StyleSheet.create({
2718
3113
  base: {
2719
3114
  width: 204.5,
2720
3115
  minHeight: 114,
@@ -2800,7 +3195,7 @@ var Button = react.forwardRef(
2800
3195
  useApplyWebClassName(textRef, textClassName);
2801
3196
  const iconNode = customIcon ?? /* @__PURE__ */ jsxRuntime.jsx(ArrowRightIcon, { size: metrics.iconSize, color: preset.iconColor });
2802
3197
  const containerStyle = [
2803
- styles10.base,
3198
+ styles12.base,
2804
3199
  {
2805
3200
  minHeight: metrics.minHeight,
2806
3201
  borderRadius: metrics.borderRadius,
@@ -2811,16 +3206,16 @@ var Button = react.forwardRef(
2811
3206
  paddingRight: hasIcon ? metrics.paddingRightWithIcon : metrics.paddingRight,
2812
3207
  gap: hasIcon ? metrics.gap : 0
2813
3208
  },
2814
- hasIcon ? styles10.contentWithIcon : styles10.contentWithoutIcon,
2815
- disabled && styles10.disabled,
3209
+ hasIcon ? styles12.contentWithIcon : styles12.contentWithoutIcon,
3210
+ disabled && styles12.disabled,
2816
3211
  style
2817
3212
  ];
2818
3213
  const labelStyle = [
2819
- styles10.label,
3214
+ styles12.label,
2820
3215
  metrics.text,
2821
3216
  { color: preset.textColor },
2822
- reactNative.Platform.OS === "android" ? styles10.labelAndroid : null,
2823
- !hasIcon && styles10.labelCentered,
3217
+ reactNative.Platform.OS === "android" ? styles12.labelAndroid : null,
3218
+ !hasIcon && styles12.labelCentered,
2824
3219
  textStyle
2825
3220
  ];
2826
3221
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2841,7 +3236,7 @@ var Button = react.forwardRef(
2841
3236
  reactNative.View,
2842
3237
  {
2843
3238
  style: [
2844
- styles10.iconContainer,
3239
+ styles12.iconContainer,
2845
3240
  {
2846
3241
  width: metrics.iconContainerSize,
2847
3242
  height: metrics.iconContainerSize,
@@ -2857,7 +3252,7 @@ var Button = react.forwardRef(
2857
3252
  );
2858
3253
  }
2859
3254
  );
2860
- var styles10 = reactNative.StyleSheet.create({
3255
+ var styles12 = reactNative.StyleSheet.create({
2861
3256
  base: {
2862
3257
  flexDirection: "row",
2863
3258
  alignItems: "center",
@@ -2941,13 +3336,13 @@ var Checkbox = react.forwardRef(function Checkbox2({
2941
3336
  accessibilityRole: "checkbox",
2942
3337
  accessibilityLabel: resolvedAccessibilityLabel,
2943
3338
  accessibilityState: { checked: isActive, disabled },
2944
- style: [styles11.root, disabled && styles11.disabled, style],
3339
+ style: [styles13.root, disabled && styles13.disabled, style],
2945
3340
  children: [
2946
3341
  /* @__PURE__ */ jsxRuntime.jsx(
2947
3342
  reactNative.View,
2948
3343
  {
2949
3344
  style: [
2950
- styles11.box,
3345
+ styles13.box,
2951
3346
  {
2952
3347
  backgroundColor: chrome.backgroundColor,
2953
3348
  borderColor: chrome.borderColor
@@ -2956,12 +3351,12 @@ var Checkbox = react.forwardRef(function Checkbox2({
2956
3351
  children: isActive ? /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { size: CHECK_SIZE, color: colors.primary, strokeWidth: CHECK_STROKE }) : null
2957
3352
  }
2958
3353
  ),
2959
- labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles11.label, labelStyle], children: labelContent }) : labelContent : null
3354
+ labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles13.label, labelStyle], children: labelContent }) : labelContent : null
2960
3355
  ]
2961
3356
  }
2962
3357
  );
2963
3358
  });
2964
- var styles11 = reactNative.StyleSheet.create({
3359
+ var styles13 = reactNative.StyleSheet.create({
2965
3360
  root: {
2966
3361
  flexDirection: "row",
2967
3362
  alignItems: "center",
@@ -3069,13 +3464,13 @@ function RangeTriggerField({
3069
3464
  value,
3070
3465
  time
3071
3466
  }) {
3072
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles12.rangeField, children: [
3073
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: styles12.rangeLabel, children: label }),
3074
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles12.rangeValueRow, children: [
3075
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: styles12.rangeDate, children: value }),
3076
- time ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles12.rangeTimeWrap, children: [
3467
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles14.rangeField, children: [
3468
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: styles14.rangeLabel, children: label }),
3469
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles14.rangeValueRow, children: [
3470
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: styles14.rangeDate, children: value }),
3471
+ time ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles14.rangeTimeWrap, children: [
3077
3472
  /* @__PURE__ */ jsxRuntime.jsx(ClockFilledIcon, { color: colors.lightGrey, size: 16 }),
3078
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles12.rangeTime, children: time })
3473
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles14.rangeTime, children: time })
3079
3474
  ] }) : null
3080
3475
  ] })
3081
3476
  ] });
@@ -3241,14 +3636,14 @@ var DatePicker = react.forwardRef(
3241
3636
  ...rest,
3242
3637
  ref: setRootRef,
3243
3638
  style: [
3244
- styles12.root,
3245
- usesRangeTrigger && styles12.rangeRoot,
3246
- isOpen && styles12.rootOpen,
3247
- disabled && styles12.disabled,
3639
+ styles14.root,
3640
+ usesRangeTrigger && styles14.rangeRoot,
3641
+ isOpen && styles14.rootOpen,
3642
+ disabled && styles14.disabled,
3248
3643
  style
3249
3644
  ],
3250
3645
  accessibilityState: { disabled, expanded: isOpen },
3251
- children: /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles12.triggerWrap, isOpen && styles12.triggerWrapOpen], children: [
3646
+ children: /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles14.triggerWrap, isOpen && styles14.triggerWrapOpen], children: [
3252
3647
  /* @__PURE__ */ jsxRuntime.jsx(
3253
3648
  reactNative.Pressable,
3254
3649
  {
@@ -3259,9 +3654,9 @@ var DatePicker = react.forwardRef(
3259
3654
  accessibilityLabel: resolvedAccessibilityLabel,
3260
3655
  accessibilityState: { disabled, expanded: isOpen },
3261
3656
  style: [
3262
- styles12.trigger,
3263
- usesRangeTrigger && styles12.rangeTrigger,
3264
- usesRangeTrigger && (usesVerticalRangeTrigger ? styles12.rangeTriggerVertical : styles12.rangeTriggerHorizontal),
3657
+ styles14.trigger,
3658
+ usesRangeTrigger && styles14.rangeTrigger,
3659
+ usesRangeTrigger && (usesVerticalRangeTrigger ? styles14.rangeTriggerVertical : styles14.rangeTriggerHorizontal),
3265
3660
  {
3266
3661
  borderColor: triggerBorderColor,
3267
3662
  backgroundColor: usesRangeTrigger ? "transparent" : colors.grey700
@@ -3272,18 +3667,18 @@ var DatePicker = react.forwardRef(
3272
3667
  /* @__PURE__ */ jsxRuntime.jsx(
3273
3668
  reactNative.View,
3274
3669
  {
3275
- style: usesVerticalRangeTrigger ? styles12.rangeDividerVertical : styles12.rangeDividerHorizontal
3670
+ style: usesVerticalRangeTrigger ? styles14.rangeDividerVertical : styles14.rangeDividerHorizontal
3276
3671
  }
3277
3672
  ),
3278
3673
  /* @__PURE__ */ jsxRuntime.jsx(RangeTriggerField, { label: endLabel, time: endTime, value: endValue })
3279
3674
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3280
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles12.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: triggerLabel }),
3281
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles12.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(CalendarOutlineIcon, { size: ICON_SIZE7, color: colors.grey100 }) })
3675
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles14.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: triggerLabel }),
3676
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles14.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(CalendarOutlineIcon, { size: ICON_SIZE7, color: colors.grey100 }) })
3282
3677
  ] })
3283
3678
  }
3284
3679
  ),
3285
- isOpen ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles12.menu, usesRangeTrigger && styles12.rangeMenu, calendarStyle], children: [
3286
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles12.calendarHeader, children: [
3680
+ isOpen ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles14.menu, usesRangeTrigger && styles14.rangeMenu, calendarStyle], children: [
3681
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles14.calendarHeader, children: [
3287
3682
  /* @__PURE__ */ jsxRuntime.jsx(
3288
3683
  reactNative.Pressable,
3289
3684
  {
@@ -3291,11 +3686,11 @@ var DatePicker = react.forwardRef(
3291
3686
  hitSlop: 8,
3292
3687
  accessibilityRole: "button",
3293
3688
  accessibilityLabel: "Previous month",
3294
- style: styles12.navButton,
3689
+ style: styles14.navButton,
3295
3690
  children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { size: NAV_ICON_SIZE, color: colors.white })
3296
3691
  }
3297
3692
  ),
3298
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.Text, { style: styles12.monthHeading, children: [
3693
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.Text, { style: styles14.monthHeading, children: [
3299
3694
  monthNames[visibleMonth.getMonth()],
3300
3695
  " ",
3301
3696
  visibleMonth.getFullYear()
@@ -3307,13 +3702,13 @@ var DatePicker = react.forwardRef(
3307
3702
  hitSlop: 8,
3308
3703
  accessibilityRole: "button",
3309
3704
  accessibilityLabel: "Next month",
3310
- style: styles12.navButton,
3311
- children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles12.navIconMirror, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { size: NAV_ICON_SIZE, color: colors.white }) })
3705
+ style: styles14.navButton,
3706
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles14.navIconMirror, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { size: NAV_ICON_SIZE, color: colors.white }) })
3312
3707
  }
3313
3708
  )
3314
3709
  ] }),
3315
3710
  /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { children: [
3316
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles12.weekdayRow, children: weekdayLabels.map((weekdayLabel, index) => /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles12.dayCellWrap, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles12.weekdayText, children: weekdayLabel }) }, `${weekdayLabel}-${index}`)) }),
3711
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles14.weekdayRow, children: weekdayLabels.map((weekdayLabel, index) => /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles14.dayCellWrap, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles14.weekdayText, children: weekdayLabel }) }, `${weekdayLabel}-${index}`)) }),
3317
3712
  weeks.map((week, weekIndex) => {
3318
3713
  let rangeHighlightStyle = null;
3319
3714
  if (isRange && rangeValue.start && rangeValue.end) {
@@ -3350,13 +3745,13 @@ var DatePicker = react.forwardRef(
3350
3745
  return /* @__PURE__ */ jsxRuntime.jsxs(
3351
3746
  reactNative.View,
3352
3747
  {
3353
- style: [styles12.weekRow, weekIndex > 0 && styles12.weekRowSpaced],
3748
+ style: [styles14.weekRow, weekIndex > 0 && styles14.weekRowSpaced],
3354
3749
  children: [
3355
3750
  rangeHighlightStyle ? /* @__PURE__ */ jsxRuntime.jsx(
3356
3751
  reactNative.View,
3357
3752
  {
3358
3753
  pointerEvents: "none",
3359
- style: [styles12.rangeHighlight, rangeHighlightStyle]
3754
+ style: [styles14.rangeHighlight, rangeHighlightStyle]
3360
3755
  }
3361
3756
  ) : null,
3362
3757
  week.map((day, dayIndex) => {
@@ -3379,7 +3774,7 @@ var DatePicker = react.forwardRef(
3379
3774
  onHoverOut: () => setHoveredDayKey((current) => current === dayKey ? null : current),
3380
3775
  onPressIn: () => setHoveredDayKey(dayKey),
3381
3776
  onPressOut: () => setHoveredDayKey((current) => current === dayKey ? null : current),
3382
- style: styles12.dayCellWrap,
3777
+ style: styles14.dayCellWrap,
3383
3778
  accessibilityRole: "button",
3384
3779
  accessibilityLabel: formatValue(day),
3385
3780
  accessibilityState: {
@@ -3391,14 +3786,14 @@ var DatePicker = react.forwardRef(
3391
3786
  reactNative.View,
3392
3787
  {
3393
3788
  style: [
3394
- styles12.dayCircle,
3395
- isSelectedEndpoint && styles12.dayCircleSelected,
3396
- isHovered && styles12.dayCircleHovered
3789
+ styles14.dayCircle,
3790
+ isSelectedEndpoint && styles14.dayCircleSelected,
3791
+ isHovered && styles14.dayCircleHovered
3397
3792
  ],
3398
- children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles12.dayText, { color: dayTextColor }], children: day.getDate() })
3793
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles14.dayText, { color: dayTextColor }], children: day.getDate() })
3399
3794
  }
3400
3795
  ),
3401
- isToday && !isSelectedEndpoint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles12.todayDot }) : null
3796
+ isToday && !isSelectedEndpoint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles14.todayDot }) : null
3402
3797
  ]
3403
3798
  },
3404
3799
  dayIndex
@@ -3416,7 +3811,7 @@ var DatePicker = react.forwardRef(
3416
3811
  );
3417
3812
  }
3418
3813
  );
3419
- var styles12 = reactNative.StyleSheet.create({
3814
+ var styles14 = reactNative.StyleSheet.create({
3420
3815
  root: {
3421
3816
  width: DEFAULT_WIDTH,
3422
3817
  gap: 8,
@@ -3760,13 +4155,13 @@ var Input = react.forwardRef(function Input2({
3760
4155
  });
3761
4156
  useApplyWebClassName(rootRef, className);
3762
4157
  useApplyWebClassName(inputRef, inputClassName);
3763
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: rootRef, style: [styles13.root, disabled && styles13.disabled, style], children: [
3764
- showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles13.label, { color: chrome.labelColor }], children: label }) : null,
4158
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: rootRef, style: [styles15.root, disabled && styles15.disabled, style], children: [
4159
+ showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles15.label, { color: chrome.labelColor }], children: label }) : null,
3765
4160
  /* @__PURE__ */ jsxRuntime.jsxs(
3766
4161
  reactNative.View,
3767
4162
  {
3768
4163
  style: [
3769
- styles13.field,
4164
+ styles15.field,
3770
4165
  {
3771
4166
  height: metrics.height,
3772
4167
  borderRadius: metrics.borderRadius,
@@ -3781,7 +4176,7 @@ var Input = react.forwardRef(function Input2({
3781
4176
  fieldStyle
3782
4177
  ],
3783
4178
  children: [
3784
- hasLeftIcon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles13.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: leftIconNode }) : null,
4179
+ hasLeftIcon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles15.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: leftIconNode }) : null,
3785
4180
  /* @__PURE__ */ jsxRuntime.jsx(
3786
4181
  reactNative.TextInput,
3787
4182
  {
@@ -3805,11 +4200,11 @@ var Input = react.forwardRef(function Input2({
3805
4200
  onBlur?.(event);
3806
4201
  },
3807
4202
  style: [
3808
- styles13.input,
4203
+ styles15.input,
3809
4204
  metrics.text,
3810
4205
  { color: chrome.textColor },
3811
- reactNative.Platform.OS === "web" ? styles13.inputWeb : null,
3812
- reactNative.Platform.OS === "android" ? styles13.inputAndroid : null,
4206
+ reactNative.Platform.OS === "web" ? styles15.inputWeb : null,
4207
+ reactNative.Platform.OS === "android" ? styles15.inputAndroid : null,
3813
4208
  inputStyle
3814
4209
  ],
3815
4210
  accessibilityLabel: resolvedAccessibilityLabel,
@@ -3821,20 +4216,20 @@ var Input = react.forwardRef(function Input2({
3821
4216
  {
3822
4217
  onPress: onRightIconPress,
3823
4218
  disabled,
3824
- style: [styles13.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }],
4219
+ style: [styles15.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }],
3825
4220
  accessibilityRole: "button",
3826
4221
  accessibilityLabel: rightIconAccessibilityLabel,
3827
4222
  hitSlop: 8,
3828
4223
  children: rightIconNode
3829
4224
  }
3830
- ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles13.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: rightIconNode }) : null
4225
+ ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles15.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: rightIconNode }) : null
3831
4226
  ]
3832
4227
  }
3833
4228
  ),
3834
- showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles13.hint, { color: chrome.hintColor }], children: hint }) : null
4229
+ showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles15.hint, { color: chrome.hintColor }], children: hint }) : null
3835
4230
  ] });
3836
4231
  });
3837
- var styles13 = reactNative.StyleSheet.create({
4232
+ var styles15 = reactNative.StyleSheet.create({
3838
4233
  root: {
3839
4234
  width: DEFAULT_WIDTH2,
3840
4235
  gap: 8,
@@ -3992,9 +4387,9 @@ var VerificationCodeInput = react.forwardRef(function VerificationCodeInput2({
3992
4387
  ...viewProps,
3993
4388
  ref: rootRef,
3994
4389
  style: [
3995
- styles14.root,
4390
+ styles16.root,
3996
4391
  { width: rootWidth, maxWidth: "100%", gap: cellGap },
3997
- disabled && styles14.disabled,
4392
+ disabled && styles16.disabled,
3998
4393
  style
3999
4394
  ],
4000
4395
  children: Array.from({ length: safeLength }, (_, index) => {
@@ -4022,15 +4417,15 @@ var VerificationCodeInput = react.forwardRef(function VerificationCodeInput2({
4022
4417
  onSubmitEditing: () => onSubmit?.(currentCode),
4023
4418
  selectTextOnFocus: true,
4024
4419
  style: [
4025
- styles14.cell,
4420
+ styles16.cell,
4026
4421
  {
4027
4422
  width: cellWidth,
4028
4423
  height: CELL_HEIGHT,
4029
4424
  borderColor,
4030
4425
  color: error ? colors.red : colors.white
4031
4426
  },
4032
- reactNative.Platform.OS === "web" ? styles14.cellWeb : null,
4033
- reactNative.Platform.OS === "android" ? styles14.cellAndroid : null,
4427
+ reactNative.Platform.OS === "web" ? styles16.cellWeb : null,
4428
+ reactNative.Platform.OS === "android" ? styles16.cellAndroid : null,
4034
4429
  inputStyle
4035
4430
  ],
4036
4431
  value: currentCode[index] ?? ""
@@ -4041,7 +4436,7 @@ var VerificationCodeInput = react.forwardRef(function VerificationCodeInput2({
4041
4436
  }
4042
4437
  );
4043
4438
  });
4044
- var styles14 = reactNative.StyleSheet.create({
4439
+ var styles16 = reactNative.StyleSheet.create({
4045
4440
  root: {
4046
4441
  minWidth: 0,
4047
4442
  alignSelf: "center",
@@ -4151,25 +4546,25 @@ function MultiValueChips({ options, disabled, onRemove }) {
4151
4546
  const next = Math.ceil(event.nativeEvent.layout.width);
4152
4547
  setEllipsisWidth((current) => current === next ? current : next);
4153
4548
  };
4154
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles15.multiValueRoot, children: [
4155
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { pointerEvents: "none", style: styles15.measureRow, children: [
4549
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles17.multiValueRoot, children: [
4550
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { pointerEvents: "none", style: styles17.measureRow, children: [
4156
4551
  options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
4157
4552
  reactNative.View,
4158
4553
  {
4159
- style: styles15.chip,
4554
+ style: styles17.chip,
4160
4555
  onLayout: (event) => handleChipLayout(option.value, event),
4161
4556
  children: [
4162
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.chipLabel, numberOfLines: 1, children: option.label }),
4163
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.chipRemove, children: "\xD7" })
4557
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.chipLabel, numberOfLines: 1, children: option.label }),
4558
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.chipRemove, children: "\xD7" })
4164
4559
  ]
4165
4560
  },
4166
4561
  `measure-${option.value}`
4167
4562
  )),
4168
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles15.ellipsis, onLayout: handleEllipsisLayout, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.ellipsisText, children: "..." }) })
4563
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles17.ellipsis, onLayout: handleEllipsisLayout, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.ellipsisText, children: "..." }) })
4169
4564
  ] }),
4170
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles15.chipsRow, onLayout: handleContainerLayout, children: [
4171
- visible.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles15.chip, children: [
4172
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.chipLabel, numberOfLines: 1, children: option.label }),
4565
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles17.chipsRow, onLayout: handleContainerLayout, children: [
4566
+ visible.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles17.chip, children: [
4567
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.chipLabel, numberOfLines: 1, children: option.label }),
4173
4568
  /* @__PURE__ */ jsxRuntime.jsx(
4174
4569
  reactNative.Pressable,
4175
4570
  {
@@ -4181,11 +4576,11 @@ function MultiValueChips({ options, disabled, onRemove }) {
4181
4576
  hitSlop: 6,
4182
4577
  accessibilityRole: "button",
4183
4578
  accessibilityLabel: `Remove ${option.label}`,
4184
- children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.chipRemove, children: "\xD7" })
4579
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.chipRemove, children: "\xD7" })
4185
4580
  }
4186
4581
  )
4187
4582
  ] }, option.value)),
4188
- hasOverflow ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles15.ellipsis, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.ellipsisText, children: "..." }) }) : null
4583
+ hasOverflow ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles17.ellipsis, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.ellipsisText, children: "..." }) }) : null
4189
4584
  ] })
4190
4585
  ] });
4191
4586
  }
@@ -4409,11 +4804,11 @@ var Select = react.forwardRef(
4409
4804
  {
4410
4805
  ...rest,
4411
4806
  ref: setRootRef,
4412
- style: [styles15.root, isOpen && styles15.rootOpen, disabled && styles15.disabled, style],
4807
+ style: [styles17.root, isOpen && styles17.rootOpen, disabled && styles17.disabled, style],
4413
4808
  accessibilityState: { disabled, expanded: isOpen },
4414
4809
  children: [
4415
- showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles15.label, { color: labelColor }], children: label }) : null,
4416
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles15.triggerWrap, isOpen && styles15.triggerWrapOpen], children: [
4810
+ showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles17.label, { color: labelColor }], children: label }) : null,
4811
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles17.triggerWrap, isOpen && styles17.triggerWrapOpen], children: [
4417
4812
  /* @__PURE__ */ jsxRuntime.jsxs(
4418
4813
  reactNative.Pressable,
4419
4814
  {
@@ -4424,29 +4819,29 @@ var Select = react.forwardRef(
4424
4819
  accessibilityLabel: resolvedAccessibilityLabel,
4425
4820
  accessibilityState: { disabled, expanded: isOpen },
4426
4821
  style: [
4427
- styles15.trigger,
4822
+ styles17.trigger,
4428
4823
  {
4429
4824
  borderColor: triggerBorderColor,
4430
4825
  backgroundColor: colors.grey700
4431
4826
  }
4432
4827
  ],
4433
4828
  children: [
4434
- hasLeftIcon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles15.iconSlot, children: leftIconNode }) : null,
4435
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles15.triggerContent, children: multiple && hasValue ? /* @__PURE__ */ jsxRuntime.jsx(
4829
+ hasLeftIcon ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles17.iconSlot, children: leftIconNode }) : null,
4830
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles17.triggerContent, children: multiple && hasValue ? /* @__PURE__ */ jsxRuntime.jsx(
4436
4831
  MultiValueChips,
4437
4832
  {
4438
4833
  options: selectedOptions,
4439
4834
  disabled,
4440
4835
  onRemove: handleRemoveChip
4441
4836
  }
4442
- ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles15.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: multiple ? placeholder : singleLabel }) }),
4443
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles15.iconSlot, isOpen && styles15.chevronOpen], children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { size: ICON_SIZE8, color: isOpen ? colors.primary : colors.grey100 }) })
4837
+ ) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles17.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: multiple ? placeholder : singleLabel }) }),
4838
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles17.iconSlot, isOpen && styles17.chevronOpen], children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { size: ICON_SIZE8, color: isOpen ? colors.primary : colors.grey100 }) })
4444
4839
  ]
4445
4840
  }
4446
4841
  ),
4447
- isOpen ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles15.menu, children: [
4448
- showSearch ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles15.searchField, children: [
4449
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles15.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(SearchIcon, { size: ICON_SIZE8, color: colors.grey100 }) }),
4842
+ isOpen ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles17.menu, children: [
4843
+ showSearch ? /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles17.searchField, children: [
4844
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles17.iconSlot, children: /* @__PURE__ */ jsxRuntime.jsx(SearchIcon, { size: ICON_SIZE8, color: colors.grey100 }) }),
4450
4845
  /* @__PURE__ */ jsxRuntime.jsx(
4451
4846
  reactNative.TextInput,
4452
4847
  {
@@ -4457,9 +4852,9 @@ var Select = react.forwardRef(
4457
4852
  placeholder: searchPlaceholder,
4458
4853
  placeholderTextColor: colors.grey100,
4459
4854
  style: [
4460
- styles15.searchInput,
4461
- reactNative.Platform.OS === "web" ? styles15.searchInputWeb : null,
4462
- reactNative.Platform.OS === "android" ? styles15.searchInputAndroid : null
4855
+ styles17.searchInput,
4856
+ reactNative.Platform.OS === "web" ? styles17.searchInputWeb : null,
4857
+ reactNative.Platform.OS === "android" ? styles17.searchInputAndroid : null
4463
4858
  ],
4464
4859
  accessibilityLabel: searchPlaceholder
4465
4860
  }
@@ -4468,12 +4863,12 @@ var Select = react.forwardRef(
4468
4863
  /* @__PURE__ */ jsxRuntime.jsxs(
4469
4864
  reactNative.ScrollView,
4470
4865
  {
4471
- style: styles15.optionList,
4472
- contentContainerStyle: styles15.optionListContent,
4866
+ style: styles17.optionList,
4867
+ contentContainerStyle: styles17.optionListContent,
4473
4868
  keyboardShouldPersistTaps: "handled",
4474
4869
  showsVerticalScrollIndicator: false,
4475
4870
  children: [
4476
- loading ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles15.statusRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.statusText, children: "Loading..." }) }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles15.statusRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.statusText, children: emptyText }) }) : null,
4871
+ loading ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles17.statusRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.statusText, children: "Loading..." }) }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles17.statusRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.statusText, children: emptyText }) }) : null,
4477
4872
  !loading && filteredOptions.map((option) => {
4478
4873
  const isSelected = selectedValues.includes(option.value);
4479
4874
  const isHovered = hoveredValue === option.value;
@@ -4490,14 +4885,14 @@ var Select = react.forwardRef(
4490
4885
  accessibilityRole: multiple ? "checkbox" : "button",
4491
4886
  accessibilityState: { selected: isSelected, checked: isSelected, disabled },
4492
4887
  style: [
4493
- styles15.item,
4888
+ styles17.item,
4494
4889
  {
4495
4890
  backgroundColor: itemBackground(visualState)
4496
4891
  }
4497
4892
  ],
4498
4893
  children: [
4499
- multiple ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { pointerEvents: "none", style: styles15.itemCheckbox, children: /* @__PURE__ */ jsxRuntime.jsx(Checkbox, { value: isSelected, variant: "light" }) }) : null,
4500
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles15.itemLabel, numberOfLines: 1, children: option.label })
4894
+ multiple ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { pointerEvents: "none", style: styles17.itemCheckbox, children: /* @__PURE__ */ jsxRuntime.jsx(Checkbox, { value: isSelected, variant: "light" }) }) : null,
4895
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles17.itemLabel, numberOfLines: 1, children: option.label })
4501
4896
  ]
4502
4897
  },
4503
4898
  option.value
@@ -4508,13 +4903,13 @@ var Select = react.forwardRef(
4508
4903
  )
4509
4904
  ] }) : null
4510
4905
  ] }),
4511
- showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles15.hint, { color: hintColor }], children: hint }) : null
4906
+ showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles17.hint, { color: hintColor }], children: hint }) : null
4512
4907
  ]
4513
4908
  }
4514
4909
  );
4515
4910
  }
4516
4911
  );
4517
- var styles15 = reactNative.StyleSheet.create({
4912
+ var styles17 = reactNative.StyleSheet.create({
4518
4913
  root: {
4519
4914
  width: DEFAULT_WIDTH3,
4520
4915
  gap: 8,
@@ -4776,13 +5171,13 @@ var Textarea = react.forwardRef(function Textarea2({
4776
5171
  const resolvedAccessibilityLabel = accessibilityLabel ?? (showLabel ? void 0 : label);
4777
5172
  useApplyWebClassName(rootRef, className);
4778
5173
  useApplyWebClassName(inputRef, inputClassName);
4779
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: rootRef, style: [styles16.root, disabled && styles16.disabled, style], children: [
4780
- showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles16.label, { color: chrome.labelColor }], children: label }) : null,
5174
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ref: rootRef, style: [styles18.root, disabled && styles18.disabled, style], children: [
5175
+ showLabel && label ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles18.label, { color: chrome.labelColor }], children: label }) : null,
4781
5176
  /* @__PURE__ */ jsxRuntime.jsx(
4782
5177
  reactNative.View,
4783
5178
  {
4784
5179
  style: [
4785
- styles16.field,
5180
+ styles18.field,
4786
5181
  {
4787
5182
  borderColor: chrome.borderColor,
4788
5183
  backgroundColor: chrome.backgroundColor
@@ -4814,11 +5209,11 @@ var Textarea = react.forwardRef(function Textarea2({
4814
5209
  onBlur?.(event);
4815
5210
  },
4816
5211
  style: [
4817
- styles16.input,
5212
+ styles18.input,
4818
5213
  textareaTypography.field,
4819
5214
  { color: chrome.textColor },
4820
- reactNative.Platform.OS === "web" ? styles16.inputWeb : null,
4821
- reactNative.Platform.OS === "android" ? styles16.inputAndroid : null,
5215
+ reactNative.Platform.OS === "web" ? styles18.inputWeb : null,
5216
+ reactNative.Platform.OS === "android" ? styles18.inputAndroid : null,
4822
5217
  inputStyle
4823
5218
  ],
4824
5219
  accessibilityLabel: resolvedAccessibilityLabel,
@@ -4827,10 +5222,10 @@ var Textarea = react.forwardRef(function Textarea2({
4827
5222
  )
4828
5223
  }
4829
5224
  ),
4830
- showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles16.hint, { color: chrome.hintColor }], children: hint }) : null
5225
+ showHint && hint ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles18.hint, { color: chrome.hintColor }], children: hint }) : null
4831
5226
  ] });
4832
5227
  });
4833
- var styles16 = reactNative.StyleSheet.create({
5228
+ var styles18 = reactNative.StyleSheet.create({
4834
5229
  root: {
4835
5230
  width: DEFAULT_WIDTH4,
4836
5231
  gap: 8,
@@ -4870,9 +5265,9 @@ var styles16 = reactNative.StyleSheet.create({
4870
5265
  var TRACK_WIDTH = 44;
4871
5266
  var TRACK_HEIGHT = 24;
4872
5267
  var TRACK_RADIUS = 43;
4873
- var TRACK_PADDING = 4;
4874
- var THUMB_SIZE = TRACK_HEIGHT - TRACK_PADDING * 2;
4875
- var THUMB_TRAVEL = TRACK_WIDTH - TRACK_PADDING * 2 - THUMB_SIZE;
5268
+ var TRACK_PADDING2 = 4;
5269
+ var THUMB_SIZE = TRACK_HEIGHT - TRACK_PADDING2 * 2;
5270
+ var THUMB_TRAVEL = TRACK_WIDTH - TRACK_PADDING2 * 2 - THUMB_SIZE;
4876
5271
  var ANIMATION_DURATION2 = 300;
4877
5272
  var Toggle = react.forwardRef(function Toggle2({
4878
5273
  value,
@@ -4930,13 +5325,13 @@ var Toggle = react.forwardRef(function Toggle2({
4930
5325
  accessibilityRole: "switch",
4931
5326
  accessibilityLabel: resolvedAccessibilityLabel,
4932
5327
  accessibilityState: { checked: isActive, disabled },
4933
- style: [styles17.pressable, disabled && styles17.disabled, style],
5328
+ style: [styles19.pressable, disabled && styles19.disabled, style],
4934
5329
  children: [
4935
5330
  /* @__PURE__ */ jsxRuntime.jsx(
4936
5331
  reactNative.Animated.View,
4937
5332
  {
4938
5333
  style: [
4939
- styles17.track,
5334
+ styles19.track,
4940
5335
  {
4941
5336
  backgroundColor: trackBackgroundColor
4942
5337
  }
@@ -4945,7 +5340,7 @@ var Toggle = react.forwardRef(function Toggle2({
4945
5340
  reactNative.Animated.View,
4946
5341
  {
4947
5342
  style: [
4948
- styles17.thumb,
5343
+ styles19.thumb,
4949
5344
  {
4950
5345
  transform: [{ translateX: thumbTranslateX }]
4951
5346
  }
@@ -4954,12 +5349,12 @@ var Toggle = react.forwardRef(function Toggle2({
4954
5349
  )
4955
5350
  }
4956
5351
  ),
4957
- labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles17.label, labelStyle], children: labelContent }) : labelContent : null
5352
+ labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles19.label, labelStyle], children: labelContent }) : labelContent : null
4958
5353
  ]
4959
5354
  }
4960
5355
  );
4961
5356
  });
4962
- var styles17 = reactNative.StyleSheet.create({
5357
+ var styles19 = reactNative.StyleSheet.create({
4963
5358
  pressable: {
4964
5359
  flexDirection: "row",
4965
5360
  alignItems: "center",
@@ -4973,7 +5368,7 @@ var styles17 = reactNative.StyleSheet.create({
4973
5368
  width: TRACK_WIDTH,
4974
5369
  height: TRACK_HEIGHT,
4975
5370
  borderRadius: TRACK_RADIUS,
4976
- padding: TRACK_PADDING,
5371
+ padding: TRACK_PADDING2,
4977
5372
  justifyContent: "center"
4978
5373
  },
4979
5374
  thumb: {
@@ -5034,21 +5429,21 @@ var RatingInput = react.forwardRef(
5034
5429
  {
5035
5430
  ...rest,
5036
5431
  ref: setContainerRef,
5037
- style: [styles18.root, disabled && styles18.disabled, style],
5432
+ style: [styles20.root, disabled && styles20.disabled, style],
5038
5433
  children: [
5039
- showValue ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: [styles18.value, valueStyle], children: selectedValue.toFixed(precision) }) : null,
5434
+ showValue ? /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: [styles20.value, valueStyle], children: selectedValue.toFixed(precision) }) : null,
5040
5435
  /* @__PURE__ */ jsxRuntime.jsx(
5041
5436
  reactNative.View,
5042
5437
  {
5043
5438
  accessibilityRole: readOnly ? "image" : "radiogroup",
5044
5439
  accessibilityLabel: resolvedAccessibilityLabel,
5045
5440
  accessibilityState: { disabled },
5046
- style: [styles18.stars, { gap: resolvedStarGap }],
5441
+ style: [styles20.stars, { gap: resolvedStarGap }],
5047
5442
  children: Array.from({ length: STAR_COUNT }, (_, index) => {
5048
5443
  const starValue = index + 1;
5049
5444
  const isSelected = starValue <= selectedStarCount;
5050
5445
  const icon = isSelected ? /* @__PURE__ */ jsxRuntime.jsx(StarFilledIcon, { size: iconWidth, height: iconHeight }) : /* @__PURE__ */ jsxRuntime.jsx(StarIcon, { size: iconWidth, height: iconHeight });
5051
- const itemStyle = [styles18.starItem, { width: size, height: size }];
5446
+ const itemStyle = [styles20.starItem, { width: size, height: size }];
5052
5447
  if (readOnly) {
5053
5448
  return /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: itemStyle, children: icon }, starValue);
5054
5449
  }
@@ -5074,7 +5469,7 @@ var RatingInput = react.forwardRef(
5074
5469
  );
5075
5470
  }
5076
5471
  );
5077
- var styles18 = reactNative.StyleSheet.create({
5472
+ var styles20 = reactNative.StyleSheet.create({
5078
5473
  root: {
5079
5474
  flexDirection: "row",
5080
5475
  alignItems: "center",
@@ -5098,7 +5493,7 @@ var styles18 = reactNative.StyleSheet.create({
5098
5493
  opacity: 0.5
5099
5494
  }
5100
5495
  });
5101
- var CARD_WIDTH = 370;
5496
+ var CARD_WIDTH2 = 370;
5102
5497
  var CARD_MIN_HEIGHT = 173;
5103
5498
  var AVATAR_SIZE = 44;
5104
5499
  var CommentCard = react.forwardRef(
@@ -5138,19 +5533,19 @@ var CommentCard = react.forwardRef(
5138
5533
  setExpanded(next);
5139
5534
  onExpandedChange?.(next);
5140
5535
  };
5141
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ...rest, ref: setContainerRef, style: [styles19.root, style], children: [
5142
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles19.header, children: [
5143
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles19.avatar, children: hasImage ? /* @__PURE__ */ jsxRuntime.jsx(
5536
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { ...rest, ref: setContainerRef, style: [styles21.root, style], children: [
5537
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles21.header, children: [
5538
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles21.avatar, children: hasImage ? /* @__PURE__ */ jsxRuntime.jsx(
5144
5539
  reactNative.Image,
5145
5540
  {
5146
5541
  source: { uri: imageUrl ?? void 0 },
5147
- style: styles19.avatarImage,
5542
+ style: styles21.avatarImage,
5148
5543
  onError: () => setImageFailed(true)
5149
5544
  }
5150
5545
  ) : /* @__PURE__ */ jsxRuntime.jsx(UserIcon, { size: 20, color: colors.primary }) }),
5151
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles19.identity, children: [
5152
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: styles19.name, children: userName }),
5153
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: styles19.date, children: date })
5546
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles21.identity, children: [
5547
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: styles21.name, children: userName }),
5548
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { numberOfLines: 1, style: styles21.date, children: date })
5154
5549
  ] }),
5155
5550
  /* @__PURE__ */ jsxRuntime.jsx(RatingInput, { value: rating, readOnly: true, showValue: false, size: 16 })
5156
5551
  ] }),
@@ -5158,7 +5553,7 @@ var CommentCard = react.forwardRef(
5158
5553
  reactNative.Text,
5159
5554
  {
5160
5555
  numberOfLines: expanded ? void 0 : maxCommentLines,
5161
- style: [styles19.comment, commentStyle],
5556
+ style: [styles21.comment, commentStyle],
5162
5557
  children: commentText
5163
5558
  }
5164
5559
  ),
@@ -5171,14 +5566,14 @@ var CommentCard = react.forwardRef(
5171
5566
  hitSlop: 6,
5172
5567
  onHoverIn: () => setActionHovered(true),
5173
5568
  onHoverOut: () => setActionHovered(false),
5174
- style: styles19.action,
5569
+ style: styles21.action,
5175
5570
  children: /* @__PURE__ */ jsxRuntime.jsx(
5176
5571
  reactNative.Text,
5177
5572
  {
5178
5573
  style: [
5179
- styles19.actionText,
5180
- expanded && styles19.closeActionText,
5181
- actionHovered && (expanded ? styles19.closeActionTextHovered : styles19.openActionTextHovered)
5574
+ styles21.actionText,
5575
+ expanded && styles21.closeActionText,
5576
+ actionHovered && (expanded ? styles21.closeActionTextHovered : styles21.openActionTextHovered)
5182
5577
  ],
5183
5578
  children: expanded ? readLessLabel : readMoreLabel
5184
5579
  }
@@ -5188,9 +5583,9 @@ var CommentCard = react.forwardRef(
5188
5583
  ] });
5189
5584
  }
5190
5585
  );
5191
- var styles19 = reactNative.StyleSheet.create({
5586
+ var styles21 = reactNative.StyleSheet.create({
5192
5587
  root: {
5193
- width: CARD_WIDTH,
5588
+ width: CARD_WIDTH2,
5194
5589
  minHeight: CARD_MIN_HEIGHT,
5195
5590
  padding: 16,
5196
5591
  gap: 12,
@@ -5627,7 +6022,7 @@ var Range = react.forwardRef(function Range2({
5627
6022
  ...rest,
5628
6023
  ref: setRootRef,
5629
6024
  onLayout,
5630
- style: [styles20.root, disabled && styles20.disabled, style],
6025
+ style: [styles22.root, disabled && styles22.disabled, style],
5631
6026
  children: [
5632
6027
  /* @__PURE__ */ jsxRuntime.jsxs(
5633
6028
  reactNative.Pressable,
@@ -5641,16 +6036,16 @@ var Range = react.forwardRef(function Range2({
5641
6036
  updateNearestFromTrack(event.nativeEvent.offsetX);
5642
6037
  } : void 0,
5643
6038
  onPress: reactNative.Platform.OS === "web" ? void 0 : handleTrackPress,
5644
- style: styles20.sliderPlane,
6039
+ style: styles22.sliderPlane,
5645
6040
  tabIndex: -1,
5646
6041
  children: [
5647
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { pointerEvents: "none", style: styles20.track }),
6042
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { pointerEvents: "none", style: styles22.track }),
5648
6043
  /* @__PURE__ */ jsxRuntime.jsx(
5649
6044
  reactNative.View,
5650
6045
  {
5651
6046
  pointerEvents: "none",
5652
6047
  style: [
5653
- styles20.activeTrack,
6048
+ styles22.activeTrack,
5654
6049
  {
5655
6050
  left: TRACK_HORIZONTAL_INSET + fromOffset,
5656
6051
  width: toOffset - fromOffset + THUMB_SIZE2
@@ -5692,9 +6087,9 @@ var Range = react.forwardRef(function Range2({
5692
6087
  onAccessibilityAction: (event) => handleAccessibilityAction(event, effectiveFrom, updateFromInput),
5693
6088
  pointerEvents: disabled ? "none" : "auto",
5694
6089
  style: [
5695
- styles20.thumb,
5696
- reactNative.Platform.OS === "web" && styles20.thumbWeb,
5697
- focusedThumb === "from" && reactNative.Platform.OS === "web" && styles20.thumbFocusedWeb,
6090
+ styles22.thumb,
6091
+ reactNative.Platform.OS === "web" && styles22.thumbWeb,
6092
+ focusedThumb === "from" && reactNative.Platform.OS === "web" && styles22.thumbFocusedWeb,
5698
6093
  { left: TRACK_HORIZONTAL_INSET + fromOffset }
5699
6094
  ],
5700
6095
  tabIndex: disabled ? -1 : 0
@@ -5734,9 +6129,9 @@ var Range = react.forwardRef(function Range2({
5734
6129
  onAccessibilityAction: (event) => handleAccessibilityAction(event, effectiveTo, updateToInput),
5735
6130
  pointerEvents: disabled ? "none" : "auto",
5736
6131
  style: [
5737
- styles20.thumb,
5738
- reactNative.Platform.OS === "web" && styles20.thumbWeb,
5739
- focusedThumb === "to" && reactNative.Platform.OS === "web" && styles20.thumbFocusedWeb,
6132
+ styles22.thumb,
6133
+ reactNative.Platform.OS === "web" && styles22.thumbWeb,
6134
+ focusedThumb === "to" && reactNative.Platform.OS === "web" && styles22.thumbFocusedWeb,
5740
6135
  { left: TRACK_HORIZONTAL_INSET + toOffset }
5741
6136
  ],
5742
6137
  tabIndex: disabled ? -1 : 0
@@ -5745,7 +6140,7 @@ var Range = react.forwardRef(function Range2({
5745
6140
  ]
5746
6141
  }
5747
6142
  ),
5748
- /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles20.inputs, children: [
6143
+ /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles22.inputs, children: [
5749
6144
  /* @__PURE__ */ jsxRuntime.jsx(
5750
6145
  RangeInput,
5751
6146
  {
@@ -5796,7 +6191,7 @@ function RangeInput({
5796
6191
  placeholder,
5797
6192
  value
5798
6193
  }) {
5799
- return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles20.inputField, focused && styles20.inputFieldFocused], children: [
6194
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles22.inputField, focused && styles22.inputFieldFocused], children: [
5800
6195
  /* @__PURE__ */ jsxRuntime.jsx(
5801
6196
  reactNative.TextInput,
5802
6197
  {
@@ -5812,15 +6207,15 @@ function RangeInput({
5812
6207
  placeholder,
5813
6208
  placeholderTextColor: colors.grey150,
5814
6209
  returnKeyType: "done",
5815
- style: [styles20.input, reactNative.Platform.OS === "web" && styles20.inputWeb],
6210
+ style: [styles22.input, reactNative.Platform.OS === "web" && styles22.inputWeb],
5816
6211
  tabIndex: disabled ? -1 : void 0,
5817
6212
  value
5818
6213
  }
5819
6214
  ),
5820
- /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles20.currencySlot, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles20.currency, children: currency }) })
6215
+ /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles22.currencySlot, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles22.currency, children: currency }) })
5821
6216
  ] });
5822
6217
  }
5823
- var styles20 = reactNative.StyleSheet.create({
6218
+ var styles22 = reactNative.StyleSheet.create({
5824
6219
  root: {
5825
6220
  width: DEFAULT_WIDTH5,
5826
6221
  gap: 15,
@@ -5930,6 +6325,7 @@ exports.AppleIcon = AppleIcon;
5930
6325
  exports.AreaExpandIcon = AreaExpandIcon;
5931
6326
  exports.ArrowRightIcon = ArrowRightIcon;
5932
6327
  exports.Avatar = Avatar;
6328
+ exports.AvatarSimple = AvatarSimple;
5933
6329
  exports.BRAND_LOGO_COLORS = BRAND_LOGO_COLORS;
5934
6330
  exports.BRAND_LOGO_DEFAULT_HEIGHT = BRAND_LOGO_DEFAULT_HEIGHT;
5935
6331
  exports.BRAND_LOGO_DEFAULT_WIDTH = BRAND_LOGO_DEFAULT_WIDTH;
@@ -5998,6 +6394,7 @@ exports.Select = Select;
5998
6394
  exports.SettingsIcon = SettingsIcon;
5999
6395
  exports.ShareIcon = ShareIcon;
6000
6396
  exports.ShowIcon = ShowIcon;
6397
+ exports.Sidebar = Sidebar;
6001
6398
  exports.SidebarIcon = SidebarIcon;
6002
6399
  exports.SortIcon = SortIcon;
6003
6400
  exports.StarFilledIcon = StarFilledIcon;