@strapi/ui-primitives 2.0.0-beta.4 → 2.0.0-beta.6

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.
package/dist/index.mjs CHANGED
@@ -3,8 +3,7 @@ import * as React from "react";
3
3
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
4
4
  import { createContextScope, createContext } from "@radix-ui/react-context";
5
5
  import { Slot } from "@radix-ui/react-slot";
6
- import { composeEventHandlers } from "@radix-ui/primitive";
7
- import { composeEventHandlers as composeEventHandlers2 } from "@radix-ui/primitive";
6
+ import { composeEventHandlers as composeEventHandlers$1 } from "@radix-ui/primitive";
8
7
  import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
9
8
  import { useFocusGuards } from "@radix-ui/react-focus-guards";
10
9
  import { FocusScope } from "@radix-ui/react-focus-scope";
@@ -23,8 +22,6 @@ import { createCollection as createCollection$1 } from "@radix-ui/react-collecti
23
22
  import { useDirection } from "@radix-ui/react-direction";
24
23
  import { usePrevious } from "@radix-ui/react-use-previous";
25
24
  import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
26
- import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
27
- import { useCallbackRef as useCallbackRef2 } from "@radix-ui/react-use-callback-ref";
28
25
  function createCollection(name) {
29
26
  const PROVIDER_NAME = `${name}CollectionProvider`;
30
27
  const [createCollectionContext, createCollectionScope2] = createContextScope(PROVIDER_NAME);
@@ -319,10 +316,10 @@ const ComboboxTrigger = React.forwardRef((props, forwardedRef) => {
319
316
  ref: forwardedRef,
320
317
  "data-disabled": context.disabled ? "" : void 0,
321
318
  ...triggerProps,
322
- onClick: composeEventHandlers(triggerProps.onClick, () => {
319
+ onClick: composeEventHandlers$1(triggerProps.onClick, () => {
323
320
  context.trigger?.focus();
324
321
  }),
325
- onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {
322
+ onPointerDown: composeEventHandlers$1(triggerProps.onPointerDown, (event) => {
326
323
  const target = event.target;
327
324
  if (target.hasPointerCapture(event.pointerId)) {
328
325
  target.releasePointerCapture(event.pointerId);
@@ -388,7 +385,7 @@ const ComboxboxTextInput = React.forwardRef((props, forwardedRef) => {
388
385
  value: context.textValue ?? "",
389
386
  ...props,
390
387
  ref: composedRefs,
391
- onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
388
+ onKeyDown: composeEventHandlers$1(props.onKeyDown, (event) => {
392
389
  if (["ArrowUp", "ArrowDown", "Home", "End"].includes(event.key)) {
393
390
  if (!context.open) {
394
391
  handleOpen();
@@ -459,13 +456,13 @@ const ComboxboxTextInput = React.forwardRef((props, forwardedRef) => {
459
456
  context.onVisuallyFocussedItemChange(null);
460
457
  }
461
458
  }),
462
- onChange: composeEventHandlers(props.onChange, (event) => {
459
+ onChange: composeEventHandlers$1(props.onChange, (event) => {
463
460
  context.onTextValueChange(event.currentTarget.value);
464
461
  if (context.autocomplete.type === "both") {
465
462
  context.onFilterValueChange(event.currentTarget.value);
466
463
  }
467
464
  }),
468
- onKeyUp: composeEventHandlers(props.onKeyUp, (event) => {
465
+ onKeyUp: composeEventHandlers$1(props.onKeyUp, (event) => {
469
466
  if (!context.open && (context.isPrintableCharacter(event.key) || ["Backspace"].includes(event.key))) {
470
467
  handleOpen();
471
468
  }
@@ -487,7 +484,7 @@ const ComboxboxTextInput = React.forwardRef((props, forwardedRef) => {
487
484
  }
488
485
  }
489
486
  }),
490
- onBlur: composeEventHandlers(props.onBlur, () => {
487
+ onBlur: composeEventHandlers$1(props.onBlur, () => {
491
488
  if (context.open) {
492
489
  return;
493
490
  }
@@ -547,16 +544,16 @@ const ComboboxIcon = React.forwardRef((props, forwardedRef) => {
547
544
  ...iconProps,
548
545
  tabIndex: -1,
549
546
  ref: forwardedRef,
550
- onClick: composeEventHandlers(iconProps.onClick, () => {
547
+ onClick: composeEventHandlers$1(iconProps.onClick, () => {
551
548
  context.trigger?.focus();
552
549
  }),
553
- onPointerDown: composeEventHandlers(iconProps.onPointerDown, (event) => {
550
+ onPointerDown: composeEventHandlers$1(iconProps.onPointerDown, (event) => {
554
551
  if (event.button === 0 && event.ctrlKey === false) {
555
552
  handleOpen();
556
553
  event.preventDefault();
557
554
  }
558
555
  }),
559
- onKeyDown: composeEventHandlers(iconProps.onKeyDown, (event) => {
556
+ onKeyDown: composeEventHandlers$1(iconProps.onKeyDown, (event) => {
560
557
  if (OPEN_KEYS$1.includes(event.key)) {
561
558
  handleOpen();
562
559
  event.preventDefault();
@@ -825,7 +822,7 @@ const ComboboxItemImpl = React.forwardRef((props, forwardedRef) => {
825
822
  ...restProps,
826
823
  id,
827
824
  ref: composedRefs,
828
- onPointerUp: composeEventHandlers(restProps.onPointerUp, handleSelect)
825
+ onPointerUp: composeEventHandlers$1(restProps.onPointerUp, handleSelect)
829
826
  }
830
827
  );
831
828
  });
@@ -932,7 +929,7 @@ const ComboboxCreateItem = React.forwardRef((props, ref) => {
932
929
  ...restProps,
933
930
  id,
934
931
  ref: composedRefs,
935
- onPointerUp: composeEventHandlers(restProps.onPointerUp, handleSelect)
932
+ onPointerUp: composeEventHandlers$1(restProps.onPointerUp, handleSelect)
936
933
  }
937
934
  )
938
935
  }
@@ -976,6 +973,13 @@ const Combobox$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
976
973
  Trigger: Trigger$1,
977
974
  Viewport: Viewport$1
978
975
  }, Symbol.toStringTag, { value: "Module" }));
976
+ function useCallbackRef(callback) {
977
+ const callbackRef = React.useRef(callback);
978
+ React.useEffect(() => {
979
+ callbackRef.current = callback;
980
+ });
981
+ return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);
982
+ }
979
983
  const OPEN_KEYS = [" ", "Enter", "ArrowUp", "ArrowDown"];
980
984
  const SELECTION_KEYS = [" ", "Enter"];
981
985
  const SELECT_NAME = "Select";
@@ -1109,10 +1113,10 @@ const SelectTrigger = React.forwardRef(
1109
1113
  tabIndex: isDisabled ? void 0 : 0,
1110
1114
  ...triggerProps,
1111
1115
  ref: composedRefs,
1112
- onClick: composeEventHandlers(triggerProps.onClick, (event) => {
1116
+ onClick: composeEventHandlers$1(triggerProps.onClick, (event) => {
1113
1117
  event.currentTarget.focus();
1114
1118
  }),
1115
- onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {
1119
+ onPointerDown: composeEventHandlers$1(triggerProps.onPointerDown, (event) => {
1116
1120
  const target = event.target;
1117
1121
  if (target.hasPointerCapture(event.pointerId)) {
1118
1122
  target.releasePointerCapture(event.pointerId);
@@ -1130,7 +1134,7 @@ const SelectTrigger = React.forwardRef(
1130
1134
  event.preventDefault();
1131
1135
  }
1132
1136
  }),
1133
- onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {
1137
+ onKeyDown: composeEventHandlers$1(triggerProps.onKeyDown, (event) => {
1134
1138
  const isTypingAhead = searchRef.current !== "";
1135
1139
  const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
1136
1140
  const target = event.target;
@@ -1408,7 +1412,7 @@ const SelectContentImpl = React.forwardRef(
1408
1412
  onMountAutoFocus: (event) => {
1409
1413
  event.preventDefault();
1410
1414
  },
1411
- onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {
1415
+ onUnmountAutoFocus: composeEventHandlers$1(onCloseAutoFocus, (event) => {
1412
1416
  context.trigger?.focus({ preventScroll: true });
1413
1417
  document.getSelection()?.empty();
1414
1418
  event.preventDefault();
@@ -1443,7 +1447,7 @@ const SelectContentImpl = React.forwardRef(
1443
1447
  outline: "none",
1444
1448
  ...contentProps.style
1445
1449
  },
1446
- onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {
1450
+ onKeyDown: composeEventHandlers$1(contentProps.onKeyDown, (event) => {
1447
1451
  const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
1448
1452
  if (event.key === "Tab")
1449
1453
  event.preventDefault();
@@ -1699,7 +1703,7 @@ const SelectViewport = React.forwardRef(
1699
1703
  overflow: "auto",
1700
1704
  ...viewportProps.style
1701
1705
  },
1702
- onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {
1706
+ onScroll: composeEventHandlers$1(viewportProps.onScroll, (event) => {
1703
1707
  const viewport = event.currentTarget;
1704
1708
  const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;
1705
1709
  if (shouldExpandOnScrollRef?.current && contentWrapper) {
@@ -1807,22 +1811,22 @@ const SelectItem = React.forwardRef(
1807
1811
  tabIndex: disabled ? void 0 : -1,
1808
1812
  ...itemProps,
1809
1813
  ref: composedRefs,
1810
- onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),
1811
- onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),
1812
- onPointerUp: composeEventHandlers(itemProps.onPointerUp, handleSelect),
1813
- onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {
1814
+ onFocus: composeEventHandlers$1(itemProps.onFocus, () => setIsFocused(true)),
1815
+ onBlur: composeEventHandlers$1(itemProps.onBlur, () => setIsFocused(false)),
1816
+ onPointerUp: composeEventHandlers$1(itemProps.onPointerUp, handleSelect),
1817
+ onPointerMove: composeEventHandlers$1(itemProps.onPointerMove, (event) => {
1814
1818
  if (disabled) {
1815
1819
  contentContext.onItemLeave?.();
1816
1820
  } else {
1817
1821
  event.currentTarget.focus({ preventScroll: true });
1818
1822
  }
1819
1823
  }),
1820
- onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {
1824
+ onPointerLeave: composeEventHandlers$1(itemProps.onPointerLeave, (event) => {
1821
1825
  if (event.currentTarget === document.activeElement) {
1822
1826
  contentContext.onItemLeave?.();
1823
1827
  }
1824
1828
  }),
1825
- onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {
1829
+ onKeyDown: composeEventHandlers$1(itemProps.onKeyDown, (event) => {
1826
1830
  const isTypingAhead = contentContext.searchRef?.current !== "";
1827
1831
  if (isTypingAhead && event.key === " ")
1828
1832
  return;
@@ -1990,13 +1994,13 @@ const SelectScrollButtonImpl = React.forwardRef(
1990
1994
  ...scrollIndicatorProps,
1991
1995
  ref: forwardedRef,
1992
1996
  style: { flexShrink: 0, ...scrollIndicatorProps.style },
1993
- onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {
1997
+ onPointerMove: composeEventHandlers$1(scrollIndicatorProps.onPointerMove, () => {
1994
1998
  contentContext.onItemLeave?.();
1995
1999
  if (autoScrollTimerRef.current === null) {
1996
2000
  autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
1997
2001
  }
1998
2002
  }),
1999
- onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {
2003
+ onPointerLeave: composeEventHandlers$1(scrollIndicatorProps.onPointerLeave, () => {
2000
2004
  clearAutoScrollTimer();
2001
2005
  })
2002
2006
  }
@@ -2160,13 +2164,22 @@ const Select$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
2160
2164
  Viewport,
2161
2165
  createSelectScope
2162
2166
  }, Symbol.toStringTag, { value: "Module" }));
2167
+ function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
2168
+ return function handleEvent(event) {
2169
+ originalEventHandler?.(event);
2170
+ if (checkForDefaultPrevented === false || !event.defaultPrevented) {
2171
+ return ourEventHandler?.(event);
2172
+ }
2173
+ };
2174
+ }
2163
2175
  export {
2164
2176
  Combobox$1 as Combobox,
2165
2177
  Select$1 as Select,
2166
- composeEventHandlers2 as composeEventHandlers,
2178
+ composeEventHandlers,
2167
2179
  createCollection,
2168
- useCallbackRef2 as useCallbackRef,
2180
+ useCallbackRef,
2169
2181
  useCollator,
2170
- useFilter
2182
+ useFilter,
2183
+ usePrev
2171
2184
  };
2172
2185
  //# sourceMappingURL=index.mjs.map