@laerdal/life-react-components 1.7.0-dev.10 → 1.7.0-dev.11

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 (124) hide show
  1. package/dist/Button/BackButton.cjs +3 -0
  2. package/dist/Button/BackButton.cjs.map +1 -1
  3. package/dist/Button/BackButton.js +2 -0
  4. package/dist/Button/BackButton.js.map +1 -1
  5. package/dist/Button/Button.cjs +3 -4
  6. package/dist/Button/Button.cjs.map +1 -1
  7. package/dist/Button/Button.d.ts +1 -1
  8. package/dist/Button/Button.js +3 -4
  9. package/dist/Button/Button.js.map +1 -1
  10. package/dist/Button/DualFunctionButton.cjs +29 -7
  11. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  12. package/dist/Button/DualFunctionButton.js +27 -6
  13. package/dist/Button/DualFunctionButton.js.map +1 -1
  14. package/dist/Button/Iconbutton.cjs +10 -14
  15. package/dist/Button/Iconbutton.cjs.map +1 -1
  16. package/dist/Button/Iconbutton.d.ts +0 -1
  17. package/dist/Button/Iconbutton.js +9 -10
  18. package/dist/Button/Iconbutton.js.map +1 -1
  19. package/dist/Chips/ChipStyles.cjs +1 -1
  20. package/dist/Chips/ChipStyles.cjs.map +1 -1
  21. package/dist/Chips/ChipStyles.js +1 -1
  22. package/dist/Chips/ChipStyles.js.map +1 -1
  23. package/dist/Chips/ChipTypes.d.ts +1 -1
  24. package/dist/Chips/InputChip.cjs +2 -2
  25. package/dist/Chips/InputChip.cjs.map +1 -1
  26. package/dist/Chips/InputChip.js +2 -2
  27. package/dist/Chips/InputChip.js.map +1 -1
  28. package/dist/ChipsInput/ChipDropdownInput.cjs +14 -11
  29. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  30. package/dist/ChipsInput/ChipDropdownInput.js +13 -12
  31. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  32. package/dist/ChipsInput/ChipInput.cjs +1 -1
  33. package/dist/ChipsInput/ChipInput.cjs.map +1 -1
  34. package/dist/ChipsInput/ChipInput.js +1 -1
  35. package/dist/ChipsInput/ChipInput.js.map +1 -1
  36. package/dist/ChipsInput/ChipInputField.cjs +46 -31
  37. package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
  38. package/dist/ChipsInput/ChipInputField.js +42 -31
  39. package/dist/ChipsInput/ChipInputField.js.map +1 -1
  40. package/dist/Dropdown/BasicDropdown.cjs +30 -11
  41. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  42. package/dist/Dropdown/BasicDropdown.js +32 -12
  43. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  44. package/dist/Dropdown/CommonStyling.cjs +7 -7
  45. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  46. package/dist/Dropdown/CommonStyling.js +7 -7
  47. package/dist/Dropdown/CommonStyling.js.map +1 -1
  48. package/dist/Dropdown/DropdownButton.cjs +22 -15
  49. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  50. package/dist/Dropdown/DropdownButton.js +21 -15
  51. package/dist/Dropdown/DropdownButton.js.map +1 -1
  52. package/dist/Dropdown/DropdownContent.cjs +164 -124
  53. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  54. package/dist/Dropdown/DropdownContent.d.ts +2 -2
  55. package/dist/Dropdown/DropdownContent.js +161 -125
  56. package/dist/Dropdown/DropdownContent.js.map +1 -1
  57. package/dist/Dropdown/DropdownFilter.cjs +63 -24
  58. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  59. package/dist/Dropdown/DropdownFilter.js +62 -25
  60. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  61. package/dist/GlobalNavigationBar/MainMenu.cjs +0 -1
  62. package/dist/GlobalNavigationBar/MainMenu.cjs.map +1 -1
  63. package/dist/GlobalNavigationBar/MainMenu.js +0 -1
  64. package/dist/GlobalNavigationBar/MainMenu.js.map +1 -1
  65. package/dist/InputFields/Checkbox.cjs +11 -8
  66. package/dist/InputFields/Checkbox.cjs.map +1 -1
  67. package/dist/InputFields/Checkbox.d.ts +1 -0
  68. package/dist/InputFields/Checkbox.js +11 -8
  69. package/dist/InputFields/Checkbox.js.map +1 -1
  70. package/dist/InputFields/RadioButton.cjs +10 -7
  71. package/dist/InputFields/RadioButton.cjs.map +1 -1
  72. package/dist/InputFields/RadioButton.d.ts +1 -0
  73. package/dist/InputFields/RadioButton.js +10 -7
  74. package/dist/InputFields/RadioButton.js.map +1 -1
  75. package/dist/MenuItem/MenuItem.cjs +5 -2
  76. package/dist/MenuItem/MenuItem.cjs.map +1 -1
  77. package/dist/MenuItem/MenuItem.d.ts +1 -0
  78. package/dist/MenuItem/MenuItem.js +5 -2
  79. package/dist/MenuItem/MenuItem.js.map +1 -1
  80. package/dist/Toggles/index.cjs +0 -8
  81. package/dist/Toggles/index.cjs.map +1 -1
  82. package/dist/Toggles/index.d.ts +1 -2
  83. package/dist/Toggles/index.js +1 -2
  84. package/dist/Toggles/index.js.map +1 -1
  85. package/dist/common/{HoverWithin.cjs → ActionWithin.cjs} +9 -5
  86. package/dist/common/ActionWithin.cjs.map +1 -0
  87. package/dist/common/{HoverWithin.d.ts → ActionWithin.d.ts} +0 -0
  88. package/dist/common/{HoverWithin.js → ActionWithin.js} +9 -5
  89. package/dist/common/ActionWithin.js.map +1 -0
  90. package/dist/common/ClickOutside.cjs +39 -0
  91. package/dist/common/ClickOutside.cjs.map +1 -0
  92. package/dist/common/ClickOutside.d.ts +1 -0
  93. package/dist/common/ClickOutside.js +25 -0
  94. package/dist/common/ClickOutside.js.map +1 -0
  95. package/dist/common/FocusOutside.cjs +39 -0
  96. package/dist/common/FocusOutside.cjs.map +1 -0
  97. package/dist/common/FocusOutside.d.ts +1 -0
  98. package/dist/common/FocusOutside.js +25 -0
  99. package/dist/common/FocusOutside.js.map +1 -0
  100. package/dist/common/FocusVisible.cjs +43 -18
  101. package/dist/common/FocusVisible.cjs.map +1 -1
  102. package/dist/common/FocusVisible.js +42 -18
  103. package/dist/common/FocusVisible.js.map +1 -1
  104. package/dist/common/InputStyling.cjs +1 -1
  105. package/dist/common/InputStyling.cjs.map +1 -1
  106. package/dist/common/InputStyling.js +1 -1
  107. package/dist/common/InputStyling.js.map +1 -1
  108. package/dist/common/index.cjs +18 -2
  109. package/dist/common/index.cjs.map +1 -1
  110. package/dist/common/index.d.ts +3 -1
  111. package/dist/common/index.js +3 -1
  112. package/dist/common/index.js.map +1 -1
  113. package/dist/icons/index.cjs +1 -1
  114. package/dist/icons/index.cjs.map +1 -1
  115. package/dist/icons/index.js +1 -1
  116. package/dist/icons/index.js.map +1 -1
  117. package/package.json +1 -1
  118. package/dist/Toggles/ToggleButton.cjs +0 -81
  119. package/dist/Toggles/ToggleButton.cjs.map +0 -1
  120. package/dist/Toggles/ToggleButton.d.ts +0 -14
  121. package/dist/Toggles/ToggleButton.js +0 -59
  122. package/dist/Toggles/ToggleButton.js.map +0 -1
  123. package/dist/common/HoverWithin.cjs.map +0 -1
  124. package/dist/common/HoverWithin.js.map +0 -1
