colibri-ui 0.8.59 → 0.8.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.
@@ -1,4 +1,4 @@
1
- import type { FC, PropsWithChildren } from "react";
1
+ import { type FC, type PropsWithChildren } from "react";
2
2
  type ClickOutsideProps = {
3
3
  onClick: (e: MouseEvent | TouchEvent) => void;
4
4
  };
@@ -2,31 +2,34 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _typeof = require('@babel/runtime/helpers/typeof');
6
5
  var React = require('react');
7
6
  var index = require('../hooks/useOnClickOutside/index.js');
8
7
 
9
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
-
11
- var _typeof__default = /*#__PURE__*/_interopDefault(_typeof);
12
-
8
+ /**
9
+ * Merges multiple refs (callback or object) into a single ref callback.
10
+ */
11
+ function useMergedRefs() {
12
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
13
+ refs[_key] = arguments[_key];
14
+ }
15
+ return React.useCallback(function (node) {
16
+ for (var _i = 0, _refs = refs; _i < _refs.length; _i++) {
17
+ var ref = _refs[_i];
18
+ if (!ref) continue;
19
+ if (typeof ref === "function") ref(node);else ref.current = node;
20
+ }
21
+ }, refs);
22
+ }
13
23
  var ClickOutside = function ClickOutside(_ref) {
14
24
  var children = _ref.children,
15
25
  onClick = _ref.onClick;
16
- var childRef = React.useRef(null);
17
- index.default(childRef, onClick);
26
+ var _a;
27
+ var localRef = React.useRef(null);
28
+ index.default(localRef, onClick);
18
29
  if (! /*#__PURE__*/React.isValidElement(children)) return null;
19
- var combinedRef = function combinedRef(node) {
20
- childRef.current = node;
21
- var childRefProp = children.ref;
22
- if (typeof childRefProp === "function") {
23
- childRefProp(node);
24
- } else if (childRefProp && _typeof__default.default(childRefProp) === "object" && "current" in childRefProp) {
25
- childRefProp.current = node;
26
- }
27
- };
30
+ var mergedRef = useMergedRefs(localRef, (_a = children.props) === null || _a === void 0 ? void 0 : _a.ref);
28
31
  return /*#__PURE__*/React.cloneElement(children, {
29
- ref: combinedRef
32
+ ref: mergedRef
30
33
  });
31
34
  };
32
35
 
package/Dropdown/index.js CHANGED
@@ -93,10 +93,10 @@ var Dropdown = function Dropdown(_ref) {
93
93
  React.useEffect(function () {
94
94
  if (update) update();
95
95
  }, [update, visible]);
96
- return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, reference && (/*#__PURE__*/React__default.default.createElement(reference.type, Object.assign({
96
+ return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, reference && /*#__PURE__*/React__default.default.cloneElement(reference, Object.assign({
97
97
  ref: refs.setReference,
98
98
  tabIndex: 0
99
- }, getReferenceProps(reference.props)))), isVisible && (/*#__PURE__*/React__default.default.createElement(react.FloatingPortal, null, /*#__PURE__*/React__default.default.createElement(index.default, {
99
+ }, getReferenceProps(reference.props))), isVisible && (/*#__PURE__*/React__default.default.createElement(react.FloatingPortal, null, /*#__PURE__*/React__default.default.createElement(index.default, {
100
100
  onClick: function onClick() {
101
101
  return setVisible(false);
102
102
  }
@@ -1,4 +1,4 @@
1
- import type { FC, PropsWithChildren } from "react";
1
+ import { type FC, type PropsWithChildren } from "react";
2
2
  type ClickOutsideProps = {
3
3
  onClick: (e: MouseEvent | TouchEvent) => void;
4
4
  };
@@ -1,24 +1,31 @@
1
- import _typeof from '@babel/runtime/helpers/typeof';
2
- import { useRef, isValidElement, cloneElement } from 'react';
1
+ import { useRef, isValidElement, cloneElement, useCallback } from 'react';
3
2
  import useOnClickOutside from '../hooks/useOnClickOutside/index.js';
4
3
 
4
+ /**
5
+ * Merges multiple refs (callback or object) into a single ref callback.
6
+ */
7
+ function useMergedRefs() {
8
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
9
+ refs[_key] = arguments[_key];
10
+ }
11
+ return useCallback(function (node) {
12
+ for (var _i = 0, _refs = refs; _i < _refs.length; _i++) {
13
+ var ref = _refs[_i];
14
+ if (!ref) continue;
15
+ if (typeof ref === "function") ref(node);else ref.current = node;
16
+ }
17
+ }, refs);
18
+ }
5
19
  var ClickOutside = function ClickOutside(_ref) {
6
20
  var children = _ref.children,
7
21
  onClick = _ref.onClick;
8
- var childRef = useRef(null);
9
- useOnClickOutside(childRef, onClick);
22
+ var _a;
23
+ var localRef = useRef(null);
24
+ useOnClickOutside(localRef, onClick);
10
25
  if (! /*#__PURE__*/isValidElement(children)) return null;
11
- var combinedRef = function combinedRef(node) {
12
- childRef.current = node;
13
- var childRefProp = children.ref;
14
- if (typeof childRefProp === "function") {
15
- childRefProp(node);
16
- } else if (childRefProp && _typeof(childRefProp) === "object" && "current" in childRefProp) {
17
- childRefProp.current = node;
18
- }
19
- };
26
+ var mergedRef = useMergedRefs(localRef, (_a = children.props) === null || _a === void 0 ? void 0 : _a.ref);
20
27
  return /*#__PURE__*/cloneElement(children, {
21
- ref: combinedRef
28
+ ref: mergedRef
22
29
  });
23
30
  };
24
31
 
@@ -81,10 +81,10 @@ var Dropdown = function Dropdown(_ref) {
81
81
  useEffect(function () {
82
82
  if (update) update();
83
83
  }, [update, visible]);
84
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, reference && (/*#__PURE__*/React__default.createElement(reference.type, Object.assign({
84
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, reference && /*#__PURE__*/React__default.cloneElement(reference, Object.assign({
85
85
  ref: refs.setReference,
86
86
  tabIndex: 0
87
- }, getReferenceProps(reference.props)))), isVisible && (/*#__PURE__*/React__default.createElement(FloatingPortal, null, /*#__PURE__*/React__default.createElement(ClickOutside, {
87
+ }, getReferenceProps(reference.props))), isVisible && (/*#__PURE__*/React__default.createElement(FloatingPortal, null, /*#__PURE__*/React__default.createElement(ClickOutside, {
88
88
  onClick: function onClick() {
89
89
  return setVisible(false);
90
90
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "colibri-ui",
3
- "version": "0.8.59",
3
+ "version": "0.8.60",
4
4
  "description": "React UI components library",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",