@kbach/react 0.5.3 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3600,6 +3600,9 @@ var InteractiveWrapper = forwardRef(
3600
3600
  style: styleProp,
3601
3601
  onPressIn,
3602
3602
  onPressOut,
3603
+ onPointerDown,
3604
+ onPointerUp,
3605
+ onPointerLeave,
3603
3606
  onMouseEnter,
3604
3607
  onMouseLeave,
3605
3608
  onFocus,
@@ -3615,6 +3618,9 @@ var InteractiveWrapper = forwardRef(
3615
3618
  const [focused, setFocused] = useState(false);
3616
3619
  const handlePressIn = useCallback(chain(onPressIn, () => setPressed(true)), [onPressIn]);
3617
3620
  const handlePressOut = useCallback(chain(onPressOut, () => setPressed(false)), [onPressOut]);
3621
+ const handlePointerDown = useCallback(chain(onPointerDown, () => setPressed(true)), [onPointerDown]);
3622
+ const handlePointerUp = useCallback(chain(onPointerUp, () => setPressed(false)), [onPointerUp]);
3623
+ const handlePointerLeave = useCallback(chain(onPointerLeave, () => setPressed(false)), [onPointerLeave]);
3618
3624
  const handleMouseEnter = useCallback(chain(onMouseEnter, () => setHovered(true)), [onMouseEnter]);
3619
3625
  const handleMouseLeave = useCallback(chain(onMouseLeave, () => setHovered(false)), [onMouseLeave]);
3620
3626
  const handleFocus = useCallback(chain(onFocus, () => setFocused(true)), [onFocus]);
@@ -3662,8 +3668,9 @@ var InteractiveWrapper = forwardRef(
3662
3668
  ...restWithoutChildren,
3663
3669
  style: finalStyle,
3664
3670
  ...isWeb && className ? { className } : {},
3665
- // onPressIn / onPressOut are React Native-only; skip on web to avoid DOM warnings.
3666
- ...isWeb ? {} : { onPressIn: handlePressIn, onPressOut: handlePressOut },
3671
+ // onPressIn / onPressOut are React Native-only.
3672
+ // On web, onPointerDown/Up drive the pressed state instead (covers mouse + touch).
3673
+ ...isWeb ? { onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onPointerLeave: handlePointerLeave } : { onPressIn: handlePressIn, onPressOut: handlePressOut },
3667
3674
  onMouseEnter: handleMouseEnter,
3668
3675
  onMouseLeave: handleMouseLeave,
3669
3676
  onFocus: handleFocus,
@@ -8,7 +8,7 @@ import {
8
8
  resolve,
9
9
  useConditionalWidth,
10
10
  useGlobalDarkMode
11
- } from "./chunk-OKK7AJ2G.mjs";
11
+ } from "./chunk-D7Q7ZCOW.mjs";
12
12
 
13
13
  // src/jsx-runtime.tsx
14
14
  import { jsx as _jsx, jsxs as _jsxs, Fragment } from "react/jsx-runtime";
package/dist/index.d.mts CHANGED
@@ -315,6 +315,9 @@ interface InteractiveWrapperProps {
315
315
  children?: React__default.ReactNode;
316
316
  onPressIn?: (...args: any[]) => void;
317
317
  onPressOut?: (...args: any[]) => void;
318
+ onPointerDown?: (...args: any[]) => void;
319
+ onPointerUp?: (...args: any[]) => void;
320
+ onPointerLeave?: (...args: any[]) => void;
318
321
  onMouseEnter?: (...args: any[]) => void;
319
322
  onMouseLeave?: (...args: any[]) => void;
320
323
  onFocus?: (...args: any[]) => void;
package/dist/index.d.ts CHANGED
@@ -315,6 +315,9 @@ interface InteractiveWrapperProps {
315
315
  children?: React__default.ReactNode;
316
316
  onPressIn?: (...args: any[]) => void;
317
317
  onPressOut?: (...args: any[]) => void;
318
+ onPointerDown?: (...args: any[]) => void;
319
+ onPointerUp?: (...args: any[]) => void;
320
+ onPointerLeave?: (...args: any[]) => void;
318
321
  onMouseEnter?: (...args: any[]) => void;
319
322
  onMouseLeave?: (...args: any[]) => void;
320
323
  onFocus?: (...args: any[]) => void;
package/dist/index.js CHANGED
@@ -3968,6 +3968,9 @@ function styled(Component, baseClasses = "") {
3968
3968
  style: styleProp,
3969
3969
  onPressIn,
3970
3970
  onPressOut,
3971
+ onPointerDown,
3972
+ onPointerUp,
3973
+ onPointerLeave,
3971
3974
  onMouseEnter,
3972
3975
  onMouseLeave,
3973
3976
  onFocus,
@@ -3986,6 +3989,18 @@ function styled(Component, baseClasses = "") {
3986
3989
  setPressed(false);
3987
3990
  onPressOut?.(e);
3988
3991
  }, [onPressOut]);
3992
+ const handlePointerDown = (0, import_react6.useCallback)((e) => {
3993
+ setPressed(true);
3994
+ onPointerDown?.(e);
3995
+ }, [onPointerDown]);
3996
+ const handlePointerUp = (0, import_react6.useCallback)((e) => {
3997
+ setPressed(false);
3998
+ onPointerUp?.(e);
3999
+ }, [onPointerUp]);
4000
+ const handlePointerLeave = (0, import_react6.useCallback)((e) => {
4001
+ setPressed(false);
4002
+ onPointerLeave?.(e);
4003
+ }, [onPointerLeave]);
3989
4004
  const handleMouseEnter = (0, import_react6.useCallback)((e) => {
3990
4005
  setHovered(true);
3991
4006
  onMouseEnter?.(e);
@@ -4020,9 +4035,8 @@ function styled(Component, baseClasses = "") {
4020
4035
  style: finalStyle,
4021
4036
  // className lets injected CSS rules (group-hover:, before:, print:, etc.) match the element.
4022
4037
  ...isWeb && combined ? { className: combined } : {},
4023
- // onPressIn / onPressOut are React Native-only events; forwarding them to
4024
- // a DOM element on web triggers React's unknown-prop warning.
4025
- ...isWeb ? {} : { onPressIn: handlePressIn, onPressOut: handlePressOut },
4038
+ // onPressIn / onPressOut are React Native-only; on web use Pointer Events instead.
4039
+ ...isWeb ? { onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onPointerLeave: handlePointerLeave } : { onPressIn: handlePressIn, onPressOut: handlePressOut },
4026
4040
  onMouseEnter: handleMouseEnter,
4027
4041
  onMouseLeave: handleMouseLeave,
4028
4042
  onFocus: handleFocus,
@@ -4120,6 +4134,9 @@ var InteractiveWrapper = (0, import_react9.forwardRef)(
4120
4134
  style: styleProp,
4121
4135
  onPressIn,
4122
4136
  onPressOut,
4137
+ onPointerDown,
4138
+ onPointerUp,
4139
+ onPointerLeave,
4123
4140
  onMouseEnter,
4124
4141
  onMouseLeave,
4125
4142
  onFocus,
@@ -4135,6 +4152,9 @@ var InteractiveWrapper = (0, import_react9.forwardRef)(
4135
4152
  const [focused, setFocused] = (0, import_react9.useState)(false);
4136
4153
  const handlePressIn = (0, import_react9.useCallback)(chain(onPressIn, () => setPressed(true)), [onPressIn]);
4137
4154
  const handlePressOut = (0, import_react9.useCallback)(chain(onPressOut, () => setPressed(false)), [onPressOut]);
4155
+ const handlePointerDown = (0, import_react9.useCallback)(chain(onPointerDown, () => setPressed(true)), [onPointerDown]);
4156
+ const handlePointerUp = (0, import_react9.useCallback)(chain(onPointerUp, () => setPressed(false)), [onPointerUp]);
4157
+ const handlePointerLeave = (0, import_react9.useCallback)(chain(onPointerLeave, () => setPressed(false)), [onPointerLeave]);
4138
4158
  const handleMouseEnter = (0, import_react9.useCallback)(chain(onMouseEnter, () => setHovered(true)), [onMouseEnter]);
4139
4159
  const handleMouseLeave = (0, import_react9.useCallback)(chain(onMouseLeave, () => setHovered(false)), [onMouseLeave]);
4140
4160
  const handleFocus = (0, import_react9.useCallback)(chain(onFocus, () => setFocused(true)), [onFocus]);
@@ -4182,8 +4202,9 @@ var InteractiveWrapper = (0, import_react9.forwardRef)(
4182
4202
  ...restWithoutChildren,
4183
4203
  style: finalStyle,
4184
4204
  ...isWeb && className ? { className } : {},
4185
- // onPressIn / onPressOut are React Native-only; skip on web to avoid DOM warnings.
4186
- ...isWeb ? {} : { onPressIn: handlePressIn, onPressOut: handlePressOut },
4205
+ // onPressIn / onPressOut are React Native-only.
4206
+ // On web, onPointerDown/Up drive the pressed state instead (covers mouse + touch).
4207
+ ...isWeb ? { onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onPointerLeave: handlePointerLeave } : { onPressIn: handlePressIn, onPressOut: handlePressOut },
4187
4208
  onMouseEnter: handleMouseEnter,
4188
4209
  onMouseLeave: handleMouseLeave,
4189
4210
  onFocus: handleFocus,
package/dist/index.mjs CHANGED
@@ -23,7 +23,7 @@ import {
23
23
  useConditionalWidth,
24
24
  useGlobalDarkMode,
25
25
  useGlobalWidth
26
- } from "./chunk-OKK7AJ2G.mjs";
26
+ } from "./chunk-D7Q7ZCOW.mjs";
27
27
 
28
28
  // src/context.tsx
29
29
  import { createContext, useContext } from "react";
@@ -390,6 +390,9 @@ function styled(Component, baseClasses = "") {
390
390
  style: styleProp,
391
391
  onPressIn,
392
392
  onPressOut,
393
+ onPointerDown,
394
+ onPointerUp,
395
+ onPointerLeave,
393
396
  onMouseEnter,
394
397
  onMouseLeave,
395
398
  onFocus,
@@ -408,6 +411,18 @@ function styled(Component, baseClasses = "") {
408
411
  setPressed(false);
409
412
  onPressOut?.(e);
410
413
  }, [onPressOut]);
414
+ const handlePointerDown = useCallback3((e) => {
415
+ setPressed(true);
416
+ onPointerDown?.(e);
417
+ }, [onPointerDown]);
418
+ const handlePointerUp = useCallback3((e) => {
419
+ setPressed(false);
420
+ onPointerUp?.(e);
421
+ }, [onPointerUp]);
422
+ const handlePointerLeave = useCallback3((e) => {
423
+ setPressed(false);
424
+ onPointerLeave?.(e);
425
+ }, [onPointerLeave]);
411
426
  const handleMouseEnter = useCallback3((e) => {
412
427
  setHovered(true);
413
428
  onMouseEnter?.(e);
@@ -442,9 +457,8 @@ function styled(Component, baseClasses = "") {
442
457
  style: finalStyle,
443
458
  // className lets injected CSS rules (group-hover:, before:, print:, etc.) match the element.
444
459
  ...isWeb && combined ? { className: combined } : {},
445
- // onPressIn / onPressOut are React Native-only events; forwarding them to
446
- // a DOM element on web triggers React's unknown-prop warning.
447
- ...isWeb ? {} : { onPressIn: handlePressIn, onPressOut: handlePressOut },
460
+ // onPressIn / onPressOut are React Native-only; on web use Pointer Events instead.
461
+ ...isWeb ? { onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onPointerLeave: handlePointerLeave } : { onPressIn: handlePressIn, onPressOut: handlePressOut },
448
462
  onMouseEnter: handleMouseEnter,
449
463
  onMouseLeave: handleMouseLeave,
450
464
  onFocus: handleFocus,
@@ -3578,6 +3578,9 @@ var InteractiveWrapper = (0, import_react3.forwardRef)(
3578
3578
  style: styleProp,
3579
3579
  onPressIn,
3580
3580
  onPressOut,
3581
+ onPointerDown,
3582
+ onPointerUp,
3583
+ onPointerLeave,
3581
3584
  onMouseEnter,
3582
3585
  onMouseLeave,
3583
3586
  onFocus,
@@ -3593,6 +3596,9 @@ var InteractiveWrapper = (0, import_react3.forwardRef)(
3593
3596
  const [focused, setFocused] = (0, import_react3.useState)(false);
3594
3597
  const handlePressIn = (0, import_react3.useCallback)(chain(onPressIn, () => setPressed(true)), [onPressIn]);
3595
3598
  const handlePressOut = (0, import_react3.useCallback)(chain(onPressOut, () => setPressed(false)), [onPressOut]);
3599
+ const handlePointerDown = (0, import_react3.useCallback)(chain(onPointerDown, () => setPressed(true)), [onPointerDown]);
3600
+ const handlePointerUp = (0, import_react3.useCallback)(chain(onPointerUp, () => setPressed(false)), [onPointerUp]);
3601
+ const handlePointerLeave = (0, import_react3.useCallback)(chain(onPointerLeave, () => setPressed(false)), [onPointerLeave]);
3596
3602
  const handleMouseEnter = (0, import_react3.useCallback)(chain(onMouseEnter, () => setHovered(true)), [onMouseEnter]);
3597
3603
  const handleMouseLeave = (0, import_react3.useCallback)(chain(onMouseLeave, () => setHovered(false)), [onMouseLeave]);
3598
3604
  const handleFocus = (0, import_react3.useCallback)(chain(onFocus, () => setFocused(true)), [onFocus]);
@@ -3640,8 +3646,9 @@ var InteractiveWrapper = (0, import_react3.forwardRef)(
3640
3646
  ...restWithoutChildren,
3641
3647
  style: finalStyle,
3642
3648
  ...isWeb && className ? { className } : {},
3643
- // onPressIn / onPressOut are React Native-only; skip on web to avoid DOM warnings.
3644
- ...isWeb ? {} : { onPressIn: handlePressIn, onPressOut: handlePressOut },
3649
+ // onPressIn / onPressOut are React Native-only.
3650
+ // On web, onPointerDown/Up drive the pressed state instead (covers mouse + touch).
3651
+ ...isWeb ? { onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onPointerLeave: handlePointerLeave } : { onPressIn: handlePressIn, onPressOut: handlePressOut },
3645
3652
  onMouseEnter: handleMouseEnter,
3646
3653
  onMouseLeave: handleMouseLeave,
3647
3654
  onFocus: handleFocus,
@@ -2,8 +2,8 @@ import {
2
2
  Fragment,
3
3
  jsx,
4
4
  jsxs
5
- } from "./chunk-7C3WGTMN.mjs";
6
- import "./chunk-OKK7AJ2G.mjs";
5
+ } from "./chunk-UR4DTYE3.mjs";
6
+ import "./chunk-D7Q7ZCOW.mjs";
7
7
 
8
8
  // src/jsx-dev-runtime.tsx
9
9
  function jsxDEV(type, props, key, isStaticChildren, _source, _self) {
@@ -3577,6 +3577,9 @@ var InteractiveWrapper = (0, import_react3.forwardRef)(
3577
3577
  style: styleProp,
3578
3578
  onPressIn,
3579
3579
  onPressOut,
3580
+ onPointerDown,
3581
+ onPointerUp,
3582
+ onPointerLeave,
3580
3583
  onMouseEnter,
3581
3584
  onMouseLeave,
3582
3585
  onFocus,
@@ -3592,6 +3595,9 @@ var InteractiveWrapper = (0, import_react3.forwardRef)(
3592
3595
  const [focused, setFocused] = (0, import_react3.useState)(false);
3593
3596
  const handlePressIn = (0, import_react3.useCallback)(chain(onPressIn, () => setPressed(true)), [onPressIn]);
3594
3597
  const handlePressOut = (0, import_react3.useCallback)(chain(onPressOut, () => setPressed(false)), [onPressOut]);
3598
+ const handlePointerDown = (0, import_react3.useCallback)(chain(onPointerDown, () => setPressed(true)), [onPointerDown]);
3599
+ const handlePointerUp = (0, import_react3.useCallback)(chain(onPointerUp, () => setPressed(false)), [onPointerUp]);
3600
+ const handlePointerLeave = (0, import_react3.useCallback)(chain(onPointerLeave, () => setPressed(false)), [onPointerLeave]);
3595
3601
  const handleMouseEnter = (0, import_react3.useCallback)(chain(onMouseEnter, () => setHovered(true)), [onMouseEnter]);
3596
3602
  const handleMouseLeave = (0, import_react3.useCallback)(chain(onMouseLeave, () => setHovered(false)), [onMouseLeave]);
3597
3603
  const handleFocus = (0, import_react3.useCallback)(chain(onFocus, () => setFocused(true)), [onFocus]);
@@ -3639,8 +3645,9 @@ var InteractiveWrapper = (0, import_react3.forwardRef)(
3639
3645
  ...restWithoutChildren,
3640
3646
  style: finalStyle,
3641
3647
  ...isWeb && className ? { className } : {},
3642
- // onPressIn / onPressOut are React Native-only; skip on web to avoid DOM warnings.
3643
- ...isWeb ? {} : { onPressIn: handlePressIn, onPressOut: handlePressOut },
3648
+ // onPressIn / onPressOut are React Native-only.
3649
+ // On web, onPointerDown/Up drive the pressed state instead (covers mouse + touch).
3650
+ ...isWeb ? { onPointerDown: handlePointerDown, onPointerUp: handlePointerUp, onPointerLeave: handlePointerLeave } : { onPressIn: handlePressIn, onPressOut: handlePressOut },
3644
3651
  onMouseEnter: handleMouseEnter,
3645
3652
  onMouseLeave: handleMouseLeave,
3646
3653
  onFocus: handleFocus,
@@ -2,8 +2,8 @@ import {
2
2
  Fragment,
3
3
  jsx,
4
4
  jsxs
5
- } from "./chunk-7C3WGTMN.mjs";
6
- import "./chunk-OKK7AJ2G.mjs";
5
+ } from "./chunk-UR4DTYE3.mjs";
6
+ import "./chunk-D7Q7ZCOW.mjs";
7
7
  export {
8
8
  Fragment,
9
9
  jsx,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kbach/react",
3
- "version": "0.5.3",
3
+ "version": "0.5.5",
4
4
  "description": "React / React Native components and hooks for the Kbach framework",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./dist/index.js",