@ecohouse/ui 0.1.3 → 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.
Files changed (63) hide show
  1. package/README.md +33 -13
  2. package/dist/index.cjs +1182 -104
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +206 -5
  5. package/dist/index.d.ts +206 -5
  6. package/dist/index.js +1171 -107
  7. package/dist/index.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/components/Avatar/Avatar.stories.tsx +133 -0
  10. package/src/components/Avatar/Avatar.tsx +337 -0
  11. package/src/components/Avatar/index.ts +2 -0
  12. package/src/components/DatePicker/DatePicker.stories.tsx +172 -0
  13. package/src/components/DatePicker/DatePicker.tsx +628 -0
  14. package/src/components/DatePicker/index.ts +7 -0
  15. package/src/components/Select/Select.tsx +1 -1
  16. package/src/components/index.ts +11 -0
  17. package/src/icons/Calendar/CalendarIcon.tsx +21 -0
  18. package/src/icons/Calendar/CalendarIcon.web.tsx +27 -0
  19. package/src/icons/Calendar/calendarPath.ts +3 -0
  20. package/src/icons/Calendar/index.ts +1 -0
  21. package/src/icons/CalendarOutline/CalendarOutlineIcon.tsx +25 -0
  22. package/src/icons/CalendarOutline/CalendarOutlineIcon.web.tsx +31 -0
  23. package/src/icons/CalendarOutline/calendarOutlinePath.ts +3 -0
  24. package/src/icons/CalendarOutline/index.ts +1 -0
  25. package/src/icons/ChevronLeft/ChevronLeftIcon.tsx +21 -0
  26. package/src/icons/ChevronLeft/ChevronLeftIcon.web.tsx +27 -0
  27. package/src/icons/ChevronLeft/chevronLeftPath.ts +2 -0
  28. package/src/icons/ChevronLeft/index.ts +1 -0
  29. package/src/icons/Heart/HeartIcon.tsx +23 -0
  30. package/src/icons/Heart/HeartIcon.web.tsx +29 -0
  31. package/src/icons/Heart/heartPath.ts +3 -0
  32. package/src/icons/Heart/index.ts +1 -0
  33. package/src/icons/HelpCircle/HelpCircleIcon.tsx +25 -0
  34. package/src/icons/HelpCircle/HelpCircleIcon.web.tsx +31 -0
  35. package/src/icons/HelpCircle/helpCirclePath.ts +3 -0
  36. package/src/icons/HelpCircle/index.ts +1 -0
  37. package/src/icons/LayoutGrid/LayoutGridIcon.tsx +25 -0
  38. package/src/icons/LayoutGrid/LayoutGridIcon.web.tsx +31 -0
  39. package/src/icons/LayoutGrid/index.ts +1 -0
  40. package/src/icons/LayoutGrid/layoutGridPath.ts +3 -0
  41. package/src/icons/LogOut/LogOutIcon.tsx +21 -0
  42. package/src/icons/LogOut/LogOutIcon.web.tsx +27 -0
  43. package/src/icons/LogOut/index.ts +1 -0
  44. package/src/icons/LogOut/logOutPath.ts +3 -0
  45. package/src/icons/Settings/SettingsIcon.tsx +21 -0
  46. package/src/icons/Settings/SettingsIcon.web.tsx +27 -0
  47. package/src/icons/Settings/index.ts +1 -0
  48. package/src/icons/Settings/settingsPath.ts +3 -0
  49. package/src/icons/Video/VideoIcon.tsx +24 -0
  50. package/src/icons/Video/VideoIcon.web.tsx +30 -0
  51. package/src/icons/Video/index.ts +1 -0
  52. package/src/icons/Video/videoPath.ts +5 -0
  53. package/src/icons/index.ts +9 -0
  54. package/src/icons/registry.ts +33 -3
  55. package/src/index.ts +30 -1
  56. package/src/primitives/MenuItem/MenuItem.stories.tsx +98 -0
  57. package/src/primitives/MenuItem/MenuItem.tsx +138 -0
  58. package/src/primitives/MenuItem/index.ts +2 -0
  59. package/src/primitives/index.ts +2 -0
  60. package/src/theme/colors.ts +2 -0
  61. package/src/theme/index.ts +2 -0
  62. package/src/theme/typography.ts +65 -0
  63. package/src/utils/dateUtils.ts +86 -0
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { forwardRef, useRef, useMemo, useState, useCallback, useEffect, useLayoutEffect } from 'react';
2
- import { Platform, TouchableOpacity, Text, View, StyleSheet, Pressable, TextInput, ScrollView, Animated, Easing } from 'react-native';
2
+ import { Pressable, View, Text, StyleSheet, Platform, Image, TouchableOpacity, TextInput, ScrollView, Animated, Easing } from 'react-native';
3
3
  import Svg, { Path } from 'react-native-svg';
4
- import { jsx, jsxs } from 'react/jsx-runtime';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
5
 
6
- // src/components/Button/Button.tsx
6
+ // src/components/Avatar/Avatar.tsx
7
7
 
8
8
  // src/icons/ArrowRight/arrowRightPath.ts
9
9
  var ARROW_RIGHT_PATH = "M4.16667 10H15.8333M15.8333 10L10 4.16667M15.8333 10L10 15.8333";
@@ -34,7 +34,9 @@ var colors = {
34
34
  red: "#A63E3E",
35
35
  lightGrey: "#B7B7B7",
36
36
  primaryMuted: "#B464360F",
37
+ primaryHover: "#B4643633",
37
38
  redMuted: "#A63E3E0F",
39
+ redHover: "#A63E3E33",
38
40
  grey0: grey["0"],
39
41
  grey50: grey["0.5"],
40
42
  grey100: grey["1"],
@@ -118,6 +120,61 @@ var selectTypography = {
118
120
  letterSpacing: 0.36
119
121
  }
120
122
  };
123
+ var avatarTypography = {
124
+ name: {
125
+ fontFamily: fonts.sans,
126
+ fontSize: 14,
127
+ fontWeight: "600",
128
+ lineHeight: 14,
129
+ letterSpacing: 0
130
+ },
131
+ email: {
132
+ fontFamily: fonts.sans,
133
+ fontSize: 12,
134
+ fontWeight: "400",
135
+ lineHeight: 12,
136
+ letterSpacing: 0
137
+ },
138
+ menuItem: {
139
+ fontFamily: fonts.sans,
140
+ fontSize: 12,
141
+ fontWeight: "600",
142
+ lineHeight: 12,
143
+ letterSpacing: 0
144
+ }
145
+ };
146
+ var datePickerTypography = {
147
+ field: {
148
+ fontFamily: fonts.sans,
149
+ fontSize: 12,
150
+ fontWeight: "400",
151
+ lineHeight: 12,
152
+ letterSpacing: 0.36
153
+ },
154
+ /** Calendar month/year heading — Bold, centered, White. */
155
+ monthHeading: {
156
+ fontFamily: fonts.sans,
157
+ fontSize: 14,
158
+ fontWeight: "700",
159
+ lineHeight: 14,
160
+ letterSpacing: 0
161
+ },
162
+ /** Weekday header (ԵՐ, ԵՔ, ...) — Regular, uppercase, centered, Grey/300. */
163
+ weekday: {
164
+ fontFamily: fonts.sans,
165
+ fontSize: 12,
166
+ fontWeight: "400",
167
+ lineHeight: 12,
168
+ letterSpacing: 0
169
+ },
170
+ day: {
171
+ fontFamily: fonts.sans,
172
+ fontSize: 14,
173
+ fontWeight: "400",
174
+ lineHeight: 14,
175
+ letterSpacing: 0
176
+ }
177
+ };
121
178
  var textareaTypography = {
122
179
  label: {
123
180
  fontFamily: fonts.sans,
@@ -203,6 +260,40 @@ function BuildingIcon({ size = 20, color = colors.primary, strokeWidth = 2 }) {
203
260
  ) });
204
261
  }
205
262
 
263
+ // src/icons/Calendar/calendarPath.ts
264
+ var CALENDAR_PATH = "M14 6.66668H2M14 8.33334V5.86668C14 4.74657 14 4.18652 13.782 3.7587C13.5903 3.38237 13.2843 3.07641 12.908 2.88466C12.4802 2.66668 11.9201 2.66668 10.8 2.66668H5.2C4.0799 2.66668 3.51984 2.66668 3.09202 2.88466C2.71569 3.07641 2.40973 3.38237 2.21799 3.7587C2 4.18652 2 4.74657 2 5.86668V11.4667C2 12.5868 2 13.1468 2.21799 13.5747C2.40973 13.951 2.71569 14.2569 3.09202 14.4487C3.51984 14.6667 4.0799 14.6667 5.2 14.6667H8M10.6667 1.33334V4.00001M5.33333 1.33334V4.00001M9.66667 12.6667L11 14L14 11";
265
+ function CalendarIcon({ size = 20, color = colors.primary, strokeWidth = 1.5 }) {
266
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
267
+ Path,
268
+ {
269
+ d: CALENDAR_PATH,
270
+ stroke: color,
271
+ strokeWidth,
272
+ strokeLinecap: "round",
273
+ strokeLinejoin: "round"
274
+ }
275
+ ) });
276
+ }
277
+
278
+ // src/icons/CalendarOutline/calendarOutlinePath.ts
279
+ 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";
280
+ function CalendarOutlineIcon({
281
+ size = 20,
282
+ color = colors.primary,
283
+ strokeWidth = 1.5
284
+ }) {
285
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
286
+ Path,
287
+ {
288
+ d: CALENDAR_OUTLINE_PATH,
289
+ stroke: color,
290
+ strokeWidth,
291
+ strokeLinecap: "round",
292
+ strokeLinejoin: "round"
293
+ }
294
+ ) });
295
+ }
296
+
206
297
  // src/icons/Camera/cameraPath.ts
207
298
  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";
208
299
  function CameraIcon({ size = 24, color = colors.primary, strokeWidth = 2 }) {
@@ -267,6 +358,21 @@ function ChevronDownIcon({
267
358
  ) });
268
359
  }
269
360
 
361
+ // src/icons/ChevronLeft/chevronLeftPath.ts
362
+ var CHEVRON_LEFT_PATH = "M12.5 15L7.5 10L12.5 5";
363
+ function ChevronLeftIcon({ size = 20, color = colors.primary, strokeWidth = 2 }) {
364
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsx(
365
+ Path,
366
+ {
367
+ d: CHEVRON_LEFT_PATH,
368
+ stroke: color,
369
+ strokeWidth,
370
+ strokeLinecap: "round",
371
+ strokeLinejoin: "round"
372
+ }
373
+ ) });
374
+ }
375
+
270
376
  // src/icons/Clock/clockPath.ts
271
377
  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";
272
378
  function ClockIcon({ size = 24, color = colors.primary, strokeWidth = 2 }) {
@@ -288,6 +394,42 @@ function FacebookIcon({ size = 20, color = colors.white }) {
288
394
  return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsx(Path, { d: FACEBOOK_PATH, fill: color }) });
289
395
  }
290
396
 
397
+ // src/icons/Heart/heartPath.ts
398
+ var HEART_PATH = "M7.99547 3.42388C6.66257 1.8656 4.43987 1.44643 2.76984 2.87334C1.0998 4.30026 0.864686 6.68598 2.17617 8.3736C3.26659 9.77674 6.56656 12.7361 7.64811 13.6939C7.76911 13.801 7.82961 13.8546 7.90018 13.8757C7.96178 13.8941 8.02917 13.8941 8.09077 13.8757C8.16134 13.8546 8.22184 13.801 8.34284 13.6939C9.42439 12.7361 12.7244 9.77674 13.8148 8.3736C15.1263 6.68598 14.9199 4.28525 13.2211 2.87334C11.5224 1.46144 9.32838 1.8656 7.99547 3.42388Z";
399
+ function HeartIcon({ size = 20, color = colors.primary, strokeWidth = 1.5 }) {
400
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
401
+ Path,
402
+ {
403
+ d: HEART_PATH,
404
+ stroke: color,
405
+ strokeWidth,
406
+ strokeLinecap: "round",
407
+ strokeLinejoin: "round",
408
+ fillRule: "evenodd",
409
+ clipRule: "evenodd"
410
+ }
411
+ ) });
412
+ }
413
+
414
+ // src/icons/HelpCircle/helpCirclePath.ts
415
+ var HELP_CIRCLE_PATH = "M6.99971 6.00149C7.11717 5.66757 7.34902 5.386 7.6542 5.20665C7.95937 5.0273 8.31817 4.96174 8.66705 5.02158C9.01593 5.08142 9.33238 5.2628 9.56034 5.5336C9.7883 5.8044 9.91306 6.14714 9.91254 6.50112C9.91254 7.50037 8.41365 8 8.41365 8M8.43298 10H8.43964M8.33304 13.3333C11.4627 13.3333 13.9997 10.7963 13.9997 7.66667C13.9997 4.53705 11.4627 2 8.33304 2C5.20343 2 2.66638 4.53705 2.66638 7.66667C2.66638 8.3 2.77027 8.90906 2.96196 9.47774C3.03409 9.69175 3.07016 9.79875 3.07666 9.88095C3.08309 9.96213 3.07823 10.019 3.05814 10.098C3.03781 10.1779 2.99291 10.261 2.9031 10.4272L1.81267 12.4456C1.65713 12.7335 1.57936 12.8774 1.59676 12.9885C1.61192 13.0853 1.66887 13.1705 1.75249 13.2215C1.84849 13.2801 2.01124 13.2632 2.33674 13.2296L5.75075 12.8767C5.85414 12.866 5.90583 12.8606 5.95295 12.8624C5.99929 12.8642 6.03201 12.8686 6.0772 12.879C6.12315 12.8896 6.18092 12.9118 6.29648 12.9564C6.92851 13.1999 7.61519 13.3333 8.33304 13.3333Z";
416
+ function HelpCircleIcon({
417
+ size = 20,
418
+ color = colors.primary,
419
+ strokeWidth = 1.5
420
+ }) {
421
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
422
+ Path,
423
+ {
424
+ d: HELP_CIRCLE_PATH,
425
+ stroke: color,
426
+ strokeWidth,
427
+ strokeLinecap: "round",
428
+ strokeLinejoin: "round"
429
+ }
430
+ ) });
431
+ }
432
+
291
433
  // src/icons/Home/homePath.ts
