@korsolutions/ui 0.0.42 → 0.0.44

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 (66) hide show
  1. package/dist/module/components/button/variants/default.js +5 -14
  2. package/dist/module/components/button/variants/default.js.map +1 -1
  3. package/dist/module/components/button/variants/secondary.js +1 -2
  4. package/dist/module/components/button/variants/secondary.js.map +1 -1
  5. package/dist/module/hooks/use-relative-position.js.map +1 -1
  6. package/dist/module/primitives/autocomplete/autocomplete-content.js +9 -5
  7. package/dist/module/primitives/autocomplete/autocomplete-content.js.map +1 -1
  8. package/dist/module/primitives/autocomplete/autocomplete-input.js +1 -7
  9. package/dist/module/primitives/autocomplete/autocomplete-input.js.map +1 -1
  10. package/dist/module/primitives/autocomplete/autocomplete-option.js +15 -7
  11. package/dist/module/primitives/autocomplete/autocomplete-option.js.map +1 -1
  12. package/dist/module/primitives/autocomplete/autocomplete-overlay.js +10 -6
  13. package/dist/module/primitives/autocomplete/autocomplete-overlay.js.map +1 -1
  14. package/dist/module/primitives/autocomplete/autocomplete-portal.js +2 -10
  15. package/dist/module/primitives/autocomplete/autocomplete-portal.js.map +1 -1
  16. package/dist/module/primitives/autocomplete/autocomplete-root.js +10 -10
  17. package/dist/module/primitives/autocomplete/autocomplete-root.js.map +1 -1
  18. package/dist/module/primitives/autocomplete/context.js.map +1 -1
  19. package/dist/module/primitives/button/button-label.js +3 -2
  20. package/dist/module/primitives/button/button-label.js.map +1 -1
  21. package/dist/module/primitives/button/button-root.js +23 -3
  22. package/dist/module/primitives/button/button-root.js.map +1 -1
  23. package/dist/module/primitives/calendar/calendar-day.js +0 -1
  24. package/dist/module/primitives/calendar/calendar-day.js.map +1 -1
  25. package/dist/module/primitives/empty/empty-description.js +1 -2
  26. package/dist/module/primitives/empty/empty-description.js.map +1 -1
  27. package/dist/module/primitives/popover/popover-content.js +4 -1
  28. package/dist/module/primitives/popover/popover-content.js.map +1 -1
  29. package/dist/typescript/src/components/button/variants/default.d.ts.map +1 -1
  30. package/dist/typescript/src/components/button/variants/secondary.d.ts.map +1 -1
  31. package/dist/typescript/src/hooks/use-relative-position.d.ts +2 -2
  32. package/dist/typescript/src/hooks/use-relative-position.d.ts.map +1 -1
  33. package/dist/typescript/src/primitives/autocomplete/autocomplete-content.d.ts.map +1 -1
  34. package/dist/typescript/src/primitives/autocomplete/autocomplete-input.d.ts.map +1 -1
  35. package/dist/typescript/src/primitives/autocomplete/autocomplete-option.d.ts.map +1 -1
  36. package/dist/typescript/src/primitives/autocomplete/autocomplete-overlay.d.ts +0 -1
  37. package/dist/typescript/src/primitives/autocomplete/autocomplete-overlay.d.ts.map +1 -1
  38. package/dist/typescript/src/primitives/autocomplete/autocomplete-portal.d.ts +1 -1
  39. package/dist/typescript/src/primitives/autocomplete/autocomplete-portal.d.ts.map +1 -1
  40. package/dist/typescript/src/primitives/autocomplete/autocomplete-root.d.ts +0 -5
  41. package/dist/typescript/src/primitives/autocomplete/autocomplete-root.d.ts.map +1 -1
  42. package/dist/typescript/src/primitives/autocomplete/context.d.ts +5 -6
  43. package/dist/typescript/src/primitives/autocomplete/context.d.ts.map +1 -1
  44. package/dist/typescript/src/primitives/button/button-label.d.ts +0 -1
  45. package/dist/typescript/src/primitives/button/button-label.d.ts.map +1 -1
  46. package/dist/typescript/src/primitives/button/button-root.d.ts +0 -1
  47. package/dist/typescript/src/primitives/button/button-root.d.ts.map +1 -1
  48. package/dist/typescript/src/primitives/calendar/calendar-day.d.ts.map +1 -1
  49. package/dist/typescript/src/primitives/popover/popover-content.d.ts.map +1 -1
  50. package/nodemon.json +14 -0
  51. package/package.json +3 -1
  52. package/src/components/button/variants/default.tsx +6 -15
  53. package/src/components/button/variants/secondary.tsx +1 -2
  54. package/src/hooks/use-relative-position.ts +4 -4
  55. package/src/primitives/autocomplete/autocomplete-content.tsx +12 -3
  56. package/src/primitives/autocomplete/autocomplete-input.tsx +1 -7
  57. package/src/primitives/autocomplete/autocomplete-option.tsx +16 -8
  58. package/src/primitives/autocomplete/autocomplete-overlay.tsx +16 -8
  59. package/src/primitives/autocomplete/autocomplete-portal.tsx +2 -12
  60. package/src/primitives/autocomplete/autocomplete-root.tsx +10 -16
  61. package/src/primitives/autocomplete/context.ts +4 -5
  62. package/src/primitives/button/button-label.tsx +7 -4
  63. package/src/primitives/button/button-root.tsx +33 -5
  64. package/src/primitives/calendar/calendar-day.tsx +1 -2
  65. package/src/primitives/empty/empty-description.tsx +2 -2
  66. package/src/primitives/popover/popover-content.tsx +3 -0
