@korsolutions/ui 0.0.59 → 0.0.60

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 (61) hide show
  1. package/dist/module/components/menu/components/menu-checkbox-item.js +4 -4
  2. package/dist/module/components/menu/components/menu-checkbox-item.js.map +1 -1
  3. package/dist/module/components/menu/components/menu-content.js +1 -1
  4. package/dist/module/components/menu/components/menu-radio-item.js +4 -4
  5. package/dist/module/components/menu/components/menu-radio-item.js.map +1 -1
  6. package/dist/module/components/menu/components/menu-selection-indicator.js +29 -0
  7. package/dist/module/components/menu/components/menu-selection-indicator.js.map +1 -0
  8. package/dist/module/components/menu/variants/default.js +8 -17
  9. package/dist/module/components/menu/variants/default.js.map +1 -1
  10. package/dist/module/components/phone-input/components/country-picker.js +1 -1
  11. package/dist/module/components/popover/components/popover-content.js +2 -5
  12. package/dist/module/components/popover/components/popover-content.js.map +1 -1
  13. package/dist/module/components/portal/index.js +1 -0
  14. package/dist/module/components/portal/index.js.map +1 -1
  15. package/dist/module/components/portal/portal-offset.js +32 -0
  16. package/dist/module/components/portal/portal-offset.js.map +1 -0
  17. package/dist/module/components/portal/portal.js +39 -17
  18. package/dist/module/components/portal/portal.js.map +1 -1
  19. package/dist/module/components/select/components/select-content.js +3 -3
  20. package/dist/module/components/select/components/select-content.js.map +1 -1
  21. package/dist/module/components/textarea/variants/default.js +7 -0
  22. package/dist/module/components/textarea/variants/default.js.map +1 -1
  23. package/dist/module/hooks/use-relative-position.js +37 -28
  24. package/dist/module/hooks/use-relative-position.js.map +1 -1
  25. package/dist/module/themes/provider.js.map +1 -1
  26. package/dist/typescript/src/components/menu/components/menu-checkbox-item.d.ts.map +1 -1
  27. package/dist/typescript/src/components/menu/components/menu-radio-item.d.ts.map +1 -1
  28. package/dist/typescript/src/components/menu/components/menu-selection-indicator.d.ts +7 -0
  29. package/dist/typescript/src/components/menu/components/menu-selection-indicator.d.ts.map +1 -0
  30. package/dist/typescript/src/components/menu/types.d.ts +1 -3
  31. package/dist/typescript/src/components/menu/types.d.ts.map +1 -1
  32. package/dist/typescript/src/components/menu/variants/default.d.ts.map +1 -1
  33. package/dist/typescript/src/components/popover/components/popover-content.d.ts.map +1 -1
  34. package/dist/typescript/src/components/portal/index.d.ts +1 -0
  35. package/dist/typescript/src/components/portal/index.d.ts.map +1 -1
  36. package/dist/typescript/src/components/portal/portal-offset.d.ts +13 -0
  37. package/dist/typescript/src/components/portal/portal-offset.d.ts.map +1 -0
  38. package/dist/typescript/src/components/portal/portal.d.ts +3 -2
  39. package/dist/typescript/src/components/portal/portal.d.ts.map +1 -1
  40. package/dist/typescript/src/components/select/components/select-content.d.ts.map +1 -1
  41. package/dist/typescript/src/components/textarea/variants/default.d.ts.map +1 -1
  42. package/dist/typescript/src/hooks/use-relative-position.d.ts +4 -7
  43. package/dist/typescript/src/hooks/use-relative-position.d.ts.map +1 -1
  44. package/dist/typescript/src/themes/provider.d.ts +3 -0
  45. package/dist/typescript/src/themes/provider.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/components/menu/components/menu-checkbox-item.tsx +3 -4
  48. package/src/components/menu/components/menu-content.tsx +1 -1
  49. package/src/components/menu/components/menu-radio-item.tsx +3 -7
  50. package/src/components/menu/components/menu-selection-indicator.tsx +26 -0
  51. package/src/components/menu/types.ts +1 -6
  52. package/src/components/menu/variants/default.tsx +7 -16
  53. package/src/components/phone-input/components/country-picker.tsx +1 -1
  54. package/src/components/popover/components/popover-content.tsx +1 -4
  55. package/src/components/portal/index.ts +1 -0
  56. package/src/components/portal/portal-offset.ts +28 -0
  57. package/src/components/portal/portal.tsx +54 -22
  58. package/src/components/select/components/select-content.tsx +14 -5
  59. package/src/components/textarea/variants/default.tsx +7 -0
  60. package/src/hooks/use-relative-position.ts +53 -41
  61. package/src/themes/provider.tsx +3 -0
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState } from "react";
4
- import { Pressable, Text } from "react-native";
4
+ import { Pressable } from "react-native";
5
5
  import { useMenu } from "../context.js";
6
6
  import { useOrganizedChildren } from "../use-organized-children.js";
