@dreamcommerce/aurora 2.17.20 → 2.17.21-2

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 (76) hide show
  1. package/build/cjs/external/uuid/dist/esm-browser/regex.js +8 -0
  2. package/build/cjs/external/uuid/dist/esm-browser/regex.js.map +1 -0
  3. package/build/cjs/external/uuid/dist/esm-browser/rng.js +26 -0
  4. package/build/cjs/external/uuid/dist/esm-browser/rng.js.map +1 -0
  5. package/build/cjs/external/uuid/dist/esm-browser/stringify.js +36 -0
  6. package/build/cjs/external/uuid/dist/esm-browser/stringify.js.map +1 -0
  7. package/build/cjs/external/uuid/dist/esm-browser/v4.js +29 -0
  8. package/build/cjs/external/uuid/dist/esm-browser/v4.js.map +1 -0
  9. package/build/cjs/external/uuid/dist/esm-browser/validate.js +12 -0
  10. package/build/cjs/external/uuid/dist/esm-browser/validate.js.map +1 -0
  11. package/build/cjs/packages/aurora/src/components/color_picker_new/components/pure-color-picker.js +7 -6
  12. package/build/cjs/packages/aurora/src/components/color_picker_new/components/pure-color-picker.js.map +1 -1
  13. package/build/cjs/packages/aurora/src/components/controls/hoc/control_color_picker/index.js +9 -9
  14. package/build/cjs/packages/aurora/src/components/controls/hoc/control_date_picker/index.js +9 -9
  15. package/build/cjs/packages/aurora/src/components/date_picker/components/month_controller.js +5 -5
  16. package/build/cjs/packages/aurora/src/components/dropdown/components/content.js +33 -1
  17. package/build/cjs/packages/aurora/src/components/dropdown/components/content.js.map +1 -1
  18. package/build/cjs/packages/aurora/src/components/dropdown/{index.js → components/dropdown.js} +22 -18
  19. package/build/cjs/packages/aurora/src/components/dropdown/components/dropdown.js.map +1 -0
  20. package/build/cjs/packages/aurora/src/components/dropdown/context/dropdowns_manager.js +17 -0
  21. package/build/cjs/packages/aurora/src/components/dropdown/context/dropdowns_manager.js.map +1 -0
  22. package/build/cjs/packages/aurora/src/components/dropdown/hoc/multiselect/index.js +6 -6
  23. package/build/cjs/packages/aurora/src/components/dropdown/hoc/select/index.js +7 -7
  24. package/build/cjs/packages/aurora/src/components/dropdown/hooks/use_dropdowns_manager_context.js +19 -0
  25. package/build/cjs/packages/aurora/src/components/dropdown/hooks/use_dropdowns_manager_context.js.map +1 -0
  26. package/build/cjs/packages/aurora/src/components/dropdown/hooks/use_toggle.js +4 -1
  27. package/build/cjs/packages/aurora/src/components/dropdown/hooks/use_toggle.js.map +1 -1
  28. package/build/cjs/packages/aurora/src/components/hint/index.js +2 -2
  29. package/build/cjs/packages/aurora/src/components/tooltip/index.js +2 -2
  30. package/build/cjs/packages/aurora/src/index.js +105 -105
  31. package/build/esm/external/uuid/dist/esm-browser/regex.js +4 -0
  32. package/build/esm/external/uuid/dist/esm-browser/regex.js.map +1 -0
  33. package/build/esm/external/uuid/dist/esm-browser/rng.js +22 -0
  34. package/build/esm/external/uuid/dist/esm-browser/rng.js.map +1 -0
  35. package/build/esm/external/uuid/dist/esm-browser/stringify.js +32 -0
  36. package/build/esm/external/uuid/dist/esm-browser/stringify.js.map +1 -0
  37. package/build/esm/external/uuid/dist/esm-browser/v4.js +25 -0
  38. package/build/esm/external/uuid/dist/esm-browser/v4.js.map +1 -0
  39. package/build/esm/external/uuid/dist/esm-browser/validate.js +8 -0
  40. package/build/esm/external/uuid/dist/esm-browser/validate.js.map +1 -0
  41. package/build/esm/packages/aurora/src/components/color_picker_new/components/pure-color-picker.js +3 -2
  42. package/build/esm/packages/aurora/src/components/color_picker_new/components/pure-color-picker.js.map +1 -1
  43. package/build/esm/packages/aurora/src/components/controls/hoc/control_color_picker/index.js +1 -1
  44. package/build/esm/packages/aurora/src/components/controls/hoc/control_date_picker/index.js +1 -1
  45. package/build/esm/packages/aurora/src/components/date_picker/components/month_controller.js +1 -1
  46. package/build/esm/packages/aurora/src/components/dropdown/components/content.js +33 -1
  47. package/build/esm/packages/aurora/src/components/dropdown/components/content.js.map +1 -1
  48. package/build/esm/packages/aurora/src/components/dropdown/components/dropdown.d.ts +23 -0
  49. package/build/esm/packages/aurora/src/components/dropdown/components/dropdown.js +92 -0
  50. package/build/{cjs/packages/aurora/src/components/dropdown/index.js.map → esm/packages/aurora/src/components/dropdown/components/dropdown.js.map} +1 -1
  51. package/build/esm/packages/aurora/src/components/dropdown/context/dropdowns_manager.d.ts +3 -0
  52. package/build/esm/packages/aurora/src/components/dropdown/context/dropdowns_manager.js +13 -0
  53. package/build/esm/packages/aurora/src/components/dropdown/context/dropdowns_manager.js.map +1 -0
  54. package/build/esm/packages/aurora/src/components/dropdown/context/types.d.ts +7 -0
  55. package/build/esm/packages/aurora/src/components/dropdown/context/types.js +1 -1
  56. package/build/esm/packages/aurora/src/components/dropdown/context/types.js.map +1 -1
  57. package/build/esm/packages/aurora/src/components/dropdown/hoc/multiselect/index.js +1 -1
  58. package/build/esm/packages/aurora/src/components/dropdown/hoc/select/index.js +1 -1
  59. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_dropdowns_manager.d.ts +8 -0
  60. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_dropdowns_manager.js +42 -0
  61. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_dropdowns_manager.js.map +1 -0
  62. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_dropdowns_manager_context.d.ts +2 -0
  63. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_dropdowns_manager_context.js +15 -0
  64. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_dropdowns_manager_context.js.map +1 -0
  65. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_toggle.d.ts +2 -1
  66. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_toggle.js +4 -1
  67. package/build/esm/packages/aurora/src/components/dropdown/hooks/use_toggle.js.map +1 -1
  68. package/build/esm/packages/aurora/src/components/dropdown/index.d.ts +6 -23
  69. package/build/esm/packages/aurora/src/components/dropdown/index.js +14 -87
  70. package/build/esm/packages/aurora/src/components/dropdown/index.js.map +1 -1
  71. package/build/esm/packages/aurora/src/components/dropdown/types.d.ts +5 -0
  72. package/build/esm/packages/aurora/src/components/hint/index.js +1 -1
  73. package/build/esm/packages/aurora/src/components/tooltip/index.js +1 -1
  74. package/build/esm/packages/aurora/src/index.d.ts +3 -3
  75. package/build/esm/packages/aurora/src/index.js +2 -2
  76. package/package.json +1 -1