292
434
  var HOME_PATH = "M1.66675 16.6667H3.33341M3.33341 16.6667H8.33341M3.33341 16.6667V9.54352C3.33341 9.09823 3.33341 8.87548 3.38756 8.66828C3.43554 8.48466 3.51491 8.31089 3.6215 8.15387C3.74178 7.97668 3.90895 7.82974 4.24406 7.53652L8.24538 4.03537C8.86662 3.49178 9.17726 3.21997 9.5271 3.11652C9.83559 3.02529 10.1644 3.02529 10.4729 3.11652C10.823 3.22005 11.1341 3.49212 11.7563 4.03652L15.7563 7.53652C16.0914 7.82974 16.2586 7.97668 16.3789 8.15387C16.4855 8.31089 16.5642 8.48466 16.6122 8.66828C16.6664 8.87548 16.6667 9.09824 16.6667 9.54352V16.6667M8.33341 16.6667H11.6667M8.33341 16.6667V13.3334C8.33341 12.4129 9.07961 11.6667 10.0001 11.6667C10.9206 11.6667 11.6667 12.4129 11.6667 13.3334V16.6667M11.6667 16.6667H16.6667M16.6667 16.6667H18.3334";
293
435
  function HomeIcon({ size = 20, color = colors.primary, strokeWidth = 2 }) {
@@ -324,12 +466,46 @@ function KeyIcon({ size = 20, color = colors.primary, strokeWidth = 2 }) {
324
466
  ) });
325
467
  }
326
468
 
469
+ // src/icons/LayoutGrid/layoutGridPath.ts
470
+ var LAYOUT_GRID_PATH = "M4.33333 4.33333H4.34M11.6667 4.33333H11.6733M4.33333 11.6667H4.34M8.66667 8.66667H8.67333M11.6667 11.6667H11.6733M11.3333 14H14V11.3333M9.33333 11V14M14 9.33333H11M10.4 6.66667H12.9333C13.3067 6.66667 13.4934 6.66667 13.636 6.594C13.7614 6.53009 13.8634 6.4281 13.9273 6.30266C14 6.16005 14 5.97337 14 5.6V3.06667C14 2.6933 14 2.50661 13.9273 2.36401C13.8634 2.23856 13.7614 2.13658 13.636 2.07266C13.4934 2 13.3067 2 12.9333 2H10.4C10.0266 2 9.83995 2 9.69734 2.07266C9.5719 2.13658 9.46991 2.23856 9.406 2.36401C9.33333 2.50661 9.33333 2.6933 9.33333 3.06667V5.6C9.33333 5.97337 9.33333 6.16005 9.406 6.30266C9.46991 6.4281 9.5719 6.53009 9.69734 6.594C9.83995 6.66667 10.0266 6.66667 10.4 6.66667ZM3.06667 6.66667H5.6C5.97337 6.66667 6.16005 6.66667 6.30266 6.594C6.4281 6.53009 6.53009 6.4281 6.594 6.30266C6.66667 6.16005 6.66667 5.97337 6.66667 5.6V3.06667C6.66667 2.6933 6.66667 2.50661 6.594 2.36401C6.53009 2.23856 6.4281 2.13658 6.30266 2.07266C6.16005 2 5.97337 2 5.6 2H3.06667C2.6933 2 2.50661 2 2.36401 2.07266C2.23856 2.13658 2.13658 2.23856 2.07266 2.36401C2 2.50661 2 2.6933 2 3.06667V5.6C2 5.97337 2 6.16005 2.07266 6.30266C2.13658 6.4281 2.23856 6.53009 2.36401 6.594C2.50661 6.66667 2.6933 6.66667 3.06667 6.66667ZM3.06667 14H5.6C5.97337 14 6.16005 14 6.30266 13.9273C6.4281 13.8634 6.53009 13.7614 6.594 13.636C6.66667 13.4934 6.66667 13.3067 6.66667 12.9333V10.4C6.66667 10.0266 6.66667 9.83995 6.594 9.69734C6.53009 9.5719 6.4281 9.46991 6.30266 9.406C6.16005 9.33333 5.97337 9.33333 5.6 9.33333H3.06667C2.6933 9.33333 2.50661 9.33333 2.36401 9.406C2.23856 9.46991 2.13658 9.5719 2.07266 9.69734C2 9.83995 2 10.0266 2 10.4V12.9333C2 13.3067 2 13.4934 2.07266 13.636C2.13658 13.7614 2.23856 13.8634 2.36401 13.9273C2.50661 14 2.6933 14 3.06667 14Z";
471
+ function LayoutGridIcon({
472
+ size = 20,
473
+ color = colors.primary,
474
+ strokeWidth = 1.5
475
+ }) {
476
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
477
+ Path,
478
+ {
479
+ d: LAYOUT_GRID_PATH,
480
+ stroke: color,
481
+ strokeWidth,
482
+ strokeLinecap: "round",
483
+ strokeLinejoin: "round"
484
+ }
485
+ ) });
486
+ }
487
+
327
488
  // src/icons/LinkedIn/linkedinPath.ts
328
489
  var LINKEDIN_PATH = "M15.8333 2.50098C16.2754 2.50098 16.6993 2.67657 17.0118 2.98913C17.3244 3.30169 17.5 3.72562 17.5 4.16764V15.8343C17.5 16.2763 17.3244 16.7003 17.0118 17.0128C16.6993 17.3254 16.2754 17.501 15.8333 17.501H4.16667C3.72464 17.501 3.30072 17.3254 2.98816 17.0128C2.67559 16.7003 2.5 16.2763 2.5 15.8343V4.16764C2.5 3.72562 2.67559 3.30169 2.98816 2.98913C3.30072 2.67657 3.72464 2.50098 4.16667 2.50098H15.8333ZM15.4167 15.4176V11.001C15.4167 10.2805 15.1304 9.58948 14.621 9.08C14.1115 8.57053 13.4205 8.28431 12.7 8.28431C11.9917 8.28431 11.1667 8.71764 10.7667 9.36764V8.44264H8.44167V15.4176H10.7667V11.3093C10.7667 10.6676 11.2833 10.1426 11.925 10.1426C12.2344 10.1426 12.5312 10.2656 12.75 10.4844C12.9687 10.7031 13.0917 10.9999 13.0917 11.3093V15.4176H15.4167ZM5.73333 7.13431C6.10464 7.13431 6.46073 6.98681 6.72328 6.72426C6.98583 6.46171 7.13333 6.10561 7.13333 5.73431C7.13333 4.95931 6.50833 4.32598 5.73333 4.32598C5.35982 4.32598 5.0016 4.47435 4.73749 4.73847C4.47338 5.00258 4.325 5.3608 4.325 5.73431C4.325 6.50931 4.95833 7.13431 5.73333 7.13431ZM6.89167 15.4176V8.44264H4.58333V15.4176H6.89167Z";
329
490
  function LinkedInIcon({ size = 20, color = colors.white }) {
330
491
  return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsx(Path, { d: LINKEDIN_PATH, fill: color }) });
331
492
  }
332
493
 
494
+ // src/icons/LogOut/logOutPath.ts
495
+ 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";
496
+ function LogOutIcon({ size = 20, color = colors.red, strokeWidth = 1.5 }) {
497
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
498
+ Path,
499
+ {
500
+ d: LOG_OUT_PATH,
501
+ stroke: color,
502
+ strokeWidth,
503
+ strokeLinecap: "round",
504
+ strokeLinejoin: "round"
505
+ }
506
+ ) });
507
+ }
508
+
333
509
  // src/icons/Mail/mailPath.ts
334
510
  var MAIL_PATH = "M3.33333 4.99984L8.42303 8.84339L8.42473 8.8448C8.98987 9.25924 9.27261 9.46658 9.5823 9.54668C9.85602 9.61748 10.1438 9.61748 10.4175 9.54668C10.7274 9.46651 11.011 9.25856 11.5771 8.84339C11.5771 8.84339 14.8417 6.33812 16.6667 4.99984M2.5 13.1667V6.83333C2.5 5.89991 2.5 5.43285 2.68166 5.07633C2.84144 4.76273 3.09623 4.50795 3.40983 4.34816C3.76635 4.1665 4.23341 4.1665 5.16683 4.1665H14.8335C15.7669 4.1665 16.233 4.1665 16.5895 4.34816C16.9031 4.50795 17.1587 4.76273 17.3185 5.07633C17.5 5.43251 17.5 5.899 17.5 6.8306V13.1695C17.5 14.1011 17.5 14.5669 17.3185 14.9231C17.1587 15.2367 16.9031 15.4919 16.5895 15.6517C16.2333 15.8332 15.7675 15.8332 14.8359 15.8332H5.16409C4.23249 15.8332 3.766 15.8332 3.40983 15.6517C3.09623 15.4919 2.84144 15.2367 2.68166 14.9231C2.5 14.5666 2.5 14.1001 2.5 13.1667Z";
335
511
  function MailIcon({ size = 20, color = colors.primary, strokeWidth = 2 }) {
@@ -407,6 +583,21 @@ function SearchIcon({
407
583
  ] });
408
584
  }
409
585
 