7
+ import { MenuSelectionIndicator } from "./menu-selection-indicator.js";
7
8
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  const calculateState = (isHovered, disabled) => {
9
10
  if (disabled) return "disabled";
@@ -42,9 +43,8 @@ export function MenuCheckboxItem(props) {
42
43
  disabled: props.disabled
43
44
  },
44
45
  style: composedStyle,
45
- children: [organizedChildren, /*#__PURE__*/_jsx(Text, {
46
- style: menu.styles?.checkboxIndicator,
47
- children: props.checked ? "✓" : " "
46
+ children: [organizedChildren, /*#__PURE__*/_jsx(MenuSelectionIndicator, {
47
+ isSelected: props.checked
48
48
  })]
49
49
  });
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","Pressable","Text","useMenu","useOrganizedChildren","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","calculateState","isHovered","disabled","MenuCheckboxItem","props","menu","setIsHovered","state","composedStyle","styles","checkboxItem","default","style","handlePress","onCheckedChange","checked","closeOnPress","setIsOpen","organizedChildren","children","render","onPress","onPointerEnter","onPointerLeave","accessibilityRole","accessibilityState","checkboxIndicator"],"sourceRoot":"../../../../../src","sources":["components/menu/components/menu-checkbox-item.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,SAAS,EAAEC,IAAI,QAAwC,cAAc;AAC9E,SAASC,OAAO,QAAQ,eAAY;AAEpC,SAASC,oBAAoB,QAAQ,8BAA2B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYjE,MAAMC,cAAc,GAAGA,CACrBC,SAAkB,EAClBC,QAAkB,KACQ;EAC1B,IAAIA,QAAQ,EAAE,OAAO,UAAU;EAC/B,IAAID,SAAS,EAAE,OAAO,SAAS;EAC/B,OAAO,SAAS;AAClB,CAAC;AAED,OAAO,SAASE,gBAAgBA,CAACC,KAA4B,EAAE;EAC7D,MAAMC,IAAI,GAAGb,OAAO,CAAC,CAAC;EACtB,MAAM,CAACS,SAAS,EAAEK,YAAY,CAAC,GAAGjB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMkB,KAAK,GAAGP,cAAc,CAACC,SAAS,EAAEG,KAAK,CAACF,QAAQ,CAAC;EAEvD,MAAMM,aAAa,GAAG,CACpBH,IAAI,CAACI,MAAM,EAAEC,YAAY,EAAEC,OAAO,EAClCN,IAAI,CAACI,MAAM,EAAEC,YAAY,GAAGH,KAAK,CAAC,EAClCH,KAAK,CAACQ,KAAK,CACZ;EAED,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIT,KAAK,CAACF,QAAQ,EAAE;IACpBE,KAAK,CAACU,eAAe,CAAC,CAACV,KAAK,CAACW,OAAO,CAAC;IACrC,IAAIX,KAAK,CAACY,YAAY,EAAE;MACtBX,IAAI,CAACY,SAAS,CAAC,KAAK,CAAC;IACvB;EACF,CAAC;EAED,MAAMC,iBAAiB,GAAGzB,oBAAoB,CAACW,KAAK,CAACe,QAAQ,CAAC;EAE9D,IAAIf,KAAK,CAACgB,MAAM,EAAE;IAChB,oBACEvB,IAAA,CAAAF,SAAA;MAAAwB,QAAA,EACGf,KAAK,CAACgB,MAAM,CAAC;QACZ,GAAGhB,KAAK;QACRe,QAAQ,EAAED;MACZ,CAAC;IAAC,CACF,CAAC;EAEP;EAEA,oBACEnB,KAAA,CAACT,SAAS;IACR+B,OAAO,EAAER,WAAY;IACrBS,cAAc,EAAEA,CAAA,KAAMhB,YAAY,CAAC,IAAI,CAAE;IACzCiB,cAAc,EAAEA,CAAA,KAAMjB,YAAY,CAAC,KAAK,CAAE;IAC1CJ,QAAQ,EAAEE,KAAK,CAACF,QAAS;IACzBsB,iBAAiB,EAAC,UAAU;IAC5BC,kBAAkB,EAAE;MAAEV,OAAO,EAAEX,KAAK,CAACW,OAAO;MAAEb,QAAQ,EAAEE,KAAK,CAACF;IAAS,CAAE;IACzEU,KAAK,EAAEJ,aAAc;IAAAW,QAAA,GAEpBD,iBAAiB,eAClBrB,IAAA,CAACN,IAAI;MAACqB,KAAK,EAAEP,IAAI,CAACI,MAAM,EAAEiB,iBAAkB;MAAAP,QAAA,EACzCf,KAAK,CAACW,OAAO,GAAG,GAAG,GAAG;IAAG,CACtB,CAAC;EAAA,CACE,CAAC;AAEhB","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","Pressable","useMenu","useOrganizedChildren","MenuSelectionIndicator","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","calculateState","isHovered","disabled","MenuCheckboxItem","props","menu","setIsHovered","state","composedStyle","styles","checkboxItem","default","style","handlePress","onCheckedChange","checked","closeOnPress","setIsOpen","organizedChildren","children","render","onPress","onPointerEnter","onPointerLeave","accessibilityRole","accessibilityState","isSelected"],"sourceRoot":"../../../../../src","sources":["components/menu/components/menu-checkbox-item.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,SAAS,QAAwC,cAAc;AACxE,SAASC,OAAO,QAAQ,eAAY;AAEpC,SAASC,oBAAoB,QAAQ,8BAA2B;AAChE,SAASC,sBAAsB,QAAQ,+BAA4B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYpE,MAAMC,cAAc,GAAGA,CACrBC,SAAkB,EAClBC,QAAkB,KACQ;EAC1B,IAAIA,QAAQ,EAAE,OAAO,UAAU;EAC/B,IAAID,SAAS,EAAE,OAAO,SAAS;EAC/B,OAAO,SAAS;AAClB,CAAC;AAED,OAAO,SAASE,gBAAgBA,CAACC,KAA4B,EAAE;EAC7D,MAAMC,IAAI,GAAGd,OAAO,CAAC,CAAC;EACtB,MAAM,CAACU,SAAS,EAAEK,YAAY,CAAC,GAAGjB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMkB,KAAK,GAAGP,cAAc,CAACC,SAAS,EAAEG,KAAK,CAACF,QAAQ,CAAC;EAEvD,MAAMM,aAAa,GAAG,CACpBH,IAAI,CAACI,MAAM,EAAEC,YAAY,EAAEC,OAAO,EAClCN,IAAI,CAACI,MAAM,EAAEC,YAAY,GAAGH,KAAK,CAAC,EAClCH,KAAK,CAACQ,KAAK,CACZ;EAED,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIT,KAAK,CAACF,QAAQ,EAAE;IACpBE,KAAK,CAACU,eAAe,CAAC,CAACV,KAAK,CAACW,OAAO,CAAC;IACrC,IAAIX,KAAK,CAACY,YAAY,EAAE;MACtBX,IAAI,CAACY,SAAS,CAAC,KAAK,CAAC;IACvB;EACF,CAAC;EAED,MAAMC,iBAAiB,GAAG1B,oBAAoB,CAACY,KAAK,CAACe,QAAQ,CAAC;EAE9D,IAAIf,KAAK,CAACgB,MAAM,EAAE;IAChB,oBACEvB,IAAA,CAAAF,SAAA;MAAAwB,QAAA,EACGf,KAAK,CAACgB,MAAM,CAAC;QACZ,GAAGhB,KAAK;QACRe,QAAQ,EAAED;MACZ,CAAC;IAAC,CACF,CAAC;EAEP;EAEA,oBACEnB,KAAA,CAACT,SAAS;IACR+B,OAAO,EAAER,WAAY;IACrBS,cAAc,EAAEA,CAAA,KAAMhB,YAAY,CAAC,IAAI,CAAE;IACzCiB,cAAc,EAAEA,CAAA,KAAMjB,YAAY,CAAC,KAAK,CAAE;IAC1CJ,QAAQ,EAAEE,KAAK,CAACF,QAAS;IACzBsB,iBAAiB,EAAC,UAAU;IAC5BC,kBAAkB,EAAE;MAAEV,OAAO,EAAEX,KAAK,CAACW,OAAO;MAAEb,QAAQ,EAAEE,KAAK,CAACF;IAAS,CAAE;IACzEU,KAAK,EAAEJ,aAAc;IAAAW,QAAA,GAEpBD,iBAAiB,eAClBrB,IAAA,CAACJ,sBAAsB;MAACiC,UAAU,EAAEtB,KAAK,CAACW;IAAQ,CAAE,CAAC;EAAA,CAC5C,CAAC;AAEhB","ignoreList":[]}
@@ -13,7 +13,7 @@ export function MenuContent(props) {
13
13
  contentLayout: menu.contentLayout,
14
14
  alignOffset: 0,
15
15
  preferredSide: "bottom",
16
- sideOffset: 0
16
+ sideOffset: 2
17
17
  });
18
18
  const composedStyle = [positionStyle, menu.styles?.content, props.style];
19
19
  const Component = props.render ?? View;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState } from "react";
4
- import { Pressable, View } from "react-native";
4
+ import { Pressable } from "react-native";
5
5
  import { useMenu, useMenuRadioGroup } from "../context.js";
6
6
  import { useOrganizedChildren } from "../use-organized-children.js";
