@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 +1 @@
1
- {"version":3,"names":["useMemo","useWindowDimensions","useRelativePosition","align","triggerPosition","contentLayout","alignOffset","insets","sideOffset","preferredSide","dimensions","position","opacity","top","height","zIndex","style","getContentStyle","width","DEFAULT_LAYOUT","x","y","DEFAULT_POSITION","pageX","pageY","getSide","insetTop","insetBottom","positionTop","positionBottom","spaceBelow","spaceAbove","getSidePosition","bottom","side","Math","min","max","getAlignPosition","insetLeft","left","insetRight","right","maxContentWidth","contentWidth","getLeftPosition","doesCollide","spaceLeft","spaceRight","centeredPosition","maxWidth","triggerPageX","triggerWidth","args"],"sourceRoot":"../../../src","sources":["hooks/use-relative-position.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useWindowDimensions","usePortalOffset","useSafeAreaInsets","useRelativePosition","align","triggerPosition","contentLayout","alignOffset","sideOffset","preferredSide","dimensions","insets","portalOffset","hasLayout","width","height","isLoaded","position","opacity","top","zIndex","adjustedTriggerPosition","pageX","value","x","pageY","y","style","getContentStyle","DEFAULT_LAYOUT","DEFAULT_POSITION","getSide","positionTop","positionBottom","spaceBelow","bottom","spaceAbove","getSidePosition","side","Math","min","max","getAlignPosition","maxContentWidth","left","right","contentWidth","getLeftPosition","doesCollide","spaceLeft","spaceRight","centeredPosition","maxWidth","triggerPageX","triggerWidth","args"],"sourceRoot":"../../../src","sources":["hooks/use-relative-position.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useEffect","useState","useColorScheme","defaultThemeAssets","mergeThemeAssets","jsx","_jsx","ThemeContext","ThemeProvider","props","children","theme","components","systemColorScheme","colorScheme","setColorScheme","themeAssets","colors","Provider","value","radius","fontFamily","letterSpacing","fontSize","useTheme","context","Error","useComponentsConfig"],"sourceRoot":"../../../src","sources":["themes/provider.tsx"],"mappings":";;AAAA,SACEA,aAAa,EAEbC,UAAU,EACVC,SAAS,EACTC,QAAQ,QACH,OAAO;AACd,SAASC,cAAc,QAAQ,cAAc;AAI7C,SAASC,kBAAkB,QAAQ,oBAAW;AAU9C,SAASC,gBAAgB,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAmB3C,MAAMC,YAAY,gBAAGT,aAAa,CAAsB,IAAI,CAAC;AAO7D,OAAO,MAAMU,aAAa,GAAIC,KAAyB,IAAK;EAC1D,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGH,KAAK;EAE7C,MAAMI,iBAAiB,GAAGX,cAAc,CAAC,CAAC;EAC1C,MAAM,CAACY,WAAW,EAAEC,cAAc,CAAC,GAAGd,QAAQ,CAC5CY,iBAAiB,KAAK,MAAM,GAAG,MAAM,GAAG,OAC1C,CAAC;EAED,MAAMG,WAAW,GAAGL,KAAK,GACrBP,gBAAgB,CAACD,kBAAkB,EAAEQ,KAAK,CAAC,GAC3CR,kBAAkB;EAEtB,MAAMc,MAAM,GAAGD,WAAW,CAACC,MAAM,CAACH,WAAW,CAAC;EAE9Cd,SAAS,CAAC,MAAM;IACd,IAAIa,iBAAiB,EAAE;MACrBE,cAAc,CAACF,iBAAiB,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjE;EACF,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,oBACEP,IAAA,CAACC,YAAY,CAACW,QAAQ;IACpBC,KAAK,EAAE;MACLL,WAAW;MACXC,cAAc;MACdE,MAAM;MACNG,MAAM,EAAEJ,WAAW,CAACI,MAAM;MAC1BC,UAAU,EAAEL,WAAW,CAACK,UAAU;MAClCC,aAAa,EAAEN,WAAW,CAACM,aAAa;MACxCC,QAAQ,EAAEP,WAAW,CAACO,QAAQ;MAC9BX;IACF,CAAE;IAAAF,QAAA,EAEDA;EAAQ,CACY,CAAC;AAE5B,CAAC;AAED,OAAO,MAAMc,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAMC,OAAO,GAAG1B,UAAU,CAACQ,YAAY,CAAC;EACxC,IAAI,CAACkB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;EACjE;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,OAAO,MAAME,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMF,OAAO,GAAG1B,UAAU,CAACQ,YAAY,CAAC;EACxC,IAAI,CAACkB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,yDAAyD,CAAC;EAC5E;EACA,OAAOD,OAAO,CAACb,UAAU;AAC3B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useEffect","useState","useColorScheme","defaultThemeAssets","mergeThemeAssets","jsx","_jsx","ThemeContext","ThemeProvider","props","children","theme","components","systemColorScheme","colorScheme","setColorScheme","themeAssets","colors","Provider","value","radius","fontFamily","letterSpacing","fontSize","useTheme","context","Error","useComponentsConfig"],"sourceRoot":"../../../src","sources":["themes/provider.tsx"],"mappings":";;AAAA,SACEA,aAAa,EAEbC,UAAU,EACVC,SAAS,EACTC,QAAQ,QACH,OAAO;AACd,SAASC,cAAc,QAAQ,cAAc;AAI7C,SAASC,kBAAkB,QAAQ,oBAAW;AAU9C,SAASC,gBAAgB,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAsB3C,MAAMC,YAAY,gBAAGT,aAAa,CAAsB,IAAI,CAAC;AAO7D,OAAO,MAAMU,aAAa,GAAIC,KAAyB,IAAK;EAC1D,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGH,KAAK;EAE7C,MAAMI,iBAAiB,GAAGX,cAAc,CAAC,CAAC;EAC1C,MAAM,CAACY,WAAW,EAAEC,cAAc,CAAC,GAAGd,QAAQ,CAC5CY,iBAAiB,KAAK,MAAM,GAAG,MAAM,GAAG,OAC1C,CAAC;EAED,MAAMG,WAAW,GAAGL,KAAK,GACrBP,gBAAgB,CAACD,kBAAkB,EAAEQ,KAAK,CAAC,GAC3CR,kBAAkB;EAEtB,MAAMc,MAAM,GAAGD,WAAW,CAACC,MAAM,CAACH,WAAW,CAAC;EAE9Cd,SAAS,CAAC,MAAM;IACd,IAAIa,iBAAiB,EAAE;MACrBE,cAAc,CAACF,iBAAiB,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjE;EACF,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,oBACEP,IAAA,CAACC,YAAY,CAACW,QAAQ;IACpBC,KAAK,EAAE;MACLL,WAAW;MACXC,cAAc;MACdE,MAAM;MACNG,MAAM,EAAEJ,WAAW,CAACI,MAAM;MAC1BC,UAAU,EAAEL,WAAW,CAACK,UAAU;MAClCC,aAAa,EAAEN,WAAW,CAACM,aAAa;MACxCC,QAAQ,EAAEP,WAAW,CAACO,QAAQ;MAC9BX;IACF,CAAE;IAAAF,QAAA,EAEDA;EAAQ,CACY,CAAC;AAE5B,CAAC;AAED,OAAO,MAAMc,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAMC,OAAO,GAAG1B,UAAU,CAACQ,YAAY,CAAC;EACxC,IAAI,CAACkB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;EACjE;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,OAAO,MAAME,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMF,OAAO,GAAG1B,UAAU,CAACQ,YAAY,CAAC;EACxC,IAAI,CAACkB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,yDAAyD,CAAC;EAC5E;EACA,OAAOD,OAAO,CAACb,UAAU;AAC3B,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"menu-checkbox-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-checkbox-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK/E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAWD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,qBAgD5D"}
1
+ {"version":3,"file":"menu-checkbox-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-checkbox-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAWD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,qBA8C5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"menu-radio-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-radio-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK/E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC;IACxD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAaD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBAqDtD"}
1
+ {"version":3,"file":"menu-radio-item.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-radio-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC;IACxD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAaD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBAgDtD"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface MenuSelectionIndicatorProps {
3
+ isSelected: boolean;
4
+ }
5
+ export declare function MenuSelectionIndicator({ isSelected, }: MenuSelectionIndicatorProps): React.JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=menu-selection-indicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-selection-indicator.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/components/menu-selection-indicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,2BAA2B;IACnC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,GACX,EAAE,2BAA2B,qBAc7B"}
@@ -5,7 +5,6 @@ import type { MenuOverlayProps } from "./components/menu-overlay";
5
5
  export type MenuButtonState = "default" | "hovered";
6
6
  export type MenuCheckboxItemState = "default" | "hovered" | "disabled";
7
7
  export type MenuRadioItemState = "default" | "hovered" | "selected" | "disabled";
8
- export type MenuRadioIndicatorState = "default" | "selected";
9
8
  export interface MenuStyles {
10
9
  content?: MenuContentProps["style"];
11
10
  item?: Partial<Record<MenuButtonState, StyleProp<ViewStyle>>>;
@@ -16,10 +15,9 @@ export interface MenuStyles {
16
15
  label?: StyleProp<TextStyle>;
17
16
  separator?: StyleProp<ViewStyle>;
18
17
  checkboxItem?: Partial<Record<MenuCheckboxItemState, StyleProp<ViewStyle>>>;
19
- checkboxIndicator?: StyleProp<TextStyle>;
18
+ selectionIndicator?: TextStyle & SvgProps;
20
19
  radioGroup?: StyleProp<ViewStyle>;
21
20
  radioItem?: Partial<Record<MenuRadioItemState, StyleProp<ViewStyle>>>;
22
- radioIndicator?: Partial<Record<MenuRadioIndicatorState, StyleProp<ViewStyle>>>;
23
21
  shortcut?: StyleProp<TextStyle>;
24
22
  }
25
23
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5E,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtE,cAAc,CAAC,EAAE,OAAO,CACtB,MAAM,CAAC,uBAAuB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CACtD,CAAC;IACF,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5E,kBAAkB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/variants/default.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,qBAAqB,QAAO,UA4GxC,CAAC"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/variants/default.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,qBAAqB,QAAO,UAmGxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"popover-content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/popover/components/popover-content.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAEzD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBA2BxD"}
1
+ {"version":3,"file":"popover-content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/popover/components/popover-content.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAEzD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBAyBxD"}
@@ -1,3 +1,4 @@
1
1
  export * from "./portal";
2
+ export * from "./portal-offset";
2
3
  export * from "./portal.constants";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface PortalOffset {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export type PortalOffsetValue = PortalOffset | null | undefined;
6
+ export declare const PortalOffsetContext: import("react").Context<PortalOffsetValue>;
7
+ type UsePortalOffsetReturn = {
8
+ value: PortalOffset;
9
+ isLoaded: boolean;
10
+ };
11
+ export declare function usePortalOffset(): UsePortalOffsetReturn;
12
+ export {};
13
+ //# sourceMappingURL=portal-offset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-offset.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/portal-offset.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;AAIhE,eAAO,MAAM,mBAAmB,4CAA8C,CAAC;AAE/E,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,eAAe,IAAI,qBAAqB,CASvD"}
@@ -1,4 +1,5 @@
1
+ import React from "react";
1
2
  import { type PortalHostProps, type PortalProps } from "./portal.constants";
2
- export declare function PortalHost({ name, container, }: PortalHostProps): import("react").JSX.Element | null;
3
- export declare function Portal({ name, hostName, children, }: PortalProps): import("react").JSX.Element;
3
+ export declare function PortalHost({ name, container, }: PortalHostProps): React.JSX.Element | null;
4
+ export declare function Portal({ name, hostName, children, }: PortalProps): React.JSX.Element;
4
5
  //# sourceMappingURL=portal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/portal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAuD5B,wBAAgB,UAAU,CAAC,EACzB,IAA0B,EAC1B,SAAS,GACV,EAAE,eAAe,sCAyBjB;AAED,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAA8B,EAC9B,QAAQ,GACT,EAAE,WAAW,+BAYb"}
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../../../src/components/portal/portal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAGf,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AA0F5B,wBAAgB,UAAU,CAAC,EACzB,IAA0B,EAC1B,SAAS,GACV,EAAE,eAAe,4BAcjB;AAED,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,QAA8B,EAC9B,QAAQ,GACT,EAAE,WAAW,qBAYb"}
@@ -1 +1 @@
1
- {"version":3,"file":"select-content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/select/components/select-content.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,YAAY,CAAC;IAE3D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBAyBtD"}
1
+ {"version":3,"file":"select-content.d.ts","sourceRoot":"","sources":["../../../../../../src/components/select/components/select-content.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,YAAY,CAAC;IAE3D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBAkCtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/textarea/variants/default.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,wBAAgB,yBAAyB,IAAI,cAAc,CAkC1D"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../../../src/components/textarea/variants/default.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,wBAAgB,yBAAyB,IAAI,cAAc,CAwC1D"}
@@ -1,10 +1,7 @@
1
1
  import { type DisplayMetrics, type LayoutRectangle, type ViewStyle } from "react-native";
2
- import type { SafeAreaInsets } from "../safe-area";
3
- type UseRelativePositionArgs = Omit<GetContentStyleArgs, "triggerPosition" | "contentLayout" | "dimensions"> & {
4
- triggerPosition: LayoutPosition | null;
5
- contentLayout: LayoutRectangle | null;
6
- };
7
- export declare function useRelativePosition({ align, triggerPosition, contentLayout, alignOffset, insets, sideOffset, preferredSide, }: UseRelativePositionArgs): ViewStyle;
2
+ import { type SafeAreaInsets } from "../safe-area";
3
+ type UseRelativePositionArgs = Omit<GetContentStyleArgs, "dimensions" | "insets">;
4
+ export declare function useRelativePosition({ align, triggerPosition, contentLayout, alignOffset, sideOffset, preferredSide, }: UseRelativePositionArgs): ViewStyle;
8
5
  export interface LayoutPosition {
9
6
  pageY: number;
10
7
  pageX: number;
@@ -15,7 +12,7 @@ interface GetPositionArgs {
15
12
  dimensions: DisplayMetrics;
16
13
  triggerPosition: LayoutPosition;
17
14
  contentLayout: LayoutRectangle;
18
- insets?: SafeAreaInsets;
15
+ insets: SafeAreaInsets;
19
16
  }
20
17
  interface GetSidePositionArgs extends GetPositionArgs {
21
18
  preferredSide: "top" | "bottom";
@@ -1 +1 @@
1
- {"version":3,"file":"use-relative-position.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-relative-position.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,KAAK,uBAAuB,GAAG,IAAI,CACjC,mBAAmB,EACnB,iBAAiB,GAAG,eAAe,GAAG,YAAY,CACnD,GAAG;IACF,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,eAAe,EACf,aAAa,EACb,WAAW,EACX,MAAM,EACN,UAAU,EACV,aAAa,GACd,EAAE,uBAAuB,GAAG,SAAS,CAoCrC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,eAAe,EAAE,cAAc,CAAC;IAChC,aAAa,EAAE,eAAe,CAAC;IAC/B,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,UAAU,mBAAoB,SAAQ,eAAe;IACnD,aAAa,EAAE,KAAK,GAAG,QAAQ,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,eAK5B,CAAC;AACF,eAAO,MAAM,gBAAgB,EAAE,cAK9B,CAAC;AAqFF,UAAU,oBAAqB,SAAQ,eAAe;IACpD,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AA2ED,KAAK,mBAAmB,GAAG,eAAe,GACxC,mBAAmB,GACnB,oBAAoB,CAAC"}
1
+ {"version":3,"file":"use-relative-position.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-relative-position.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtE,KAAK,uBAAuB,GAAG,IAAI,CACjC,mBAAmB,EACnB,YAAY,GAAG,QAAQ,CACxB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,eAAe,EACf,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,GACd,EAAE,uBAAuB,GAAG,SAAS,CAyDrC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,eAAe,EAAE,cAAc,CAAC;IAChC,aAAa,EAAE,eAAe,CAAC;IAC/B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,UAAU,mBAAoB,SAAQ,eAAe;IACnD,aAAa,EAAE,KAAK,GAAG,QAAQ,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,eAK5B,CAAC;AACF,eAAO,MAAM,gBAAgB,EAAE,cAK9B,CAAC;AAgFF,UAAU,oBAAqB,SAAQ,eAAe;IACpD,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AA0ED,KAAK,mBAAmB,GAAG,eAAe,GACxC,mBAAmB,GACnB,oBAAoB,CAAC"}
@@ -17,6 +17,9 @@ export interface ComponentsConfig {
17
17
  toast?: {
18
18
  icons?: Partial<Record<keyof typeof ToastVariants, IconComponent>>;
19
19
  };
20
+ menu?: {
21
+ selectionIcon?: IconComponent;
22
+ };
20
23
  }
21
24
  declare const ThemeContext: import("react").Context<ThemeContext | null>;
22
25
  export interface ThemeProviderProps extends PropsWithChildren {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/themes/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,MAAM,EACN,WAAW,EACZ,MAAM,SAAS,CAAC;AAGjB,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;KACpE,CAAC;CACH;AAED,QAAA,MAAM,YAAY,8CAA2C,CAAC;AAE9D,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,KAAK,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCAoCtD,CAAC;AAEF,eAAO,MAAM,QAAQ,oBAMpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,oCAM/B,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/themes/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,MAAM,EACN,WAAW,EACZ,MAAM,SAAS,CAAC;AAGjB,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;KACpE,CAAC;IACF,IAAI,CAAC,EAAE;QACL,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,CAAC;CACH;AAED,QAAA,MAAM,YAAY,8CAA2C,CAAC;AAE9D,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,KAAK,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCAoCtD,CAAC;AAEF,eAAO,MAAM,QAAQ,oBAMpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,oCAM/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@korsolutions/ui",
3
- "version": "0.0.59",
3
+ "version": "0.0.60",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,8 +1,9 @@
1
1
  import React, { useState } from "react";
2
- import { Pressable, Text, type StyleProp, type ViewStyle } from "react-native";
2
+ import { Pressable, type StyleProp, type ViewStyle } from "react-native";
3
3
  import { useMenu } from "../context";
4
4
  import type { MenuCheckboxItemState } from "../types";
5
5
  import { useOrganizedChildren } from "../use-organized-children";
6
+ import { MenuSelectionIndicator } from "./menu-selection-indicator";
6
7
 
7
8
  export interface MenuCheckboxItemProps {
8
9
  children: React.ReactNode;
@@ -66,9 +67,7 @@ export function MenuCheckboxItem(props: MenuCheckboxItemProps) {
66
67
  style={composedStyle}
67
68
  >
68
69
  {organizedChildren}
69
- <Text style={menu.styles?.checkboxIndicator}>
70
- {props.checked ? "✓" : " "}
71
- </Text>
70
+ <MenuSelectionIndicator isSelected={props.checked} />
72
71
  </Pressable>
73
72
  );
74
73
  }
@@ -20,7 +20,7 @@ export function MenuContent(props: MenuContentProps) {
20
20
  contentLayout: menu.contentLayout,
21
21
  alignOffset: 0,
22
22
  preferredSide: "bottom",
23
- sideOffset: 0,
23
+ sideOffset: 2,
24
24
  });
25
25
 
26
26
  const composedStyle = [positionStyle, menu.styles?.content, props.style];
@@ -1,8 +1,9 @@
1
1
  import React, { useState } from "react";
2
- import { Pressable, View, type StyleProp, type ViewStyle } from "react-native";
2
+ import { Pressable, type StyleProp, type ViewStyle } from "react-native";
3
3
  import { useMenu, useMenuRadioGroup } from "../context";
4
4
  import type { MenuRadioItemState } from "../types";
5
5
  import { useOrganizedChildren } from "../use-organized-children";
6
+ import { MenuSelectionIndicator } from "./menu-selection-indicator";
6
7
 
7
8
  export interface MenuRadioItemProps {
8
9
  children: React.ReactNode;
@@ -37,11 +38,6 @@ export function MenuRadioItem(props: MenuRadioItemProps) {
37
38
  props.style,
38
39
  ];
39
40
 
40
- const indicatorStyle = [
41
- menu.styles?.radioIndicator?.default,
42
- isSelected ? menu.styles?.radioIndicator?.selected : undefined,
43
- ];
44
-
45
41
  const handlePress = () => {
46
42
  if (props.disabled) return;
47
43
  radioGroup.onValueChange(props.value);
@@ -74,7 +70,7 @@ export function MenuRadioItem(props: MenuRadioItemProps) {
74
70
  style={composedStyle}
75
71
  >
76
72
  {organizedChildren}
77
- <View style={indicatorStyle} />
73
+ <MenuSelectionIndicator isSelected={isSelected} />
78
74
  </Pressable>
79
75
  );
80
76
  }
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import { Text, View } from "react-native";
3
+ import { useComponentsConfig } from "../../../themes";
4
+ import { useMenu } from "../context";
5
+
6
+ interface MenuSelectionIndicatorProps {
7
+ isSelected: boolean;
8
+ }
9
+
10
+ export function MenuSelectionIndicator({
11
+ isSelected,
12
+ }: MenuSelectionIndicatorProps) {
13
+ const config = useComponentsConfig();
14
+ const menu = useMenu();
15
+ const SelectionIcon = config?.menu?.selectionIcon;
16
+
17
+ if (!isSelected) {
18
+ return <View style={menu.styles?.selectionIndicator} />;
19
+ }
20
+
21
+ if (SelectionIcon) {
22
+ return <SelectionIcon {...menu.styles?.selectionIndicator} />;
23
+ }
24
+
25
+ return <Text style={menu.styles?.selectionIndicator}>✓</Text>;
26
+ }
@@ -11,8 +11,6 @@ export type MenuRadioItemState =
11
11
  | "selected"
12
12
  | "disabled";
13
13
 
14
- export type MenuRadioIndicatorState = "default" | "selected";
15
-
16
14
  export interface MenuStyles {
17
15
  content?: MenuContentProps["style"];
18
16
  item?: Partial<Record<MenuButtonState, StyleProp<ViewStyle>>>;
@@ -24,11 +22,8 @@ export interface MenuStyles {
24
22
  label?: StyleProp<TextStyle>;
25
23
  separator?: StyleProp<ViewStyle>;
26
24
  checkboxItem?: Partial<Record<MenuCheckboxItemState, StyleProp<ViewStyle>>>;
27
- checkboxIndicator?: StyleProp<TextStyle>;
25
+ selectionIndicator?: TextStyle & SvgProps;
28
26
  radioGroup?: StyleProp<ViewStyle>;
29
27
  radioItem?: Partial<Record<MenuRadioItemState, StyleProp<ViewStyle>>>;
30
- radioIndicator?: Partial<
31
- Record<MenuRadioIndicatorState, StyleProp<ViewStyle>>
32
- >;
33
28
  shortcut?: StyleProp<TextStyle>;
34
29
  }
@@ -67,13 +67,16 @@ export const useMenuVariantDefault = (): MenuStyles => {
67
67
  opacity: 0.5,
68
68
  },
69
69
  },
70
- checkboxIndicator: {
71
- fontSize: fontSize * 0.75,
72
- fontWeight: "bold",
70
+ selectionIndicator: {
73
71
  color: colors.foreground,
72
+ fontSize: fontSize,
74
73
  width: fontSize,
75
- textAlign: "center",
74
+ size: fontSize,
75
+ strokeWidth: 2,
76
76
  marginLeft: "auto",
77
+ style: {
78
+ marginLeft: "auto",
79
+ },
77
80
  },
78
81
  radioItem: {
79
82
  default: {
@@ -90,18 +93,6 @@ export const useMenuVariantDefault = (): MenuStyles => {
90
93
  opacity: 0.5,
91
94
  },
92
95
  },
93
- radioIndicator: {
94
- default: {
95
- width: 8,
96
- height: 8,
97
- borderRadius: 4,
98
- backgroundColor: "transparent",
99
- marginLeft: "auto",
100
- },
101
- selected: {
102
- backgroundColor: colors.foreground,
103
- },
104
- },
105
96
  shortcut: {
106
97
  fontSize: fontSize * 0.75,
107
98
  fontFamily: fontFamily,
@@ -64,7 +64,7 @@ export function CountryPicker() {
64
64
  contentLayout,
65
65
  alignOffset: 0,
66
66
  preferredSide: "bottom",
67
- sideOffset: 4,
67
+ sideOffset: 2,
68
68
  });
69
69
 
70
70
  const countryButtonStyles = StyleSheet.flatten([
@@ -1,7 +1,6 @@
1
- import { useRelativePosition } from "../../../hooks/use-relative-position";
2
- import { useSafeAreaInsets } from "../../../safe-area";
3
1
  import React from "react";
4
2
  import { type StyleProp, View, type ViewStyle } from "react-native";
3
+ import { useRelativePosition } from "../../../hooks/use-relative-position";
5
4
  import { usePopover } from "../context";
6
5
 
7
6
  export interface PopoverContentProps {
@@ -14,7 +13,6 @@ export interface PopoverContentProps {
14
13
 
15
14
  export function PopoverContent(props: PopoverContentProps) {
16
15
  const popover = usePopover();
17
- const insets = useSafeAreaInsets();
18
16
 
19
17
  const positionStyle = useRelativePosition({
20
18
  align: "start",
@@ -23,7 +21,6 @@ export function PopoverContent(props: PopoverContentProps) {
23
21
  alignOffset: 0,
24
22
  preferredSide: "bottom",
25
23
  sideOffset: 0,
26
- insets,
27
24
  });
28
25
 
29
26
  const composedStyle = [positionStyle, popover.styles?.content, props.style];
@@ -1,2 +1,3 @@
1
1
  export * from "./portal";
2
+ export * from "./portal-offset";
2
3
  export * from "./portal.constants";
@@ -0,0 +1,28 @@
1
+ import { createContext, useContext } from "react";
2
+
3
+ export interface PortalOffset {
4
+ x: number;
5
+ y: number;
6
+ }
7
+
8
+ export type PortalOffsetValue = PortalOffset | null | undefined;
9
+
10
+ // null means the offset is not measure yet but will be
11
+ // undefined means the offset is not available and will never be (e.g. on web or ios when FullWindowOverlay is used)
12
+ export const PortalOffsetContext = createContext<PortalOffsetValue>(undefined);
13
+
14
+ type UsePortalOffsetReturn = {
15
+ value: PortalOffset;
16
+ isLoaded: boolean;
17
+ };
18
+
19
+ export function usePortalOffset(): UsePortalOffsetReturn {
20
+ const value = useContext(PortalOffsetContext);
21
+ if (value === undefined) {
22
+ return { value: { x: 0, y: 0 }, isLoaded: true };
23
+ }
24
+ if (value === null) {
25
+ return { value: { x: 0, y: 0 }, isLoaded: false };
26
+ }
27
+ return { value, isLoaded: true };
28
+ }
@@ -1,5 +1,13 @@
1
- import { useEffect, useSyncExternalStore } from "react";
2
- import { Platform, View } from "react-native";
1
+ import React, {
2
+ useCallback,
3
+ useEffect,
4
+ useMemo,
5
+ useRef,
6
+ useState,
7
+ useSyncExternalStore,
8
+ } from "react";
9
+ import { Platform, View, type HostInstance } from "react-native";
10
+ import { PortalOffsetContext, type PortalOffset } from "./portal-offset";
3
11
  import {
4
12
  DEFAULT_PORTAL_HOST,
5
13
  type PortalHostProps,
@@ -59,33 +67,57 @@ function removePortal(hostName: string, name: string) {
59
67
  emit();
60
68
  }
61
69
 
70
+ function DefaultContainer(props: React.PropsWithChildren) {
71
+ const containerRef = useRef<HostInstance>(null);
72
+ const [offset, setOffset] = useState<PortalOffset | null>(null);
73
+
74
+ const onLayout = useCallback(() => {
75
+ containerRef.current?.measureInWindow((pageX: number, pageY: number) => {
76
+ setOffset((prev) => {
77
+ if (prev?.x === pageX && prev?.y === pageY) return prev;
78
+ return { x: pageX, y: pageY };
79
+ });
80
+ });
81
+ }, []);
82
+
83
+ return (
84
+ <View
85
+ ref={containerRef}
86
+ onLayout={onLayout}
87
+ style={{
88
+ position: "absolute",
89
+ top: 0,
90
+ left: 0,
91
+ right: 0,
92
+ bottom: 0,
93
+ elevation: 999,
94
+ zIndex: 999,
95
+ pointerEvents: "box-none",
96
+ }}
97
+ >
98
+ <PortalOffsetContext.Provider value={offset}>
99
+ {props.children}
100
+ </PortalOffsetContext.Provider>
101
+ </View>
102
+ );
103
+ }
104
+
62
105
  export function PortalHost({
63
106
  name = DEFAULT_PORTAL_HOST,
64
107
  container,
65
108
  }: PortalHostProps) {
66
109
  const map = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
67
110
  const portalMap = map.get(name) ?? new Map<string, React.ReactNode>();
68
- if (portalMap.size === 0) return null;
69
-
70
- const Container = Platform.select({
71
- default: (props: React.PropsWithChildren) => (
72
- <View
73
- {...props}
74
- style={{
75
- position: "absolute",
76
- top: 0,
77
- left: 0,
78
- right: 0,
79
- bottom: 0,
80
- elevation: 999,
81
- zIndex: 999,
82
- pointerEvents: "box-none",
83
- }}
84
- />
85
- ),
86
- ...container,
87
- });
111
+ const Container = useMemo(
112
+ () =>
113
+ Platform.select({
114
+ default: DefaultContainer,
115
+ ...container,
116
+ }),
117
+ [container],
118
+ );
88
119
 
120
+ if (portalMap.size === 0) return null;
89
121
  return <Container>{Array.from(portalMap.values())}</Container>;
90
122
  }
91
123
 
@@ -1,7 +1,7 @@
1
- import { useRelativePosition } from "../../../hooks/use-relative-position";
2
- import { calculateComposedStyles } from "../../../utils/calculate-styles";
3
1
  import React from "react";
4
2
  import { type StyleProp, View, type ViewStyle } from "react-native";
3
+ import { useRelativePosition } from "../../../hooks/use-relative-position";
4
+ import { calculateComposedStyles } from "../../../utils/calculate-styles";
5
5
  import { useSelect } from "../context";
6
6
 
7
7
  export interface SelectContentProps {
@@ -14,7 +14,12 @@ export interface SelectContentProps {
14
14
 
15
15
  export function SelectContent(props: SelectContentProps) {
16
16
  const select = useSelect();
17
- const composedStyles = calculateComposedStyles(select.styles, select.state, "content", props.style);
17
+ const composedStyles = calculateComposedStyles(
18
+ select.styles,
19
+ select.state,
20
+ "content",
21
+ props.style,
22
+ );
18
23
 
19
24
  const positionStyle = useRelativePosition({
20
25
  align: "start",
@@ -22,13 +27,17 @@ export function SelectContent(props: SelectContentProps) {
22
27
  contentLayout: select.contentLayout,
23
28
  alignOffset: 0,
24
29
  preferredSide: "bottom",
25
- sideOffset: 0,
30
+ sideOffset: 2,
26
31
  });
27
32
 
28
33
  const Component = props.render ?? View;
29
34
  return (
30
35
  <Component
31
- style={[positionStyle, composedStyles, { width: select.triggerPosition.width }]}
36
+ style={[
37
+ positionStyle,
38
+ composedStyles,
39
+ { width: select.triggerPosition.width },
40
+ ]}
32
41
  onLayout={(e) => {
33
42
  select.setContentLayout(e.nativeEvent.layout);
34
43
  }}
@@ -1,3 +1,4 @@
1
+ import { Platform } from "react-native";
1
2
  import { type TextareaStyles } from "../..";
2
3
  import { useThemedStyles } from "../../../utils/use-themed-styles";
3
4
 
@@ -15,6 +16,12 @@ export function useTextareaVariantDefault(): TextareaStyles {
15
16
  paddingVertical: 12,
16
17
  paddingHorizontal: 16,
17
18
  outlineWidth: 0,
19
+ ...Platform.select({
20
+ default: {},
21
+ web: {
22
+ outline: "none",
23
+ },
24
+ }),
18
25
  fontFamily,
19
26
  fontSize,
20
27
  minHeight: 120,