586
+ // src/icons/Settings/settingsPath.ts
587
+ var SETTINGS_PATH = "M8.00004 10C9.10461 10 10 9.10457 10 8C10 6.89543 9.10461 6 8.00004 6C6.89547 6 6.00004 6.89543 6.00004 8C6.00004 9.10457 6.89547 10 8.00004 10Z M12.4849 9.81818C12.4042 10.001 12.3801 10.2038 12.4158 10.4004C12.4514 10.597 12.5452 10.7784 12.6849 10.9212L12.7213 10.9576C12.834 11.0702 12.9234 11.2038 12.9844 11.351C13.0454 11.4981 13.0768 11.6559 13.0768 11.8152C13.0768 11.9744 13.0454 12.1322 12.9844 12.2793C12.9234 12.4265 12.834 12.5602 12.7213 12.6727C12.6087 12.7854 12.475 12.8748 12.3278 12.9358C12.1807 12.9968 12.023 13.0282 11.8637 13.0282C11.7044 13.0282 11.5467 12.9968 11.3995 12.9358C11.2524 12.8748 11.1187 12.7854 11.0061 12.6727L10.9697 12.6364C10.8269 12.4966 10.6455 12.4029 10.4489 12.3673C10.2523 12.3316 10.0495 12.3557 9.86671 12.4364C9.68745 12.5132 9.53458 12.6408 9.42689 12.8034C9.31921 12.966 9.26142 13.1565 9.26065 13.3515V13.4545C9.26065 13.776 9.13294 14.0843 8.90562 14.3116C8.67831 14.539 8.37 14.6667 8.04853 14.6667C7.72705 14.6667 7.41874 14.539 7.19143 14.3116C6.96411 14.0843 6.8364 13.776 6.8364 13.4545V13.4C6.83171 13.1994 6.76678 13.0048 6.65005 12.8416C6.53331 12.6784 6.37018 12.5541 6.18186 12.4848C5.99906 12.4042 5.79629 12.3801 5.59968 12.4158C5.40308 12.4514 5.22166 12.5451 5.07883 12.6849L5.04246 12.7212C4.92989 12.8339 4.79621 12.9233 4.64906 12.9843C4.50191 13.0453 4.34418 13.0767 4.18489 13.0767C4.0256 13.0767 3.86787 13.0453 3.72072 12.9843C3.57357 12.9233 3.43989 12.8339 3.32731 12.7212C3.21461 12.6086 3.12521 12.475 3.06421 12.3278C3.00321 12.1807 2.97181 12.0229 2.97181 11.8636C2.97181 11.7043 3.00321 11.5466 3.06421 11.3995C3.12521 11.2523 3.21461 11.1186 3.32731 11.0061L3.36368 10.9697C3.5034 10.8269 3.59712 10.6454 3.63277 10.4488C3.66842 10.2522 3.64435 10.0495 3.56368 9.86667C3.48685 9.68741 3.35929 9.53454 3.19669 9.42686C3.03409 9.31917 2.84355 9.26139 2.64853 9.26061H2.5455C2.22402 9.26061 1.91571 9.1329 1.6884 8.90559C1.46108 8.67827 1.33337 8.36996 1.33337 8.04849C1.33337 7.72701 1.46108 7.4187 1.6884 7.19139C1.91571 6.96407 2.22402 6.83637 2.5455 6.83637H2.60004C2.80064 6.83167 2.9952 6.76674 3.1584 6.65001C3.32161 6.53328 3.44593 6.37014 3.51519 6.18182C3.59587 5.99902 3.61993 5.79625 3.58429 5.59965C3.54864 5.40304 3.45491 5.22163 3.31519 5.07879L3.27883 5.04243C3.16613 4.92985 3.07672 4.79617 3.01573 4.64902C2.95473 4.50187 2.92333 4.34414 2.92333 4.18485C2.92333 4.02556 2.95473 3.86783 3.01573 3.72068C3.07672 3.57353 3.16613 3.43985 3.27883 3.32728C3.3914 3.21458 3.52509 3.12517 3.67223 3.06417C3.81938 3.00317 3.97711 2.97178 4.1364 2.97178C4.2957 2.97178 4.45343 3.00317 4.60057 3.06417C4.74772 3.12517 4.88141 3.21458 4.99398 3.32728L5.03034 3.36364C5.17318 3.50336 5.3546 3.59708 5.5512 3.63273C5.7478 3.66838 5.95058 3.64431 6.13337 3.56364H6.18186C6.36111 3.48681 6.51399 3.35925 6.62167 3.19665C6.72935 3.03405 6.78714 2.84351 6.78792 2.64849V2.54546C6.78792 2.22398 6.91562 1.91567 7.14294 1.68836C7.37026 1.46104 7.67857 1.33334 8.00004 1.33334C8.32151 1.33334 8.62982 1.46104 8.85714 1.68836C9.08446 1.91567 9.21216 2.22398 9.21216 2.54546V2.6C9.21294 2.79502 9.27073 2.98556 9.37841 3.14816C9.48609 3.31076 9.63897 3.43833 9.81822 3.51515C10.001 3.59583 10.2038 3.6199 10.4004 3.58425C10.597 3.5486 10.7784 3.45487 10.9213 3.31515L10.9576 3.27879C11.0702 3.16609 11.2039 3.07669 11.351 3.01569C11.4982 2.95469 11.6559 2.92329 11.8152 2.92329C11.9745 2.92329 12.1322 2.95469 12.2794 3.01569C12.4265 3.07669 12.5602 3.16609 12.6728 3.27879C12.7855 3.39136 12.8749 3.52505 12.9359 3.6722C12.9969 3.81935 13.0283 3.97707 13.0283 4.13637C13.0283 4.29566 12.9969 4.45339 12.9359 4.60054C12.8749 4.74769 12.7855 4.88137 12.6728 4.99394L12.6364 5.03031C12.4967 5.17314 12.403 5.35456 12.3673 5.55116C12.3317 5.74776 12.3557 5.95054 12.4364 6.13334V6.18182C12.5132 6.36107 12.6408 6.51395 12.8034 6.62163C12.966 6.72932 13.1565 6.7871 13.3516 6.78788H13.4546C13.7761 6.78788 14.0844 6.91559 14.3117 7.1429C14.539 7.37022 14.6667 7.67853 14.6667 8C14.6667 8.32148 14.539 8.62978 14.3117 8.8571C14.0844 9.08442 13.7761 9.21212 13.4546 9.21212H13.4C13.205 9.2129 13.0145 9.27069 12.8519 9.37837C12.6893 9.48605 12.5617 9.63893 12.4849 9.81818Z";
588
+ function SettingsIcon({ size = 20, color = colors.primary, strokeWidth = 1.5 }) {
589
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
590
+ Path,
591
+ {
592
+ d: SETTINGS_PATH,
593
+ stroke: color,
594
+ strokeWidth,
595
+ strokeLinecap: "round",
596
+ strokeLinejoin: "round"
597
+ }
598
+ ) });
599
+ }
600
+
410
601
  // src/icons/Show/showPath.ts
411
602
  var SHOW_PATH = "M1.66669 10C1.66669 10 4.16669 4.16667 10 4.16667C15.8334 4.16667 18.3334 10 18.3334 10C18.3334 10 15.8334 15.8333 10 15.8333C4.16669 15.8333 1.66669 10 1.66669 10Z";
412
603
  var SHOW_PUPIL_PATH = "M10 12.5C11.3807 12.5 12.5 11.3807 12.5 10C12.5 8.61929 11.3807 7.5 10 7.5C8.61929 7.5 7.5 8.61929 7.5 10C7.5 11.3807 8.61929 12.5 10 12.5Z";
@@ -450,36 +641,76 @@ function UserIcon({ size = 20, color = colors.primary, strokeWidth = 2 }) {
450
641
  ) });
451
642
  }
452
643
 
644
+ // src/icons/Video/videoPath.ts
645
+ var VIDEO_PATHS = [
646
+ "M14.6667 5.95424C14.6667 5.55036 14.6667 5.34843 14.5868 5.25492C14.5175 5.17378 14.4136 5.13072 14.3072 5.13909C14.1846 5.14874 14.0418 5.29153 13.7563 5.57712L11.3334 7.99999L13.7563 10.4229C14.0418 10.7085 14.1846 10.8512 14.3072 10.8609C14.4136 10.8693 14.5175 10.8262 14.5868 10.7451C14.6667 10.6516 14.6667 10.4496 14.6667 10.0457V5.95424Z",
647
+ "M1.33337 6.53333C1.33337 5.41322 1.33337 4.85317 1.55136 4.42535C1.74311 4.04902 2.04907 3.74306 2.42539 3.55132C2.85322 3.33333 3.41327 3.33333 4.53337 3.33333H8.13337C9.25348 3.33333 9.81353 3.33333 10.2414 3.55132C10.6177 3.74306 10.9236 4.04902 11.1154 4.42535C11.3334 4.85317 11.3334 5.41322 11.3334 6.53333V9.46666C11.3334 10.5868 11.3334 11.1468 11.1154 11.5746C10.9236 11.951 10.6177 12.2569 10.2414 12.4487C9.81353 12.6667 9.25348 12.6667 8.13337 12.6667H4.53337C3.41327 12.6667 2.85322 12.6667 2.42539 12.4487C2.04907 12.2569 1.74311 11.951 1.55136 11.5746C1.33337 11.1468 1.33337 10.5868 1.33337 9.46666V6.53333Z"
648
+ ];
649
+ function VideoIcon({ size = 20, color = colors.primary, strokeWidth = 1.5 }) {
650
+ return /* @__PURE__ */ jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: VIDEO_PATHS.map((path) => /* @__PURE__ */ jsx(
651
+ Path,
652
+ {
653
+ d: path,
654
+ stroke: color,
655
+ strokeWidth,
656
+ strokeLinecap: "round",
657
+ strokeLinejoin: "round"
658
+ },
659
+ path
660
+ )) });
661
+ }
662
+
453
663
  // src/icons/registry.ts
454
664
  var icons = {
455
665
  arrowRight: ArrowRightIcon,
456
666
  bag: BagIcon,
457
667
  bell: BellIcon,
458
668
  building: BuildingIcon,
669
+ calendar: CalendarIcon,
670
+ calendarOutline: CalendarOutlineIcon,
459
671
  camera: CameraIcon,
460
672
  check: CheckIcon,
461
673
  checkBadge: CheckBadgeIcon,
462
674
  chevronDown: ChevronDownIcon,
675
+ chevronLeft: ChevronLeftIcon,
463
676
  clock: ClockIcon,
464
677
  facebook: FacebookIcon,
678
+ heart: HeartIcon,
679
+ helpCircle: HelpCircleIcon,
465
680
  home: HomeIcon,
466
681
  instagram: InstagramIcon,
467
682
  key: KeyIcon,
683
+ layoutGrid: LayoutGridIcon,
468
684
  linkedin: LinkedInIcon,
685
+ logOut: LogOutIcon,
469
686
  mail: MailIcon,
470
687
  navigate: NavigateIcon,
471
688
  phone: PhoneIcon,
472
689
  search: SearchIcon,
690
+ settings: SettingsIcon,
473
691
  show: ShowIcon,
474
- user: UserIcon
692
+ user: UserIcon,
693
+ video: VideoIcon
475
694
  };
476
695
  var iconNames = Object.keys(icons);
477
696
  var iconGroups = {
478
- navigation: ["arrowRight", "chevronDown", "home", "navigate"],
479
- actions: ["show", "bell", "camera", "key", "check", "checkBadge", "search"],
480
- objects: ["bag", "building", "clock", "user"],
697
+ navigation: ["arrowRight", "chevronDown", "chevronLeft", "home", "navigate"],
698
+ actions: [
699
+ "show",
700
+ "bell",
701
+ "camera",
702
+ "key",
703
+ "check",
704
+ "checkBadge",
705
+ "search",
706
+ "calendar",
707
+ "calendarOutline",
708
+ "heart"
709
+ ],
710
+ objects: ["bag", "building", "clock", "user", "video"],
481
711
  communication: ["mail", "phone"],
482
- social: ["facebook", "instagram", "linkedin"]
712
+ social: ["facebook", "instagram", "linkedin"],
713
+ interface: ["layoutGrid", "settings", "helpCircle", "logOut"]
483
714
  };
484
715
  var iconGroupNames = Object.keys(iconGroups);
