colibri-ui 0.7.23 → 0.7.25

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 (89) hide show
  1. package/Button/index.d.ts +2 -2
  2. package/Button/index.js +4 -3
  3. package/ClickOutside/index.d.ts +6 -0
  4. package/ClickOutside/index.js +32 -0
  5. package/ClickOutside/package.json +6 -0
  6. package/Counter/index.js +2 -2
  7. package/Dropdown/index.d.ts +4 -0
  8. package/Dropdown/index.js +146 -0
  9. package/Dropdown/index.props.d.ts +18 -0
  10. package/Dropdown/package.json +6 -0
  11. package/Dropdown/styles.d.ts +9 -0
  12. package/Dropdown/styles.js +29 -0
  13. package/Icons/Chevron.js +2 -2
  14. package/Icons/Close.js +2 -2
  15. package/Icons/EyeClosed.js +2 -2
  16. package/Icons/EyeOpen.js +2 -2
  17. package/Icons/Help.js +2 -2
  18. package/Icons/Info.js +2 -2
  19. package/Icons/Minus.js +2 -2
  20. package/Icons/More.js +2 -2
  21. package/Icons/Plus.js +2 -2
  22. package/Icons/Trash.js +2 -2
  23. package/Icons/User.js +2 -2
  24. package/Image/index.js +4 -4
  25. package/Input/index.js +2 -2
  26. package/Menu/components/MenuItem/index.d.ts +4 -0
  27. package/Menu/components/MenuItem/index.js +27 -0
  28. package/Menu/components/MenuItem/index.props.d.ts +23 -0
  29. package/Menu/components/MenuItem/styles.d.ts +10 -0
  30. package/Menu/components/MenuItem/styles.js +31 -0
  31. package/Menu/index.d.ts +3 -0
  32. package/Menu/index.js +40 -0
  33. package/Menu/index.props.d.ts +33 -0
  34. package/Menu/package.json +6 -0
  35. package/Menu/styles.d.ts +5 -0
  36. package/Menu/styles.js +24 -0
  37. package/Portal/index.d.ts +6 -0
  38. package/Portal/index.js +24 -0
  39. package/Portal/package.json +6 -0
  40. package/Switch/index.js +2 -2
  41. package/Theme/index.d.ts +2 -0
  42. package/Theme/index.props.d.ts +2 -0
  43. package/Theme/themes/buenos_aires.d.ts +4 -1
  44. package/Theme/themes/buenos_aires.js +25 -3
  45. package/Theme/themes/default.d.ts +3 -0
  46. package/Theme/themes/default.js +22 -0
  47. package/Typography/index.js +4 -4
  48. package/base/FormField/index.js +2 -2
  49. package/base/InputRoot/index.js +2 -2
  50. package/esm/Button/index.d.ts +2 -2
  51. package/esm/Button/index.js +2 -1
  52. package/esm/ClickOutside/index.d.ts +6 -0
  53. package/esm/ClickOutside/index.js +24 -0
  54. package/esm/Dropdown/index.d.ts +4 -0
  55. package/esm/Dropdown/index.js +142 -0
  56. package/esm/Dropdown/index.props.d.ts +18 -0
  57. package/esm/Dropdown/styles.d.ts +9 -0
  58. package/esm/Dropdown/styles.js +22 -0
  59. package/esm/Menu/components/MenuItem/index.d.ts +4 -0
  60. package/esm/Menu/components/MenuItem/index.js +23 -0
  61. package/esm/Menu/components/MenuItem/index.props.d.ts +23 -0
  62. package/esm/Menu/components/MenuItem/styles.d.ts +10 -0
  63. package/esm/Menu/components/MenuItem/styles.js +25 -0
  64. package/esm/Menu/index.d.ts +3 -0
  65. package/esm/Menu/index.js +36 -0
  66. package/esm/Menu/index.props.d.ts +33 -0
  67. package/esm/Menu/styles.d.ts +5 -0
  68. package/esm/Menu/styles.js +18 -0
  69. package/esm/Portal/index.d.ts +6 -0
  70. package/esm/Portal/index.js +16 -0
  71. package/esm/Theme/index.d.ts +2 -0
  72. package/esm/Theme/index.props.d.ts +2 -0
  73. package/esm/Theme/themes/buenos_aires.d.ts +4 -1
  74. package/esm/Theme/themes/buenos_aires.js +24 -3
  75. package/esm/Theme/themes/default.d.ts +3 -0
  76. package/esm/Theme/themes/default.js +22 -1
  77. package/esm/helpers/on.d.ts +1 -0
  78. package/esm/helpers/on.js +8 -0
  79. package/esm/hooks/useOnClickOutside/index.d.ts +3 -0
  80. package/esm/hooks/useOnClickOutside/index.js +28 -0
  81. package/esm/index.d.ts +2 -0
  82. package/esm/index.js +2 -0
  83. package/helpers/on.d.ts +1 -0
  84. package/helpers/on.js +10 -0
  85. package/hooks/useOnClickOutside/index.d.ts +3 -0
  86. package/hooks/useOnClickOutside/index.js +32 -0
  87. package/index.d.ts +2 -0
  88. package/index.js +22 -18
  89. package/package.json +12 -5