@@ -1,3 +1,2 @@
1
1
  import ToggleSwitch from './ToggleSwitch';
2
- import ToggleButton from './ToggleButton';
3
- export { ToggleSwitch, ToggleButton };
2
+ export { ToggleSwitch };
@@ -1,4 +1,3 @@
1
1
  import ToggleSwitch from './ToggleSwitch';
2
- import ToggleButton from './ToggleButton';
3
- export { ToggleSwitch, ToggleButton };
2
+ export { ToggleSwitch };
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Toggles/index.ts"],"names":["ToggleSwitch","ToggleButton"],"mappings":"AAAA,OAAOA,YAAP,MAAyB,gBAAzB;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AAEA,SAAQD,YAAR,EAAsBC,YAAtB","sourcesContent":["import ToggleSwitch from './ToggleSwitch';\nimport ToggleButton from './ToggleButton';\n\nexport {ToggleSwitch, ToggleButton};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/Toggles/index.ts"],"names":["ToggleSwitch"],"mappings":"AAAA,OAAOA,YAAP,MAAyB,gBAAzB;AAEA,SAASA,YAAT","sourcesContent":["import ToggleSwitch from './ToggleSwitch';\n\nexport { ToggleSwitch };\n"],"file":"index.js"}
@@ -30,9 +30,11 @@ var useActionWithin = function useActionWithin(ref, children) {
30
30
 
31
31
  try {
32
32
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
33
+ var _child$current3, _child$current4;
34
+
33
35
  var child = _step.value;
34
- child.current.addEventListener('mouseenter', handleMouseEnter);
35
- child.current.addEventListener('mouseleave', handleMouseLeave);
36
+ (_child$current3 = child.current) === null || _child$current3 === void 0 ? void 0 : _child$current3.addEventListener('mouseenter', handleMouseEnter);
37
+ (_child$current4 = child.current) === null || _child$current4 === void 0 ? void 0 : _child$current4.addEventListener('mouseleave', handleMouseLeave);
36
38
  }
37
39
  } catch (err) {
38
40
  _iterator.e(err);
@@ -46,9 +48,11 @@ var useActionWithin = function useActionWithin(ref, children) {
46
48
 
47
49
  try {
48
50
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
51
+ var _child$current, _child$current2;
52
+
49
53
  var child = _step2.value;
50
- child.current.removeEventListener('mouseenter', handleMouseEnter);
51
- child.current.removeEventListener('mouseleave', handleMouseLeave);
54
+ (_child$current = child.current) === null || _child$current === void 0 ? void 0 : _child$current.removeEventListener('mouseenter', handleMouseEnter);
55
+ (_child$current2 = child.current) === null || _child$current2 === void 0 ? void 0 : _child$current2.removeEventListener('mouseleave', handleMouseLeave);
52
56
  }
53
57
  } catch (err) {
54
58
  _iterator2.e(err);
@@ -60,4 +64,4 @@ var useActionWithin = function useActionWithin(ref, children) {
60
64
  };
61
65
 
62
66
  exports.useActionWithin = useActionWithin;
63
- //# sourceMappingURL=HoverWithin.cjs.map
67
+ //# sourceMappingURL=ActionWithin.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/common/ActionWithin.ts"],"names":["useActionWithin","ref","children","handleMouseEnter","e","current","classList","add","handleMouseLeave","remove","React","useEffect","child","addEventListener","removeEventListener"],"mappings":";;;;;;;;;AAAA;;;;;;;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD,EAAWC,QAAX,EAAuD;AAEpF,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,CAAD,EAAmB;AAC1CH,IAAAA,GAAG,CAACI,OAAJ,CAAYC,SAAZ,CAAsBC,GAAtB,CAA0B,eAA1B;AACD,GAFD;;AAIA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,CAAD,EAAmB;AAC1CH,IAAAA,GAAG,CAACI,OAAJ,CAAYC,SAAZ,CAAsBG,MAAtB,CAA6B,eAA7B;AACD,GAFD;;AAKAC,iBAAMC,SAAN,CAAgB,YAAM;AAAA,+CACFT,QADE;AAAA;;AAAA;AACpB,0DAA4B;AAAA;;AAAA,YAAnBU,KAAmB;AAC1B,2BAAAA,KAAK,CAACP,OAAN,oEAAeQ,gBAAf,CAAgC,YAAhC,EAA8CV,gBAA9C;AACA,2BAAAS,KAAK,CAACP,OAAN,oEAAeQ,gBAAf,CAAgC,YAAhC,EAA8CL,gBAA9C;AACD;AAJmB;AAAA;AAAA;AAAA;AAAA;;AAMpB,WAAO,YAAM;AAAA,kDACON,QADP;AAAA;;AAAA;AACX,+DAA4B;AAAA;;AAAA,cAAnBU,KAAmB;AAC1B,4BAAAA,KAAK,CAACP,OAAN,kEAAeS,mBAAf,CAAmC,YAAnC,EAAiDX,gBAAjD;AACA,6BAAAS,KAAK,CAACP,OAAN,oEAAeS,mBAAf,CAAmC,YAAnC,EAAiDN,gBAAjD;AACD;AAJU;AAAA;AAAA;AAAA;AAAA;AAKZ,KALD;AAMD,GAZD,EAYG,CAACN,QAAD,CAZH;AAaD,CAxBM","sourcesContent":["import React from 'react';\n\nexport const useActionWithin = (ref: any, children: React.MutableRefObject<any>[]) => {\n\n const handleMouseEnter = (e: MouseEvent) => {\n ref.current.classList.add('action-within');\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n ref.current.classList.remove('action-within');\n };\n\n\n React.useEffect(() => {\n for (let child of children) {\n child.current?.addEventListener('mouseenter', handleMouseEnter);\n child.current?.addEventListener('mouseleave', handleMouseLeave);\n }\n\n return () => {\n for (let child of children) {\n child.current?.removeEventListener('mouseenter', handleMouseEnter);\n child.current?.removeEventListener('mouseleave', handleMouseLeave);\n }\n };\n }, [children]);\n};\n"],"file":"ActionWithin.cjs"}
@@ -20,9 +20,11 @@ export var useActionWithin = function useActionWithin(ref, children) {
20
20
 
21
21
  try {
22
22
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
23
+ var _child$current3, _child$current4;
24
+
23
25
  var child = _step.value;
24
- child.current.addEventListener('mouseenter', handleMouseEnter);
25
- child.current.addEventListener('mouseleave', handleMouseLeave);
26
+ (_child$current3 = child.current) === null || _child$current3 === void 0 ? void 0 : _child$current3.addEventListener('mouseenter', handleMouseEnter);
27
+ (_child$current4 = child.current) === null || _child$current4 === void 0 ? void 0 : _child$current4.addEventListener('mouseleave', handleMouseLeave);
26
28
  }
27
29
  } catch (err) {
28
30
  _iterator.e(err);
@@ -36,9 +38,11 @@ export var useActionWithin = function useActionWithin(ref, children) {
36
38
 
37
39
  try {
38
40
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
41
+ var _child$current, _child$current2;
42
+
39
43
  var child = _step2.value;
40
- child.current.removeEventListener('mouseenter', handleMouseEnter);
41
- child.current.removeEventListener('mouseleave', handleMouseLeave);
44
+ (_child$current = child.current) === null || _child$current === void 0 ? void 0 : _child$current.removeEventListener('mouseenter', handleMouseEnter);
45
+ (_child$current2 = child.current) === null || _child$current2 === void 0 ? void 0 : _child$current2.removeEventListener('mouseleave', handleMouseLeave);
42
46
  }
43
47
  } catch (err) {
44
48
  _iterator2.e(err);
@@ -48,4 +52,4 @@ export var useActionWithin = function useActionWithin(ref, children) {
48
52
  };
49
53
  }, [children]);
50
54
  };
51
- //# sourceMappingURL=HoverWithin.js.map
55
+ //# sourceMappingURL=ActionWithin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/common/ActionWithin.ts"],"names":["React","useActionWithin","ref","children","handleMouseEnter","e","current","classList","add","handleMouseLeave","remove","useEffect","child","addEventListener","removeEventListener"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD,EAAWC,QAAX,EAAuD;AAEpF,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,CAAD,EAAmB;AAC1CH,IAAAA,GAAG,CAACI,OAAJ,CAAYC,SAAZ,CAAsBC,GAAtB,CAA0B,eAA1B;AACD,GAFD;;AAIA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,CAAD,EAAmB;AAC1CH,IAAAA,GAAG,CAACI,OAAJ,CAAYC,SAAZ,CAAsBG,MAAtB,CAA6B,eAA7B;AACD,GAFD;;AAKAV,EAAAA,KAAK,CAACW,SAAN,CAAgB,YAAM;AAAA,+CACFR,QADE;AAAA;;AAAA;AACpB,0DAA4B;AAAA;;AAAA,YAAnBS,KAAmB;AAC1B,2BAAAA,KAAK,CAACN,OAAN,oEAAeO,gBAAf,CAAgC,YAAhC,EAA8CT,gBAA9C;AACA,2BAAAQ,KAAK,CAACN,OAAN,oEAAeO,gBAAf,CAAgC,YAAhC,EAA8CJ,gBAA9C;AACD;AAJmB;AAAA;AAAA;AAAA;AAAA;;AAMpB,WAAO,YAAM;AAAA,kDACON,QADP;AAAA;;AAAA;AACX,+DAA4B;AAAA;;AAAA,cAAnBS,KAAmB;AAC1B,4BAAAA,KAAK,CAACN,OAAN,kEAAeQ,mBAAf,CAAmC,YAAnC,EAAiDV,gBAAjD;AACA,6BAAAQ,KAAK,CAACN,OAAN,oEAAeQ,mBAAf,CAAmC,YAAnC,EAAiDL,gBAAjD;AACD;AAJU;AAAA;AAAA;AAAA;AAAA;AAKZ,KALD;AAMD,GAZD,EAYG,CAACN,QAAD,CAZH;AAaD,CAxBM","sourcesContent":["import React from 'react';\n\nexport const useActionWithin = (ref: any, children: React.MutableRefObject<any>[]) => {\n\n const handleMouseEnter = (e: MouseEvent) => {\n ref.current.classList.add('action-within');\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n ref.current.classList.remove('action-within');\n };\n\n\n React.useEffect(() => {\n for (let child of children) {\n child.current?.addEventListener('mouseenter', handleMouseEnter);\n child.current?.addEventListener('mouseleave', handleMouseLeave);\n }\n\n return () => {\n for (let child of children) {\n child.current?.removeEventListener('mouseenter', handleMouseEnter);\n child.current?.removeEventListener('mouseleave', handleMouseLeave);\n }\n };\n }, [children]);\n};\n"],"file":"ActionWithin.js"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useClickOutsideRef = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var useClickOutsideRef = function useClickOutsideRef(callback) {
13
+ var relatedRefs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
14
+ var ref = arguments.length > 2 ? arguments[2] : undefined;
15
+ var elementRef = ref !== null && ref !== void 0 ? ref : _react.default.useRef(null);
16
+
17
+ _react.default.useEffect(function () {
18
+ if (!elementRef.current) return;
19
+ var container = elementRef.current;
20
+
21
+ var handleClickOutside = function handleClickOutside(event) {
22
+ if (container && !container.contains(event.target) && !relatedRefs.some(function (ref) {
23
+ return ref.current && ref.current.contains(event.target);
24
+ })) {
25
+ callback();
26
+ }
27
+ };
28
+
29
+ document.addEventListener('click', handleClickOutside);
30
+ return function () {
31
+ document.removeEventListener('click', handleClickOutside);
32
+ };
33
+ }, [elementRef]);
34
+
35
+ return elementRef;
36
+ };
37
+
38
+ exports.useClickOutsideRef = useClickOutsideRef;
39
+ //# sourceMappingURL=ClickOutside.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/common/ClickOutside.ts"],"names":["useClickOutsideRef","callback","relatedRefs","ref","elementRef","React","useRef","useEffect","current","container","handleClickOutside","event","contains","target","some","document","addEventListener","removeEventListener"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,QAAD,EAA8D;AAAA,MAAvCC,WAAuC,uEAAlB,EAAkB;AAAA,MAAdC,GAAc;AAC9F,MAAMC,UAAU,GAAGD,GAAH,aAAGA,GAAH,cAAGA,GAAH,GAAUE,eAAMC,MAAN,CAAkB,IAAlB,CAA1B;;AAEAD,iBAAME,SAAN,CAAgB,YAAM;AACpB,QAAI,CAACH,UAAU,CAACI,OAAhB,EAAyB;AACzB,QAAIC,SAAS,GAAGL,UAAU,CAACI,OAA3B;;AAEA,QAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAgB;AACzC,UAAIF,SAAS,IAAI,CAACA,SAAS,CAACG,QAAV,CAAmBD,KAAK,CAACE,MAAzB,CAAd,IAAkD,CAACX,WAAW,CAACY,IAAZ,CAAiB,UAAAX,GAAG;AAAA,eAAIA,GAAG,CAACK,OAAJ,IAAeL,GAAG,CAACK,OAAJ,CAAYI,QAAZ,CAAqBD,KAAK,CAACE,MAA3B,CAAnB;AAAA,OAApB,CAAvD,EAAmI;AACjIZ,QAAAA,QAAQ;AACT;AACF,KAJD;;AAMAc,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,EAAmCN,kBAAnC;AACA,WAAO,YAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,OAA7B,EAAsCP,kBAAtC;AACD,KAFD;AAID,GAfD,EAeG,CAACN,UAAD,CAfH;;AAiBA,SAAOA,UAAP;AACD,CArBM","sourcesContent":["import React from 'react';\n\nexport const useClickOutsideRef = (callback: () => void, relatedRefs: any[] = [], ref?: any) => {\n const elementRef = ref ?? React.useRef<any>(null);\n\n React.useEffect(() => {\n if (!elementRef.current) return;\n let container = elementRef.current;\n\n const handleClickOutside = (event: any) => {\n if (container && !container.contains(event.target) && !relatedRefs.some(ref => ref.current && ref.current.contains(event.target))) {\n callback();\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n\n }, [elementRef]);\n\n return elementRef;\n};\n"],"file":"ClickOutside.cjs"}
@@ -0,0 +1 @@
1
+ export declare const useClickOutsideRef: (callback: () => void, relatedRefs?: any[], ref?: any) => any;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ export var useClickOutsideRef = function useClickOutsideRef(callback) {
3
+ var relatedRefs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
4
+ var ref = arguments.length > 2 ? arguments[2] : undefined;
5
+ var elementRef = ref !== null && ref !== void 0 ? ref : React.useRef(null);
6
+ React.useEffect(function () {
7
+ if (!elementRef.current) return;
8
+ var container = elementRef.current;
9
+
10
+ var handleClickOutside = function handleClickOutside(event) {
11
+ if (container && !container.contains(event.target) && !relatedRefs.some(function (ref) {
12
+ return ref.current && ref.current.contains(event.target);
13
+ })) {
14
+ callback();
15
+ }
16
+ };
17
+
18
+ document.addEventListener('click', handleClickOutside);
19
+ return function () {
20
+ document.removeEventListener('click', handleClickOutside);
21
+ };
22
+ }, [elementRef]);
23
+ return elementRef;
24
+ };
25
+ //# sourceMappingURL=ClickOutside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/common/ClickOutside.ts"],"names":["React","useClickOutsideRef","callback","relatedRefs","ref","elementRef","useRef","useEffect","current","container","handleClickOutside","event","contains","target","some","document","addEventListener","removeEventListener"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,QAAD,EAA8D;AAAA,MAAvCC,WAAuC,uEAAlB,EAAkB;AAAA,MAAdC,GAAc;AAC9F,MAAMC,UAAU,GAAGD,GAAH,aAAGA,GAAH,cAAGA,GAAH,GAAUJ,KAAK,CAACM,MAAN,CAAkB,IAAlB,CAA1B;AAEAN,EAAAA,KAAK,CAACO,SAAN,CAAgB,YAAM;AACpB,QAAI,CAACF,UAAU,CAACG,OAAhB,EAAyB;AACzB,QAAIC,SAAS,GAAGJ,UAAU,CAACG,OAA3B;;AAEA,QAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAgB;AACzC,UAAIF,SAAS,IAAI,CAACA,SAAS,CAACG,QAAV,CAAmBD,KAAK,CAACE,MAAzB,CAAd,IAAkD,CAACV,WAAW,CAACW,IAAZ,CAAiB,UAAAV,GAAG;AAAA,eAAIA,GAAG,CAACI,OAAJ,IAAeJ,GAAG,CAACI,OAAJ,CAAYI,QAAZ,CAAqBD,KAAK,CAACE,MAA3B,CAAnB;AAAA,OAApB,CAAvD,EAAmI;AACjIX,QAAAA,QAAQ;AACT;AACF,KAJD;;AAMAa,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,EAAmCN,kBAAnC;AACA,WAAO,YAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,OAA7B,EAAsCP,kBAAtC;AACD,KAFD;AAID,GAfD,EAeG,CAACL,UAAD,CAfH;AAiBA,SAAOA,UAAP;AACD,CArBM","sourcesContent":["import React from 'react';\n\nexport const useClickOutsideRef = (callback: () => void, relatedRefs: any[] = [], ref?: any) => {\n const elementRef = ref ?? React.useRef<any>(null);\n\n React.useEffect(() => {\n if (!elementRef.current) return;\n let container = elementRef.current;\n\n const handleClickOutside = (event: any) => {\n if (container && !container.contains(event.target) && !relatedRefs.some(ref => ref.current && ref.current.contains(event.target))) {\n callback();\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n\n }, [elementRef]);\n\n return elementRef;\n};\n"],"file":"ClickOutside.js"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useFocusOutsideRef = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var useFocusOutsideRef = function useFocusOutsideRef(callback) {
13
+ var relatedRefs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
14
+ var ref = arguments.length > 2 ? arguments[2] : undefined;
15
+ var elementRef = ref !== null && ref !== void 0 ? ref : _react.default.useRef(null);
16
+
17
+ _react.default.useEffect(function () {
18
+ if (!elementRef.current) return;
19
+ var container = elementRef.current;
20
+
21
+ var handleFocusOutside = function handleFocusOutside(event) {
22
+ if (container && event.target && !container.contains(event.target) && !relatedRefs.some(function (ref) {
23
+ return ref.current && ref.current.contains(event.target);
24
+ })) {
25
+ callback();
26
+ }
27
+ };
28
+
29
+ document.addEventListener('focusin', handleFocusOutside);
30
+ return function () {
31
+ document.removeEventListener('focusin', handleFocusOutside);
32
+ };
33
+ }, [elementRef]);
34
+
35
+ return elementRef;
36
+ };
37
+
38
+ exports.useFocusOutsideRef = useFocusOutsideRef;
39
+ //# sourceMappingURL=FocusOutside.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/common/FocusOutside.ts"],"names":["useFocusOutsideRef","callback","relatedRefs","ref","elementRef","React","useRef","useEffect","current","container","handleFocusOutside","event","target","contains","some","document","addEventListener","removeEventListener"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,QAAD,EAA8D;AAAA,MAAvCC,WAAuC,uEAAlB,EAAkB;AAAA,MAAdC,GAAc;AAC9F,MAAMC,UAAU,GAAGD,GAAH,aAAGA,GAAH,cAAGA,GAAH,GAAUE,eAAMC,MAAN,CAAkB,IAAlB,CAA1B;;AAEAD,iBAAME,SAAN,CAAgB,YAAM;AACpB,QAAI,CAACH,UAAU,CAACI,OAAhB,EAAyB;AACzB,QAAIC,SAAS,GAAGL,UAAU,CAACI,OAA3B;;AAEA,QAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAgB;AACzC,UAAIF,SAAS,IAAIE,KAAK,CAACC,MAAnB,IAA6B,CAACH,SAAS,CAACI,QAAV,CAAmBF,KAAK,CAACC,MAAzB,CAA9B,IAAkE,CAACV,WAAW,CAACY,IAAZ,CAAiB,UAAAX,GAAG;AAAA,eAAIA,GAAG,CAACK,OAAJ,IAAeL,GAAG,CAACK,OAAJ,CAAYK,QAAZ,CAAqBF,KAAK,CAACC,MAA3B,CAAnB;AAAA,OAApB,CAAvE,EAAmJ;AACjJX,QAAAA,QAAQ;AACT;AACF,KAJD;;AAMAc,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCN,kBAArC;AACA,WAAO,YAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCP,kBAAxC;AACD,KAFD;AAID,GAfD,EAeG,CAACN,UAAD,CAfH;;AAiBA,SAAOA,UAAP;AACD,CArBM","sourcesContent":["import React from 'react';\n\nexport const useFocusOutsideRef = (callback: () => void, relatedRefs: any[] = [], ref?: any) => {\n const elementRef = ref ?? React.useRef<any>(null);\n\n React.useEffect(() => {\n if (!elementRef.current) return;\n let container = elementRef.current;\n\n const handleFocusOutside = (event: any) => {\n if (container && event.target && !container.contains(event.target) && !relatedRefs.some(ref => ref.current && ref.current.contains(event.target))) {\n callback();\n }\n };\n\n document.addEventListener('focusin', handleFocusOutside);\n return () => {\n document.removeEventListener('focusin', handleFocusOutside);\n };\n\n }, [elementRef]);\n\n return elementRef;\n};\n\n"],"file":"FocusOutside.cjs"}
@@ -0,0 +1 @@
1
+ export declare const useFocusOutsideRef: (callback: () => void, relatedRefs?: any[], ref?: any) => any;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ export var useFocusOutsideRef = function useFocusOutsideRef(callback) {
3
+ var relatedRefs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
4
+ var ref = arguments.length > 2 ? arguments[2] : undefined;
5
+ var elementRef = ref !== null && ref !== void 0 ? ref : React.useRef(null);
6
+ React.useEffect(function () {
7
+ if (!elementRef.current) return;
8
+ var container = elementRef.current;
9
+
10
+ var handleFocusOutside = function handleFocusOutside(event) {
11
+ if (container && event.target && !container.contains(event.target) && !relatedRefs.some(function (ref) {
12
+ return ref.current && ref.current.contains(event.target);
13
+ })) {
14
+ callback();
15
+ }
16
+ };
17
+
18
+ document.addEventListener('focusin', handleFocusOutside);
19
+ return function () {
20
+ document.removeEventListener('focusin', handleFocusOutside);
21
+ };
22
+ }, [elementRef]);
23
+ return elementRef;
24
+ };
25
+ //# sourceMappingURL=FocusOutside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/common/FocusOutside.ts"],"names":["React","useFocusOutsideRef","callback","relatedRefs","ref","elementRef","useRef","useEffect","current","container","handleFocusOutside","event","target","contains","some","document","addEventListener","removeEventListener"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,QAAD,EAA8D;AAAA,MAAvCC,WAAuC,uEAAlB,EAAkB;AAAA,MAAdC,GAAc;AAC9F,MAAMC,UAAU,GAAGD,GAAH,aAAGA,GAAH,cAAGA,GAAH,GAAUJ,KAAK,CAACM,MAAN,CAAkB,IAAlB,CAA1B;AAEAN,EAAAA,KAAK,CAACO,SAAN,CAAgB,YAAM;AACpB,QAAI,CAACF,UAAU,CAACG,OAAhB,EAAyB;AACzB,QAAIC,SAAS,GAAGJ,UAAU,CAACG,OAA3B;;AAEA,QAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAgB;AACzC,UAAIF,SAAS,IAAIE,KAAK,CAACC,MAAnB,IAA6B,CAACH,SAAS,CAACI,QAAV,CAAmBF,KAAK,CAACC,MAAzB,CAA9B,IAAkE,CAACT,WAAW,CAACW,IAAZ,CAAiB,UAAAV,GAAG;AAAA,eAAIA,GAAG,CAACI,OAAJ,IAAeJ,GAAG,CAACI,OAAJ,CAAYK,QAAZ,CAAqBF,KAAK,CAACC,MAA3B,CAAnB;AAAA,OAApB,CAAvE,EAAmJ;AACjJV,QAAAA,QAAQ;AACT;AACF,KAJD;;AAMAa,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCN,kBAArC;AACA,WAAO,YAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCP,kBAAxC;AACD,KAFD;AAID,GAfD,EAeG,CAACL,UAAD,CAfH;AAiBA,SAAOA,UAAP;AACD,CArBM","sourcesContent":["import React from 'react';\n\nexport const useFocusOutsideRef = (callback: () => void, relatedRefs: any[] = [], ref?: any) => {\n const elementRef = ref ?? React.useRef<any>(null);\n\n React.useEffect(() => {\n if (!elementRef.current) return;\n let container = elementRef.current;\n\n const handleFocusOutside = (event: any) => {\n if (container && event.target && !container.contains(event.target) && !relatedRefs.some(ref => ref.current && ref.current.contains(event.target))) {\n callback();\n }\n };\n\n document.addEventListener('focusin', handleFocusOutside);\n return () => {\n document.removeEventListener('focusin', handleFocusOutside);\n };\n\n }, [elementRef]);\n\n return elementRef;\n};\n\n"],"file":"FocusOutside.js"}
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.useFocusVisibleRef = void 0;
9
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
12
14
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
@@ -22,40 +24,63 @@ var useFocusVisibleRef = function useFocusVisibleRef() {
22
24
 
23
25
  var suppress = _react.default.useRef(false);
24
26
 
25
- var handleMouseDown = function handleMouseDown() {
27
+ var _React$useState = _react.default.useState(false),
28
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
29
+ visible = _React$useState2[0],
30
+ setVisible = _React$useState2[1];
31
+
32
+ var addFocusVisibleClasses = function addFocusVisibleClasses() {
26
33
  var _elementRef$current;
27
34
 
28
- if (!((_elementRef$current = elementRef.current) !== null && _elementRef$current !== void 0 && _elementRef$current.classList.contains('focus-visible'))) {
35
+ (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.classList.add('focus-visible');
36
+ focusWithinList === null || focusWithinList === void 0 ? void 0 : focusWithinList.forEach(function (focusWithinListItem) {
37
+ var _focusWithinListItem$;
38
+
39
+ (_focusWithinListItem$ = focusWithinListItem.current) === null || _focusWithinListItem$ === void 0 ? void 0 : _focusWithinListItem$.classList.add('focus-visible-within');
40
+ });
41
+ };
42
+
43
+ var removeFocusVisibleClasses = function removeFocusVisibleClasses() {
44
+ var _elementRef$current2;
45
+
46
+ (_elementRef$current2 = elementRef.current) === null || _elementRef$current2 === void 0 ? void 0 : _elementRef$current2.classList.remove('focus-visible');
47
+ focusWithinList === null || focusWithinList === void 0 ? void 0 : focusWithinList.forEach(function (focusWithinListItem) {
48
+ var _focusWithinListItem$2;
49
+
50
+ (_focusWithinListItem$2 = focusWithinListItem.current) === null || _focusWithinListItem$2 === void 0 ? void 0 : _focusWithinListItem$2.classList.remove('focus-visible-within');
51
+ });
52
+ };
53
+
54
+ var handleMouseDown = function handleMouseDown() {
55
+ var _elementRef$current3;
56
+
57
+ if (!((_elementRef$current3 = elementRef.current) !== null && _elementRef$current3 !== void 0 && _elementRef$current3.classList.contains('focus-visible'))) {
29
58
  suppress.current = true;
30
59
  }
31
60
  };
32
61
 
33
62
  var handleFocus = function handleFocus() {
34
63
  if (!suppress.current) {
35
- var _elementRef$current2;
36
-
37
- (_elementRef$current2 = elementRef.current) === null || _elementRef$current2 === void 0 ? void 0 : _elementRef$current2.classList.add('focus-visible');
38
- focusWithinList === null || focusWithinList === void 0 ? void 0 : focusWithinList.forEach(function (focusWithinListItem) {
39
- var _focusWithinListItem$;
40
-
41
- (_focusWithinListItem$ = focusWithinListItem.current) === null || _focusWithinListItem$ === void 0 ? void 0 : _focusWithinListItem$.classList.add('focus-visible-within');
42
- });
64
+ setVisible(true);
65
+ addFocusVisibleClasses();
43
66
  } else {
44
67
  suppress.current = false;
45
68
  }
46
69
  };
47
70
 
48
71
  var handleBlur = function handleBlur() {
49
- var _elementRef$current3;
50
-
51
- (_elementRef$current3 = elementRef.current) === null || _elementRef$current3 === void 0 ? void 0 : _elementRef$current3.classList.remove('focus-visible');
52
- focusWithinList === null || focusWithinList === void 0 ? void 0 : focusWithinList.forEach(function (focusWithinListItem) {
53
- var _focusWithinListItem$2;
54
-
55
- (_focusWithinListItem$2 = focusWithinListItem.current) === null || _focusWithinListItem$2 === void 0 ? void 0 : _focusWithinListItem$2.classList.remove('focus-visible-within');
56
- });
72
+ setVisible(false);
73
+ removeFocusVisibleClasses();
57
74
  };
58
75
 
76
+ _react.default.useLayoutEffect(function () {
77
+ if (visible) {
78
+ addFocusVisibleClasses();
79
+ } else {
80
+ removeFocusVisibleClasses();
81
+ }
82
+ }, [visible, elementRef, focusWithinList]);
83
+
59
84
  _react.default.useEffect(function () {
60
85
  if (!elementRef.current) return;
61
86
  var instance = elementRef.current;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/common/FocusVisible.ts"],"names":["useFocusVisibleRef","focusWithinList","ref","elementRef","React","useRef","suppress","handleMouseDown","current","classList","contains","handleFocus","add","forEach","focusWithinListItem","handleBlur","remove","useEffect","instance","focusFn","focus","e","focusVisible","call","addEventListener","removeEventListener","el"],"mappings":"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","sourcesContent":["import React from 'react';\n\nexport const useFocusVisibleRef = (focusWithinList: React.MutableRefObject<any>[] = [], ref?: any) => {\n const elementRef = ref ?? React.useRef<any>(null);\n const suppress = React.useRef<boolean>(false);\n\n const handleMouseDown = () => {\n if (!elementRef.current?.classList.contains('focus-visible')) {\n suppress.current = true;\n }\n };\n\n const handleFocus = () => {\n if (!suppress.current) {\n elementRef.current?.classList.add('focus-visible');\n focusWithinList?.forEach((focusWithinListItem) => {\n focusWithinListItem.current?.classList.add('focus-visible-within');\n });\n } else {\n suppress.current = false;\n }\n };\n\n const handleBlur = () => {\n elementRef.current?.classList.remove('focus-visible');\n focusWithinList?.forEach((focusWithinListItem) => {\n focusWithinListItem.current?.classList.remove('focus-visible-within');\n });\n };\n\n React.useEffect(() => {\n if (!elementRef.current) return;\n\n const instance = elementRef.current;\n const focusFn = elementRef.current.focus;\n elementRef.current.focus = (e: any) => {\n suppress.current = !e?.focusVisible;\n focusFn.call(instance, e);\n };\n\n instance.addEventListener('mousedown', handleMouseDown);\n instance.addEventListener('focus', handleFocus);\n instance.addEventListener('blur', handleBlur);\n\n return () => {\n instance.removeEventListener('mousedown', handleMouseDown);\n instance.removeEventListener('focus', handleFocus);\n instance.removeEventListener('blur', handleBlur);\n instance.classList.remove('focus-visible');\n for (let el of focusWithinList) {\n el.current?.classList.remove('focus-visible-within');\n }\n };\n }, [elementRef]);\n\n return elementRef;\n};\n"],"file":"FocusVisible.cjs"}
1
+ {"version":3,"sources":["../../src/common/FocusVisible.ts"],"names":["useFocusVisibleRef","focusWithinList","ref","elementRef","React","useRef","suppress","useState","visible","setVisible","addFocusVisibleClasses","current","classList","add","forEach","focusWithinListItem","removeFocusVisibleClasses","remove","handleMouseDown","contains","handleFocus","handleBlur","useLayoutEffect","useEffect","instance","focusFn","focus","e","focusVisible","call","addEventListener","removeEventListener","el"],"mappings":"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","sourcesContent":["import React from 'react';\n\nexport const useFocusVisibleRef = (focusWithinList: React.MutableRefObject<any>[] = [], ref?: any) => {\n const elementRef = ref ?? React.useRef<any>(null);\n const suppress = React.useRef<boolean>(false);\n const [visible, setVisible] = React.useState(false);\n\n const addFocusVisibleClasses = () => {\n elementRef.current?.classList.add('focus-visible');\n focusWithinList?.forEach((focusWithinListItem) => {\n focusWithinListItem.current?.classList.add('focus-visible-within');\n });\n }\n\n const removeFocusVisibleClasses = () => {\n elementRef.current?.classList.remove('focus-visible');\n focusWithinList?.forEach((focusWithinListItem) => {\n focusWithinListItem.current?.classList.remove('focus-visible-within');\n });\n }\n\n const handleMouseDown = () => {\n if (!elementRef.current?.classList.contains('focus-visible')) {\n suppress.current = true;\n }\n };\n\n const handleFocus = () => {\n if (!suppress.current) {\n setVisible(true);\n addFocusVisibleClasses();\n } else {\n suppress.current = false;\n }\n };\n\n const handleBlur = () => {\n setVisible(false);\n removeFocusVisibleClasses();\n };\n\n\n React.useLayoutEffect(() => {\n if (visible) {\n addFocusVisibleClasses()\n } else {\n removeFocusVisibleClasses();\n }\n }, [visible, elementRef, focusWithinList]);\n\n React.useEffect(() => {\n if (!elementRef.current) return;\n\n const instance = elementRef.current;\n const focusFn = elementRef.current.focus;\n elementRef.current.focus = (e: any) => {\n suppress.current = !e?.focusVisible;\n focusFn.call(instance, e);\n };\n\n instance.addEventListener('mousedown', handleMouseDown);\n instance.addEventListener('focus', handleFocus);\n instance.addEventListener('blur', handleBlur);\n\n return () => {\n instance.removeEventListener('mousedown', handleMouseDown);\n instance.removeEventListener('focus', handleFocus);\n instance.removeEventListener('blur', handleBlur);\n instance.classList.remove('focus-visible');\n for (let el of focusWithinList) {\n el.current?.classList.remove('focus-visible-within');\n }\n };\n }, [elementRef]);\n\n return elementRef;\n};\n"],"file":"FocusVisible.cjs"}
@@ -1,3 +1,5 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+
1
3
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
2
4
 
3
5
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -11,40 +13,62 @@ export var useFocusVisibleRef = function useFocusVisibleRef() {
11
13
  var elementRef = ref !== null && ref !== void 0 ? ref : React.useRef(null);
12
14
  var suppress = React.useRef(false);
13
15
 
14
- var handleMouseDown = function handleMouseDown() {
16
+ var _React$useState = React.useState(false),
17
+ _React$useState2 = _slicedToArray(_React$useState, 2),
18
+ visible = _React$useState2[0],
19
+ setVisible = _React$useState2[1];
20
+
21
+ var addFocusVisibleClasses = function addFocusVisibleClasses() {
15
22
  var _elementRef$current;
16
23
 
17
- if (!((_elementRef$current = elementRef.current) !== null && _elementRef$current !== void 0 && _elementRef$current.classList.contains('focus-visible'))) {
24
+ (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.classList.add('focus-visible');
25
+ focusWithinList === null || focusWithinList === void 0 ? void 0 : focusWithinList.forEach(function (focusWithinListItem) {
26
+ var _focusWithinListItem$;
27
+
28
+ (_focusWithinListItem$ = focusWithinListItem.current) === null || _focusWithinListItem$ === void 0 ? void 0 : _focusWithinListItem$.classList.add('focus-visible-within');
29
+ });
30
+ };
31
+
32
+ var removeFocusVisibleClasses = function removeFocusVisibleClasses() {
33
+ var _elementRef$current2;
34
+
35
+ (_elementRef$current2 = elementRef.current) === null || _elementRef$current2 === void 0 ? void 0 : _elementRef$current2.classList.remove('focus-visible');
36
+ focusWithinList === null || focusWithinList === void 0 ? void 0 : focusWithinList.forEach(function (focusWithinListItem) {
37
+ var _focusWithinListItem$2;
38
+
39
+ (_focusWithinListItem$2 = focusWithinListItem.current) === null || _focusWithinListItem$2 === void 0 ? void 0 : _focusWithinListItem$2.classList.remove('focus-visible-within');
40
+ });
41
+ };
42
+
43
+ var handleMouseDown = function handleMouseDown() {
44
+ var _elementRef$current3;
45
+
46
+ if (!((_elementRef$current3 = elementRef.current) !== null && _elementRef$current3 !== void 0 && _elementRef$current3.classList.contains('focus-visible'))) {
18
47
  suppress.current = true;
19
48
  }
20
49
  };
21
50
 
22
51
  var handleFocus = function handleFocus() {
23
52
  if (!suppress.current) {
24
- var _elementRef$current2;
25
-
26
- (_elementRef$current2 = elementRef.current) === null || _elementRef$current2 === void 0 ? void 0 : _elementRef$current2.classList.add('focus-visible');
27
- focusWithinList === null || focusWithinList === void 0 ? void 0 : focusWithinList.forEach(function (focusWithinListItem) {
28
- var _focusWithinListItem$;
29
-
30
- (_focusWithinListItem$ = focusWithinListItem.current) === null || _focusWithinListItem$ === void 0 ? void 0 : _focusWithinListItem$.classList.add('focus-visible-within');
31
- });
53
+ setVisible(true);
54
+ addFocusVisibleClasses();
32
55
  } else {
33
56
  suppress.current = false;
34
57
  }
35
58
  };
36
59
 
37
60
  var handleBlur = function handleBlur() {
38
- var _elementRef$current3;
39
-
40
- (_elementRef$current3 = elementRef.current) === null || _elementRef$current3 === void 0 ? void 0 : _elementRef$current3.classList.remove('focus-visible');
41
- focusWithinList === null || focusWithinList === void 0 ? void 0 : focusWithinList.forEach(function (focusWithinListItem) {
42
- var _focusWithinListItem$2;
43
-
44
- (_focusWithinListItem$2 = focusWithinListItem.current) === null || _focusWithinListItem$2 === void 0 ? void 0 : _focusWithinListItem$2.classList.remove('focus-visible-within');
45
- });
61
+ setVisible(false);
62
+ removeFocusVisibleClasses();
46
63
  };
47
64
 
65
+ React.useLayoutEffect(function () {
66
+ if (visible) {
67
+ addFocusVisibleClasses();
68
+ } else {
69
+ removeFocusVisibleClasses();
70
+ }
71
+ }, [visible, elementRef, focusWithinList]);
48
72
  React.useEffect(function () {
49
73
  if (!elementRef.current) return;
50
74
  var instance = elementRef.current;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/common/FocusVisible.ts"],"names":["React","useFocusVisibleRef","focusWithinList","ref","elementRef","useRef","suppress","handleMouseDown","current","classList","contains","handleFocus","add","forEach","focusWithinListItem","handleBlur","remove","useEffect","instance","focusFn","focus","e","focusVisible","call","addEventListener","removeEventListener","el"],"mappings":"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","sourcesContent":["import React from 'react';\n\nexport const useFocusVisibleRef = (focusWithinList: React.MutableRefObject<any>[] = [], ref?: any) => {\n const elementRef = ref ?? React.useRef<any>(null);\n const suppress = React.useRef<boolean>(false);\n\n const handleMouseDown = () => {\n if (!elementRef.current?.classList.contains('focus-visible')) {\n suppress.current = true;\n }\n };\n\n const handleFocus = () => {\n if (!suppress.current) {\n elementRef.current?.classList.add('focus-visible');\n focusWithinList?.forEach((focusWithinListItem) => {\n focusWithinListItem.current?.classList.add('focus-visible-within');\n });\n } else {\n suppress.current = false;\n }\n };\n\n const handleBlur = () => {\n elementRef.current?.classList.remove('focus-visible');\n focusWithinList?.forEach((focusWithinListItem) => {\n focusWithinListItem.current?.classList.remove('focus-visible-within');\n });\n };\n\n React.useEffect(() => {\n if (!elementRef.current) return;\n\n const instance = elementRef.current;\n const focusFn = elementRef.current.focus;\n elementRef.current.focus = (e: any) => {\n suppress.current = !e?.focusVisible;\n focusFn.call(instance, e);\n };\n\n instance.addEventListener('mousedown', handleMouseDown);\n instance.addEventListener('focus', handleFocus);\n instance.addEventListener('blur', handleBlur);\n\n return () => {\n instance.removeEventListener('mousedown', handleMouseDown);\n instance.removeEventListener('focus', handleFocus);\n instance.removeEventListener('blur', handleBlur);\n instance.classList.remove('focus-visible');\n for (let el of focusWithinList) {\n el.current?.classList.remove('focus-visible-within');\n }\n };\n }, [elementRef]);\n\n return elementRef;\n};\n"],"file":"FocusVisible.js"}
1
+ {"version":3,"sources":["../../src/common/FocusVisible.ts"],"names":["React","useFocusVisibleRef","focusWithinList","ref","elementRef","useRef","suppress","useState","visible","setVisible","addFocusVisibleClasses","current","classList","add","forEach","focusWithinListItem","removeFocusVisibleClasses","remove","handleMouseDown","contains","handleFocus","handleBlur","useLayoutEffect","useEffect","instance","focusFn","focus","e","focusVisible","call","addEventListener","removeEventListener","el"],"mappings":"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","sourcesContent":["import React from 'react';\n\nexport const useFocusVisibleRef = (focusWithinList: React.MutableRefObject<any>[] = [], ref?: any) => {\n const elementRef = ref ?? React.useRef<any>(null);\n const suppress = React.useRef<boolean>(false);\n const [visible, setVisible] = React.useState(false);\n\n const addFocusVisibleClasses = () => {\n elementRef.current?.classList.add('focus-visible');\n focusWithinList?.forEach((focusWithinListItem) => {\n focusWithinListItem.current?.classList.add('focus-visible-within');\n });\n }\n\n const removeFocusVisibleClasses = () => {\n elementRef.current?.classList.remove('focus-visible');\n focusWithinList?.forEach((focusWithinListItem) => {\n focusWithinListItem.current?.classList.remove('focus-visible-within');\n });\n }\n\n const handleMouseDown = () => {\n if (!elementRef.current?.classList.contains('focus-visible')) {\n suppress.current = true;\n }\n };\n\n const handleFocus = () => {\n if (!suppress.current) {\n setVisible(true);\n addFocusVisibleClasses();\n } else {\n suppress.current = false;\n }\n };\n\n const handleBlur = () => {\n setVisible(false);\n removeFocusVisibleClasses();\n };\n\n\n React.useLayoutEffect(() => {\n if (visible) {\n addFocusVisibleClasses()\n } else {\n removeFocusVisibleClasses();\n }\n }, [visible, elementRef, focusWithinList]);\n\n React.useEffect(() => {\n if (!elementRef.current) return;\n\n const instance = elementRef.current;\n const focusFn = elementRef.current.focus;\n elementRef.current.focus = (e: any) => {\n suppress.current = !e?.focusVisible;\n focusFn.call(instance, e);\n };\n\n instance.addEventListener('mousedown', handleMouseDown);\n instance.addEventListener('focus', handleFocus);\n instance.addEventListener('blur', handleBlur);\n\n return () => {\n instance.removeEventListener('mousedown', handleMouseDown);\n instance.removeEventListener('focus', handleFocus);\n instance.removeEventListener('blur', handleBlur);\n instance.classList.remove('focus-visible');\n for (let el of focusWithinList) {\n el.current?.classList.remove('focus-visible-within');\n }\n };\n }, [elementRef]);\n\n return elementRef;\n};\n"],"file":"FocusVisible.js"}
@@ -15,6 +15,6 @@ var _styles = require("../styles");
15
15
 
16
16
  var _templateObject;
17
17
 
18
- var CommonInteractionStyling = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n &:focus, &.focus-state, &.focus-visible {\n ", "\n }\n\n &:hover, &.hover-state {\n background-color: ", ";\n color: ", ";\n }\n &:active, &.active-state {\n background-color: ", ";\n color: ", ";\n }\n &:disabled, &.disabled-state {\n background-color: ", ";\n span {\n color: ", ";\n }\n &::after {\n background-color: ", ";\n }\n }\n"])), _styles.focusStyles, _styles.COLORS.primary_20, _styles.COLORS.primary_600, _styles.COLORS.primary_100, _styles.COLORS.primary_800, _styles.COLORS.white, _styles.COLORS.neutral_300, _styles.COLORS.white);
18
+ var CommonInteractionStyling = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n &:focus, &.focus-state, &.focus-visible {\n ", "\n }\n\n &:hover:not(.action-within), &.hover-state {\n background-color: ", ";\n color: ", ";\n }\n &:active:not(.action-within), &.active-state {\n background-color: ", ";\n color: ", ";\n }\n &:disabled, &.disabled-state {\n background-color: ", ";\n span {\n color: ", ";\n }\n &::after {\n background-color: ", ";\n }\n }\n"])), _styles.focusStyles, _styles.COLORS.primary_20, _styles.COLORS.primary_600, _styles.COLORS.primary_100, _styles.COLORS.primary_800, _styles.COLORS.white, _styles.COLORS.neutral_300, _styles.COLORS.white);
19
19
  exports.CommonInteractionStyling = CommonInteractionStyling;
20
20
  //# sourceMappingURL=InputStyling.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/common/InputStyling.ts"],"names":["CommonInteractionStyling","css","focusStyles","COLORS","primary_20","primary_600","primary_100","primary_800","white","neutral_300"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;AAEO,IAAMA,wBAAwB,OAAGC,qBAAH,wdAE/BC,mBAF+B,EAMbC,eAAOC,UANM,EAOxBD,eAAOE,WAPiB,EAUbF,eAAOG,WAVM,EAWxBH,eAAOI,WAXiB,EAcbJ,eAAOK,KAdM,EAgBtBL,eAAOM,WAhBe,EAmBXN,eAAOK,KAnBI,CAA9B","sourcesContent":["import { css } from 'styled-components';\nimport {COLORS, focusStyles} from '../styles';\n\nexport const CommonInteractionStyling = css`\n &:focus, &.focus-state, &.focus-visible {\n ${focusStyles}\n }\n\n &:hover, &.hover-state {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_600};\n }\n &:active, &.active-state {\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n &:disabled, &.disabled-state {\n background-color: ${COLORS.white};\n span {\n color: ${COLORS.neutral_300};\n }\n &::after {\n background-color: ${COLORS.white};\n }\n }\n`;\n"],"file":"InputStyling.cjs"}
1
+ {"version":3,"sources":["../../src/common/InputStyling.ts"],"names":["CommonInteractionStyling","css","focusStyles","COLORS","primary_20","primary_600","primary_100","primary_800","white","neutral_300"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;AAEO,IAAMA,wBAAwB,OAAGC,qBAAH,ggBAE/BC,mBAF+B,EAMbC,eAAOC,UANM,EAOxBD,eAAOE,WAPiB,EAUbF,eAAOG,WAVM,EAWxBH,eAAOI,WAXiB,EAcbJ,eAAOK,KAdM,EAgBtBL,eAAOM,WAhBe,EAmBXN,eAAOK,KAnBI,CAA9B","sourcesContent":["import { css } from 'styled-components';\nimport {COLORS, focusStyles} from '../styles';\n\nexport const CommonInteractionStyling = css`\n &:focus, &.focus-state, &.focus-visible {\n ${focusStyles}\n }\n\n &:hover:not(.action-within), &.hover-state {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_600};\n }\n &:active:not(.action-within), &.active-state {\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n &:disabled, &.disabled-state {\n background-color: ${COLORS.white};\n span {\n color: ${COLORS.neutral_300};\n }\n &::after {\n background-color: ${COLORS.white};\n }\n }\n`;\n"],"file":"InputStyling.cjs"}
@@ -4,5 +4,5 @@ var _templateObject;
4
4
 
5
5
  import { css } from 'styled-components';
6
6
  import { COLORS, focusStyles } from '../styles';
7
- export var CommonInteractionStyling = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &:focus, &.focus-state, &.focus-visible {\n ", "\n }\n\n &:hover, &.hover-state {\n background-color: ", ";\n color: ", ";\n }\n &:active, &.active-state {\n background-color: ", ";\n color: ", ";\n }\n &:disabled, &.disabled-state {\n background-color: ", ";\n span {\n color: ", ";\n }\n &::after {\n background-color: ", ";\n }\n }\n"])), focusStyles, COLORS.primary_20, COLORS.primary_600, COLORS.primary_100, COLORS.primary_800, COLORS.white, COLORS.neutral_300, COLORS.white);
7
+ export var CommonInteractionStyling = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &:focus, &.focus-state, &.focus-visible {\n ", "\n }\n\n &:hover:not(.action-within), &.hover-state {\n background-color: ", ";\n color: ", ";\n }\n &:active:not(.action-within), &.active-state {\n background-color: ", ";\n color: ", ";\n }\n &:disabled, &.disabled-state {\n background-color: ", ";\n span {\n color: ", ";\n }\n &::after {\n background-color: ", ";\n }\n }\n"])), focusStyles, COLORS.primary_20, COLORS.primary_600, COLORS.primary_100, COLORS.primary_800, COLORS.white, COLORS.neutral_300, COLORS.white);
8
8
  //# sourceMappingURL=InputStyling.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/common/InputStyling.ts"],"names":["css","COLORS","focusStyles","CommonInteractionStyling","primary_20","primary_600","primary_100","primary_800","white","neutral_300"],"mappings":";;;;AAAA,SAASA,GAAT,QAAoB,mBAApB;AACA,SAAQC,MAAR,EAAgBC,WAAhB,QAAkC,WAAlC;AAEA,OAAO,IAAMC,wBAAwB,GAAGH,GAAH,ycAE/BE,WAF+B,EAMbD,MAAM,CAACG,UANM,EAOxBH,MAAM,CAACI,WAPiB,EAUbJ,MAAM,CAACK,WAVM,EAWxBL,MAAM,CAACM,WAXiB,EAcbN,MAAM,CAACO,KAdM,EAgBtBP,MAAM,CAACQ,WAhBe,EAmBXR,MAAM,CAACO,KAnBI,CAA9B","sourcesContent":["import { css } from 'styled-components';\nimport {COLORS, focusStyles} from '../styles';\n\nexport const CommonInteractionStyling = css`\n &:focus, &.focus-state, &.focus-visible {\n ${focusStyles}\n }\n\n &:hover, &.hover-state {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_600};\n }\n &:active, &.active-state {\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n &:disabled, &.disabled-state {\n background-color: ${COLORS.white};\n span {\n color: ${COLORS.neutral_300};\n }\n &::after {\n background-color: ${COLORS.white};\n }\n }\n`;\n"],"file":"InputStyling.js"}
1
+ {"version":3,"sources":["../../src/common/InputStyling.ts"],"names":["css","COLORS","focusStyles","CommonInteractionStyling","primary_20","primary_600","primary_100","primary_800","white","neutral_300"],"mappings":";;;;AAAA,SAASA,GAAT,QAAoB,mBAApB;AACA,SAAQC,MAAR,EAAgBC,WAAhB,QAAkC,WAAlC;AAEA,OAAO,IAAMC,wBAAwB,GAAGH,GAAH,ifAE/BE,WAF+B,EAMbD,MAAM,CAACG,UANM,EAOxBH,MAAM,CAACI,WAPiB,EAUbJ,MAAM,CAACK,WAVM,EAWxBL,MAAM,CAACM,WAXiB,EAcbN,MAAM,CAACO,KAdM,EAgBtBP,MAAM,CAACQ,WAhBe,EAmBXR,MAAM,CAACO,KAnBI,CAA9B","sourcesContent":["import { css } from 'styled-components';\nimport {COLORS, focusStyles} from '../styles';\n\nexport const CommonInteractionStyling = css`\n &:focus, &.focus-state, &.focus-visible {\n ${focusStyles}\n }\n\n &:hover:not(.action-within), &.hover-state {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_600};\n }\n &:active:not(.action-within), &.active-state {\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n &:disabled, &.disabled-state {\n background-color: ${COLORS.white};\n span {\n color: ${COLORS.neutral_300};\n }\n &::after {\n background-color: ${COLORS.white};\n }\n }\n`;\n"],"file":"InputStyling.js"}
@@ -18,7 +18,19 @@ Object.defineProperty(exports, "defaultOnMouseDownHandler", {
18
18
  Object.defineProperty(exports, "useActionWithin", {
19
19
  enumerable: true,
20
20
  get: function get() {
21
- return _HoverWithin.useActionWithin;
21
+ return _ActionWithin.useActionWithin;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useClickOutsideRef", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _ClickOutside.useClickOutsideRef;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useFocusOutsideRef", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _FocusOutside.useFocusOutsideRef;
22
34
  }
23
35
  });
24
36
  Object.defineProperty(exports, "useFocusVisibleRef", {
@@ -34,5 +46,9 @@ var _EventHandlers = require("./EventHandlers");
34
46
 
35
47
  var _FocusVisible = require("./FocusVisible");
36
48
 
37
- var _HoverWithin = require("./HoverWithin");
49
+ var _ActionWithin = require("./ActionWithin");
50
+
51
+ var _FocusOutside = require("./FocusOutside");
52
+
53
+ var _ClickOutside = require("./ClickOutside");
38
54
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","sourcesContent":["export {CommonInteractionStyling} from './InputStyling';\nexport {defaultOnMouseDownHandler} from './EventHandlers'\nexport {useFocusVisibleRef} from './FocusVisible';\nexport {useActionWithin} from './HoverWithin';\n"],"file":"index.cjs"}
1
+ {"version":3,"sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export {CommonInteractionStyling} from './InputStyling';\nexport {defaultOnMouseDownHandler} from './EventHandlers'\nexport {useFocusVisibleRef} from './FocusVisible';\nexport {useActionWithin} from './ActionWithin';\nexport {useFocusOutsideRef} from './FocusOutside'\nexport {useClickOutsideRef} from './ClickOutside'\n"],"file":"index.cjs"}
@@ -1,4 +1,6 @@
1
1
  export { CommonInteractionStyling } from './InputStyling';
2
2
  export { defaultOnMouseDownHandler } from './EventHandlers';
3
3
  export { useFocusVisibleRef } from './FocusVisible';
4
- export { useActionWithin } from './HoverWithin';
4
+ export { useActionWithin } from './ActionWithin';
5
+ export { useFocusOutsideRef } from './FocusOutside';
6
+ export { useClickOutsideRef } from './ClickOutside';