485
716
  function getIconsByGroup(group) {
@@ -530,17 +761,332 @@ function useApplyWebClassName(ref, className, enabled = true) {
530
761
  rafId = requestAnimationFrame(apply);
531
762
  return;
532
763
  }
533
- appliedElement = element;
534
- element.classList.add(...classes);
535
- };
536
- apply();
537
- return () => {
538
- cancelled = true;
539
- if (rafId) cancelAnimationFrame(rafId);
540
- appliedElement?.classList.remove(...classes);
541
- };
542
- }, [ref, className, enabled]);
543
- }
764
+ appliedElement = element;
765
+ element.classList.add(...classes);
766
+ };
767
+ apply();
768
+ return () => {
769
+ cancelled = true;
770
+ if (rafId) cancelAnimationFrame(rafId);
771
+ appliedElement?.classList.remove(...classes);
772
+ };
773
+ }, [ref, className, enabled]);
774
+ }
775
+ var ITEM_RADIUS = 12;
776
+ var ICON_SIZE = 16;
777
+ var MenuItem = forwardRef(function MenuItem2({
778
+ icon,
779
+ label,
780
+ onPress,
781
+ disabled = false,
782
+ backgroundColor,
783
+ hoverColor,
784
+ style,
785
+ labelStyle,
786
+ className,
787
+ accessibilityLabel,
788
+ hitSlop = 4,
789
+ onHoverIn,
790
+ onHoverOut,
791
+ onPressIn,
792
+ onPressOut,
793
+ ...rest
794
+ }, forwardedRef) {
795
+ const containerRef = useRef(null);
796
+ const setContainerRef = useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);
797
+ const [hovered, setHovered] = useState(false);
798
+ useApplyWebClassName(containerRef, className);
799
+ const resolvedBackground = hovered ? hoverColor ?? colors.grey600 : backgroundColor ?? "transparent";
800
+ const resolvedAccessibilityLabel = accessibilityLabel ?? label;
801
+ return /* @__PURE__ */ jsxs(
802
+ Pressable,
803
+ {
804
+ ...rest,
805
+ ref: setContainerRef,
806
+ onPress,
807
+ disabled,
808
+ hitSlop,
809
+ onHoverIn: (event) => {
810
+ setHovered(true);
811
+ onHoverIn?.(event);
812
+ },
813
+ onHoverOut: (event) => {
814
+ setHovered(false);
815
+ onHoverOut?.(event);
816
+ },
817
+ onPressIn: (event) => {
818
+ setHovered(true);
819
+ onPressIn?.(event);
820
+ },
821
+ onPressOut: (event) => {
822
+ setHovered(false);
823
+ onPressOut?.(event);
824
+ },
825
+ accessibilityRole: "menuitem",
826
+ accessibilityLabel: resolvedAccessibilityLabel,
827
+ accessibilityState: { disabled },
828
+ style: [
829
+ styles.root,
830
+ { backgroundColor: resolvedBackground },
831
+ disabled && styles.disabled,
832
+ style
833
+ ],
834
+ children: [
835
+ icon ? /* @__PURE__ */ jsx(View, { style: styles.iconSlot, children: icon }) : null,
836
+ /* @__PURE__ */ jsx(Text, { style: [styles.label, labelStyle], numberOfLines: 1, children: label })
837
+ ]
838
+ }
839
+ );
840
+ });
841
+ var styles = StyleSheet.create({
842
+ root: {
843
+ minHeight: 40,
844
+ borderRadius: ITEM_RADIUS,
845
+ paddingVertical: 12,
846
+ paddingHorizontal: 12,
847
+ flexDirection: "row",
848
+ alignItems: "center",
849
+ gap: 8,
850
+ alignSelf: "stretch"
851
+ },
852
+ disabled: {
853
+ opacity: 0.5
854
+ },
855
+ iconSlot: {
856
+ width: ICON_SIZE,
857
+ height: ICON_SIZE,
858
+ alignItems: "center",
859
+ justifyContent: "center",
860
+ flexShrink: 0
861
+ },
862
+ label: {
863
+ ...avatarTypography.menuItem,
864
+ color: colors.white,
865
+ flex: 1
866
+ }
867
+ });
868
+ var IMAGE_SIZE = 48;
869
+ var CONTAINER_RADIUS = 71;
870
+ var CHEVRON_SIZE = 20;
871
+ var FALLBACK_ICON_SIZE = 20;
872
+ var MENU_RADIUS = 16;
873
+ var Avatar = forwardRef(function Avatar2({
874
+ name,
875
+ email,
876
+ imageUrl,
877
+ onPress,
878
+ disabled = false,
879
+ showChevron = true,
880
+ menuItems,
881
+ open: openProp,
882
+ defaultOpen = false,
883
+ onOpenChange,
884
+ menuWidth,
885
+ style,
886
+ className,
887
+ accessibilityLabel,
888
+ hitSlop = 8,
889
+ ...rest
890
+ }, forwardedRef) {
891
+ const wrapperRef = useRef(null);
892
+ const containerRef = useRef(null);
893
+ const setContainerRef = useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);
894
+ const [imageFailed, setImageFailed] = useState(false);
895
+ const resolvedMenuItems = menuItems ?? [];
896
+ const hasMenu = resolvedMenuItems.length > 0;
897
+ const isInteractive = onPress != null || hasMenu;
898
+ const isOpenControlled = typeof openProp === "boolean";
899
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
900
+ const isOpen = hasMenu && (isOpenControlled ? openProp : uncontrolledOpen);
901
+ useApplyWebClassName(containerRef, className);
902
+ const setOpen = useCallback(
903
+ (next) => {
904
+ if (!isOpenControlled) setUncontrolledOpen(next);
905
+ onOpenChange?.(next);
906
+ },
907
+ [isOpenControlled, onOpenChange]
908
+ );
909
+ const focusTrigger = useCallback(() => {
910
+ const node = containerRef.current;
911
+ node?.focus?.();
912
+ }, []);
913
+ const closeAndFocusTrigger = useCallback(() => {
914
+ setOpen(false);
915
+ focusTrigger();
916
+ }, [focusTrigger, setOpen]);
917
+ const handlePress = (event) => {
918
+ onPress?.(event);
919
+ if (hasMenu) setOpen(!isOpen);
920
+ };
921
+ const handleItemPress = useCallback(
922
+ (item) => {
923
+ if (item.disabled) return;
924
+ item.onPress();
925
+ closeAndFocusTrigger();
926
+ },
927
+ [closeAndFocusTrigger]
928
+ );
929
+ useEffect(() => {
930
+ if (Platform.OS !== "web" || !isOpen) return;
931
+ const handlePointerDown = (event) => {
932
+ const wrapper = wrapperRef.current;
933
+ const target = event.target;
934
+ if (wrapper?.contains && target instanceof Node && !wrapper.contains(target)) {
935
+ setOpen(false);
936
+ }
937
+ };
938
+ document.addEventListener("mousedown", handlePointerDown);
939
+ document.addEventListener("touchstart", handlePointerDown);
940
+ return () => {
941
+ document.removeEventListener("mousedown", handlePointerDown);
942
+ document.removeEventListener("touchstart", handlePointerDown);
943
+ };
944
+ }, [isOpen, setOpen]);
945
+ useEffect(() => {
946
+ if (Platform.OS !== "web" || !isOpen) return;
947
+ const handleKeyDown = (event) => {
948
+ if (event.key === "Escape") {
949
+ event.preventDefault();
950
+ closeAndFocusTrigger();
951
+ }
952
+ };
953
+ document.addEventListener("keydown", handleKeyDown);
954
+ return () => document.removeEventListener("keydown", handleKeyDown);
955
+ }, [isOpen, closeAndFocusTrigger]);
956
+ const hasImage = Boolean(imageUrl) && !imageFailed;
957
+ const resolvedAccessibilityLabel = accessibilityLabel ?? [name, email].filter(Boolean).join(", ");
958
+ return /* @__PURE__ */ jsxs(View, { ref: wrapperRef, style: [styles2.wrapper, isOpen && styles2.wrapperOpen], children: [
959
+ /* @__PURE__ */ jsxs(
960
+ Pressable,
961
+ {
962
+ ...rest,
963
+ ref: setContainerRef,
964
+ onPress: handlePress,
965
+ disabled: disabled || !isInteractive,
966
+ hitSlop: isInteractive ? hitSlop : void 0,
967
+ accessibilityRole: isInteractive ? "button" : void 0,
968
+ accessibilityLabel: resolvedAccessibilityLabel,
969
+ accessibilityState: isInteractive ? { disabled, expanded: hasMenu ? isOpen : void 0 } : void 0,
970
+ style: [styles2.root, disabled && styles2.disabled, style],
971
+ children: [
972
+ /* @__PURE__ */ jsx(View, { style: styles2.imageWrap, children: hasImage ? /* @__PURE__ */ jsx(
973
+ Image,
974
+ {
975
+ source: { uri: imageUrl ?? void 0 },
976
+ style: styles2.image,
977
+ onError: () => setImageFailed(true)
978
+ }
979
+ ) : /* @__PURE__ */ jsx(View, { style: styles2.imageFallback, children: /* @__PURE__ */ jsx(UserIcon, { size: FALLBACK_ICON_SIZE, color: colors.primary }) }) }),
980
+ /* @__PURE__ */ jsxs(View, { style: styles2.textColumn, children: [
981
+ /* @__PURE__ */ jsx(Text, { style: styles2.name, numberOfLines: 1, children: name }),
982
+ email ? /* @__PURE__ */ jsx(Text, { style: styles2.email, numberOfLines: 1, children: email }) : null
983
+ ] }),
984
+ showChevron ? /* @__PURE__ */ jsx(View, { style: [styles2.chevronSlot, isOpen && styles2.chevronOpen], children: /* @__PURE__ */ jsx(ChevronDownIcon, { size: CHEVRON_SIZE, color: isOpen ? colors.primary : colors.grey100 }) }) : null
985
+ ]
986
+ }
987
+ ),
988
+ hasMenu && isOpen ? /* @__PURE__ */ jsx(View, { style: [styles2.menu, menuWidth != null && { right: void 0, width: menuWidth }], children: resolvedMenuItems.map((item) => {
989
+ const itemKey = item.key ?? item.label;
990
+ return /* @__PURE__ */ jsx(
991
+ MenuItem,
992
+ {
993
+ icon: item.icon,
994
+ label: item.label,
995
+ disabled: item.disabled,
996
+ backgroundColor: item.backgroundColor,
997
+ hoverColor: item.hoverColor,
998
+ onPress: () => handleItemPress(item)
999
+ },
1000
+ itemKey
1001
+ );
1002
+ }) }) : null
1003
+ ] });
1004
+ });
1005
+ var styles2 = StyleSheet.create({
1006
+ wrapper: {
1007
+ position: "relative",
1008
+ alignSelf: "flex-start"
1009
+ },
1010
+ wrapperOpen: {
1011
+ zIndex: 20
1012
+ },
1013
+ root: {
1014
+ flexDirection: "row",
1015
+ alignItems: "center",
1016
+ alignSelf: "flex-start",
1017
+ gap: 12,
1018
+ paddingTop: 4,
1019
+ paddingBottom: 4,
1020
+ paddingLeft: 4,
1021
+ paddingRight: 12,
1022
+ borderRadius: CONTAINER_RADIUS,
1023
+ backgroundColor: colors.grey700
1024
+ },
1025
+ disabled: {
1026
+ opacity: 0.6
1027
+ },
1028
+ imageWrap: {
1029
+ width: IMAGE_SIZE,
1030
+ height: IMAGE_SIZE,
1031
+ borderRadius: IMAGE_SIZE / 2,
1032
+ overflow: "hidden",
1033
+ flexShrink: 0
1034
+ },
1035
+ image: {
1036
+ width: IMAGE_SIZE,
1037
+ height: IMAGE_SIZE
1038
+ },
1039
+ imageFallback: {
1040
+ width: IMAGE_SIZE,
1041
+ height: IMAGE_SIZE,
1042
+ alignItems: "center",
1043
+ justifyContent: "center",
1044
+ backgroundColor: colors.grey600
1045
+ },
1046
+ textColumn: {
1047
+ minWidth: 0,
1048
+ flexShrink: 1,
1049
+ gap: 3
1050
+ },
1051
+ name: {
1052
+ ...avatarTypography.name,
1053
+ color: colors.white
1054
+ },
1055
+ email: {
1056
+ ...avatarTypography.email,
1057
+ color: colors.grey0
1058
+ },
1059
+ chevronSlot: {
1060
+ width: CHEVRON_SIZE,
1061
+ height: CHEVRON_SIZE,
1062
+ alignItems: "center",
1063
+ justifyContent: "center",
1064
+ flexShrink: 0
1065
+ },
1066
+ chevronOpen: {
1067
+ transform: [{ rotate: "180deg" }]
1068
+ },
1069
+ menu: {
1070
+ position: "absolute",
1071
+ top: "100%",
1072
+ left: 0,
1073
+ right: 0,
1074
+ marginTop: 8,
1075
+ zIndex: 10,
1076
+ borderRadius: MENU_RADIUS,
1077
+ padding: 8,
1078
+ gap: 8,
1079
+ backgroundColor: colors.grey700,
1080
+ ...Platform.select({
1081
+ web: {
1082
+ boxShadow: `0 8px 24px ${colors.black}73`
1083
+ },
1084
+ default: {
1085
+ elevation: 8
1086
+ }
1087
+ })
1088
+ }
1089
+ });
544
1090
  var variantConfig = {
545
1091
  primary: {
546
1092
  backgroundColor: colors.primary,
@@ -613,7 +1159,7 @@ var Button = forwardRef(
613
1159
  useApplyWebClassName(textRef, textClassName);
614
1160
  const iconNode = customIcon ?? /* @__PURE__ */ jsx(ArrowRightIcon, { size: metrics.iconSize, color: preset.iconColor });
615
1161
  const containerStyle = [
616
- styles.base,
1162
+ styles3.base,
617
1163
  {
618
1164
  minHeight: metrics.minHeight,
619
1165
  borderRadius: metrics.borderRadius,
@@ -624,15 +1170,15 @@ var Button = forwardRef(
624
1170
  paddingRight: hasIcon ? metrics.paddingRightWithIcon : metrics.paddingRight,
625
1171
  gap: hasIcon ? metrics.gap : 0
626
1172
  },
627
- disabled && styles.disabled,
1173
+ disabled && styles3.disabled,
628
1174
  style
629
1175
  ];
630
1176
  const labelStyle = [
631
- styles.label,
1177
+ styles3.label,
632
1178
  metrics.text,
633
1179
  { color: preset.textColor },
634
- Platform.OS === "android" ? styles.labelAndroid : null,
635
- !hasIcon && styles.labelCentered,
1180
+ Platform.OS === "android" ? styles3.labelAndroid : null,
1181
+ !hasIcon && styles3.labelCentered,
636
1182
  textStyle
637
1183
  ];
638
1184
  return /* @__PURE__ */ jsxs(
@@ -653,7 +1199,7 @@ var Button = forwardRef(
653
1199
  View,
654
1200
  {
655
1201
  style: [
656
- styles.iconContainer,
1202
+ styles3.iconContainer,
657
1203
  {
658
1204
  width: metrics.iconContainerSize,
659
1205
  height: metrics.iconContainerSize,
@@ -669,7 +1215,7 @@ var Button = forwardRef(
669
1215
  );
670
1216
  }
671
1217
  );
672
- var styles = StyleSheet.create({
1218
+ var styles3 = StyleSheet.create({
673
1219
  base: {
674
1220
  flexDirection: "row",
675
1221
  alignItems: "center",
@@ -747,13 +1293,13 @@ var Checkbox = forwardRef(function Checkbox2({
747
1293
  accessibilityRole: "checkbox",
748
1294
  accessibilityLabel: resolvedAccessibilityLabel,
749
1295
  accessibilityState: { checked: isActive, disabled },
750
- style: [styles2.root, disabled && styles2.disabled, style],
1296
+ style: [styles4.root, disabled && styles4.disabled, style],
751
1297
  children: [
752
1298
  /* @__PURE__ */ jsx(
753
1299
  View,
754
1300
  {
755
1301
  style: [
756
- styles2.box,
1302
+ styles4.box,
757
1303
  {
758
1304
  backgroundColor: chrome.backgroundColor,
759
1305
  borderColor: chrome.borderColor
@@ -762,12 +1308,12 @@ var Checkbox = forwardRef(function Checkbox2({
762
1308
  children: isActive ? /* @__PURE__ */ jsx(CheckIcon, { size: CHECK_SIZE, color: colors.primary, strokeWidth: CHECK_STROKE }) : null
763
1309
  }
764
1310
  ),
765
- labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsx(Text, { style: [styles2.label, labelStyle], children: labelContent }) : labelContent : null
1311
+ labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsx(Text, { style: [styles4.label, labelStyle], children: labelContent }) : labelContent : null
766
1312
  ]
767
1313
  }
768
1314
  );
769
1315
  });
770
- var styles2 = StyleSheet.create({
1316
+ var styles4 = StyleSheet.create({
771
1317
  root: {
772
1318
  flexDirection: "row",
773
1319
  alignItems: "center",
@@ -791,7 +1337,525 @@ var styles2 = StyleSheet.create({
791
1337
  color: colors.white
792
1338
  }
793
1339
  });
794
- var DEFAULT_WIDTH = 308;
1340
+
1341
+ // src/utils/dateUtils.ts
1342
+ function startOfDay(date) {
1343
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
1344
+ }
1345
+ function isSameDay(a, b) {
1346
+ if (a == null || b == null) return false;
1347
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
1348
+ }
1349
+ function isSameMonth(a, b) {
1350
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
1351
+ }
1352
+ function addMonths(date, amount) {
1353
+ return new Date(date.getFullYear(), date.getMonth() + amount, 1);
1354
+ }
1355
+ function isBefore(a, b) {
1356
+ return startOfDay(a).getTime() < startOfDay(b).getTime();
1357
+ }
1358
+ function isAfter(a, b) {
1359
+ return startOfDay(a).getTime() > startOfDay(b).getTime();
1360
+ }
1361
+ function isWithinRange(date, start, end) {
1362
+ const time = startOfDay(date).getTime();
1363
+ return time >= startOfDay(start).getTime() && time <= startOfDay(end).getTime();
1364
+ }
1365
+ function isDateDisabled(date, min, max) {
1366
+ if (min && isBefore(date, min)) return true;
1367
+ if (max && isAfter(date, max)) return true;
1368
+ return false;
1369
+ }
1370
+ function formatDate(date) {
1371
+ const day = String(date.getDate()).padStart(2, "0");
1372
+ const month = String(date.getMonth() + 1).padStart(2, "0");
1373
+ return `${day}.${month}.${date.getFullYear()}`;
1374
+ }
1375
+ function getMonthMatrix(monthDate, weekStartsOn = 1) {
1376
+ const year = monthDate.getFullYear();
1377
+ const month = monthDate.getMonth();
1378
+ const firstOfMonth = new Date(year, month, 1);
1379
+ const firstWeekday = firstOfMonth.getDay();
1380
+ const leadingDays = (firstWeekday - weekStartsOn + 7) % 7;
1381
+ const gridStart = new Date(year, month, 1 - leadingDays);
1382
+ const weeks = [];
1383
+ let cursor = gridStart;
1384
+ for (let week = 0; week < 6; week += 1) {
1385
+ const days = [];
1386
+ for (let day = 0; day < 7; day += 1) {
1387
+ days.push(cursor);
1388
+ cursor = new Date(cursor.getFullYear(), cursor.getMonth(), cursor.getDate() + 1);
1389
+ }
1390
+ weeks.push(days);
1391
+ }
1392
+ return weeks;
1393
+ }
1394
+ var DEFAULT_MONTH_NAMES = [
1395
+ "\u0540\u0578\u0582\u0576\u057E\u0561\u0580",
1396
+ "\u0553\u0565\u057F\u0580\u057E\u0561\u0580",
1397
+ "\u0544\u0561\u0580\u057F",
1398
+ "\u0531\u057A\u0580\u056B\u056C",
1399
+ "\u0544\u0561\u0575\u056B\u057D",
1400
+ "\u0540\u0578\u0582\u0576\u056B\u057D",
1401
+ "\u0540\u0578\u0582\u056C\u056B\u057D",
1402
+ "\u0555\u0563\u0578\u057D\u057F\u0578\u057D",
1403
+ "\u054D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580",
1404
+ "\u0540\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580",
1405
+ "\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580",
1406
+ "\u0534\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580"
1407
+ ];
1408
+ var DEFAULT_WEEKDAY_LABELS = ["\u0535\u0550", "\u0535\u0554", "\u0549\u0550", "\u0540\u0546", "\u0548\u0552\u0550", "\u0547\u0532", "\u053F\u0550"];
1409
+ var EMPTY_RANGE = { start: null, end: null };
1410
+ var DEFAULT_WIDTH = 380;
1411
+ var TRIGGER_HEIGHT = 44;
1412
+ var TRIGGER_RADIUS = 60;
1413
+ var MENU_RADIUS2 = 20;
1414
+ var ICON_SIZE2 = 20;
1415
+ var NAV_ICON_SIZE = 20;
1416
+ var DAY_CELL_HEIGHT = 44;
1417
+ var DAY_CIRCLE_SIZE = 44;
1418
+ var DatePicker = forwardRef(
1419
+ function DatePicker2(props, forwardedRef) {
1420
+ const {
1421
+ placeholder = "Select date",
1422
+ open: openProp,
1423
+ defaultOpen = false,
1424
+ onOpenChange,
1425
+ disabled = false,
1426
+ closeOnSelect = true,
1427
+ minDate,
1428
+ maxDate,
1429
+ defaultVisibleMonth,
1430
+ monthNames = DEFAULT_MONTH_NAMES,
1431
+ weekdayLabels = DEFAULT_WEEKDAY_LABELS,
1432
+ formatValue = formatDate,
1433
+ weekStartsOn = 1,
1434
+ style,
1435
+ className,
1436
+ accessibilityLabel,
1437
+ // Pulled out only to keep them off `rest` (which is spread onto the root View);
1438
+ // the real values are read from `props` directly below to preserve discriminated typing.
1439
+ range: _range,
1440
+ value: _value,
1441
+ defaultValue: _defaultValue,
1442
+ onValueChange: _onValueChange,
1443
+ ...rest
1444
+ } = props;
1445
+ const isRange = props.range === true;
1446
+ const valueProp = props.value;
1447
+ const rootRef = useRef(null);
1448
+ const triggerRef = useRef(null);
1449
+ const setRootRef = useMemo(() => mergeRefs(rootRef, forwardedRef), [forwardedRef]);
1450
+ const isOpenControlled = typeof openProp === "boolean";
1451
+ const isValueControlled = valueProp !== void 0;
1452
+ const [uncontrolledSingle, setUncontrolledSingle] = useState(
1453
+ !isRange ? props.defaultValue ?? null : null
1454
+ );
1455
+ const [uncontrolledRange, setUncontrolledRange] = useState(
1456
+ isRange ? props.defaultValue ?? EMPTY_RANGE : EMPTY_RANGE
1457
+ );
1458
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
1459
+ const [hoveredDayKey, setHoveredDayKey] = useState(null);
1460
+ const rangeValue = isRange ? isValueControlled ? valueProp ?? EMPTY_RANGE : uncontrolledRange : EMPTY_RANGE;
1461
+ const singleValue = !isRange ? isValueControlled ? valueProp ?? null : uncontrolledSingle : null;
1462
+ const isOpen = isOpenControlled ? openProp : uncontrolledOpen;
1463
+ const [visibleMonth, setVisibleMonth] = useState(() => {
1464
+ const anchor = defaultVisibleMonth ?? (isRange ? rangeValue.start : singleValue) ?? /* @__PURE__ */ new Date();
1465
+ return new Date(anchor.getFullYear(), anchor.getMonth(), 1);
1466
+ });
1467
+ useApplyWebClassName(rootRef, className);
1468
+ const setOpen = useCallback(
1469
+ (next) => {
1470
+ if (!isOpenControlled) setUncontrolledOpen(next);
1471
+ onOpenChange?.(next);
1472
+ if (next) {
1473
+ const anchor = (isRange ? rangeValue.start : singleValue) ?? /* @__PURE__ */ new Date();
1474
+ setVisibleMonth(new Date(anchor.getFullYear(), anchor.getMonth(), 1));
1475
+ } else {
1476
+ setHoveredDayKey(null);
1477
+ }
1478
+ },
1479
+ [isOpenControlled, isRange, onOpenChange, rangeValue.start, singleValue]
1480
+ );
1481
+ useEffect(() => {
1482
+ if (Platform.OS !== "web" || !isOpen) return;
1483
+ const handlePointerDown = (event) => {
1484
+ const root = rootRef.current;
1485
+ const target = event.target;
1486
+ if (root?.contains && target instanceof Node && !root.contains(target)) {
1487
+ setOpen(false);
1488
+ }
1489
+ };
1490
+ document.addEventListener("mousedown", handlePointerDown);
1491
+ document.addEventListener("touchstart", handlePointerDown);
1492
+ return () => {
1493
+ document.removeEventListener("mousedown", handlePointerDown);
1494
+ document.removeEventListener("touchstart", handlePointerDown);
1495
+ };
1496
+ }, [isOpen, setOpen]);
1497
+ const focusTrigger = useCallback(() => {
1498
+ const node = triggerRef.current;
1499
+ node?.focus?.();
1500
+ }, []);
1501
+ const closeAndFocusTrigger = useCallback(() => {
1502
+ setOpen(false);
1503
+ focusTrigger();
1504
+ }, [focusTrigger, setOpen]);
1505
+ useEffect(() => {
1506
+ if (Platform.OS !== "web" || !isOpen) return;
1507
+ const handleKeyDown = (event) => {
1508
+ if (event.key === "Escape") {
1509
+ event.preventDefault();
1510
+ closeAndFocusTrigger();
1511
+ }
1512
+ };
1513
+ document.addEventListener("keydown", handleKeyDown);
1514
+ return () => document.removeEventListener("keydown", handleKeyDown);
1515
+ }, [isOpen, closeAndFocusTrigger]);
1516
+ const handleTriggerPress = () => {
1517
+ if (disabled) return;
1518
+ setOpen(!isOpen);
1519
+ };
1520
+ const handleDayPress = useCallback(
1521
+ (day) => {
1522
+ if (disabled || isDateDisabled(day, minDate, maxDate)) return;
1523
+ const picked = startOfDay(day);
1524
+ if (!isRange) {
1525
+ if (!isValueControlled) setUncontrolledSingle(picked);
1526
+ props.onValueChange?.(picked);
1527
+ if (closeOnSelect) setOpen(false);
1528
+ return;
1529
+ }
1530
+ const { start, end } = rangeValue;
1531
+ const startingNewRange = !start || start && end;
1532
+ const nextRange = startingNewRange ? { start: picked, end: null } : isBefore(picked, start) ? { start: picked, end: null } : { start, end: picked };
1533
+ if (!isValueControlled) setUncontrolledRange(nextRange);
1534
+ props.onValueChange?.(nextRange);
1535
+ if (closeOnSelect && nextRange.start && nextRange.end) setOpen(false);
1536
+ },
1537
+ [
1538
+ closeOnSelect,
1539
+ disabled,
1540
+ isRange,
1541
+ isValueControlled,
1542
+ maxDate,
1543
+ minDate,
1544
+ props,
1545
+ rangeValue,
1546
+ setOpen
1547
+ ]
1548
+ );
1549
+ const handlePrevMonth = () => setVisibleMonth((current) => addMonths(current, -1));
1550
+ const handleNextMonth = () => setVisibleMonth((current) => addMonths(current, 1));
1551
+ const weeks = useMemo(
1552
+ () => getMonthMatrix(visibleMonth, weekStartsOn),
1553
+ [visibleMonth, weekStartsOn]
1554
+ );
1555
+ const today = useMemo(() => startOfDay(/* @__PURE__ */ new Date()), []);
1556
+ const hasValue = isRange ? rangeValue.start != null : singleValue != null;
1557
+ const triggerLabel = isRange ? rangeValue.start && rangeValue.end ? `${formatValue(rangeValue.start)} - ${formatValue(rangeValue.end)}` : rangeValue.start ? `${formatValue(rangeValue.start)} - ...` : placeholder : singleValue ? formatValue(singleValue) : placeholder;
1558
+ const triggerBorderColor = isOpen ? colors.primaryMuted : colors.grey700;
1559
+ const triggerTextColor = hasValue ? colors.white : colors.grey100;
1560
+ const resolvedAccessibilityLabel = accessibilityLabel ?? placeholder;
1561
+ return /* @__PURE__ */ jsx(
1562
+ View,
1563
+ {
1564
+ ...rest,
1565
+ ref: setRootRef,
1566
+ style: [styles5.root, isOpen && styles5.rootOpen, disabled && styles5.disabled, style],
1567
+ accessibilityState: { disabled, expanded: isOpen },
1568
+ children: /* @__PURE__ */ jsxs(View, { style: [styles5.triggerWrap, isOpen && styles5.triggerWrapOpen], children: [
1569
+ /* @__PURE__ */ jsxs(
1570
+ Pressable,
1571
+ {
1572
+ ref: triggerRef,
1573
+ onPress: handleTriggerPress,
1574
+ disabled,
1575
+ accessibilityRole: "button",
1576
+ accessibilityLabel: resolvedAccessibilityLabel,
1577
+ accessibilityState: { disabled, expanded: isOpen },
1578
+ style: [
1579
+ styles5.trigger,
1580
+ { borderColor: triggerBorderColor, backgroundColor: colors.grey700 }
1581
+ ],
1582
+ children: [
1583
+ /* @__PURE__ */ jsx(Text, { style: [styles5.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: triggerLabel }),
1584
+ /* @__PURE__ */ jsx(View, { style: styles5.iconSlot, children: /* @__PURE__ */ jsx(CalendarOutlineIcon, { size: ICON_SIZE2, color: colors.grey100 }) })
1585
+ ]
1586
+ }
1587
+ ),
1588
+ isOpen ? /* @__PURE__ */ jsxs(View, { style: styles5.menu, children: [
1589
+ /* @__PURE__ */ jsxs(View, { style: styles5.calendarHeader, children: [
1590
+ /* @__PURE__ */ jsx(
1591
+ Pressable,
1592
+ {
1593
+ onPress: handlePrevMonth,
1594
+ hitSlop: 8,
1595
+ accessibilityRole: "button",
1596
+ accessibilityLabel: "Previous month",
1597
+ style: styles5.navButton,
1598
+ children: /* @__PURE__ */ jsx(ChevronLeftIcon, { size: NAV_ICON_SIZE, color: colors.white })
1599
+ }
1600
+ ),
1601
+ /* @__PURE__ */ jsxs(Text, { style: styles5.monthHeading, children: [
1602
+ monthNames[visibleMonth.getMonth()],
1603
+ " ",
1604
+ visibleMonth.getFullYear()
1605
+ ] }),
1606
+ /* @__PURE__ */ jsx(
1607
+ Pressable,
1608
+ {
1609
+ onPress: handleNextMonth,
1610
+ hitSlop: 8,
1611
+ accessibilityRole: "button",
1612
+ accessibilityLabel: "Next month",
1613
+ style: styles5.navButton,
1614
+ children: /* @__PURE__ */ jsx(View, { style: styles5.navIconMirror, children: /* @__PURE__ */ jsx(ChevronLeftIcon, { size: NAV_ICON_SIZE, color: colors.white }) })
1615
+ }
1616
+ )
1617
+ ] }),
1618
+ /* @__PURE__ */ jsxs(View, { children: [
1619
+ /* @__PURE__ */ jsx(View, { style: styles5.weekdayRow, children: weekdayLabels.map((weekdayLabel, index) => /* @__PURE__ */ jsx(View, { style: styles5.dayCellWrap, children: /* @__PURE__ */ jsx(Text, { style: styles5.weekdayText, children: weekdayLabel }) }, `${weekdayLabel}-${index}`)) }),
1620
+ weeks.map((week, weekIndex) => {
1621
+ let rangeHighlightStyle = null;
1622
+ if (isRange && rangeValue.start && rangeValue.end) {
1623
+ const rangeIndices = week.reduce((acc, day, index) => {
1624
+ if (isWithinRange(day, rangeValue.start, rangeValue.end)) {
1625
+ acc.push(index);
1626
+ }
1627
+ return acc;
1628
+ }, []);
1629
+ if (rangeIndices.length > 0) {
1630
+ const first = rangeIndices[0];
1631
+ const last = rangeIndices[rangeIndices.length - 1];
1632
+ const startsHere = isSameDay(week[first], rangeValue.start);
1633
+ const endsHere = isSameDay(week[last], rangeValue.end);
1634
+ const cellPct = 100 / 7;
1635
+ const halfCellPct = cellPct / 2;
1636
+ let leftPct = first * cellPct;
1637
+ let widthPct = (last - first + 1) * cellPct;
1638
+ if (startsHere) {
1639
+ leftPct += halfCellPct;
1640
+ widthPct -= halfCellPct;
1641
+ }
1642
+ if (endsHere) {
1643
+ widthPct -= halfCellPct;
1644
+ }
1645
+ if (widthPct > 0) {
1646
+ rangeHighlightStyle = {
1647
+ left: `${leftPct}%`,
1648
+ width: `${widthPct}%`
1649
+ };
1650
+ }
1651
+ }
1652
+ }
1653
+ return /* @__PURE__ */ jsxs(
1654
+ View,
1655
+ {
1656
+ style: [styles5.weekRow, weekIndex > 0 && styles5.weekRowSpaced],
1657
+ children: [
1658
+ rangeHighlightStyle ? /* @__PURE__ */ jsx(
1659
+ View,
1660
+ {
1661
+ pointerEvents: "none",
1662
+ style: [styles5.rangeHighlight, rangeHighlightStyle]
1663
+ }
1664
+ ) : null,
1665
+ week.map((day, dayIndex) => {
1666
+ const inCurrentMonth = isSameMonth(day, visibleMonth);
1667
+ const isToday = isSameDay(day, today);
1668
+ const isSelectedSingle = !isRange && isSameDay(day, singleValue);
1669
+ const isRangeStart = isRange && isSameDay(day, rangeValue.start);
1670
+ const isRangeEnd = isRange && isSameDay(day, rangeValue.end);
1671
+ const isSelectedEndpoint = isSelectedSingle || isRangeStart || isRangeEnd;
1672
+ const dayDisabled = disabled || isDateDisabled(day, minDate, maxDate);
1673
+ const dayKey = startOfDay(day).getTime();
1674
+ const isHovered = !dayDisabled && !isSelectedEndpoint && hoveredDayKey === dayKey;
1675
+ const dayTextColor = isSelectedEndpoint ? colors.white : dayDisabled ? colors.grey400 : isToday ? colors.primary : !inCurrentMonth ? colors.grey300 : colors.white;
1676
+ return /* @__PURE__ */ jsxs(
1677
+ Pressable,
1678
+ {
1679
+ onPress: () => handleDayPress(day),
1680
+ disabled: dayDisabled,
1681
+ onHoverIn: () => setHoveredDayKey(dayKey),
1682
+ onHoverOut: () => setHoveredDayKey((current) => current === dayKey ? null : current),
1683
+ onPressIn: () => setHoveredDayKey(dayKey),
1684
+ onPressOut: () => setHoveredDayKey((current) => current === dayKey ? null : current),
1685
+ style: styles5.dayCellWrap,
1686
+ accessibilityRole: "button",
1687
+ accessibilityLabel: formatValue(day),
1688
+ accessibilityState: {
1689
+ disabled: dayDisabled,
1690
+ selected: isSelectedEndpoint
1691
+ },
1692
+ children: [
1693
+ /* @__PURE__ */ jsx(
1694
+ View,
1695
+ {
1696
+ style: [
1697
+ styles5.dayCircle,
1698
+ isSelectedEndpoint && styles5.dayCircleSelected,
1699
+ isHovered && styles5.dayCircleHovered
1700
+ ],
1701
+ children: /* @__PURE__ */ jsx(Text, { style: [styles5.dayText, { color: dayTextColor }], children: day.getDate() })
1702
+ }
1703
+ ),
1704
+ isToday && !isSelectedEndpoint ? /* @__PURE__ */ jsx(View, { style: styles5.todayDot }) : null
1705
+ ]
1706
+ },
1707
+ dayIndex
1708
+ );
1709
+ })
1710
+ ]
1711
+ },
1712
+ weekIndex
1713
+ );
1714
+ })
1715
+ ] })
1716
+ ] }) : null
1717
+ ] })
1718
+ }
1719
+ );
1720
+ }
1721
+ );
1722
+ var styles5 = StyleSheet.create({
1723
+ root: {
1724
+ width: DEFAULT_WIDTH,
1725
+ gap: 8,
1726
+ alignSelf: "flex-start"
1727
+ },
1728
+ rootOpen: {
1729
+ zIndex: 30
1730
+ },
1731
+ disabled: {
1732
+ opacity: 0.6
1733
+ },
1734
+ triggerWrap: {
1735
+ position: "relative",
1736
+ zIndex: 1
1737
+ },
1738
+ triggerWrapOpen: {
1739
+ zIndex: 20
1740
+ },
1741
+ trigger: {
1742
+ height: TRIGGER_HEIGHT,
1743
+ borderRadius: TRIGGER_RADIUS,
1744
+ borderWidth: 1,
1745
+ paddingVertical: 10,
1746
+ paddingHorizontal: 16,
1747
+ flexDirection: "row",
1748
+ alignItems: "center",
1749
+ gap: 10,
1750
+ overflow: "hidden"
1751
+ },
1752
+ triggerText: {
1753
+ ...datePickerTypography.field,
1754
+ flex: 1,
1755
+ minWidth: 0
1756
+ },
1757
+ iconSlot: {
1758
+ width: ICON_SIZE2,
1759
+ height: ICON_SIZE2,
1760
+ alignItems: "center",
1761
+ justifyContent: "center",
1762
+ flexShrink: 0
1763
+ },
1764
+ menu: {
1765
+ position: "absolute",
1766
+ top: "100%",
1767
+ left: 0,
1768
+ right: 0,
1769
+ marginTop: 8,
1770
+ zIndex: 10,
1771
+ borderRadius: MENU_RADIUS2,
1772
+ padding: 12,
1773
+ gap: 0,
1774
+ backgroundColor: colors.grey700,
1775
+ ...Platform.select({
1776
+ web: {
1777
+ boxShadow: `0 8px 24px ${colors.black}73`
1778
+ },
1779
+ default: {
1780
+ elevation: 8
1781
+ }
1782
+ })
1783
+ },
1784
+ calendarHeader: {
1785
+ height: 36,
1786
+ flexDirection: "row",
1787
+ alignItems: "center",
1788
+ justifyContent: "space-between"
1789
+ },
1790
+ navButton: {
1791
+ width: 36,
1792
+ height: 36,
1793
+ alignItems: "center",
1794
+ justifyContent: "center"
1795
+ },
1796
+ navIconMirror: {
1797
+ transform: [{ scaleX: -1 }]
1798
+ },
1799
+ monthHeading: {
1800
+ ...datePickerTypography.monthHeading,
1801
+ color: colors.white,
1802
+ textAlign: "center"
1803
+ },
1804
+ weekdayRow: {
1805
+ flexDirection: "row"
1806
+ },
1807
+ weekdayText: {
1808
+ ...datePickerTypography.weekday,
1809
+ color: colors.grey300,
1810
+ textAlign: "center",
1811
+ textTransform: "uppercase"
1812
+ },
1813
+ weekRow: {
1814
+ flexDirection: "row",
1815
+ position: "relative"
1816
+ },
1817
+ weekRowSpaced: {
1818
+ marginTop: 8
1819
+ },
1820
+ rangeHighlight: {
1821
+ position: "absolute",
1822
+ top: (DAY_CELL_HEIGHT - DAY_CIRCLE_SIZE) / 2,
1823
+ bottom: (DAY_CELL_HEIGHT - DAY_CIRCLE_SIZE) / 2,
1824
+ borderRadius: DAY_CIRCLE_SIZE / 2,
1825
+ backgroundColor: colors.primaryHover
1826
+ },
1827
+ dayCellWrap: {
1828
+ flex: 1,
1829
+ height: DAY_CELL_HEIGHT,
1830
+ alignItems: "center",
1831
+ justifyContent: "center"
1832
+ },
1833
+ dayCircle: {
1834
+ width: DAY_CIRCLE_SIZE,
1835
+ height: DAY_CIRCLE_SIZE,
1836
+ borderRadius: DAY_CIRCLE_SIZE / 2,
1837
+ alignItems: "center",
1838
+ justifyContent: "center"
1839
+ },
1840
+ dayCircleSelected: {
1841
+ backgroundColor: colors.primary
1842
+ },
1843
+ dayCircleHovered: {
1844
+ backgroundColor: colors.grey600
1845
+ },
1846
+ dayText: {
1847
+ ...datePickerTypography.day
1848
+ },
1849
+ todayDot: {
1850
+ position: "absolute",
1851
+ bottom: 2,
1852
+ width: 4,
1853
+ height: 4,
1854
+ borderRadius: 2,
1855
+ backgroundColor: colors.primary
1856
+ }
1857
+ });
1858
+ var DEFAULT_WIDTH2 = 308;
795
1859
  var sizeConfig2 = {
796
1860
  lg: {
797
1861
  height: 44,
@@ -915,13 +1979,13 @@ var Input = forwardRef(function Input2({
915
1979
  const rightIconNode = rightIcon ?? /* @__PURE__ */ jsx(ShowIcon, { size: metrics.iconSize, color: chrome.rightIconColor });
916
1980
  useApplyWebClassName(rootRef, className);
917
1981
  useApplyWebClassName(inputRef, inputClassName);
918
- return /* @__PURE__ */ jsxs(View, { ref: rootRef, style: [styles3.root, disabled && styles3.disabled, style], children: [
919
- showLabel && label ? /* @__PURE__ */ jsx(Text, { style: [styles3.label, { color: chrome.labelColor }], children: label }) : null,
1982
+ return /* @__PURE__ */ jsxs(View, { ref: rootRef, style: [styles6.root, disabled && styles6.disabled, style], children: [
1983
+ showLabel && label ? /* @__PURE__ */ jsx(Text, { style: [styles6.label, { color: chrome.labelColor }], children: label }) : null,
920
1984
  /* @__PURE__ */ jsxs(
921
1985
  View,
922
1986
  {
923
1987
  style: [
924
- styles3.field,
1988
+ styles6.field,
925
1989
  {
926
1990
  height: metrics.height,
927
1991
  borderRadius: metrics.borderRadius,
@@ -936,7 +2000,7 @@ var Input = forwardRef(function Input2({
936
2000
  fieldStyle
937
2001
  ],
938
2002
  children: [
939
- hasLeftIcon ? /* @__PURE__ */ jsx(View, { style: [styles3.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: leftIconNode }) : null,
2003
+ hasLeftIcon ? /* @__PURE__ */ jsx(View, { style: [styles6.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: leftIconNode }) : null,
940
2004
  /* @__PURE__ */ jsx(
941
2005
  TextInput,
942
2006
  {
@@ -960,11 +2024,11 @@ var Input = forwardRef(function Input2({
960
2024
  onBlur?.(event);
961
2025
  },
962
2026
  style: [
963
- styles3.input,
2027
+ styles6.input,
964
2028
  metrics.text,
965
2029
  { color: chrome.textColor },
966
- Platform.OS === "web" ? styles3.inputWeb : null,
967
- Platform.OS === "android" ? styles3.inputAndroid : null,
2030
+ Platform.OS === "web" ? styles6.inputWeb : null,
2031
+ Platform.OS === "android" ? styles6.inputAndroid : null,
968
2032
  inputStyle
969
2033
  ],
970
2034
  accessibilityLabel: resolvedAccessibilityLabel,
@@ -976,22 +2040,22 @@ var Input = forwardRef(function Input2({
976
2040
  {
977
2041
  onPress: onRightIconPress,
978
2042
  disabled,
979
- style: [styles3.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }],
2043
+ style: [styles6.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }],
980
2044
  accessibilityRole: "button",
981
2045
  accessibilityLabel: rightIconAccessibilityLabel,
982
2046
  hitSlop: 8,
983
2047
  children: rightIconNode
984
2048
  }
985
- ) : /* @__PURE__ */ jsx(View, { style: [styles3.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: rightIconNode }) : null
2049
+ ) : /* @__PURE__ */ jsx(View, { style: [styles6.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }], children: rightIconNode }) : null
986
2050
  ]
987
2051
  }
988
2052
  ),
989
- showHint && hint ? /* @__PURE__ */ jsx(Text, { style: [styles3.hint, { color: chrome.hintColor }], children: hint }) : null
2053
+ showHint && hint ? /* @__PURE__ */ jsx(Text, { style: [styles6.hint, { color: chrome.hintColor }], children: hint }) : null
990
2054
  ] });
991
2055
  });
992
- var styles3 = StyleSheet.create({
2056
+ var styles6 = StyleSheet.create({
993
2057
  root: {
994
- width: DEFAULT_WIDTH,
2058
+ width: DEFAULT_WIDTH2,
995
2059
  gap: 8,
996
2060
  alignSelf: "flex-start"
997
2061
  },
@@ -1026,13 +2090,13 @@ var styles3 = StyleSheet.create({
1026
2090
  ...inputTypography.hint
1027
2091
  }
1028
2092
  });
1029
- var DEFAULT_WIDTH2 = 308;
1030
- var TRIGGER_HEIGHT = 44;
1031
- var TRIGGER_RADIUS = 60;
1032
- var MENU_RADIUS = 24;
2093
+ var DEFAULT_WIDTH3 = 308;
2094
+ var TRIGGER_HEIGHT2 = 44;
2095
+ var TRIGGER_RADIUS2 = 60;
2096
+ var MENU_RADIUS3 = 24;
1033
2097
  var MENU_MAX_LIST_HEIGHT = 248;
1034
- var ITEM_RADIUS = 12;
1035
- var ICON_SIZE = 20;
2098
+ var ITEM_RADIUS2 = 12;
2099
+ var ICON_SIZE3 = 20;
1036
2100
  var CHIP_GAP = 6;
1037
2101
  var FALLBACK_ELLIPSIS_WIDTH = 20;
1038
2102
  function itemBackground(state) {
@@ -1105,25 +2169,25 @@ function MultiValueChips({ options, disabled, onRemove }) {
1105
2169
  const next = Math.ceil(event.nativeEvent.layout.width);
1106
2170
  setEllipsisWidth((current) => current === next ? current : next);
1107
2171
  };
1108
- return /* @__PURE__ */ jsxs(View, { style: styles4.multiValueRoot, children: [
1109
- /* @__PURE__ */ jsxs(View, { pointerEvents: "none", style: styles4.measureRow, children: [
2172
+ return /* @__PURE__ */ jsxs(View, { style: styles7.multiValueRoot, children: [
2173
+ /* @__PURE__ */ jsxs(View, { pointerEvents: "none", style: styles7.measureRow, children: [
1110
2174
  options.map((option) => /* @__PURE__ */ jsxs(
1111
2175
  View,
1112
2176
  {
1113
- style: styles4.chip,
2177
+ style: styles7.chip,
1114
2178
  onLayout: (event) => handleChipLayout(option.value, event),
1115
2179
  children: [
1116
- /* @__PURE__ */ jsx(Text, { style: styles4.chipLabel, numberOfLines: 1, children: option.label }),
1117
- /* @__PURE__ */ jsx(Text, { style: styles4.chipRemove, children: "\xD7" })
2180
+ /* @__PURE__ */ jsx(Text, { style: styles7.chipLabel, numberOfLines: 1, children: option.label }),
2181
+ /* @__PURE__ */ jsx(Text, { style: styles7.chipRemove, children: "\xD7" })
1118
2182
  ]
1119
2183
  },
1120
2184
  `measure-${option.value}`
1121
2185
  )),
1122
- /* @__PURE__ */ jsx(View, { style: styles4.ellipsis, onLayout: handleEllipsisLayout, children: /* @__PURE__ */ jsx(Text, { style: styles4.ellipsisText, children: "..." }) })
2186
+ /* @__PURE__ */ jsx(View, { style: styles7.ellipsis, onLayout: handleEllipsisLayout, children: /* @__PURE__ */ jsx(Text, { style: styles7.ellipsisText, children: "..." }) })
1123
2187
  ] }),
1124
- /* @__PURE__ */ jsxs(View, { style: styles4.chipsRow, onLayout: handleContainerLayout, children: [
1125
- visible.map((option) => /* @__PURE__ */ jsxs(View, { style: styles4.chip, children: [
1126
- /* @__PURE__ */ jsx(Text, { style: styles4.chipLabel, numberOfLines: 1, children: option.label }),
2188
+ /* @__PURE__ */ jsxs(View, { style: styles7.chipsRow, onLayout: handleContainerLayout, children: [
2189
+ visible.map((option) => /* @__PURE__ */ jsxs(View, { style: styles7.chip, children: [
2190
+ /* @__PURE__ */ jsx(Text, { style: styles7.chipLabel, numberOfLines: 1, children: option.label }),
1127
2191
  /* @__PURE__ */ jsx(
1128
2192
  Pressable,
1129
2193
  {
@@ -1135,11 +2199,11 @@ function MultiValueChips({ options, disabled, onRemove }) {
1135
2199
  hitSlop: 6,
1136
2200
  accessibilityRole: "button",
1137
2201
  accessibilityLabel: `Remove ${option.label}`,
1138
- children: /* @__PURE__ */ jsx(Text, { style: styles4.chipRemove, children: "\xD7" })
2202
+ children: /* @__PURE__ */ jsx(Text, { style: styles7.chipRemove, children: "\xD7" })
1139
2203
  }
1140
2204
  )
1141
2205
  ] }, option.value)),
1142
- hasOverflow ? /* @__PURE__ */ jsx(View, { style: styles4.ellipsis, children: /* @__PURE__ */ jsx(Text, { style: styles4.ellipsisText, children: "..." }) }) : null
2206
+ hasOverflow ? /* @__PURE__ */ jsx(View, { style: styles7.ellipsis, children: /* @__PURE__ */ jsx(Text, { style: styles7.ellipsisText, children: "..." }) }) : null
1143
2207
  ] })
1144
2208
  ] });
1145
2209
  }
@@ -1350,7 +2414,7 @@ var Select = forwardRef(
1350
2414
  const leftIconNode = leftIcon ?? /* @__PURE__ */ jsx(
1351
2415
  UserIcon,
1352
2416
  {
1353
- size: ICON_SIZE,
2417
+ size: ICON_SIZE3,
1354
2418
  color: error ? colors.red : isOpen ? colors.primary : colors.grey100
1355
2419
  }
1356
2420
  );
@@ -1366,11 +2430,11 @@ var Select = forwardRef(
1366
2430
  {
1367
2431
  ...rest,
1368
2432
  ref: setRootRef,
1369
- style: [styles4.root, isOpen && styles4.rootOpen, disabled && styles4.disabled, style],
2433
+ style: [styles7.root, isOpen && styles7.rootOpen, disabled && styles7.disabled, style],
1370
2434
  accessibilityState: { disabled, expanded: isOpen },
1371
2435
  children: [
1372
- showLabel && label ? /* @__PURE__ */ jsx(Text, { style: [styles4.label, { color: labelColor }], children: label }) : null,
1373
- /* @__PURE__ */ jsxs(View, { style: [styles4.triggerWrap, isOpen && styles4.triggerWrapOpen], children: [
2436
+ showLabel && label ? /* @__PURE__ */ jsx(Text, { style: [styles7.label, { color: labelColor }], children: label }) : null,
2437
+ /* @__PURE__ */ jsxs(View, { style: [styles7.triggerWrap, isOpen && styles7.triggerWrapOpen], children: [
1374
2438
  /* @__PURE__ */ jsxs(
1375
2439
  Pressable,
1376
2440
  {
@@ -1381,29 +2445,29 @@ var Select = forwardRef(
1381
2445
  accessibilityLabel: resolvedAccessibilityLabel,
1382
2446
  accessibilityState: { disabled, expanded: isOpen },
1383
2447
  style: [
1384
- styles4.trigger,
2448
+ styles7.trigger,
1385
2449
  {
1386
2450
  borderColor: triggerBorderColor,
1387
2451
  backgroundColor: colors.grey700
1388
2452
  }
1389
2453
  ],
1390
2454
  children: [
1391
- hasLeftIcon ? /* @__PURE__ */ jsx(View, { style: styles4.iconSlot, children: leftIconNode }) : null,
1392
- /* @__PURE__ */ jsx(View, { style: styles4.triggerContent, children: multiple && hasValue ? /* @__PURE__ */ jsx(
2455
+ hasLeftIcon ? /* @__PURE__ */ jsx(View, { style: styles7.iconSlot, children: leftIconNode }) : null,
2456
+ /* @__PURE__ */ jsx(View, { style: styles7.triggerContent, children: multiple && hasValue ? /* @__PURE__ */ jsx(
1393
2457
  MultiValueChips,
1394
2458
  {
1395
2459
  options: selectedOptions,
1396
2460
  disabled,
1397
2461
  onRemove: handleRemoveChip
1398
2462
  }
1399
- ) : /* @__PURE__ */ jsx(Text, { style: [styles4.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: multiple ? placeholder : singleLabel }) }),
1400
- /* @__PURE__ */ jsx(View, { style: [styles4.iconSlot, isOpen && styles4.chevronOpen], children: /* @__PURE__ */ jsx(ChevronDownIcon, { size: ICON_SIZE, color: colors.grey100 }) })
2463
+ ) : /* @__PURE__ */ jsx(Text, { style: [styles7.triggerText, { color: triggerTextColor }], numberOfLines: 1, children: multiple ? placeholder : singleLabel }) }),
2464
+ /* @__PURE__ */ jsx(View, { style: [styles7.iconSlot, isOpen && styles7.chevronOpen], children: /* @__PURE__ */ jsx(ChevronDownIcon, { size: ICON_SIZE3, color: isOpen ? colors.primary : colors.grey100 }) })
1401
2465
  ]
1402
2466
  }
1403
2467
  ),
1404
- isOpen ? /* @__PURE__ */ jsxs(View, { style: styles4.menu, children: [
1405
- showSearch ? /* @__PURE__ */ jsxs(View, { style: styles4.searchField, children: [
1406
- /* @__PURE__ */ jsx(View, { style: styles4.iconSlot, children: /* @__PURE__ */ jsx(SearchIcon, { size: ICON_SIZE, color: colors.grey100 }) }),
2468
+ isOpen ? /* @__PURE__ */ jsxs(View, { style: styles7.menu, children: [
2469
+ showSearch ? /* @__PURE__ */ jsxs(View, { style: styles7.searchField, children: [
2470
+ /* @__PURE__ */ jsx(View, { style: styles7.iconSlot, children: /* @__PURE__ */ jsx(SearchIcon, { size: ICON_SIZE3, color: colors.grey100 }) }),
1407
2471
  /* @__PURE__ */ jsx(
1408
2472
  TextInput,
1409
2473
  {
@@ -1414,9 +2478,9 @@ var Select = forwardRef(
1414
2478
  placeholder: searchPlaceholder,
1415
2479
  placeholderTextColor: colors.grey100,
1416
2480
  style: [
1417
- styles4.searchInput,
1418
- Platform.OS === "web" ? styles4.searchInputWeb : null,
1419
- Platform.OS === "android" ? styles4.searchInputAndroid : null
2481
+ styles7.searchInput,
2482
+ Platform.OS === "web" ? styles7.searchInputWeb : null,
2483
+ Platform.OS === "android" ? styles7.searchInputAndroid : null
1420
2484
  ],
1421
2485
  accessibilityLabel: searchPlaceholder
1422
2486
  }
@@ -1425,12 +2489,12 @@ var Select = forwardRef(
1425
2489
  /* @__PURE__ */ jsxs(
1426
2490
  ScrollView,
1427
2491
  {
1428
- style: styles4.optionList,
1429
- contentContainerStyle: styles4.optionListContent,
2492
+ style: styles7.optionList,
2493
+ contentContainerStyle: styles7.optionListContent,
1430
2494
  keyboardShouldPersistTaps: "handled",
1431
2495
  showsVerticalScrollIndicator: false,
1432
2496
  children: [
1433
- loading ? /* @__PURE__ */ jsx(View, { style: styles4.statusRow, children: /* @__PURE__ */ jsx(Text, { style: styles4.statusText, children: "Loading..." }) }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsx(View, { style: styles4.statusRow, children: /* @__PURE__ */ jsx(Text, { style: styles4.statusText, children: emptyText }) }) : null,
2497
+ loading ? /* @__PURE__ */ jsx(View, { style: styles7.statusRow, children: /* @__PURE__ */ jsx(Text, { style: styles7.statusText, children: "Loading..." }) }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsx(View, { style: styles7.statusRow, children: /* @__PURE__ */ jsx(Text, { style: styles7.statusText, children: emptyText }) }) : null,
1434
2498
  !loading && filteredOptions.map((option) => {
1435
2499
  const isSelected = selectedValues.includes(option.value);
1436
2500
  const isHovered = hoveredValue === option.value;
@@ -1447,14 +2511,14 @@ var Select = forwardRef(
1447
2511
  accessibilityRole: multiple ? "checkbox" : "button",
1448
2512
  accessibilityState: { selected: isSelected, checked: isSelected, disabled },
1449
2513
  style: [
1450
- styles4.item,
2514
+ styles7.item,
1451
2515
  {
1452
2516
  backgroundColor: itemBackground(visualState)
1453
2517
  }
1454
2518
  ],
1455
2519
  children: [
1456
- multiple ? /* @__PURE__ */ jsx(View, { pointerEvents: "none", style: styles4.itemCheckbox, children: /* @__PURE__ */ jsx(Checkbox, { value: isSelected, variant: "light" }) }) : null,
1457
- /* @__PURE__ */ jsx(Text, { style: styles4.itemLabel, numberOfLines: 1, children: option.label })
2520
+ multiple ? /* @__PURE__ */ jsx(View, { pointerEvents: "none", style: styles7.itemCheckbox, children: /* @__PURE__ */ jsx(Checkbox, { value: isSelected, variant: "light" }) }) : null,
2521
+ /* @__PURE__ */ jsx(Text, { style: styles7.itemLabel, numberOfLines: 1, children: option.label })
1458
2522
  ]
1459
2523
  },
1460
2524
  option.value
@@ -1465,15 +2529,15 @@ var Select = forwardRef(
1465
2529
  )
1466
2530
  ] }) : null
1467
2531
  ] }),
1468
- showHint && hint ? /* @__PURE__ */ jsx(Text, { style: [styles4.hint, { color: hintColor }], children: hint }) : null
2532
+ showHint && hint ? /* @__PURE__ */ jsx(Text, { style: [styles7.hint, { color: hintColor }], children: hint }) : null
1469
2533
  ]
1470
2534
  }
1471
2535
  );
1472
2536
  }
1473
2537
  );
1474
- var styles4 = StyleSheet.create({
2538
+ var styles7 = StyleSheet.create({
1475
2539
  root: {
1476
- width: DEFAULT_WIDTH2,
2540
+ width: DEFAULT_WIDTH3,
1477
2541
  gap: 8,
1478
2542
  alignSelf: "flex-start"
1479
2543
  },
@@ -1494,8 +2558,8 @@ var styles4 = StyleSheet.create({
1494
2558
  zIndex: 20
1495
2559
  },
1496
2560
  trigger: {
1497
- height: TRIGGER_HEIGHT,
1498
- borderRadius: TRIGGER_RADIUS,
2561
+ height: TRIGGER_HEIGHT2,
2562
+ borderRadius: TRIGGER_RADIUS2,
1499
2563
  borderWidth: 1,
1500
2564
  paddingVertical: 12,
1501
2565
  paddingHorizontal: 16,
@@ -1561,8 +2625,8 @@ var styles4 = StyleSheet.create({
1561
2625
  lineHeight: 16
1562
2626
  },
1563
2627
  iconSlot: {
1564
- width: ICON_SIZE,
1565
- height: ICON_SIZE,
2628
+ width: ICON_SIZE3,
2629
+ height: ICON_SIZE3,
1566
2630
  alignItems: "center",
1567
2631
  justifyContent: "center",
1568
2632
  flexShrink: 0
@@ -1577,7 +2641,7 @@ var styles4 = StyleSheet.create({
1577
2641
  right: 0,
1578
2642
  marginTop: 8,
1579
2643
  zIndex: 10,
1580
- borderRadius: MENU_RADIUS,
2644
+ borderRadius: MENU_RADIUS3,
1581
2645
  padding: 12,
1582
2646
  gap: 8,
1583
2647
  backgroundColor: colors.grey700,
@@ -1607,7 +2671,7 @@ var styles4 = StyleSheet.create({
1607
2671
  },
1608
2672
  searchField: {
1609
2673
  height: 40,
1610
- borderRadius: ITEM_RADIUS,
2674
+ borderRadius: ITEM_RADIUS2,
1611
2675
  paddingHorizontal: 12,
1612
2676
  flexDirection: "row",
1613
2677
  alignItems: "center",
@@ -1629,7 +2693,7 @@ var styles4 = StyleSheet.create({
1629
2693
  },
1630
2694
  item: {
1631
2695
  minHeight: 43,
1632
- borderRadius: ITEM_RADIUS,
2696
+ borderRadius: ITEM_RADIUS2,
1633
2697
  padding: 12,
1634
2698
  flexDirection: "row",
1635
2699
  alignItems: "center",
@@ -1647,7 +2711,7 @@ var styles4 = StyleSheet.create({
1647
2711
  ...selectTypography.hint
1648
2712
  }
1649
2713
  });
1650
- var DEFAULT_WIDTH3 = 308;
2714
+ var DEFAULT_WIDTH4 = 308;
1651
2715
  var FIELD_HEIGHT = 100;
1652
2716
  var FIELD_RADIUS = 16;
1653
2717
  var FIELD_PADDING_VERTICAL = 12;
@@ -1733,13 +2797,13 @@ var Textarea = forwardRef(function Textarea2({
1733
2797
  const resolvedAccessibilityLabel = accessibilityLabel ?? (showLabel ? void 0 : label);
1734
2798
  useApplyWebClassName(rootRef, className);
1735
2799
  useApplyWebClassName(inputRef, inputClassName);
1736
- return /* @__PURE__ */ jsxs(View, { ref: rootRef, style: [styles5.root, disabled && styles5.disabled, style], children: [
1737
- showLabel && label ? /* @__PURE__ */ jsx(Text, { style: [styles5.label, { color: chrome.labelColor }], children: label }) : null,
2800
+ return /* @__PURE__ */ jsxs(View, { ref: rootRef, style: [styles8.root, disabled && styles8.disabled, style], children: [
2801
+ showLabel && label ? /* @__PURE__ */ jsx(Text, { style: [styles8.label, { color: chrome.labelColor }], children: label }) : null,
1738
2802
  /* @__PURE__ */ jsx(
1739
2803
  View,
1740
2804
  {
1741
2805
  style: [
1742
- styles5.field,
2806
+ styles8.field,
1743
2807
  {
1744
2808
  borderColor: chrome.borderColor,
1745
2809
  backgroundColor: chrome.backgroundColor
@@ -1771,11 +2835,11 @@ var Textarea = forwardRef(function Textarea2({
1771
2835
  onBlur?.(event);
1772
2836
  },
1773
2837
  style: [
1774
- styles5.input,
2838
+ styles8.input,
1775
2839
  textareaTypography.field,
1776
2840
  { color: chrome.textColor },
1777
- Platform.OS === "web" ? styles5.inputWeb : null,
1778
- Platform.OS === "android" ? styles5.inputAndroid : null,
2841
+ Platform.OS === "web" ? styles8.inputWeb : null,
2842
+ Platform.OS === "android" ? styles8.inputAndroid : null,
1779
2843
  inputStyle
1780
2844
  ],
1781
2845
  accessibilityLabel: resolvedAccessibilityLabel,
@@ -1784,12 +2848,12 @@ var Textarea = forwardRef(function Textarea2({
1784
2848
  )
1785
2849
  }
1786
2850
  ),
1787
- showHint && hint ? /* @__PURE__ */ jsx(Text, { style: [styles5.hint, { color: chrome.hintColor }], children: hint }) : null
2851
+ showHint && hint ? /* @__PURE__ */ jsx(Text, { style: [styles8.hint, { color: chrome.hintColor }], children: hint }) : null
1788
2852
  ] });
1789
2853
  });
1790
- var styles5 = StyleSheet.create({
2854
+ var styles8 = StyleSheet.create({
1791
2855
  root: {
1792
- width: DEFAULT_WIDTH3,
2856
+ width: DEFAULT_WIDTH4,
1793
2857
  gap: 8,
1794
2858
  alignSelf: "flex-start"
1795
2859
  },
@@ -1887,13 +2951,13 @@ var Toggle = forwardRef(function Toggle2({
1887
2951
  accessibilityRole: "switch",
1888
2952
  accessibilityLabel: resolvedAccessibilityLabel,
1889
2953
  accessibilityState: { checked: isActive, disabled },
1890
- style: [styles6.pressable, disabled && styles6.disabled, style],
2954
+ style: [styles9.pressable, disabled && styles9.disabled, style],
1891
2955
  children: [
1892
2956
  /* @__PURE__ */ jsx(
1893
2957
  Animated.View,
1894
2958
  {
1895
2959
  style: [
1896
- styles6.track,
2960
+ styles9.track,
1897
2961
  {
1898
2962
  backgroundColor: trackBackgroundColor
1899
2963
  }
@@ -1902,7 +2966,7 @@ var Toggle = forwardRef(function Toggle2({
1902
2966
  Animated.View,
1903
2967
  {
1904
2968
  style: [
1905
- styles6.thumb,
2969
+ styles9.thumb,
1906
2970
  {
1907
2971
  transform: [{ translateX: thumbTranslateX }]
1908
2972
  }
@@ -1911,12 +2975,12 @@ var Toggle = forwardRef(function Toggle2({
1911
2975
  )
1912
2976
  }
1913
2977
  ),
1914
- labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsx(Text, { style: [styles6.label, labelStyle], children: labelContent }) : labelContent : null
2978
+ labelContent != null && labelContent !== false ? typeof labelContent === "string" || typeof labelContent === "number" ? /* @__PURE__ */ jsx(Text, { style: [styles9.label, labelStyle], children: labelContent }) : labelContent : null
1915
2979
  ]
1916
2980
  }
1917
2981
  );
1918
2982
  });
1919
- var styles6 = StyleSheet.create({
2983
+ var styles9 = StyleSheet.create({
1920
2984
  pressable: {
1921
2985
  flexDirection: "row",
1922
2986
  alignItems: "center",
@@ -1945,6 +3009,6 @@ var styles6 = StyleSheet.create({
1945
3009
  }
1946
3010
  });
1947
3011
 
1948
- export { ArrowRightIcon, BagIcon, BellIcon, BuildingIcon, Button, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, ChevronDownIcon, ClockIcon, FacebookIcon, HomeIcon, Icon, Input, InstagramIcon, KeyIcon, LinkedInIcon, MailIcon, NavigateIcon, PhoneIcon, SearchIcon, Select, ShowIcon, Textarea, Toggle, UserIcon, buttonTypography, colors, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, selectTypography, textareaTypography };
3012
+ export { ArrowRightIcon, Avatar, BagIcon, BellIcon, BuildingIcon, Button, CalendarIcon, CalendarOutlineIcon, CameraIcon, CheckBadgeIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ClockIcon, DatePicker, FacebookIcon, HeartIcon, HelpCircleIcon, HomeIcon, Icon, Input, InstagramIcon, KeyIcon, LayoutGridIcon, LinkedInIcon, LogOutIcon, MailIcon, MenuItem, NavigateIcon, PhoneIcon, SearchIcon, Select, SettingsIcon, ShowIcon, Textarea, Toggle, UserIcon, VideoIcon, avatarTypography, buttonTypography, colors, datePickerTypography, fonts, getIconsByGroup, grey, iconGroupNames, iconGroups, iconNames, icons, inputTypography, selectTypography, textareaTypography };
1949
3013
  //# sourceMappingURL=index.js.map
1950
3014
  //# sourceMappingURL=index.js.map