7
+ import { MenuSelectionIndicator } from "./menu-selection-indicator.js";
7
8
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  const calculateState = (isHovered, isSelected, disabled) => {
9
10
  if (disabled) return "disabled";
@@ -18,7 +19,6 @@ export function MenuRadioItem(props) {
18
19
  const isSelected = radioGroup.value === props.value;
19
20
  const state = calculateState(isHovered, isSelected, props.disabled);
20
21
  const composedStyle = [menu.styles?.radioItem?.default, menu.styles?.radioItem?.[state], props.style];
21
- const indicatorStyle = [menu.styles?.radioIndicator?.default, isSelected ? menu.styles?.radioIndicator?.selected : undefined];
22
22
  const handlePress = () => {
23
23
  if (props.disabled) return;
24
24
  radioGroup.onValueChange(props.value);
@@ -46,8 +46,8 @@ export function MenuRadioItem(props) {
46
46
  disabled: props.disabled
47
47
  },
48
48
  style: composedStyle,
49
- children: [organizedChildren, /*#__PURE__*/_jsx(View, {
50
- style: indicatorStyle
49
+ children: [organizedChildren, /*#__PURE__*/_jsx(MenuSelectionIndicator, {
50
+ isSelected: isSelected
51
51
  })]
52
52
  });
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","Pressable","View","useMenu","useMenuRadioGroup","useOrganizedChildren","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","calculateState","isHovered","isSelected","disabled","MenuRadioItem","props","menu","radioGroup","setIsHovered","value","state","composedStyle","styles","radioItem","default","style","indicatorStyle","radioIndicator","selected","undefined","handlePress","onValueChange","closeOnPress","setIsOpen","organizedChildren","children","render","onPress","onPointerEnter","onPointerLeave","accessibilityRole","accessibilityState","checked"],"sourceRoot":"../../../../../src","sources":["components/menu/components/menu-radio-item.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,SAAS,EAAEC,IAAI,QAAwC,cAAc;AAC9E,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,eAAY;AAEvD,SAASC,oBAAoB,QAAQ,8BAA2B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWjE,MAAMC,cAAc,GAAGA,CACrBC,SAAkB,EAClBC,UAAmB,EACnBC,QAAkB,KACK;EACvB,IAAIA,QAAQ,EAAE,OAAO,UAAU;EAC/B,IAAID,UAAU,EAAE,OAAO,UAAU;EACjC,IAAID,SAAS,EAAE,OAAO,SAAS;EAC/B,OAAO,SAAS;AAClB,CAAC;AAED,OAAO,SAASG,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,IAAI,GAAGf,OAAO,CAAC,CAAC;EACtB,MAAMgB,UAAU,GAAGf,iBAAiB,CAAC,CAAC;EACtC,MAAM,CAACS,SAAS,EAAEO,YAAY,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMc,UAAU,GAAGK,UAAU,CAACE,KAAK,KAAKJ,KAAK,CAACI,KAAK;EACnD,MAAMC,KAAK,GAAGV,cAAc,CAACC,SAAS,EAAEC,UAAU,EAAEG,KAAK,CAACF,QAAQ,CAAC;EAEnE,MAAMQ,aAAa,GAAG,CACpBL,IAAI,CAACM,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAC/BR,IAAI,CAACM,MAAM,EAAEC,SAAS,GAAGH,KAAK,CAAC,EAC/BL,KAAK,CAACU,KAAK,CACZ;EAED,MAAMC,cAAc,GAAG,CACrBV,IAAI,CAACM,MAAM,EAAEK,cAAc,EAAEH,OAAO,EACpCZ,UAAU,GAAGI,IAAI,CAACM,MAAM,EAAEK,cAAc,EAAEC,QAAQ,GAAGC,SAAS,CAC/D;EAED,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIf,KAAK,CAACF,QAAQ,EAAE;IACpBI,UAAU,CAACc,aAAa,CAAChB,KAAK,CAACI,KAAK,CAAC;IACrC,IAAIJ,KAAK,CAACiB,YAAY,EAAE;MACtBhB,IAAI,CAACiB,SAAS,CAAC,KAAK,CAAC;IACvB;EACF,CAAC;EAED,MAAMC,iBAAiB,GAAG/B,oBAAoB,CAACY,KAAK,CAACoB,QAAQ,CAAC;EAE9D,IAAIpB,KAAK,CAACqB,MAAM,EAAE;IAChB,oBACE7B,IAAA,CAAAF,SAAA;MAAA8B,QAAA,EACGpB,KAAK,CAACqB,MAAM,CAAC;QACZ,GAAGrB,KAAK;QACRoB,QAAQ,EAAED;MACZ,CAAC;IAAC,CACF,CAAC;EAEP;EAEA,oBACEzB,KAAA,CAACV,SAAS;IACRsC,OAAO,EAAEP,WAAY;IACrBQ,cAAc,EAAEA,CAAA,KAAMpB,YAAY,CAAC,IAAI,CAAE;IACzCqB,cAAc,EAAEA,CAAA,KAAMrB,YAAY,CAAC,KAAK,CAAE;IAC1CL,QAAQ,EAAEE,KAAK,CAACF,QAAS;IACzB2B,iBAAiB,EAAC,OAAO;IACzBC,kBAAkB,EAAE;MAAEC,OAAO,EAAE9B,UAAU;MAAEC,QAAQ,EAAEE,KAAK,CAACF;IAAS,CAAE;IACtEY,KAAK,EAAEJ,aAAc;IAAAc,QAAA,GAEpBD,iBAAiB,eAClB3B,IAAA,CAACP,IAAI;MAACyB,KAAK,EAAEC;IAAe,CAAE,CAAC;EAAA,CACtB,CAAC;AAEhB","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","Pressable","useMenu","useMenuRadioGroup","useOrganizedChildren","MenuSelectionIndicator","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","calculateState","isHovered","isSelected","disabled","MenuRadioItem","props","menu","radioGroup","setIsHovered","value","state","composedStyle","styles","radioItem","default","style","handlePress","onValueChange","closeOnPress","setIsOpen","organizedChildren","children","render","onPress","onPointerEnter","onPointerLeave","accessibilityRole","accessibilityState","checked"],"sourceRoot":"../../../../../src","sources":["components/menu/components/menu-radio-item.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,SAAS,QAAwC,cAAc;AACxE,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,eAAY;AAEvD,SAASC,oBAAoB,QAAQ,8BAA2B;AAChE,SAASC,sBAAsB,QAAQ,+BAA4B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWpE,MAAMC,cAAc,GAAGA,CACrBC,SAAkB,EAClBC,UAAmB,EACnBC,QAAkB,KACK;EACvB,IAAIA,QAAQ,EAAE,OAAO,UAAU;EAC/B,IAAID,UAAU,EAAE,OAAO,UAAU;EACjC,IAAID,SAAS,EAAE,OAAO,SAAS;EAC/B,OAAO,SAAS;AAClB,CAAC;AAED,OAAO,SAASG,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,IAAI,GAAGhB,OAAO,CAAC,CAAC;EACtB,MAAMiB,UAAU,GAAGhB,iBAAiB,CAAC,CAAC;EACtC,MAAM,CAACU,SAAS,EAAEO,YAAY,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMc,UAAU,GAAGK,UAAU,CAACE,KAAK,KAAKJ,KAAK,CAACI,KAAK;EACnD,MAAMC,KAAK,GAAGV,cAAc,CAACC,SAAS,EAAEC,UAAU,EAAEG,KAAK,CAACF,QAAQ,CAAC;EAEnE,MAAMQ,aAAa,GAAG,CACpBL,IAAI,CAACM,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAC/BR,IAAI,CAACM,MAAM,EAAEC,SAAS,GAAGH,KAAK,CAAC,EAC/BL,KAAK,CAACU,KAAK,CACZ;EAED,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIX,KAAK,CAACF,QAAQ,EAAE;IACpBI,UAAU,CAACU,aAAa,CAACZ,KAAK,CAACI,KAAK,CAAC;IACrC,IAAIJ,KAAK,CAACa,YAAY,EAAE;MACtBZ,IAAI,CAACa,SAAS,CAAC,KAAK,CAAC;IACvB;EACF,CAAC;EAED,MAAMC,iBAAiB,GAAG5B,oBAAoB,CAACa,KAAK,CAACgB,QAAQ,CAAC;EAE9D,IAAIhB,KAAK,CAACiB,MAAM,EAAE;IAChB,oBACEzB,IAAA,CAAAF,SAAA;MAAA0B,QAAA,EACGhB,KAAK,CAACiB,MAAM,CAAC;QACZ,GAAGjB,KAAK;QACRgB,QAAQ,EAAED;MACZ,CAAC;IAAC,CACF,CAAC;EAEP;EAEA,oBACErB,KAAA,CAACV,SAAS;IACRkC,OAAO,EAAEP,WAAY;IACrBQ,cAAc,EAAEA,CAAA,KAAMhB,YAAY,CAAC,IAAI,CAAE;IACzCiB,cAAc,EAAEA,CAAA,KAAMjB,YAAY,CAAC,KAAK,CAAE;IAC1CL,QAAQ,EAAEE,KAAK,CAACF,QAAS;IACzBuB,iBAAiB,EAAC,OAAO;IACzBC,kBAAkB,EAAE;MAAEC,OAAO,EAAE1B,UAAU;MAAEC,QAAQ,EAAEE,KAAK,CAACF;IAAS,CAAE;IACtEY,KAAK,EAAEJ,aAAc;IAAAU,QAAA,GAEpBD,iBAAiB,eAClBvB,IAAA,CAACJ,sBAAsB;MAACS,UAAU,EAAEA;IAAW,CAAE,CAAC;EAAA,CACzC,CAAC;AAEhB","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ import React from "react";
4
+ import { Text, View } from "react-native";
5
+ import { useComponentsConfig } from "../../../themes/index.js";
6
+ import { useMenu } from "../context.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export function MenuSelectionIndicator({
9
+ isSelected
10
+ }) {
11
+ const config = useComponentsConfig();
12
+ const menu = useMenu();
13
+ const SelectionIcon = config?.menu?.selectionIcon;
14
+ if (!isSelected) {
15
+ return /*#__PURE__*/_jsx(View, {
16
+ style: menu.styles?.selectionIndicator
17
+ });
18
+ }
19
+ if (SelectionIcon) {
20
+ return /*#__PURE__*/_jsx(SelectionIcon, {
21
+ ...menu.styles?.selectionIndicator
22
+ });
23
+ }
24
+ return /*#__PURE__*/_jsx(Text, {
25
+ style: menu.styles?.selectionIndicator,
26
+ children: "\u2713"
27
+ });
28
+ }
29
+ //# sourceMappingURL=menu-selection-indicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Text","View","useComponentsConfig","useMenu","jsx","_jsx","MenuSelectionIndicator","isSelected","config","menu","SelectionIcon","selectionIcon","style","styles","selectionIndicator","children"],"sourceRoot":"../../../../../src","sources":["components/menu/components/menu-selection-indicator.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,mBAAmB,QAAQ,0BAAiB;AACrD,SAASC,OAAO,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMrC,OAAO,SAASC,sBAAsBA,CAAC;EACrCC;AAC2B,CAAC,EAAE;EAC9B,MAAMC,MAAM,GAAGN,mBAAmB,CAAC,CAAC;EACpC,MAAMO,IAAI,GAAGN,OAAO,CAAC,CAAC;EACtB,MAAMO,aAAa,GAAGF,MAAM,EAAEC,IAAI,EAAEE,aAAa;EAEjD,IAAI,CAACJ,UAAU,EAAE;IACf,oBAAOF,IAAA,CAACJ,IAAI;MAACW,KAAK,EAAEH,IAAI,CAACI,MAAM,EAAEC;IAAmB,CAAE,CAAC;EACzD;EAEA,IAAIJ,aAAa,EAAE;IACjB,oBAAOL,IAAA,CAACK,aAAa;MAAA,GAAKD,IAAI,CAACI,MAAM,EAAEC;IAAkB,CAAG,CAAC;EAC/D;EAEA,oBAAOT,IAAA,CAACL,IAAI;IAACY,KAAK,EAAEH,IAAI,CAACI,MAAM,EAAEC,kBAAmB;IAAAC,QAAA,EAAC;EAAC,CAAM,CAAC;AAC/D","ignoreList":[]}
@@ -74,13 +74,16 @@ export const useMenuVariantDefault = () => {
74
74
  opacity: 0.5
75
75
  }
76
76
  },
77
- checkboxIndicator: {
78
- fontSize: fontSize * 0.75,
79
- fontWeight: "bold",
77
+ selectionIndicator: {
80
78
  color: colors.foreground,
79
+ fontSize: fontSize,
81
80
  width: fontSize,
82
- textAlign: "center",
83
- marginLeft: "auto"
81
+ size: fontSize,
82
+ strokeWidth: 2,
83
+ marginLeft: "auto",
84
+ style: {
85
+ marginLeft: "auto"
86
+ }
84
87
  },
85
88
  radioItem: {
86
89
  default: {
@@ -97,18 +100,6 @@ export const useMenuVariantDefault = () => {
97
100
  opacity: 0.5
98
101
  }
99
102
  },
100
- radioIndicator: {
101
- default: {
102
- width: 8,
103
- height: 8,
104
- borderRadius: 4,
105
- backgroundColor: "transparent",
106
- marginLeft: "auto"
107
- },
108
- selected: {
109
- backgroundColor: colors.foreground
110
- }
111
- },
112
103
  shortcut: {
113
104
  fontSize: fontSize * 0.75,
114
105
  fontFamily: fontFamily,
@@ -1 +1 @@
1
- {"version":3,"names":["useThemedStyles","useMenuVariantDefault","colors","radius","fontFamily","fontSize","overlay","content","overflow","backgroundColor","surface","borderRadius","borderWidth","borderColor","border","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","item","default","flexDirection","alignItems","paddingVertical","paddingHorizontal","gap","hovered","muted","itemText","color","foreground","itemIcon","size","label","fontWeight","mutedForeground","separator","marginVertical","marginHorizontal","checkboxItem","disabled","opacity","checkboxIndicator","textAlign","marginLeft","radioItem","radioIndicator","selected","shortcut"],"sourceRoot":"../../../../../src","sources":["components/menu/variants/default.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useThemedStyles","useMenuVariantDefault","colors","radius","fontFamily","fontSize","overlay","content","overflow","backgroundColor","surface","borderRadius","borderWidth","borderColor","border","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","item","default","flexDirection","alignItems","paddingVertical","paddingHorizontal","gap","hovered","muted","itemText","color","foreground","itemIcon","size","label","fontWeight","mutedForeground","separator","marginVertical","marginHorizontal","checkboxItem","disabled","opacity","selectionIndicator","strokeWidth","marginLeft","style","radioItem","shortcut"],"sourceRoot":"../../../../../src","sources":["components/menu/variants/default.tsx"],"mappings":"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","ignoreList":[]}
@@ -45,7 +45,7 @@ export function CountryPicker() {
45
45
  contentLayout,
46
46
  alignOffset: 0,
47
47
  preferredSide: "bottom",
48
- sideOffset: 4
48
+ sideOffset: 2
49
49
  });
50
50
  const countryButtonStyles = StyleSheet.flatten([styles.countryButton?.default, styles.countryButton?.[state]]);
51
51
  const countryButtonTextStyles = StyleSheet.flatten([styles.countryButtonText?.default, styles.countryButtonText?.[state]]);
@@ -1,22 +1,19 @@
1
1
  "use strict";
2
2
 
3
- import { useRelativePosition } from "../../../hooks/use-relative-position.js";
4
- import { useSafeAreaInsets } from "../../../safe-area/index.js";
5
3
  import React from "react";
6
4
  import { View } from "react-native";
5
+ import { useRelativePosition } from "../../../hooks/use-relative-position.js";
7
6
  import { usePopover } from "../context.js";
8
7
  import { jsx as _jsx } from "react/jsx-runtime";
9
8
  export function PopoverContent(props) {
10
9
  const popover = usePopover();
11
- const insets = useSafeAreaInsets();
12
10
  const positionStyle = useRelativePosition({
13
11
  align: "start",
14
12
  triggerPosition: popover.triggerPosition,
15
13
  contentLayout: popover.contentLayout,
16
14
  alignOffset: 0,
17
15
  preferredSide: "bottom",
18
- sideOffset: 0,
19
- insets
16
+ sideOffset: 0
20
17
  });
21
18
  const composedStyle = [positionStyle, popover.styles?.content, props.style];
22
19
  const Component = props.render ?? View;
@@ -1 +1 @@
1
- {"version":3,"names":["useRelativePosition","useSafeAreaInsets","React","View","usePopover","jsx","_jsx","PopoverContent","props","popover","insets","positionStyle","align","triggerPosition","contentLayout","alignOffset","preferredSide","sideOffset","composedStyle","styles","content","style","Component","render","onLayout","e","setContentLayout","nativeEvent","layout","pointerEvents"],"sourceRoot":"../../../../../src","sources":["components/popover/components/popover-content.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,yCAAsC;AAC1E,SAASC,iBAAiB,QAAQ,6BAAoB;AACtD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAAyBC,IAAI,QAAwB,cAAc;AACnE,SAASC,UAAU,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUxC,OAAO,SAASC,cAAcA,CAACC,KAA0B,EAAE;EACzD,MAAMC,OAAO,GAAGL,UAAU,CAAC,CAAC;EAC5B,MAAMM,MAAM,GAAGT,iBAAiB,CAAC,CAAC;EAElC,MAAMU,aAAa,GAAGX,mBAAmB,CAAC;IACxCY,KAAK,EAAE,OAAO;IACdC,eAAe,EAAEJ,OAAO,CAACI,eAAe;IACxCC,aAAa,EAAEL,OAAO,CAACK,aAAa;IACpCC,WAAW,EAAE,CAAC;IACdC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE,CAAC;IACbP;EACF,CAAC,CAAC;EAEF,MAAMQ,aAAa,GAAG,CAACP,aAAa,EAAEF,OAAO,CAACU,MAAM,EAAEC,OAAO,EAAEZ,KAAK,CAACa,KAAK,CAAC;EAE3E,MAAMC,SAAS,GAAGd,KAAK,CAACe,MAAM,IAAIpB,IAAI;EACtC,oBACEG,IAAA,CAACgB,SAAS;IAAA,GACJd,KAAK;IACTgB,QAAQ,EAAGC,CAAC,IAAK;MACfhB,OAAO,CAACiB,gBAAgB,CAACD,CAAC,CAACE,WAAW,CAACC,MAAM,CAAC;IAChD,CAAE;IACFC,aAAa,EAAC,UAAU;IACxBR,KAAK,EAAEH;EAAc,CACtB,CAAC;AAEN","ignoreList":[]}
1
+ {"version":3,"names":["React","View","useRelativePosition","usePopover","jsx","_jsx","PopoverContent","props","popover","positionStyle","align","triggerPosition","contentLayout","alignOffset","preferredSide","sideOffset","composedStyle","styles","content","style","Component","render","onLayout","e","setContentLayout","nativeEvent","layout","pointerEvents"],"sourceRoot":"../../../../../src","sources":["components/popover/components/popover-content.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAyBC,IAAI,QAAwB,cAAc;AACnE,SAASC,mBAAmB,QAAQ,yCAAsC;AAC1E,SAASC,UAAU,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUxC,OAAO,SAASC,cAAcA,CAACC,KAA0B,EAAE;EACzD,MAAMC,OAAO,GAAGL,UAAU,CAAC,CAAC;EAE5B,MAAMM,aAAa,GAAGP,mBAAmB,CAAC;IACxCQ,KAAK,EAAE,OAAO;IACdC,eAAe,EAAEH,OAAO,CAACG,eAAe;IACxCC,aAAa,EAAEJ,OAAO,CAACI,aAAa;IACpCC,WAAW,EAAE,CAAC;IACdC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,MAAMC,aAAa,GAAG,CAACP,aAAa,EAAED,OAAO,CAACS,MAAM,EAAEC,OAAO,EAAEX,KAAK,CAACY,KAAK,CAAC;EAE3E,MAAMC,SAAS,GAAGb,KAAK,CAACc,MAAM,IAAIpB,IAAI;EACtC,oBACEI,IAAA,CAACe,SAAS;IAAA,GACJb,KAAK;IACTe,QAAQ,EAAGC,CAAC,IAAK;MACff,OAAO,CAACgB,gBAAgB,CAACD,CAAC,CAACE,WAAW,CAACC,MAAM,CAAC;IAChD,CAAE;IACFC,aAAa,EAAC,UAAU;IACxBR,KAAK,EAAEH;EAAc,CACtB,CAAC;AAEN","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  export * from "./portal";
4
+ export * from "./portal-offset.js";
4
5
  export * from "./portal.constants.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/portal/index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,uBAAoB","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/portal/index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,oBAAiB;AAC/B,cAAc,uBAAoB","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ import { createContext, useContext } from "react";
4
+ // null means the offset is not measure yet but will be
5
+ // undefined means the offset is not available and will never be (e.g. on web or ios when FullWindowOverlay is used)
6
+ export const PortalOffsetContext = /*#__PURE__*/createContext(undefined);
7
+ export function usePortalOffset() {
8
+ const value = useContext(PortalOffsetContext);
9
+ if (value === undefined) {
10
+ return {
11
+ value: {
12
+ x: 0,
13
+ y: 0
14
+ },
15
+ isLoaded: true
16
+ };
17
+ }
18
+ if (value === null) {
19
+ return {
20
+ value: {
21
+ x: 0,
22
+ y: 0
23
+ },
24
+ isLoaded: false
25
+ };
26
+ }
27
+ return {
28
+ value,
29
+ isLoaded: true
30
+ };
31
+ }
32
+ //# sourceMappingURL=portal-offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","PortalOffsetContext","undefined","usePortalOffset","value","x","y","isLoaded"],"sourceRoot":"../../../../src","sources":["components/portal/portal-offset.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AASjD;AACA;AACA,OAAO,MAAMC,mBAAmB,gBAAGF,aAAa,CAAoBG,SAAS,CAAC;AAO9E,OAAO,SAASC,eAAeA,CAAA,EAA0B;EACvD,MAAMC,KAAK,GAAGJ,UAAU,CAACC,mBAAmB,CAAC;EAC7C,IAAIG,KAAK,KAAKF,SAAS,EAAE;IACvB,OAAO;MAAEE,KAAK,EAAE;QAAEC,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAC;MAAEC,QAAQ,EAAE;IAAK,CAAC;EAClD;EACA,IAAIH,KAAK,KAAK,IAAI,EAAE;IAClB,OAAO;MAAEA,KAAK,EAAE;QAAEC,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAC;MAAEC,QAAQ,EAAE;IAAM,CAAC;EACnD;EACA,OAAO;IAAEH,KAAK;IAAEG,QAAQ,EAAE;EAAK,CAAC;AAClC","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useSyncExternalStore } from "react";
3
+ import React, { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
4
4
  import { Platform, View } from "react-native";
5
+ import { PortalOffsetContext } from "./portal-offset.js";
5
6
  import { DEFAULT_PORTAL_HOST } from "./portal.constants.js";
6
7
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
7
8
  const store = {
@@ -36,29 +37,50 @@ function removePortal(hostName, name) {
36
37
  store.map = next;
37
38
  emit();
38
39
  }
40
+ function DefaultContainer(props) {
41
+ const containerRef = useRef(null);
42
+ const [offset, setOffset] = useState(null);
43
+ const onLayout = useCallback(() => {
44
+ containerRef.current?.measureInWindow((pageX, pageY) => {
45
+ setOffset(prev => {
46
+ if (prev?.x === pageX && prev?.y === pageY) return prev;
47
+ return {
48
+ x: pageX,
49
+ y: pageY
50
+ };
51
+ });
52
+ });
53
+ }, []);
54
+ return /*#__PURE__*/_jsx(View, {
55
+ ref: containerRef,
56
+ onLayout: onLayout,
57
+ style: {
58
+ position: "absolute",
59
+ top: 0,
60
+ left: 0,
61
+ right: 0,
62
+ bottom: 0,
63
+ elevation: 999,
64
+ zIndex: 999,
65
+ pointerEvents: "box-none"
66
+ },
67
+ children: /*#__PURE__*/_jsx(PortalOffsetContext.Provider, {
68
+ value: offset,
69
+ children: props.children
70
+ })
71
+ });
72
+ }
39
73
  export function PortalHost({
40
74
  name = DEFAULT_PORTAL_HOST,
41
75
  container
42
76
  }) {
43
77
  const map = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
44
78
  const portalMap = map.get(name) ?? new Map();
45
- if (portalMap.size === 0) return null;
46
- const Container = Platform.select({
47
- default: props => /*#__PURE__*/_jsx(View, {
48
- ...props,
49
- style: {
50
- position: "absolute",
51
- top: 0,
52
- left: 0,
53
- right: 0,
54
- bottom: 0,
55
- elevation: 999,
56
- zIndex: 999,
57
- pointerEvents: "box-none"
58
- }
59
- }),
79
+ const Container = useMemo(() => Platform.select({
80
+ default: DefaultContainer,
60
81
  ...container
61
- });
82
+ }), [container]);
83
+ if (portalMap.size === 0) return null;
62
84
  return /*#__PURE__*/_jsx(Container, {
63
85
  children: Array.from(portalMap.values())
64
86
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useSyncExternalStore","Platform","View","DEFAULT_PORTAL_HOST","jsx","_jsx","Fragment","_Fragment","store","map","Map","set","listeners","Set","emit","cb","getSnapshot","subscribe","add","delete","updatePortal","hostName","name","children","next","portal","get","removePortal","PortalHost","container","portalMap","size","Container","select","default","props","style","position","top","left","right","bottom","elevation","zIndex","pointerEvents","Array","from","values","Portal"],"sourceRoot":"../../../../src","sources":["components/portal/portal.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","useSyncExternalStore","Platform","View","PortalOffsetContext","DEFAULT_PORTAL_HOST","jsx","_jsx","Fragment","_Fragment","store","map","Map","set","listeners","Set","emit","cb","getSnapshot","subscribe","add","delete","updatePortal","hostName","name","children","next","portal","get","removePortal","DefaultContainer","props","containerRef","offset","setOffset","onLayout","current","measureInWindow","pageX","pageY","prev","x","y","ref","style","position","top","left","right","bottom","elevation","zIndex","pointerEvents","Provider","value","PortalHost","container","portalMap","Container","select","default","size","Array","from","values","Portal"],"sourceRoot":"../../../../src","sources":["components/portal/portal.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import { useRelativePosition } from "../../../hooks/use-relative-position.js";
4
- import { calculateComposedStyles } from "../../../utils/calculate-styles.js";
5
3
  import React from "react";
6
4
  import { View } from "react-native";
5
+ import { useRelativePosition } from "../../../hooks/use-relative-position.js";
6
+ import { calculateComposedStyles } from "../../../utils/calculate-styles.js";
7
7
  import { useSelect } from "../context.js";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  export function SelectContent(props) {
@@ -15,7 +15,7 @@ export function SelectContent(props) {
15
15
  contentLayout: select.contentLayout,
16
16
  alignOffset: 0,
17
17
  preferredSide: "bottom",
18
- sideOffset: 0
18
+ sideOffset: 2
19
19
  });
20
20
  const Component = props.render ?? View;
21
21
  return /*#__PURE__*/_jsx(Component, {
@@ -1 +1 @@
1
- {"version":3,"names":["useRelativePosition","calculateComposedStyles","React","View","useSelect","jsx","_jsx","SelectContent","props","select","composedStyles","styles","state","style","positionStyle","align","triggerPosition","contentLayout","alignOffset","preferredSide","sideOffset","Component","render","width","onLayout","e","setContentLayout","nativeEvent","layout","pointerEvents","children"],"sourceRoot":"../../../../../src","sources":["components/select/components/select-content.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,yCAAsC;AAC1E,SAASC,uBAAuB,QAAQ,oCAAiC;AACzE,OAAOC,KAAK,MAAM,OAAO;AACzB,SAAyBC,IAAI,QAAwB,cAAc;AACnE,SAASC,SAAS,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUvC,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,MAAM,GAAGL,SAAS,CAAC,CAAC;EAC1B,MAAMM,cAAc,GAAGT,uBAAuB,CAACQ,MAAM,CAACE,MAAM,EAAEF,MAAM,CAACG,KAAK,EAAE,SAAS,EAAEJ,KAAK,CAACK,KAAK,CAAC;EAEnG,MAAMC,aAAa,GAAGd,mBAAmB,CAAC;IACxCe,KAAK,EAAE,OAAO;IACdC,eAAe,EAAEP,MAAM,CAACO,eAAe;IACvCC,aAAa,EAAER,MAAM,CAACQ,aAAa;IACnCC,WAAW,EAAE,CAAC;IACdC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGb,KAAK,CAACc,MAAM,IAAInB,IAAI;EACtC,oBACEG,IAAA,CAACe,SAAS;IACRR,KAAK,EAAE,CAACC,aAAa,EAAEJ,cAAc,EAAE;MAAEa,KAAK,EAAEd,MAAM,CAACO,eAAe,CAACO;IAAM,CAAC,CAAE;IAChFC,QAAQ,EAAGC,CAAC,IAAK;MACfhB,MAAM,CAACiB,gBAAgB,CAACD,CAAC,CAACE,WAAW,CAACC,MAAM,CAAC;IAC/C,CAAE;IACFC,aAAa,EAAC,UAAU;IAAAC,QAAA,EAEvBtB,KAAK,CAACsB;EAAQ,CACN,CAAC;AAEhB","ignoreList":[]}
1
+ {"version":3,"names":["React","View","useRelativePosition","calculateComposedStyles","useSelect","jsx","_jsx","SelectContent","props","select","composedStyles","styles","state","style","positionStyle","align","triggerPosition","contentLayout","alignOffset","preferredSide","sideOffset","Component","render","width","onLayout","e","setContentLayout","nativeEvent","layout","pointerEvents","children"],"sourceRoot":"../../../../../src","sources":["components/select/components/select-content.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAyBC,IAAI,QAAwB,cAAc;AACnE,SAASC,mBAAmB,QAAQ,yCAAsC;AAC1E,SAASC,uBAAuB,QAAQ,oCAAiC;AACzE,SAASC,SAAS,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUvC,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,MAAM,GAAGL,SAAS,CAAC,CAAC;EAC1B,MAAMM,cAAc,GAAGP,uBAAuB,CAC5CM,MAAM,CAACE,MAAM,EACbF,MAAM,CAACG,KAAK,EACZ,SAAS,EACTJ,KAAK,CAACK,KACR,CAAC;EAED,MAAMC,aAAa,GAAGZ,mBAAmB,CAAC;IACxCa,KAAK,EAAE,OAAO;IACdC,eAAe,EAAEP,MAAM,CAACO,eAAe;IACvCC,aAAa,EAAER,MAAM,CAACQ,aAAa;IACnCC,WAAW,EAAE,CAAC;IACdC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGb,KAAK,CAACc,MAAM,IAAIrB,IAAI;EACtC,oBACEK,IAAA,CAACe,SAAS;IACRR,KAAK,EAAE,CACLC,aAAa,EACbJ,cAAc,EACd;MAAEa,KAAK,EAAEd,MAAM,CAACO,eAAe,CAACO;IAAM,CAAC,CACvC;IACFC,QAAQ,EAAGC,CAAC,IAAK;MACfhB,MAAM,CAACiB,gBAAgB,CAACD,CAAC,CAACE,WAAW,CAACC,MAAM,CAAC;IAC/C,CAAE;IACFC,aAAa,EAAC,UAAU;IAAAC,QAAA,EAEvBtB,KAAK,CAACsB;EAAQ,CACN,CAAC;AAEhB","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import { Platform } from "react-native";
3
4
  import { useThemedStyles } from "../../../utils/use-themed-styles.js";
4
5
  export function useTextareaVariantDefault() {
5
6
  return useThemedStyles(({
@@ -19,6 +20,12 @@ export function useTextareaVariantDefault() {
19
20
  paddingVertical: 12,
20
21
  paddingHorizontal: 16,
21
22
  outlineWidth: 0,
23
+ ...Platform.select({
24
+ default: {},
25
+ web: {
26
+ outline: "none"
27
+ }
28
+ }),
22
29
  fontFamily,
23
30
  fontSize,
24
31
  minHeight: 120,
@@ -1 +1 @@
1
- {"version":3,"names":["useThemedStyles","useTextareaVariantDefault","colors","radius","fontFamily","fontSize","default","placeholderTextColor","mutedForeground","selectionColor","primary","style","borderWidth","borderColor","border","borderRadius","backgroundColor","surface","paddingVertical","paddingHorizontal","outlineWidth","minHeight","textAlignVertical","color","foreground","focused","disabled","muted"],"sourceRoot":"../../../../../src","sources":["components/textarea/variants/default.tsx"],"mappings":";;AACA,SAASA,eAAe,QAAQ,qCAAkC;AAElE,OAAO,SAASC,yBAAyBA,CAAA,EAAmB;EAC1D,OAAOD,eAAe,CACpB,CAAC;IAAEE,MAAM;IAAEC,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,MAAsB;IAC7DC,OAAO,EAAE;MACPC,oBAAoB,EAAEL,MAAM,CAACM,eAAe;MAC5CC,cAAc,EAAEP,MAAM,CAACQ,OAAO;MAC9BC,KAAK,EAAE;QACLC,WAAW,EAAE,CAAC;QACdC,WAAW,EAAEX,MAAM,CAACY,MAAM;QAC1BC,YAAY,EAAEZ,MAAM;QACpBa,eAAe,EAAEd,MAAM,CAACe,OAAO;QAC/BC,eAAe,EAAE,EAAE;QACnBC,iBAAiB,EAAE,EAAE;QACrBC,YAAY,EAAE,CAAC;QACfhB,UAAU;QACVC,QAAQ;QACRgB,SAAS,EAAE,GAAG;QACdC,iBAAiB,EAAE,KAAK;QACxBC,KAAK,EAAErB,MAAM,CAACsB;MAChB;IACF,CAAC;IACDC,OAAO,EAAE;MACPd,KAAK,EAAE;QACLE,WAAW,EAAEX,MAAM,CAACQ;MACtB;IACF,CAAC;IACDgB,QAAQ,EAAE;MACRf,KAAK,EAAE;QACLY,KAAK,EAAErB,MAAM,CAACM,eAAe;QAC7BQ,eAAe,EAAEd,MAAM,CAACyB;MAC1B;IACF;EACF,CAAC,CACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["Platform","useThemedStyles","useTextareaVariantDefault","colors","radius","fontFamily","fontSize","default","placeholderTextColor","mutedForeground","selectionColor","primary","style","borderWidth","borderColor","border","borderRadius","backgroundColor","surface","paddingVertical","paddingHorizontal","outlineWidth","select","web","outline","minHeight","textAlignVertical","color","foreground","focused","disabled","muted"],"sourceRoot":"../../../../../src","sources":["components/textarea/variants/default.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,SAASC,eAAe,QAAQ,qCAAkC;AAElE,OAAO,SAASC,yBAAyBA,CAAA,EAAmB;EAC1D,OAAOD,eAAe,CACpB,CAAC;IAAEE,MAAM;IAAEC,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,MAAsB;IAC7DC,OAAO,EAAE;MACPC,oBAAoB,EAAEL,MAAM,CAACM,eAAe;MAC5CC,cAAc,EAAEP,MAAM,CAACQ,OAAO;MAC9BC,KAAK,EAAE;QACLC,WAAW,EAAE,CAAC;QACdC,WAAW,EAAEX,MAAM,CAACY,MAAM;QAC1BC,YAAY,EAAEZ,MAAM;QACpBa,eAAe,EAAEd,MAAM,CAACe,OAAO;QAC/BC,eAAe,EAAE,EAAE;QACnBC,iBAAiB,EAAE,EAAE;QACrBC,YAAY,EAAE,CAAC;QACf,GAAGrB,QAAQ,CAACsB,MAAM,CAAC;UACjBf,OAAO,EAAE,CAAC,CAAC;UACXgB,GAAG,EAAE;YACHC,OAAO,EAAE;UACX;QACF,CAAC,CAAC;QACFnB,UAAU;QACVC,QAAQ;QACRmB,SAAS,EAAE,GAAG;QACdC,iBAAiB,EAAE,KAAK;QACxBC,KAAK,EAAExB,MAAM,CAACyB;MAChB;IACF,CAAC;IACDC,OAAO,EAAE;MACPjB,KAAK,EAAE;QACLE,WAAW,EAAEX,MAAM,CAACQ;MACtB;IACF,CAAC;IACDmB,QAAQ,EAAE;MACRlB,KAAK,EAAE;QACLe,KAAK,EAAExB,MAAM,CAACM,eAAe;QAC7BQ,eAAe,EAAEd,MAAM,CAAC4B;MAC1B;IACF;EACF,CAAC,CACH,CAAC;AACH","ignoreList":[]}
@@ -2,18 +2,22 @@
2
2
 
3
3
  import { useMemo } from "react";
4
4
  import { useWindowDimensions } from "react-native";
5
+ import { usePortalOffset } from "../components/portal/index.js";
6
+ import { useSafeAreaInsets } from "../safe-area/index.js";
5
7
  export function useRelativePosition({
6
8
  align,
7
9
  triggerPosition,
8
10
  contentLayout,
9
11
  alignOffset,
10
- insets,
11
12
  sideOffset,
12
13
  preferredSide
13
14
  }) {
14
15
  const dimensions = useWindowDimensions();
16
+ const insets = useSafeAreaInsets();
17
+ const portalOffset = usePortalOffset();
15
18
  return useMemo(() => {
16
- if (!triggerPosition || !contentLayout) {
19
+ const hasLayout = triggerPosition.width > 0 && triggerPosition.height > 0 && contentLayout.width > 0 && contentLayout.height > 0 && portalOffset.isLoaded;
20
+ if (!hasLayout) {
17
21
  return {
18
22
  position: "absolute",
19
23
  opacity: 0,
@@ -21,18 +25,29 @@ export function useRelativePosition({
21
25
  zIndex: -9999999
22
26
  };
23
27
  }
28
+
29
+ // Adjust trigger position to account for the portal container's
30
+ // offset from the window origin. measureInWindow returns window-relative
31
+ // coordinates, but the portal content is positioned relative to its
32
+ // container which may not be at the window origin (e.g. on Android
33
+ // where the status bar offsets the view hierarchy).
34
+ const adjustedTriggerPosition = {
35
+ ...triggerPosition,
36
+ pageX: triggerPosition.pageX - portalOffset.value.x,
37
+ pageY: triggerPosition.pageY - portalOffset.value.y
38
+ };
24
39
  const style = getContentStyle({
25
40
  align,
26
41
  contentLayout,
27
42
  preferredSide,
28
- triggerPosition,
43
+ triggerPosition: adjustedTriggerPosition,
29
44
  alignOffset,
30
45
  insets,
31
46
  sideOffset,
32
47
  dimensions
33
48
  });
34
49
  return style;
35
- }, [align, preferredSide, alignOffset, insets, triggerPosition, contentLayout, dimensions.width, dimensions.height, sideOffset]);
50
+ }, [align, preferredSide, alignOffset, insets, triggerPosition, contentLayout, dimensions.width, dimensions.height, sideOffset, portalOffset]);
36
51
  }
37
52
  export const DEFAULT_LAYOUT = {
38
53
  x: 0,
@@ -48,29 +63,28 @@ export const DEFAULT_POSITION = {
48
63
  };
49
64
  function getSide({
50
65
  preferredSide,
51
- insetTop,
52
- insetBottom,
66
+ insets,
53
67
  positionTop,
54
68
  positionBottom,
55
69
  contentLayout,
56
70
  dimensions
57
71
  }) {
58
72
  if (preferredSide === "bottom") {
59
- const spaceBelow = dimensions.height - insetBottom - positionBottom;
73
+ const spaceBelow = dimensions.height - insets.bottom - positionBottom;
60
74
  if (spaceBelow >= contentLayout.height) {
61
75
  return "bottom";
62
76
  }
63
- const spaceAbove = positionTop - insetTop;
77
+ const spaceAbove = positionTop - insets.top;
64
78
  if (spaceAbove > spaceBelow) {
65
79
  return "top";
66
80
  }
67
81
  return "bottom";
68
82
  }
69
- const spaceAbove = positionTop - insetTop;
83
+ const spaceAbove = positionTop - insets.top;
70
84
  if (spaceAbove >= contentLayout.height) {
71
85
  return "top";
72
86
  }
73
- const spaceBelow = dimensions.height - insetBottom - positionBottom;
87
+ const spaceBelow = dimensions.height - insets.bottom - positionBottom;
74
88
  if (spaceBelow > spaceAbove) {
75
89
  return "bottom";
76
90
  }
@@ -84,14 +98,11 @@ function getSidePosition({
84
98
  insets,
85
99
  dimensions
86
100
  }) {
87
- const insetTop = insets?.top ?? 0;
88
- const insetBottom = insets?.bottom ?? 0;
89
101
  const positionTop = triggerPosition?.pageY - sideOffset - contentLayout.height;
90
102
  const positionBottom = triggerPosition.pageY + triggerPosition.height + sideOffset;
91
103
  const side = getSide({
92
104
  preferredSide,
93
- insetTop,
94
- insetBottom,
105
+ insets,
95
106
  positionTop,
96
107
  positionBottom,
97
108
  contentLayout,
@@ -99,11 +110,11 @@ function getSidePosition({
99
110
  });
100
111
  if (side === "top") {
101
112
  return {
102
- top: Math.min(Math.max(insetTop, positionTop), dimensions.height - insetBottom - contentLayout.height)
113
+ top: Math.min(Math.max(insets.top, positionTop), dimensions.height - insets.bottom - contentLayout.height)
103
114
  };
104
115
  }
105
116
  return {
106
- top: Math.min(dimensions.height - insetBottom - contentLayout.height, positionBottom)
117
+ top: Math.min(dimensions.height - insets.bottom - contentLayout.height, positionBottom)
107
118
  };
108
119
  }
109
120
  function getAlignPosition({
@@ -114,21 +125,19 @@ function getAlignPosition({
114
125
  insets,
115
126
  dimensions
116
127
  }) {
117
- const insetLeft = insets?.left ?? 0;
118
- const insetRight = insets?.right ?? 0;
119
- const maxContentWidth = dimensions.width - insetLeft - insetRight;
128
+ const maxContentWidth = dimensions.width - insets.left - insets.right;
120
129
  const contentWidth = Math.min(contentLayout.width, maxContentWidth);
121
- let left = getLeftPosition(align, triggerPosition.pageX, triggerPosition.width, contentWidth, alignOffset, insetLeft, insetRight, dimensions);
122
- const doesCollide = left < insetLeft || left + contentWidth > dimensions.width - insetRight;
130
+ let left = getLeftPosition(align, triggerPosition.pageX, triggerPosition.width, contentWidth, alignOffset, insets, dimensions);
131
+ const doesCollide = left < insets.left || left + contentWidth > dimensions.width - insets.right;
123
132
  if (doesCollide) {
124
- const spaceLeft = left - insetLeft;
125
- const spaceRight = dimensions.width - insetRight - (left + contentWidth);
133
+ const spaceLeft = left - insets.left;
134
+ const spaceRight = dimensions.width - insets.right - (left + contentWidth);
126
135
  if (spaceLeft > spaceRight && spaceLeft >= contentWidth) {
127
- left = insetLeft;
136
+ left = insets.left;
128
137
  } else if (spaceRight >= contentWidth) {
129
- left = dimensions.width - insetRight - contentWidth;
138
+ left = dimensions.width - insets.right - contentWidth;
130
139
  } else {
131
- const centeredPosition = Math.max(insetLeft, (dimensions.width - contentWidth - insetRight) / 2);
140
+ const centeredPosition = Math.max(insets.left, (dimensions.width - contentWidth - insets.right) / 2);
132
141
  left = centeredPosition;
133
142
  }
134
143
  }
@@ -137,7 +146,7 @@ function getAlignPosition({
137
146
  maxWidth: maxContentWidth
138
147
  };
139
148
  }
140
- function getLeftPosition(align, triggerPageX, triggerWidth, contentWidth, alignOffset, insetLeft, insetRight, dimensions) {
149
+ function getLeftPosition(align, triggerPageX, triggerWidth, contentWidth, alignOffset, insets, dimensions) {
141
150
  let left = 0;
142
151
  if (align === "start") {
143
152
  left = triggerPageX;
@@ -148,7 +157,7 @@ function getLeftPosition(align, triggerPageX, triggerWidth, contentWidth, alignO
148
157
  if (align === "end") {
149
158
  left = triggerPageX + triggerWidth - contentWidth;
150
159
  }
151
- return Math.max(insetLeft, Math.min(left + alignOffset, dimensions.width - contentWidth - insetRight));
160
+ return Math.max(insets.left, Math.min(left + alignOffset, dimensions.width - contentWidth - insets.right));
152
161
  }
153
162
  function getContentStyle(args) {
154
163
  return {