@@ -1,5 +1,6 @@
1
1
  import type { CheckboxVariant } from "../../Checkbox/index.props";
2
2
  import type { ButtonBase, ButtonVariant } from "../../Button/index.props";
3
+ import { MenuVariant } from "../../Menu/index.props";
3
4
  export declare const ButtonThemeDefault: ButtonVariant & ButtonBase;
4
5
  export declare const InputThemeDefault: {
5
6
  placeholder: {
@@ -65,9 +66,11 @@ export declare const SwitchThemeDefault: {
65
66
  };
66
67
  };
67
68
  };
69
+ export declare const MenuThemeDefault: MenuVariant;
68
70
  export declare const THEME_DEFAULT: {
69
71
  breakpoints: import("../breakpoints").BreakpointsTheme;
70
72
  button: ButtonVariant & ButtonBase;
73
+ menu: MenuVariant;
71
74
  input: {
72
75
  placeholder: {
73
76
  color: string;
@@ -191,9 +191,30 @@ var SwitchThemeDefault = {
191
191
  }
192
192
  }
193
193
  };
194
+ var MenuThemeDefault = {
195
+ primary: {
196
+ normal: {
197
+ backgroundColor: Color.WHITE
198
+ },
199
+ hovered: {
200
+ backgroundColor: Color.PRIMARY_2
201
+ },
202
+ focused: {
203
+ backgroundColor: Color.PRIMARY_2
204
+ },
205
+ selected: {
206
+ backgroundColor: Color.PRIMARY_2
207
+ },
208
+ disabled: {
209
+ color: Color.BG_2,
210
+ backgroundColor: Color.WHITE
211
+ }
212
+ }
213
+ };
194
214
  var THEME_DEFAULT = {
195
215
  breakpoints: Breakpoints,
196
216
  button: ButtonThemeDefault,
217
+ menu: MenuThemeDefault,
197
218
  input: InputThemeDefault,
198
219
  checkbox: CheckboxThemeDefault,
199
220
  typography: TypographyThemeDefault,
@@ -201,4 +222,4 @@ var THEME_DEFAULT = {
201
222
  palette: Color
202
223
  };
203
224
 
204
- export { ButtonThemeDefault, CheckboxThemeDefault, InputThemeDefault, SwitchThemeDefault, THEME_DEFAULT, TypographyThemeDefault };
225
+ export { ButtonThemeDefault, CheckboxThemeDefault, InputThemeDefault, MenuThemeDefault, SwitchThemeDefault, THEME_DEFAULT, TypographyThemeDefault };
@@ -0,0 +1 @@
1
+ export declare const on: <K extends keyof HTMLElementEventMap>(element: HTMLElement | null | undefined, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions) => () => void;
@@ -0,0 +1,8 @@
1
+ var on = function on(element, type, listener, options) {
2
+ element === null || element === void 0 ? void 0 : element.addEventListener(type, listener, options);
3
+ return function () {
4
+ element === null || element === void 0 ? void 0 : element.removeEventListener(type, listener, options);
5
+ };
6
+ };
7
+
8
+ export { on };
@@ -0,0 +1,3 @@
1
+ import { MutableRefObject, RefObject } from "react";
2
+ declare function useOnClickOutside<T extends HTMLElement = HTMLElement>(ref: RefObject<T> | MutableRefObject<T | undefined>, handler: (e: MouseEvent | TouchEvent) => void): void;
3
+ export default useOnClickOutside;
@@ -0,0 +1,28 @@
1
+ import { useEffect } from 'react';
2
+
3
+ var element = {
4
+ current: undefined
5
+ };
6
+ function useOnClickOutside(ref, handler) {
7
+ useEffect(function () {
8
+ var previous = element;
9
+ element = ref;
10
+ var listener = function listener(event) {
11
+ var _a;
12
+ if ((ref === null || ref === void 0 ? void 0 : ref.current) !== (element === null || element === void 0 ? void 0 : element.current)) return;
13
+ if ((_a = element.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)) {
14
+ return;
15
+ }
16
+ handler(event);
17
+ };
18
+ document.addEventListener("mousedown", listener, false);
19
+ document.addEventListener("touchstart", listener, false);
20
+ return function () {
21
+ document.removeEventListener("mousedown", listener, false);
22
+ document.removeEventListener("touchstart", listener, false);
23
+ element = previous;
24
+ };
25
+ }, [handler, ref]);
26
+ }
27
+
28
+ export { useOnClickOutside as default };
package/esm/index.d.ts CHANGED
@@ -2,10 +2,12 @@ export { default as Button } from "./Button";
2
2
  export { default as Checkbox } from "./Checkbox";
3
3
  export { default as Counter } from "./Counter";
4
4
  export { default as DotsLoader } from "./DotsLoader";
5
+ export { default as Dropdown } from "./Dropdown";
5
6
  export { default as Grid } from "./Grid";
6
7
  export { default as GridItem } from "./Grid/Item";
7
8
  export { default as Image } from "./Image";
8
9
  export { default as Input } from "./Input";
10
+ export { default as Menu } from "./Menu";
9
11
  export { SkeletonText, SkeletonRect } from "./Skeleton";
10
12
  export { default as Switch } from "./Switch";
11
13
  export { THEMES, ThemeProvider } from "./Theme";
package/esm/index.js CHANGED
@@ -2,10 +2,12 @@ export { default as Button } from './Button/index.js';
2
2
  export { default as Checkbox } from './Checkbox/index.js';
3
3
  export { default as Counter } from './Counter/index.js';
4
4
  export { default as DotsLoader } from './DotsLoader/index.js';
5
+ export { default as Dropdown } from './Dropdown/index.js';
5
6
  export { default as Grid } from './Grid/index.js';
6
7
  export { default as GridItem } from './Grid/Item/index.js';
7
8
  export { default as Image } from './Image/index.js';
8
9
  export { default as Input } from './Input/index.js';
10
+ export { default as Menu } from './Menu/index.js';
9
11
  export { SkeletonRect, SkeletonText } from './Skeleton/index.js';
10
12
  export { default as Switch } from './Switch/index.js';
11
13
  export { THEMES, ThemeProvider } from './Theme/index.js';
@@ -0,0 +1 @@
1
+ export declare const on: <K extends keyof HTMLElementEventMap>(element: HTMLElement | null | undefined, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions) => () => void;
package/helpers/on.js ADDED
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var on = function on(element, type, listener, options) {
4
+ element === null || element === void 0 ? void 0 : element.addEventListener(type, listener, options);
5
+ return function () {
6
+ element === null || element === void 0 ? void 0 : element.removeEventListener(type, listener, options);
7
+ };
8
+ };
9
+
10
+ exports.on = on;
@@ -0,0 +1,3 @@
1
+ import { MutableRefObject, RefObject } from "react";
2
+ declare function useOnClickOutside<T extends HTMLElement = HTMLElement>(ref: RefObject<T> | MutableRefObject<T | undefined>, handler: (e: MouseEvent | TouchEvent) => void): void;
3
+ export default useOnClickOutside;
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ var element = {
8
+ current: undefined
9
+ };
10
+ function useOnClickOutside(ref, handler) {
11
+ React.useEffect(function () {
12
+ var previous = element;
13
+ element = ref;
14
+ var listener = function listener(event) {
15
+ var _a;
16
+ if ((ref === null || ref === void 0 ? void 0 : ref.current) !== (element === null || element === void 0 ? void 0 : element.current)) return;
17
+ if ((_a = element.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)) {
18
+ return;
19
+ }
20
+ handler(event);
21
+ };
22
+ document.addEventListener("mousedown", listener, false);
23
+ document.addEventListener("touchstart", listener, false);
24
+ return function () {
25
+ document.removeEventListener("mousedown", listener, false);
26
+ document.removeEventListener("touchstart", listener, false);
27
+ element = previous;
28
+ };
29
+ }, [handler, ref]);
30
+ }
31
+
32
+ exports.default = useOnClickOutside;
package/index.d.ts CHANGED
@@ -2,10 +2,12 @@ export { default as Button } from "./Button";
2
2
  export { default as Checkbox } from "./Checkbox";
3
3
  export { default as Counter } from "./Counter";
4
4
  export { default as DotsLoader } from "./DotsLoader";
5
+ export { default as Dropdown } from "./Dropdown";
5
6
  export { default as Grid } from "./Grid";
6
7
  export { default as GridItem } from "./Grid/Item";
7
8
  export { default as Image } from "./Image";
8
9
  export { default as Input } from "./Input";
10
+ export { default as Menu } from "./Menu";
9
11
  export { SkeletonText, SkeletonRect } from "./Skeleton";
10
12
  export { default as Switch } from "./Switch";
11
13
  export { THEMES, ThemeProvider } from "./Theme";
package/index.js CHANGED
@@ -4,14 +4,16 @@ var index = require('./Button/index.js');
4
4
  var index$1 = require('./Checkbox/index.js');
5
5
  var index$2 = require('./Counter/index.js');
6
6
  var index$3 = require('./DotsLoader/index.js');
7
- var index$4 = require('./Grid/index.js');
8
- var index$5 = require('./Grid/Item/index.js');
9
- var index$6 = require('./Image/index.js');
10
- var index$7 = require('./Input/index.js');
11
- var index$8 = require('./Skeleton/index.js');
12
- var index$9 = require('./Switch/index.js');
13
- var index$a = require('./Theme/index.js');
14
- var index$b = require('./Typography/index.js');
7
+ var index$4 = require('./Dropdown/index.js');
8
+ var index$5 = require('./Grid/index.js');
9
+ var index$6 = require('./Grid/Item/index.js');
10
+ var index$7 = require('./Image/index.js');
11
+ var index$8 = require('./Input/index.js');
12
+ var index$9 = require('./Menu/index.js');
13
+ var index$a = require('./Skeleton/index.js');
14
+ var index$b = require('./Switch/index.js');
15
+ var index$c = require('./Theme/index.js');
16
+ var index$d = require('./Typography/index.js');
15
17
  require('./Icons/index.js');
16
18
  var Chevron = require('./Icons/Chevron.js');
17
19
  var Close = require('./Icons/Close.js');
@@ -31,16 +33,18 @@ exports.Button = index.default;
31
33
  exports.Checkbox = index$1.default;
32
34
  exports.Counter = index$2.default;
33
35
  exports.DotsLoader = index$3.default;
34
- exports.Grid = index$4.default;
35
- exports.GridItem = index$5.default;
36
- exports.Image = index$6.default;
37
- exports.Input = index$7.default;
38
- exports.SkeletonRect = index$8.SkeletonRect;
39
- exports.SkeletonText = index$8.SkeletonText;
40
- exports.Switch = index$9.default;
41
- exports.THEMES = index$a.THEMES;
42
- exports.ThemeProvider = index$a.ThemeProvider;
43
- exports.Typography = index$b.default;
36
+ exports.Dropdown = index$4.default;
37
+ exports.Grid = index$5.default;
38
+ exports.GridItem = index$6.default;
39
+ exports.Image = index$7.default;
40
+ exports.Input = index$8.default;
41
+ exports.Menu = index$9.default;
42
+ exports.SkeletonRect = index$a.SkeletonRect;
43
+ exports.SkeletonText = index$a.SkeletonText;
44
+ exports.Switch = index$b.default;
45
+ exports.THEMES = index$c.THEMES;
46
+ exports.ThemeProvider = index$c.ThemeProvider;
47
+ exports.Typography = index$d.default;
44
48
  exports.Chevron = Chevron.default;
45
49
  exports.Close = Close.default;
46
50
  exports.EyeOpen = EyeOpen.default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "colibri-ui",
3
- "version": "0.7.23",
3
+ "version": "0.7.25",
4
4
  "description": "React UI components library",
5
5
  "main": "index.js",
6
6
  "scripts": {},
@@ -25,14 +25,15 @@
25
25
  "@emotion/css": "^11.11.2",
26
26
  "@emotion/react": "^11.11.4",
27
27
  "@emotion/styled": "^11.11.5",
28
+ "@popperjs/core": "^2.11.8",
28
29
  "react": "^17.0.0 || ^18.0.0",
29
- "react-dom": "^17.0.0 || ^18.0.0"
30
+ "react-dom": "^17.0.0 || ^18.0.0",
31
+ "react-popper": "^2.3.0"
30
32
  },
31
33
  "devDependencies": {
32
34
  "@babel/plugin-transform-runtime": "7.24.3",
33
- "@babel/preset-env": "7.24.5",
34
- "@babel/preset-react": "7.24.1",
35
- "@babel/preset-typescript": "7.24.1",
35
+ "@babel/preset-typescript": "^7.24.1",
36
+ "@cypress/code-coverage": "^3.12.39",
36
37
  "@emotion/babel-plugin": "11.11.0",
37
38
  "@eslint/js": "9.2.0",
38
39
  "@rollup/plugin-babel": "6.0.4",
@@ -52,7 +53,12 @@
52
53
  "@storybook/test": "8.0.10",
53
54
  "@svgr/rollup": "8.1.0",
54
55
  "@swc/plugin-emotion": "^3.0.4",
56
+ "@types/cypress": "^1.1.3",
57
+ "@types/node": "^20.12.12",
55
58
  "@types/react": "18.3.1",
59
+ "@types/react-dom": "^18.3.0",
60
+ "babel-loader": "^9.1.3",
61
+ "cypress": "^13.10.0",
56
62
  "eslint": "8.57.0",
57
63
  "eslint-config-prettier": "9.1.0",
58
64
  "eslint-plugin-import": "^2.29.1",
@@ -63,6 +69,7 @@
63
69
  "prettier": "3.2.5",
64
70
  "rollup": "4.17.2",
65
71
  "storybook": "8.0.10",
72
+ "ts-loader": "^9.5.1",
66
73
  "ts-node": "10.9.2",
67
74
  "typescript": "5.4.5",
68
75
  "typescript-eslint": "7.8.0"