@@ -0,0 +1,92 @@
1
+ import React, { useRef } from 'react';
2
+ import { slicedToArray as _slicedToArray } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
3
+ import { DropdownContext } from '../context/index.js';
4
+ import cssClasses from '../../../css/dropdown/main.module.less.js';
5
+ import { useDropdownsManagerContext } from '../hooks/use_dropdowns_manager_context.js';
6
+ import Content from './content.js';
7
+ import CustomLabel from './custom_label.js';
8
+ import Header from './header.js';
9
+ import Item from './item.js';
10
+ import ItemWithHover from './item_with_hover.js';
11
+ import Label from './label.js';
12
+ import Link from './link.js';
13
+ import List from './list.js';
14
+ import Option from './option.js';
15
+ import { useToggle } from '../hooks/use_toggle.js';
16
+ import OptionMultiple from './option_multiple.js';
17
+ import Search from './search.js';
18
+ import Select from './select.js';
19
+
20
+ /**
21
+ * Dropdown composition component. Provides several Dropdown dependant components which can be composed to create
22
+ * selects, multiselects or dropdowns.
23
+ *
24
+ * @component
25
+ * @example
26
+ * return (
27
+ * <Dropdown>
28
+ * <Dropdown.Label label="Wybierz link" />
29
+ * <Dropdown.Content>
30
+ * <Dropdown.List>
31
+ * <Dropdown.Link text="shoper.pl" href="https://shoper.pl" />
32
+ * <Dropdown.Link text="forum.shoper.pl" href="https://forum.shoper.pl" />
33
+ * <Dropdown.Link text="shoper.pl/help" href="https://shoper.pl/help" />
34
+ * </Dropdown.List>
35
+ * </Dropdown.Content>
36
+ * <Dropdown>
37
+ * )
38
+ */
39
+
40
+ var Dropdown = function Dropdown(_ref) {
41
+ var _ref$defaultIsOpen = _ref.defaultIsOpen,
42
+ defaultIsOpen = _ref$defaultIsOpen === void 0 ? false : _ref$defaultIsOpen,
43
+ onToggle = _ref.onToggle,
44
+ children = _ref.children;
45
+ var wrapperRef = useRef(null);
46
+
47
+ var _useDropdownsManagerC = useDropdownsManagerContext(),
48
+ closeAllDropdowns = _useDropdownsManagerC.closeAllDropdowns;
49
+
50
+ var _useToggle = useToggle(defaultIsOpen, onToggle, closeAllDropdowns),
51
+ _useToggle2 = _slicedToArray(_useToggle, 4),
52
+ isOpen = _useToggle2[0],
53
+ toggleDropdown = _useToggle2[1],
54
+ openDropdown = _useToggle2[2],
55
+ closeDropdown = _useToggle2[3];
56
+ /**
57
+ * context values, they may be used with useContext in any component which is part of Dropdown composition
58
+ */
59
+
60
+
61
+ var value = React.useMemo(function () {
62
+ return {
63
+ wrapperRef: wrapperRef,
64
+ isOpen: isOpen,
65
+ toggleDropdown: toggleDropdown,
66
+ openDropdown: openDropdown,
67
+ closeDropdown: closeDropdown
68
+ };
69
+ }, [isOpen, toggleDropdown, openDropdown, closeDropdown]);
70
+ return /*#__PURE__*/React.createElement(DropdownContext.Provider, {
71
+ value: value
72
+ }, /*#__PURE__*/React.createElement("div", {
73
+ ref: wrapperRef,
74
+ className: cssClasses.dropdown
75
+ }, children));
76
+ };
77
+
78
+ Dropdown.Select = Select;
79
+ Dropdown.Content = Content;
80
+ Dropdown.ItemWithHover = ItemWithHover;
81
+ Dropdown.Search = Search;
82
+ Dropdown.List = List;
83
+ Dropdown.Header = Header;
84
+ Dropdown.Option = Option;
85
+ Dropdown.OptionMultiple = OptionMultiple;
86
+ Dropdown.Link = Link;
87
+ Dropdown.Label = Label;
88
+ Dropdown.CustomLabel = CustomLabel;
89
+ Dropdown.Item = Item;
90
+
91
+ export default Dropdown;
92
+ //# sourceMappingURL=dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { IDropdownsManagerContextProps } from './types';
3
+ export declare const DropdownsManagerContext: import("react").Context<IDropdownsManagerContextProps>;
@@ -0,0 +1,13 @@
1
+ import { createContext } from 'react';
2
+
3
+ var DropdownsManagerContext = /*#__PURE__*/createContext({
4
+ addDropdown: function addDropdown() {},
5
+ updateDropdown: function updateDropdown() {},
6
+ getDropdown: function getDropdown() {
7
+ return undefined;
8
+ },
9
+ closeAllDropdowns: function closeAllDropdowns() {}
10
+ });
11
+
12
+ export { DropdownsManagerContext };
13
+ //# sourceMappingURL=dropdowns_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { IDropdown } from '../types';
2
3
  export interface IDropdownContext {
3
4
  wrapperRef?: React.RefObject<HTMLDivElement>;
4
5
  isOpen?: boolean;
@@ -6,3 +7,9 @@ export interface IDropdownContext {
6
7
  openDropdown?: () => void;
7
8
  closeDropdown?: () => void;
8
9
  }
10
+ export interface IDropdownsManagerContextProps {
11
+ addDropdown: (dropdown: IDropdown) => void;
12
+ updateDropdown: (dropdown: IDropdown) => void;
13
+ getDropdown: (dropdownId: string) => IDropdown | undefined;
14
+ closeAllDropdowns: () => void;
15
+ }
@@ -1,2 +1,2 @@
1
- export {};
1
+ import '../types';
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../../src/components/dropdown/context/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../../src/components/dropdown/context/types.ts"],"names":[],"mappings":"AAAA,OAA0B,UAAU,CAAC"}
@@ -7,7 +7,7 @@ import { handleSearchKeyUp, isSelected, handleItemClick } from '../../utilities.
7
7
  import { useValues } from '../../hooks/use_values.js';
8
8
  import { useToggle } from '../../hooks/use_toggle.js';
9
9
  import { useSetOptionsOnClose } from '../../hooks/use_set_options_on_close.js';
10
- import Dropdown from '../../index.js';
10
+ import Dropdown from '../../components/dropdown.js';
11
11
 
12
12
  /**
13
13
  * MultiSelect component. Build with Dropdown composed components.
@@ -7,7 +7,7 @@ import { handleSearchKeyUp, isSelected, handleItemClick } from '../../utilities.
7
7
  import { useValue } from '../../hooks/use_value.js';
8
8
  import { useToggle } from '../../hooks/use_toggle.js';
9
9
  import { useSetOptionsOnClose } from '../../hooks/use_set_options_on_close.js';
10
- import Dropdown from '../../index.js';
10
+ import Dropdown from '../../components/dropdown.js';
11
11
 
12
12
  /**
13
13
  * Select component. Build with Dropdown composed components.
@@ -0,0 +1,8 @@
1
+ import { IDropdown } from '../types';
2
+ declare const useDropdownsManager: () => {
3
+ addDropdown: (dropdown: IDropdown) => void;
4
+ updateDropdown: (dropdown: IDropdown) => void;
5
+ getDropdown: (dropdownId: string) => IDropdown | undefined;
6
+ closeAllDropdowns: () => void;
7
+ };
8
+ export default useDropdownsManager;
@@ -0,0 +1,42 @@
1
+ import '../types';
2
+ import { useState } from 'react';
3
+ const useDropdownsManager = () => {
4
+ const [dropdownsStack, setDropdownsStack] = useState([]);
5
+ const addDropdown = (dropdown) => {
6
+ setDropdownsStack((stack) => {
7
+ const dropdownIdAlreadyExist = stack.some((stackModal) => stackModal.id === dropdown.id);
8
+ if (dropdownIdAlreadyExist) {
9
+ return [...stack];
10
+ }
11
+ else {
12
+ return [...stack, dropdown];
13
+ }
14
+ });
15
+ };
16
+ const updateDropdown = (dropdown) => {
17
+ setDropdownsStack((previousStack) => {
18
+ const updatedStack = previousStack.map((stackDropdown) => (stackDropdown.id === dropdown.id ? { ...dropdown } : stackDropdown));
19
+ return updatedStack;
20
+ });
21
+ };
22
+ const closeAllDropdowns = () => {
23
+ setDropdownsStack((previousStack) => {
24
+ const updatedStack = previousStack.map((stackDropdown) => {
25
+ stackDropdown.isOpen = false;
26
+ return stackDropdown;
27
+ });
28
+ return updatedStack;
29
+ });
30
+ };
31
+ const getDropdown = (dropdownId) => {
32
+ return dropdownsStack.find((stackModal) => stackModal.id === dropdownId);
33
+ };
34
+ return {
35
+ addDropdown,
36
+ updateDropdown,
37
+ getDropdown,
38
+ closeAllDropdowns
39
+ };
40
+ };
41
+ export default useDropdownsManager;
42
+ //# sourceMappingURL=use_dropdowns_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_dropdowns_manager.js","sourceRoot":"","sources":["../../../../../../../../src/components/dropdown/hooks/use_dropdowns_manager.ts"],"names":[],"mappings":"AAAA,OAA0B,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC7B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,CAAC,QAAmB,EAAE,EAAE;QACxC,iBAAiB,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEzF,IAAI,sBAAsB,EAAE;gBACxB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;aACrB;iBAAM;gBACH,OAAO,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC/B;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,QAAmB,EAAE,EAAE;QAC3C,iBAAiB,CAAC,CAAC,aAAa,EAAE,EAAE;YAChC,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAEhI,OAAO,YAAY,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,iBAAiB,CAAC,CAAC,aAAa,EAAE,EAAE;YAChC,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;gBACrD,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC7B,OAAO,aAAa,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,UAAkB,EAAyB,EAAE;QAC9D,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,OAAO;QACH,WAAW;QACX,cAAc;QACd,WAAW;QACX,iBAAiB;KACpB,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { IDropdownsManagerContextProps } from '../context/types';
2
+ export declare function useDropdownsManagerContext(): IDropdownsManagerContextProps;
@@ -0,0 +1,15 @@
1
+ import { useContext } from 'react';
2
+ import { DropdownsManagerContext } from '../context/dropdowns_manager.js';
3
+
4
+ function useDropdownsManagerContext() {
5
+ var context = useContext(DropdownsManagerContext);
6
+
7
+ if (Object.keys(context).length === 0 && context.constructor === Object) {
8
+ throw new Error("Dropdown cannot be rendered outside the DropdownsManagerContext");
9
+ }
10
+
11
+ return context;
12
+ }
13
+
14
+ export { useDropdownsManagerContext };
15
+ //# sourceMappingURL=use_dropdowns_manager_context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -2,6 +2,7 @@
2
2
  * Hook used for toggling dropdown
3
3
  * @param defaultIsOpen should dropdown be opened at render
4
4
  * @param onToggleCb callback onToggle
5
+ * @param closeAllDropdowns close all already opened dropdowns
5
6
  * @returns {Array} tuple - open state and and method to change open state
6
7
  */
7
- export declare function useToggle(defaultIsOpen?: boolean, onToggleCb?: (isOpen: boolean) => void): [boolean, () => void, () => void, () => void];
8
+ export declare function useToggle(defaultIsOpen?: boolean, onToggleCb?: (isOpen: boolean) => void, closeAllDropdowns?: () => void): [boolean, () => void, () => void, () => void];
@@ -6,12 +6,14 @@ import { useEffectAfterMount } from '../../../hooks/use_effect_after_mount.js';
6
6
  * Hook used for toggling dropdown
7
7
  * @param defaultIsOpen should dropdown be opened at render
8
8
  * @param onToggleCb callback onToggle
9
+ * @param closeAllDropdowns close all already opened dropdowns
9
10
  * @returns {Array} tuple - open state and and method to change open state
10
11
  */
11
12
 
12
13
  function useToggle() {
13
14
  var defaultIsOpen = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
14
15
  var onToggleCb = arguments.length > 1 ? arguments[1] : undefined;
16
+ var closeAllDropdowns = arguments.length > 2 ? arguments[2] : undefined;
15
17
 
16
18
  var _useState = useState(defaultIsOpen),
17
19
  _useState2 = _slicedToArray(_useState, 2),
@@ -19,7 +21,8 @@ function useToggle() {
19
21
  setIsOpen = _useState2[1];
20
22
 
21
23
  var onToggle = useCallback(function () {
22
- return setIsOpen(function (oldIsOpen) {
24
+ closeAllDropdowns && closeAllDropdowns();
25
+ setIsOpen(function (oldIsOpen) {
23
26
  return !oldIsOpen;
24
27
  });
25
28
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,23 +1,6 @@
1
- import { IDropdownComposition, IDropdownProps } from './types';
2
- import React from 'react';
3
- /**
4
- * Dropdown composition component. Provides several Dropdown dependant components which can be composed to create
5
- * selects, multiselects or dropdowns.
6
- *
7
- * @component
8
- * @example
9
- * return (
10
- * <Dropdown>
11
- * <Dropdown.Label label="Wybierz link" />
12
- * <Dropdown.Content>
13
- * <Dropdown.List>
14
- * <Dropdown.Link text="shoper.pl" href="https://shoper.pl" />
15
- * <Dropdown.Link text="forum.shoper.pl" href="https://forum.shoper.pl" />
16
- * <Dropdown.Link text="shoper.pl/help" href="https://shoper.pl/help" />
17
- * </Dropdown.List>
18
- * </Dropdown.Content>
19
- * <Dropdown>
20
- * )
21
- */
22
- declare const Dropdown: React.FC<IDropdownProps> & IDropdownComposition;
23
- export default Dropdown;
1
+ import React, { ReactNode } from 'react';
2
+ interface IDropdownsManagerContextProps {
3
+ children: ReactNode;
4
+ }
5
+ declare const DropdownsManager: React.FC<IDropdownsManagerContextProps>;
6
+ export default DropdownsManager;
@@ -1,88 +1,15 @@
1
- import React, { useRef } from 'react';
2
- import { slicedToArray as _slicedToArray } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
3
- import { DropdownContext } from './context/index.js';
4
- import cssClasses from '../../css/dropdown/main.module.less.js';
5
- import Content from './components/content.js';
6
- import CustomLabel from './components/custom_label.js';
7
- import Header from './components/header.js';
8
- import Item from './components/item.js';
9
- import ItemWithHover from './components/item_with_hover.js';
10
- import Label from './components/label.js';
11
- import Link from './components/link.js';
12
- import List from './components/list.js';
13
- import Option from './components/option.js';
14
- import { useToggle } from './hooks/use_toggle.js';
15
- import OptionMultiple from './components/option_multiple.js';
16
- import Search from './components/search.js';
17
- import Select from './components/select.js';
18
-
19
- /**
20
- * Dropdown composition component. Provides several Dropdown dependant components which can be composed to create
21
- * selects, multiselects or dropdowns.
22
- *
23
- * @component
24
- * @example
25
- * return (
26
- * <Dropdown>
27
- * <Dropdown.Label label="Wybierz link" />
28
- * <Dropdown.Content>
29
- * <Dropdown.List>
30
- * <Dropdown.Link text="shoper.pl" href="https://shoper.pl" />
31
- * <Dropdown.Link text="forum.shoper.pl" href="https://forum.shoper.pl" />
32
- * <Dropdown.Link text="shoper.pl/help" href="https://shoper.pl/help" />
33
- * </Dropdown.List>
34
- * </Dropdown.Content>
35
- * <Dropdown>
36
- * )
37
- */
38
-
39
- var Dropdown = function Dropdown(_ref) {
40
- var _ref$defaultIsOpen = _ref.defaultIsOpen,
41
- defaultIsOpen = _ref$defaultIsOpen === void 0 ? false : _ref$defaultIsOpen,
42
- onToggle = _ref.onToggle,
43
- children = _ref.children;
44
- var wrapperRef = useRef(null);
45
-
46
- var _useToggle = useToggle(defaultIsOpen, onToggle),
47
- _useToggle2 = _slicedToArray(_useToggle, 4),
48
- isOpen = _useToggle2[0],
49
- toggleDropdown = _useToggle2[1],
50
- openDropdown = _useToggle2[2],
51
- closeDropdown = _useToggle2[3];
52
- /**
53
- * context values, they may be used with useContext in any component which is part of Dropdown composition
54
- */
55
-
56
-
57
- var value = React.useMemo(function () {
58
- return {
59
- wrapperRef: wrapperRef,
60
- isOpen: isOpen,
61
- toggleDropdown: toggleDropdown,
62
- openDropdown: openDropdown,
63
- closeDropdown: closeDropdown
64
- };
65
- }, [isOpen, toggleDropdown, openDropdown, closeDropdown]);
66
- return /*#__PURE__*/React.createElement(DropdownContext.Provider, {
67
- value: value
68
- }, /*#__PURE__*/React.createElement("div", {
69
- ref: wrapperRef,
70
- className: cssClasses.dropdown
71
- }, children));
1
+ import React, { useMemo } from 'react';
2
+ import { DropdownsManagerContext } from './context/dropdowns_manager';
3
+ import useDropdownsManager from './hooks/use_dropdowns_manager';
4
+ const DropdownsManager = ({ children }) => {
5
+ const { addDropdown, updateDropdown, getDropdown, closeAllDropdowns } = useDropdownsManager();
6
+ const value = useMemo(() => ({
7
+ addDropdown,
8
+ updateDropdown,
9
+ getDropdown,
10
+ closeAllDropdowns
11
+ }), [addDropdown, updateDropdown, getDropdown, closeAllDropdowns]);
12
+ return React.createElement(DropdownsManagerContext.Provider, { value: value }, children);
72
13
  };
73
-
74
- Dropdown.Select = Select;
75
- Dropdown.Content = Content;
76
- Dropdown.ItemWithHover = ItemWithHover;
77
- Dropdown.Search = Search;
78
- Dropdown.List = List;
79
- Dropdown.Header = Header;
80
- Dropdown.Option = Option;
81
- Dropdown.OptionMultiple = OptionMultiple;
82
- Dropdown.Link = Link;
83
- Dropdown.Label = Label;
84
- Dropdown.CustomLabel = CustomLabel;
85
- Dropdown.Item = Item;
86
-
87
- export default Dropdown;
88
- //# sourceMappingURL=index.js.map
14
+ export default DropdownsManager;
15
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/components/dropdown/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAMhE,MAAM,gBAAgB,GAA4C,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/E,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAE9F,MAAM,KAAK,GAAG,OAAO,CACjB,GAAG,EAAE,CAAC,CAAC;QACH,WAAW;QACX,cAAc;QACd,WAAW;QACX,iBAAiB;KACpB,CAAC,EACF,CAAC,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAChE,CAAC;IAEF,OAAO,oBAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAoC,CAAC;AACzG,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -39,6 +39,10 @@ export interface IDropdownCustomLabelProps {
39
39
  children: ReactNode;
40
40
  disabled?: boolean;
41
41
  }
42
+ export interface IDropdown {
43
+ id: string;
44
+ isOpen: boolean;
45
+ }
42
46
  export interface IDropdownContentProps {
43
47
  search?: ReactNode;
44
48
  children?: ReactNode;
@@ -53,6 +57,7 @@ export interface IDropdownContentProps {
53
57
  shouldCloseOnClickOutside?: boolean;
54
58
  onClickOutside?: () => void;
55
59
  shouldCloseOnScroll?: boolean;
60
+ shouldCloseOthersOnOpen?: boolean;
56
61
  }
57
62
  export interface IDropdownItemWithHover {
58
63
  children?: ReactNode;
@@ -5,7 +5,7 @@ import cssClasses from '../../css/hint/main.module.less.js';
5
5
  import { classNames } from '../../utilities/styles/classNames.js';
6
6
  import IconHint from '../../assets/icon_hint.js';
7
7
  import { useToggle } from '../dropdown/hooks/use_toggle.js';
8
- import Dropdown from '../dropdown/index.js';
8
+ import Dropdown from '../dropdown/components/dropdown.js';
9
9
 
10
10
  var Hint = function Hint(_ref) {
11
11
  var hint = _ref.hint,
@@ -3,7 +3,7 @@ import { slicedToArray as _slicedToArray } from '../../../../../_virtual/_rollup
3
3
  import { DropdownContext } from '../dropdown/context/index.js';
4
4
  import cssClasses from '../../css/tooltip/main.module.less.js';
5
5
  import { useToggle } from '../dropdown/hooks/use_toggle.js';
6
- import Dropdown from '../dropdown/index.js';
6
+ import Dropdown from '../dropdown/components/dropdown.js';
7
7
  import { cssTooltip, cssTooltipContainer } from './css_classes.js';
8
8
  import { TOOLTIP_TIMEOUT_IN_MS } from './tooltip_constants.js';
9
9
 
@@ -35,7 +35,7 @@ import ControlTextarea from "./components/controls/hoc/control_textarea";
35
35
  import ControlXhrImagePicker from "./components/controls/hoc/control_xhr_image_picker";
36
36
  import DataTable from "./components/table/hoc/data-table";
37
37
  import Datepicker from "./components/date_picker";
38
- import Dropdown from "./components/dropdown";
38
+ import Dropdown from "./components/dropdown/components/dropdown";
39
39
  /**
40
40
  * import context for export
41
41
  */
@@ -115,7 +115,7 @@ import XhrImagePicker from "./components/xhr_image_picker";
115
115
  import { useClickOutside } from "./hooks/use_click_outside";
116
116
  import { useDropdownContext } from "./components/dropdown/context";
117
117
  import { useFlashMessenger } from "./components/flash_messenger/context";
118
- import useModals from "./components/modal_new/hooks/use_modals";
118
+ import { useModalsContext } from "./components/modal_new/hooks/use_modals_context";
119
119
  import { useSearchList } from "./components/search_list/use_search_list";
120
120
  import { useToggle } from "./components/dropdown/hooks";
121
121
  /**
@@ -124,7 +124,7 @@ import { useToggle } from "./components/dropdown/hooks";
124
124
  /**
125
125
  * export components
126
126
  */
127
- export { Accordion, Button, Tooltip, ButtonsGroup, Dropdown, Select, MultiSelect, Label, Stack, Control, ControlInput, ControlCheckbox, ControlCheckboxSwitch, ControlRadio, ControlSelect, ControlRange, ControlMultiSelect, ControlTextarea, Gallery, Datepicker, ColorPicker, ColorPickerNew, ControlColorPicker, ControlColorPickerNew, ControlDatepicker, ControlFilePicker, ControlXhrImagePicker, Heading, Typography, Modal, ModalNew, ModalsManager, useModals, ModalProvider, AbsoluteModal, RelativeModal, TabsWrapper, Tabs, TabsItem, TabsItemList, TabsPanel, TabsPanelList, SearchList, SearchListInput, SearchListResults, Tag, TagsSelector, ControlTagsSelector, Table, DataTable, Grid, DropdownContext, ModalContext, IconCalendar, Spacing, IconArrow, IconTick, FilePicker, ImagePicker, ControlCellSelector, Hint, ControlRadioGroup, MessageBox, FlashMessenger, useFlashMessenger, Loader, WithLoader, useDropdownContext, FlashMessengerContext, FlashMessagesList, Link, IconTablet, IconMobile, IconLaptop, IconDesktop, IconWarning, useToggle, useSearchList, Slide, SlideWrapper, SlideHeader, SlideSubHeader, SlideContent, SlideFooter, XhrImagePicker, ValuesSyncer, Tree, TreeNode, ScrollSyncContainer, ScrollSync, useClickOutside, Breadcrumbs };
127
+ export { Accordion, Button, Tooltip, ButtonsGroup, Dropdown, Select, MultiSelect, Label, Stack, Control, ControlInput, ControlCheckbox, ControlCheckboxSwitch, ControlRadio, ControlSelect, ControlRange, ControlMultiSelect, ControlTextarea, Gallery, Datepicker, ColorPicker, ColorPickerNew, ControlColorPicker, ControlColorPickerNew, ControlDatepicker, ControlFilePicker, ControlXhrImagePicker, Heading, Typography, Modal, ModalNew, ModalsManager, useModalsContext, ModalProvider, AbsoluteModal, RelativeModal, TabsWrapper, Tabs, TabsItem, TabsItemList, TabsPanel, TabsPanelList, SearchList, SearchListInput, SearchListResults, Tag, TagsSelector, ControlTagsSelector, Table, DataTable, Grid, DropdownContext, ModalContext, IconCalendar, Spacing, IconArrow, IconTick, FilePicker, ImagePicker, ControlCellSelector, Hint, ControlRadioGroup, MessageBox, FlashMessenger, useFlashMessenger, Loader, WithLoader, useDropdownContext, FlashMessengerContext, FlashMessagesList, Link, IconTablet, IconMobile, IconLaptop, IconDesktop, IconWarning, useToggle, useSearchList, Slide, SlideWrapper, SlideHeader, SlideSubHeader, SlideContent, SlideFooter, XhrImagePicker, ValuesSyncer, Tree, TreeNode, ScrollSyncContainer, ScrollSync, useClickOutside, Breadcrumbs };
128
128
  /**
129
129
  * export types
130
130
  */
@@ -14,7 +14,7 @@ export { default as Control } from './components/controls/index.js';
14
14
  export { useToggle } from './components/dropdown/hooks/use_toggle.js';
15
15
  export { default as Hint } from './components/hint/index.js';
16
16
  export { default as ControlCheckbox } from './components/controls/hoc/control_checkbox/index.js';
17
- export { default as Dropdown } from './components/dropdown/index.js';
17
+ export { default as Dropdown } from './components/dropdown/components/dropdown.js';
18
18
  export { default as ColorPickerNew } from './components/color_picker_new/index.js';
19
19
  export { default as ControlCellSelector } from './components/controls/hoc/control_cell_selector/index.js';
20
20
  export { default as ControlCheckboxSwitch } from './components/controls/hoc/control_checkbox_switch/index.js';
@@ -38,6 +38,7 @@ export { default as TagsSelector } from './components/tags_selector/index.js';
38
38
  export { default as ControlTagsSelector } from './components/controls/hoc/control_tags_selector/index.js';
39
39
  export { default as ControlTextarea } from './components/controls/hoc/control_textarea/index.js';
40
40
  export { default as ImagePicker } from './components/image_picker/index.js';
41
+ export { useModalsContext } from './components/modal_new/hooks/use_modals_context.js';
41
42
  export { ModalNew } from './components/modal_new/components/modal/modal.js';
42
43
  export { default as XhrImagePicker } from './components/xhr_image_picker/index.js';
43
44
  export { default as ControlXhrImagePicker } from './components/controls/hoc/control_xhr_image_picker/index.js';
@@ -61,7 +62,6 @@ export { default as Loader } from './components/loader/index.js';
61
62
  export { default as Modal } from './components/modal/index.js';
62
63
  export { ModalContext } from './components/modal/context/modal_context.js';
63
64
  export { default as ModalProvider } from './components/modal/hoc/modal_provider.js';
64
- export { default as useModals } from './components/modal_new/hooks/use_modals.js';
65
65
  export { default as ModalsManager } from './components/modal_new/index.js';
66
66
  export { default as RelativeModal } from './components/modal/hoc/relative_modal/index.js';
67
67
  export { ScrollSync } from './components/scroll_sync/index.js';
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@dreamcommerce/aurora",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "2.17.20",
5
+ "version": "2.17.21-2",
6
6
  "description": "aurora",
7
7
  "author": "k0ssak",
8
8
  "license": "MIT",