@@ -1,5 +1,5 @@
1
1
  import React, { useState } from "react";
2
- import { Pressable, type PressableProps, type StyleProp, type ViewStyle } from "react-native";
2
+ import { Pressable, type CursorValue, type PressableProps, type StyleProp, type ViewStyle } from "react-native";
3
3
  import { ButtonPrimitiveContext } from "./button-context";
4
4
  import type { ButtonState, ButtonStyles } from "./types";
5
5
 
@@ -11,8 +11,6 @@ export interface ButtonPrimitiveRootProps extends PressableProps {
11
11
 
12
12
  style?: StyleProp<ViewStyle>;
13
13
  styles?: ButtonStyles;
14
-
15
- render?: (props: this) => React.ReactElement;
16
14
  }
17
15
 
18
16
  const calculateState = (props: ButtonPrimitiveRootProps, isHovered: boolean): ButtonState => {
@@ -28,6 +26,17 @@ const calculateState = (props: ButtonPrimitiveRootProps, isHovered: boolean): Bu
28
26
  return "default";
29
27
  };
30
28
 
29
+ const cursorValue = (state: ButtonState): CursorValue => {
30
+ switch (state) {
31
+ case "disabled":
32
+ return "not-allowed" as CursorValue;
33
+ case "loading":
34
+ return "wait" as CursorValue;
35
+ default:
36
+ return "pointer";
37
+ }
38
+ };
39
+
31
40
  export function ButtonRoot(props: ButtonPrimitiveRootProps) {
32
41
  const [isHovered, setIsHovered] = useState(false);
33
42
 
@@ -35,10 +44,29 @@ export function ButtonRoot(props: ButtonPrimitiveRootProps) {
35
44
 
36
45
  const calculatedStyle = [props.styles?.root?.default, props.styles?.root?.[state], props.style];
37
46
 
38
- const Container = props.render ?? Pressable;
47
+ const handlePress: PressableProps["onPress"] = (event) => {
48
+ if (props.isDisabled || props.isLoading) {
49
+ event.preventDefault();
50
+ return;
51
+ }
52
+ props.onPress?.(event);
53
+ };
54
+
39
55
  return (
40
56
  <ButtonPrimitiveContext.Provider value={{ disabled: props.isDisabled, state, styles: props.styles }}>
41
- <Container {...props} onHoverIn={() => setIsHovered(true)} onHoverOut={() => setIsHovered(false)} style={calculatedStyle} />
57
+ <Pressable
58
+ {...props}
59
+ onPress={handlePress}
60
+ onHoverIn={() => setIsHovered(true)}
61
+ onHoverOut={() => setIsHovered(false)}
62
+ disabled={props.isDisabled}
63
+ style={[
64
+ calculatedStyle,
65
+ {
66
+ cursor: cursorValue(state),
67
+ },
68
+ ]}
69
+ />
42
70
  </ButtonPrimitiveContext.Provider>
43
71
  );
44
72
  }
@@ -17,7 +17,7 @@ const calculateState = (
17
17
  selected: Date | null | undefined,
18
18
  isCurrentMonth: boolean,
19
19
  isDisabled: boolean,
20
- isHovered: boolean
20
+ isHovered: boolean,
21
21
  ): CalendarDayState => {
22
22
  if (isDisabled) return "disabled";
23
23
  if (selected && isDateSameDay(date, selected)) return "selected";
@@ -42,7 +42,6 @@ export function CalendarDay(props: CalendarDayProps) {
42
42
  const state = calculateState(props.date, calendar.value, isCurrentMonth, isDisabled, isHovered);
43
43
 
44
44
  const handlePress = () => {
45
- console.log("Day pressed:", isDisabled, calendar.onChange);
46
45
  if (isDisabled || !calendar.onChange) return;
47
46
  calendar.onChange(props.date);
48
47
  };
@@ -11,6 +11,6 @@ export interface EmptyDescriptionProps {
11
11
  export function EmptyDescription(props: EmptyDescriptionProps) {
12
12
  const empty = useEmpty();
13
13
  const composedStyles = [empty.styles?.description, props.style];
14
- const Component = props.render ?? Text;
15
- return <Component {...props} style={composedStyles} />;
14
+
15
+ return <Text {...props} style={composedStyles} />;
16
16
  }
@@ -1,4 +1,5 @@
1
1
  import { useRelativePosition } from "@/hooks/use-relative-position";
2
+ import { useSafeAreaInsets } from "@/safe-area";
2
3
  import React from "react";
3
4
  import { type StyleProp, View, type ViewStyle } from "react-native";
4
5
  import { usePopover } from "./context";
@@ -13,6 +14,7 @@ export interface PopoverContentProps {
13
14
 
14
15
  export function PopoverContent(props: PopoverContentProps) {
15
16
  const popover = usePopover();
17
+ const insets = useSafeAreaInsets();
16
18
 
17
19
  const positionStyle = useRelativePosition({
18
20
  align: "start",
@@ -22,6 +24,7 @@ export function PopoverContent(props: PopoverContentProps) {
22
24
  alignOffset: 0,
23
25
  side: "bottom",
24
26
  sideOffset: 0,
27
+ insets,
25
28
  });
26
29
 
27
30
  const composedStyle = [positionStyle, popover.styles?.content, props.style];