@laerdal/life-react-components 1.10.3-dev.2 → 1.10.3-dev.4

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 (221) hide show
  1. package/dist/Accordion/AccordionItem.cjs +22 -6
  2. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  3. package/dist/Accordion/AccordionItem.js +21 -6
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/AccordionMenu.cjs +40 -21
  6. package/dist/Accordion/AccordionMenu.cjs.map +1 -1
  7. package/dist/Accordion/AccordionMenu.d.ts +2 -2
  8. package/dist/Accordion/AccordionMenu.js +39 -21
  9. package/dist/Accordion/AccordionMenu.js.map +1 -1
  10. package/dist/Accordion/ContentAccordion.cjs +56 -29
  11. package/dist/Accordion/ContentAccordion.cjs.map +1 -1
  12. package/dist/Accordion/ContentAccordion.d.ts +2 -2
  13. package/dist/Accordion/ContentAccordion.js +54 -29
  14. package/dist/Accordion/ContentAccordion.js.map +1 -1
  15. package/dist/Banners/Banner.cjs +64 -46
  16. package/dist/Banners/Banner.cjs.map +1 -1
  17. package/dist/Banners/Banner.d.ts +3 -2
  18. package/dist/Banners/Banner.js +63 -42
  19. package/dist/Banners/Banner.js.map +1 -1
  20. package/dist/Banners/OverviewBanner.cjs +14 -3
  21. package/dist/Banners/OverviewBanner.cjs.map +1 -1
  22. package/dist/Banners/OverviewBanner.d.ts +3 -2
  23. package/dist/Banners/OverviewBanner.js +12 -3
  24. package/dist/Banners/OverviewBanner.js.map +1 -1
  25. package/dist/Breadcrumb/Breadcrumb.cjs +16 -4
  26. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  27. package/dist/Breadcrumb/Breadcrumb.d.ts +1 -1
  28. package/dist/Breadcrumb/Breadcrumb.js +15 -4
  29. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  30. package/dist/Button/Iconbutton.cjs +20 -14
  31. package/dist/Button/Iconbutton.cjs.map +1 -1
  32. package/dist/Button/Iconbutton.d.ts +1 -4
  33. package/dist/Button/Iconbutton.js +17 -14
  34. package/dist/Button/Iconbutton.js.map +1 -1
  35. package/dist/Card/HorizontalCard/HorizontalCard.cjs +8 -2
  36. package/dist/Card/HorizontalCard/HorizontalCard.cjs.map +1 -1
  37. package/dist/Card/HorizontalCard/HorizontalCard.js +6 -2
  38. package/dist/Card/HorizontalCard/HorizontalCard.js.map +1 -1
  39. package/dist/Card/HorizontalCard/HorizontalCardActions.cjs +2 -8
  40. package/dist/Card/HorizontalCard/HorizontalCardActions.cjs.map +1 -1
  41. package/dist/Card/HorizontalCard/HorizontalCardActions.js +2 -2
  42. package/dist/Card/HorizontalCard/HorizontalCardActions.js.map +1 -1
  43. package/dist/Card/HorizontalCard/types.d.ts +1 -1
  44. package/dist/Card/VerticalCard/Card.cjs +12 -5
  45. package/dist/Card/VerticalCard/Card.cjs.map +1 -1
  46. package/dist/Card/VerticalCard/Card.d.ts +1 -1
  47. package/dist/Card/VerticalCard/Card.js +10 -5
  48. package/dist/Card/VerticalCard/Card.js.map +1 -1
  49. package/dist/Chips/ActionChip.cjs +18 -14
  50. package/dist/Chips/ActionChip.cjs.map +1 -1
  51. package/dist/Chips/ActionChip.js +16 -5
  52. package/dist/Chips/ActionChip.js.map +1 -1
  53. package/dist/Chips/ChipTypes.d.ts +5 -3
  54. package/dist/Chips/ChoiceChips.cjs +24 -16
  55. package/dist/Chips/ChoiceChips.cjs.map +1 -1
  56. package/dist/Chips/ChoiceChips.js +22 -9
  57. package/dist/Chips/ChoiceChips.js.map +1 -1
  58. package/dist/Chips/FilterChip.cjs +18 -14
  59. package/dist/Chips/FilterChip.cjs.map +1 -1
  60. package/dist/Chips/FilterChip.js +16 -5
  61. package/dist/Chips/FilterChip.js.map +1 -1
  62. package/dist/Chips/InputChip.cjs +18 -14
  63. package/dist/Chips/InputChip.cjs.map +1 -1
  64. package/dist/Chips/InputChip.js +17 -5
  65. package/dist/Chips/InputChip.js.map +1 -1
  66. package/dist/ChipsInput/ChipDropdownInput.cjs +14 -7
  67. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  68. package/dist/ChipsInput/ChipDropdownInput.d.ts +1 -1
  69. package/dist/ChipsInput/ChipDropdownInput.js +12 -6
  70. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  71. package/dist/ChipsInput/ChipInput.cjs +16 -12
  72. package/dist/ChipsInput/ChipInput.cjs.map +1 -1
  73. package/dist/ChipsInput/ChipInput.d.ts +1 -1
  74. package/dist/ChipsInput/ChipInput.js +14 -7
  75. package/dist/ChipsInput/ChipInput.js.map +1 -1
  76. package/dist/ChipsInput/ChipInputField.cjs +22 -4
  77. package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
  78. package/dist/ChipsInput/ChipInputField.d.ts +1 -1
  79. package/dist/ChipsInput/ChipInputField.js +18 -4
  80. package/dist/ChipsInput/ChipInputField.js.map +1 -1
  81. package/dist/ChipsInput/ChipInputTypes.d.ts +2 -1
  82. package/dist/Dropdown/BasicDropdown.cjs +88 -64
  83. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  84. package/dist/Dropdown/BasicDropdown.d.ts +13 -8
  85. package/dist/Dropdown/BasicDropdown.js +87 -65
  86. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  87. package/dist/Dropdown/DropdownFilter.cjs +30 -14
  88. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  89. package/dist/Dropdown/DropdownFilter.d.ts +3 -3
  90. package/dist/Dropdown/DropdownFilter.js +26 -13
  91. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  92. package/dist/Footer/SiteFooter.cjs +16 -4
  93. package/dist/Footer/SiteFooter.cjs.map +1 -1
  94. package/dist/Footer/SiteFooter.d.ts +6 -2
  95. package/dist/Footer/SiteFooter.js +14 -4
  96. package/dist/Footer/SiteFooter.js.map +1 -1
  97. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs +2 -8
  98. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs.map +1 -1
  99. package/dist/GlobalNavigationBar/desktop/DesktopActions.js +2 -2
  100. package/dist/GlobalNavigationBar/desktop/DesktopActions.js.map +1 -1
  101. package/dist/Image/ImageWithFallbacks.cjs +10 -2
  102. package/dist/Image/ImageWithFallbacks.cjs.map +1 -1
  103. package/dist/Image/ImageWithFallbacks.d.ts +1 -1
  104. package/dist/Image/ImageWithFallbacks.js +9 -2
  105. package/dist/Image/ImageWithFallbacks.js.map +1 -1
  106. package/dist/InputFields/Checkbox.cjs +16 -4
  107. package/dist/InputFields/Checkbox.cjs.map +1 -1
  108. package/dist/InputFields/Checkbox.d.ts +1 -1
  109. package/dist/InputFields/Checkbox.js +13 -4
  110. package/dist/InputFields/Checkbox.js.map +1 -1
  111. package/dist/InputFields/DatepickerField.cjs +44 -38
  112. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  113. package/dist/InputFields/DatepickerField.d.ts +17 -20
  114. package/dist/InputFields/DatepickerField.js +33 -20
  115. package/dist/InputFields/DatepickerField.js.map +1 -1
  116. package/dist/InputFields/NumberField.cjs +63 -52
  117. package/dist/InputFields/NumberField.cjs.map +1 -1
  118. package/dist/InputFields/NumberField.d.ts +14 -19
  119. package/dist/InputFields/NumberField.js +60 -53
  120. package/dist/InputFields/NumberField.js.map +1 -1
  121. package/dist/InputFields/PasswordField.cjs +25 -8
  122. package/dist/InputFields/PasswordField.cjs.map +1 -1
  123. package/dist/InputFields/PasswordField.d.ts +14 -14
  124. package/dist/InputFields/PasswordField.js +22 -9
  125. package/dist/InputFields/PasswordField.js.map +1 -1
  126. package/dist/InputFields/RadioButton.cjs +17 -5
  127. package/dist/InputFields/RadioButton.cjs.map +1 -1
  128. package/dist/InputFields/RadioButton.d.ts +2 -2
  129. package/dist/InputFields/RadioButton.js +14 -5
  130. package/dist/InputFields/RadioButton.js.map +1 -1
  131. package/dist/InputFields/TextField.cjs +23 -8
  132. package/dist/InputFields/TextField.cjs.map +1 -1
  133. package/dist/InputFields/TextField.d.ts +20 -20
  134. package/dist/InputFields/TextField.js +22 -9
  135. package/dist/InputFields/TextField.js.map +1 -1
  136. package/dist/InputFields/Textarea.cjs +20 -7
  137. package/dist/InputFields/Textarea.cjs.map +1 -1
  138. package/dist/InputFields/Textarea.d.ts +16 -2
  139. package/dist/InputFields/Textarea.js +18 -8
  140. package/dist/InputFields/Textarea.js.map +1 -1
  141. package/dist/InputFields/components/SearchBarInput.cjs +4 -1
  142. package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
  143. package/dist/InputFields/components/SearchBarInput.js +4 -1
  144. package/dist/InputFields/components/SearchBarInput.js.map +1 -1
  145. package/dist/InputFields/index.cjs +26 -0
  146. package/dist/InputFields/index.cjs.map +1 -1
  147. package/dist/InputFields/index.d.ts +1 -0
  148. package/dist/InputFields/index.js +1 -0
  149. package/dist/InputFields/index.js.map +1 -1
  150. package/dist/InputFields/types.d.ts +1 -1
  151. package/dist/LinearProgress/LinearProgress.cjs +17 -4
  152. package/dist/LinearProgress/LinearProgress.cjs.map +1 -1
  153. package/dist/LinearProgress/LinearProgress.d.ts +1 -1
  154. package/dist/LinearProgress/LinearProgress.js +14 -4
  155. package/dist/LinearProgress/LinearProgress.js.map +1 -1
  156. package/dist/List/ListRow.cjs +15 -8
  157. package/dist/List/ListRow.cjs.map +1 -1
  158. package/dist/List/ListRow.d.ts +1 -1
  159. package/dist/List/ListRow.js +13 -8
  160. package/dist/List/ListRow.js.map +1 -1
  161. package/dist/MenuItem/MenuItem.cjs +16 -6
  162. package/dist/MenuItem/MenuItem.cjs.map +1 -1
  163. package/dist/MenuItem/MenuItem.d.ts +1 -3
  164. package/dist/MenuItem/MenuItem.js +14 -6
  165. package/dist/MenuItem/MenuItem.js.map +1 -1
  166. package/dist/ProfileButton/ProfileButton.cjs +17 -8
  167. package/dist/ProfileButton/ProfileButton.cjs.map +1 -1
  168. package/dist/ProfileButton/ProfileButton.d.ts +8 -12
  169. package/dist/ProfileButton/ProfileButton.js +14 -8
  170. package/dist/ProfileButton/ProfileButton.js.map +1 -1
  171. package/dist/QuizButton/QuizButton.cjs +17 -6
  172. package/dist/QuizButton/QuizButton.cjs.map +1 -1
  173. package/dist/QuizButton/QuizButton.d.ts +1 -2
  174. package/dist/QuizButton/QuizButton.js +15 -6
  175. package/dist/QuizButton/QuizButton.js.map +1 -1
  176. package/dist/SegmentControl/SegmentControl.cjs +28 -8
  177. package/dist/SegmentControl/SegmentControl.cjs.map +1 -1
  178. package/dist/SegmentControl/SegmentControl.d.ts +2 -2
  179. package/dist/SegmentControl/SegmentControl.js +26 -8
  180. package/dist/SegmentControl/SegmentControl.js.map +1 -1
  181. package/dist/SideMenu/SideMenu.cjs +11 -4
  182. package/dist/SideMenu/SideMenu.cjs.map +1 -1
  183. package/dist/SideMenu/SideMenu.js +10 -4
  184. package/dist/SideMenu/SideMenu.js.map +1 -1
  185. package/dist/SideMenu/types.d.ts +1 -1
  186. package/dist/Table/TableFooter.cjs +10 -7
  187. package/dist/Table/TableFooter.cjs.map +1 -1
  188. package/dist/Table/TableFooter.js +10 -7
  189. package/dist/Table/TableFooter.js.map +1 -1
  190. package/dist/Tabs/HorizontalTabs.cjs +32 -13
  191. package/dist/Tabs/HorizontalTabs.cjs.map +1 -1
  192. package/dist/Tabs/HorizontalTabs.d.ts +7 -4
  193. package/dist/Tabs/HorizontalTabs.js +30 -13
  194. package/dist/Tabs/HorizontalTabs.js.map +1 -1
  195. package/dist/Tag/Tag.cjs +16 -4
  196. package/dist/Tag/Tag.cjs.map +1 -1
  197. package/dist/Tag/Tag.d.ts +1 -1
  198. package/dist/Tag/Tag.js +14 -4
  199. package/dist/Tag/Tag.js.map +1 -1
  200. package/dist/Tile/Tile.cjs +11 -4
  201. package/dist/Tile/Tile.cjs.map +1 -1
  202. package/dist/Tile/Tile.js +10 -4
  203. package/dist/Tile/Tile.js.map +1 -1
  204. package/dist/Tile/TileTypes.d.ts +1 -1
  205. package/dist/Toasters/Toast.cjs.map +1 -1
  206. package/dist/Toasters/Toast.js.map +1 -1
  207. package/dist/Toggles/ToggleButton.cjs +36 -17
  208. package/dist/Toggles/ToggleButton.cjs.map +1 -1
  209. package/dist/Toggles/ToggleButton.d.ts +1 -2
  210. package/dist/Toggles/ToggleButton.js +33 -17
  211. package/dist/Toggles/ToggleButton.js.map +1 -1
  212. package/dist/Toggles/ToggleSwitch.cjs +27 -17
  213. package/dist/Toggles/ToggleSwitch.cjs.map +1 -1
  214. package/dist/Toggles/ToggleSwitch.d.ts +5 -1
  215. package/dist/Toggles/ToggleSwitch.js +24 -12
  216. package/dist/Toggles/ToggleSwitch.js.map +1 -1
  217. package/dist/Toggles/TogglerTypes.d.ts +1 -1
  218. package/dist/common/FocusVisible.cjs.map +1 -1
  219. package/dist/common/FocusVisible.d.ts +1 -1
  220. package/dist/common/FocusVisible.js.map +1 -1
  221. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  var _typeof = require("@babel/runtime/helpers/typeof");
4
6
 
5
7
  Object.defineProperty(exports, "__esModule", {
@@ -7,6 +9,10 @@ Object.defineProperty(exports, "__esModule", {
7
9
  });
8
10
  exports.default = void 0;
9
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
10
16
  var React = _interopRequireWildcard(require("react"));
11
17
 
12
18
  var _TogglerStyles = require("./TogglerStyles");
@@ -17,18 +23,17 @@ var _common = require("../common");
17
23
 
18
24
  var _jsxRuntime = require("react/jsx-runtime");
19
25
 
26
+ var _excluded = ["id", "disabled", "selected", "label", "isSemantic", "size", "onToggle", "className"];
27
+
20
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
29
 
22
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
31
 
24
- /**
25
- * Import React libraries.
26
- */
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
33
 
28
- /**
29
- * Import custom styles.
30
- */
31
- var ToggleSwitch = function ToggleSwitch(_ref) {
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+
36
+ var ToggleSwitch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
32
37
  var _size;
33
38
 
34
39
  var id = _ref.id,
@@ -37,7 +42,9 @@ var ToggleSwitch = function ToggleSwitch(_ref) {
37
42
  label = _ref.label,
38
43
  isSemantic = _ref.isSemantic,
39
44
  size = _ref.size,
40
- onToggle = _ref.onToggle;
45
+ onToggle = _ref.onToggle,
46
+ className = _ref.className,
47
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
48
 
42
49
  /**
43
50
  * Does all required pre-requisites and toggles the switcher state.
@@ -49,19 +56,23 @@ var ToggleSwitch = function ToggleSwitch(_ref) {
49
56
  onToggle(!selected);
50
57
  };
51
58
 
52
- var focusVisibleRef = (0, _common.useFocusVisibleRef)();
59
+ var focusVisibleRef = (0, _common.useFocusVisibleRef)([]);
60
+ React.useImperativeHandle(ref, function () {
61
+ return focusVisibleRef.current;
62
+ }, [focusVisibleRef]);
53
63
  size = (_size = size) !== null && _size !== void 0 ? _size : _.Size.Medium;
54
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TogglerStyles.StyledSwitch, {
64
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TogglerStyles.StyledSwitch, _objectSpread(_objectSpread({
55
65
  ref: focusVisibleRef,
56
66
  onClick: function onClick(e) {
57
67
  return toggle();
58
68
  },
59
- onKeyUp: function onKeyUp(e) {
60
- return e.key === 'Enter' && toggle();
69
+ onKeyDown: function onKeyDown(e) {
70
+ return (e.key === 'Enter' || e.key === ' ') && toggle();
61
71
  },
62
- className: size.toString().toLowerCase().concat(disabled ? ' disabled' : ''),
72
+ className: size.toString().toLowerCase().concat(disabled ? ' disabled' : '').concat(className ? " ".concat(className) : ''),
63
73
  selected: selected,
64
- tabIndex: disabled ? -1 : 0,
74
+ tabIndex: disabled ? -1 : 0
75
+ }, rest), {}, {
65
76
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TogglerStyles.ToggleSwitchContainer, {
66
77
  id: "switchContainer",
67
78
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TogglerStyles.ToggleSwitch, {
@@ -72,9 +83,8 @@ var ToggleSwitch = function ToggleSwitch(_ref) {
72
83
  htmlFor: id,
73
84
  children: label
74
85
  })]
75
- });
76
- };
77
-
86
+ }));
87
+ });
78
88
  var _default = ToggleSwitch;
79
89
  exports.default = _default;
80
90
  //# sourceMappingURL=ToggleSwitch.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Toggles/ToggleSwitch.tsx"],"names":["ToggleSwitch","id","disabled","selected","label","isSemantic","size","onToggle","toggle","focusVisibleRef","Size","Medium","e","key","toString","toLowerCase","concat"],"mappings":";;;;;;;;;AAGA;;AAUA;;AACA;;AACA;;;;;;;;AAfA;AACA;AACA;;AAQA;AACA;AACA;AAKA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAAsF;AAAA;;AAAA,MAAnFC,EAAmF,QAAnFA,EAAmF;AAAA,MAA/EC,QAA+E,QAA/EA,QAA+E;AAAA,MAArEC,QAAqE,QAArEA,QAAqE;AAAA,MAA3DC,KAA2D,QAA3DA,KAA2D;AAAA,MAApDC,UAAoD,QAApDA,UAAoD;AAAA,MAAxCC,IAAwC,QAAxCA,IAAwC;AAAA,MAAlCC,QAAkC,QAAlCA,QAAkC;;AACzG;AACF;AACA;AACE,MAAMC,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB;AACA,QAAIN,QAAJ,EAAc,OAFK,CAInB;;AACAK,IAAAA,QAAQ,CAAC,CAACJ,QAAF,CAAR;AACD,GAND;;AAOA,MAAMM,eAAe,GAAG,iCAAxB;AAEAH,EAAAA,IAAI,YAAGA,IAAH,yCAAWI,OAAKC,MAApB;AAEA,sBACE,sBAAC,2BAAD;AACE,IAAA,GAAG,EAAEF,eADP;AAEE,IAAA,OAAO,EAAE,iBAACG,CAAD;AAAA,aAAOJ,MAAM,EAAb;AAAA,KAFX;AAGE,IAAA,OAAO,EAAE,iBAACI,CAAD;AAAA,aAAOA,CAAC,CAACC,GAAF,KAAU,OAAV,IAAqBL,MAAM,EAAlC;AAAA,KAHX;AAIE,IAAA,SAAS,EAAEF,IAAI,CACZQ,QADQ,GAERC,WAFQ,GAGRC,MAHQ,CAGDd,QAAQ,GAAG,WAAH,GAAiB,EAHxB,CAJb;AAQE,IAAA,QAAQ,EAAEC,QARZ;AASE,IAAA,QAAQ,EAAED,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAT5B;AAAA,4BAUE,qBAAC,oCAAD;AAAuB,MAAA,EAAE,EAAC,iBAA1B;AAAA,6BACE,qBAAC,2BAAD;AAAQ,QAAA,SAAS,EAAEG,UAAU,GAAG,UAAH,GAAgB;AAA7C;AADF,MAVF,EAaGD,KAAK,iBACJ;AAAO,MAAA,SAAS,EAAE,OAAlB;AAA2B,MAAA,OAAO,EAAEH,EAApC;AAAA,gBACGG;AADH,MAdJ;AAAA,IADF;AAqBD,CApCD;;eAsCeJ,Y","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom types.\n */\nimport { ToggleSwitchProps } from './TogglerTypes';\n\n/**\n * Import custom styles.\n */\nimport { ToggleSwitchContainer, ToggleSwitch as Switch, StyledSwitch } from './TogglerStyles';\nimport { Size } from '..';\nimport { useFocusVisibleRef } from '../common';\n\nconst ToggleSwitch = ({ id, disabled, selected, label, isSemantic, size, onToggle }: ToggleSwitchProps) => {\n /**\n * Does all required pre-requisites and toggles the switcher state.\n */\n const toggle = () => {\n // If disabled, don't do anything\n if (disabled) return;\n\n // Toggle state change\n onToggle(!selected);\n };\n const focusVisibleRef = useFocusVisibleRef();\n\n size = size ?? Size.Medium;\n\n return (\n <StyledSwitch\n ref={focusVisibleRef}\n onClick={(e) => toggle()}\n onKeyUp={(e) => e.key === 'Enter' && toggle()}\n className={size\n .toString()\n .toLowerCase()\n .concat(disabled ? ' disabled' : '')}\n selected={selected}\n tabIndex={disabled ? -1 : 0}>\n <ToggleSwitchContainer id=\"switchContainer\">\n <Switch className={isSemantic ? 'semantic' : ''} />\n </ToggleSwitchContainer>\n {label && (\n <label className={'label'} htmlFor={id}>\n {label}\n </label>\n )}\n </StyledSwitch>\n );\n};\n\nexport default ToggleSwitch;\n"],"file":"ToggleSwitch.cjs"}
1
+ {"version":3,"sources":["../../src/Toggles/ToggleSwitch.tsx"],"names":["ToggleSwitch","React","forwardRef","ref","id","disabled","selected","label","isSemantic","size","onToggle","className","rest","toggle","focusVisibleRef","useImperativeHandle","current","Size","Medium","e","key","toString","toLowerCase","concat"],"mappings":";;;;;;;;;;;;;;;AAGA;;AAUA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,YAAY,gBAAGC,KAAK,CAACC,UAAN,CAAiB,gBAUuBC,GAVvB,EAU+B;AAAA;;AAAA,MAT5BC,EAS4B,QAT5BA,EAS4B;AAAA,MAR5BC,QAQ4B,QAR5BA,QAQ4B;AAAA,MAP5BC,QAO4B,QAP5BA,QAO4B;AAAA,MAN5BC,KAM4B,QAN5BA,KAM4B;AAAA,MAL5BC,UAK4B,QAL5BA,UAK4B;AAAA,MAJ5BC,IAI4B,QAJ5BA,IAI4B;AAAA,MAH5BC,QAG4B,QAH5BA,QAG4B;AAAA,MAF5BC,SAE4B,QAF5BA,SAE4B;AAAA,MADzBC,IACyB;;AACnE;AACF;AACA;AACE,MAAMC,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB;AACA,QAAIR,QAAJ,EAAc,OAFK,CAInB;;AACAK,IAAAA,QAAQ,CAAC,CAACJ,QAAF,CAAR;AACD,GAND;;AAQA,MAAMQ,eAAe,GAAG,gCAAmB,EAAnB,CAAxB;AAEAb,EAAAA,KAAK,CAACc,mBAAN,CAA0BZ,GAA1B,EAA+B;AAAA,WAAMW,eAAe,CAACE,OAAtB;AAAA,GAA/B,EAA8D,CAACF,eAAD,CAA9D;AAEAL,EAAAA,IAAI,YAAGA,IAAH,yCAAWQ,OAAKC,MAApB;AAEA,sBACE,sBAAC,2BAAD;AACE,IAAA,GAAG,EAAEJ,eADP;AAEE,IAAA,OAAO,EAAE,iBAACK,CAAD;AAAA,aAAON,MAAM,EAAb;AAAA,KAFX;AAGE,IAAA,SAAS,EAAE,mBAAAM,CAAC;AAAA,aAAI,CAACA,CAAC,CAACC,GAAF,KAAU,OAAV,IAAqBD,CAAC,CAACC,GAAF,KAAU,GAAhC,KAAwCP,MAAM,EAAlD;AAAA,KAHd;AAIE,IAAA,SAAS,EAAEJ,IAAI,CACZY,QADQ,GAERC,WAFQ,GAGRC,MAHQ,CAGDlB,QAAQ,GAAG,WAAH,GAAiB,EAHxB,EAIRkB,MAJQ,CAIDZ,SAAS,cAAOA,SAAP,IAAqB,EAJ7B,CAJb;AASE,IAAA,QAAQ,EAAEL,QATZ;AAUE,IAAA,QAAQ,EAAED,QAAQ,GAAG,CAAC,CAAJ,GAAQ;AAV5B,KAWMO,IAXN;AAAA,4BAYE,qBAAC,oCAAD;AAAuB,MAAA,EAAE,EAAC,iBAA1B;AAAA,6BACE,qBAAC,2BAAD;AAAQ,QAAA,SAAS,EAAEJ,UAAU,GAAG,UAAH,GAAgB;AAA7C;AADF,MAZF,EAeGD,KAAK,iBACJ;AAAO,MAAA,SAAS,EAAE,OAAlB;AAA2B,MAAA,OAAO,EAAEH,EAApC;AAAA,gBACGG;AADH,MAhBJ;AAAA,KADF;AAuBD,CAnDoB,CAArB;eAqDeP,Y","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom types.\n */\nimport {ToggleSwitchProps} from './TogglerTypes';\n\n/**\n * Import custom styles.\n */\nimport {ToggleSwitchContainer, ToggleSwitch as Switch, StyledSwitch} from './TogglerStyles';\nimport {Size} from '..';\nimport {useFocusVisibleRef} from '../common';\n\nconst ToggleSwitch = React.forwardRef(({\n id,\n disabled,\n selected,\n label,\n isSemantic,\n size,\n onToggle,\n className,\n ...rest\n }: ToggleSwitchProps, ref) => {\n /**\n * Does all required pre-requisites and toggles the switcher state.\n */\n const toggle = () => {\n // If disabled, don't do anything\n if (disabled) return;\n\n // Toggle state change\n onToggle(!selected);\n };\n\n const focusVisibleRef = useFocusVisibleRef([]);\n\n React.useImperativeHandle(ref, () => focusVisibleRef.current, [focusVisibleRef]);\n\n size = size ?? Size.Medium;\n\n return (\n <StyledSwitch\n ref={focusVisibleRef}\n onClick={(e) => toggle()}\n onKeyDown={e => (e.key === 'Enter' || e.key === ' ') && toggle()}\n className={size\n .toString()\n .toLowerCase()\n .concat(disabled ? ' disabled' : '')\n .concat(className ? ` ${className}` : '')}\n selected={selected}\n tabIndex={disabled ? -1 : 0}\n {...rest}>\n <ToggleSwitchContainer id=\"switchContainer\">\n <Switch className={isSemantic ? 'semantic' : ''} />\n </ToggleSwitchContainer>\n {label && (\n <label className={'label'} htmlFor={id}>\n {label}\n </label>\n )}\n </StyledSwitch>\n );\n});\n\nexport default ToggleSwitch;\n"],"file":"ToggleSwitch.cjs"}
@@ -1,6 +1,10 @@
1
+ /**
2
+ * Import React libraries.
3
+ */
4
+ import * as React from 'react';
1
5
  /**
2
6
  * Import custom types.
3
7
  */
4
8
  import { ToggleSwitchProps } from './TogglerTypes';
5
- declare const ToggleSwitch: ({ id, disabled, selected, label, isSemantic, size, onToggle }: ToggleSwitchProps) => JSX.Element;
9
+ declare const ToggleSwitch: React.ForwardRefExoticComponent<ToggleSwitchProps & React.RefAttributes<unknown>>;
6
10
  export default ToggleSwitch;
@@ -1,3 +1,11 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["id", "disabled", "selected", "label", "isSemantic", "size", "onToggle", "className"];
4
+
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+
1
9
  /**
2
10
  * Import React libraries.
3
11
  */
@@ -14,8 +22,7 @@ import { Size } from '..';
14
22
  import { useFocusVisibleRef } from '../common';
15
23
  import { jsx as _jsx } from "react/jsx-runtime";
16
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
-
18
- var ToggleSwitch = function ToggleSwitch(_ref) {
25
+ var ToggleSwitch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
19
26
  var _size;
20
27
 
21
28
  var id = _ref.id,
@@ -24,7 +31,9 @@ var ToggleSwitch = function ToggleSwitch(_ref) {
24
31
  label = _ref.label,
25
32
  isSemantic = _ref.isSemantic,
26
33
  size = _ref.size,
27
- onToggle = _ref.onToggle;
34
+ onToggle = _ref.onToggle,
35
+ className = _ref.className,
36
+ rest = _objectWithoutProperties(_ref, _excluded);
28
37
 
29
38
  /**
30
39
  * Does all required pre-requisites and toggles the switcher state.
@@ -36,19 +45,23 @@ var ToggleSwitch = function ToggleSwitch(_ref) {
36
45
  onToggle(!selected);
37
46
  };
38
47
 
39
- var focusVisibleRef = useFocusVisibleRef();
48
+ var focusVisibleRef = useFocusVisibleRef([]);
49
+ React.useImperativeHandle(ref, function () {
50
+ return focusVisibleRef.current;
51
+ }, [focusVisibleRef]);
40
52
  size = (_size = size) !== null && _size !== void 0 ? _size : Size.Medium;
41
- return /*#__PURE__*/_jsxs(StyledSwitch, {
53
+ return /*#__PURE__*/_jsxs(StyledSwitch, _objectSpread(_objectSpread({
42
54
  ref: focusVisibleRef,
43
55
  onClick: function onClick(e) {
44
56
  return toggle();
45
57
  },
46
- onKeyUp: function onKeyUp(e) {
47
- return e.key === 'Enter' && toggle();
58
+ onKeyDown: function onKeyDown(e) {
59
+ return (e.key === 'Enter' || e.key === ' ') && toggle();
48
60
  },
49
- className: size.toString().toLowerCase().concat(disabled ? ' disabled' : ''),
61
+ className: size.toString().toLowerCase().concat(disabled ? ' disabled' : '').concat(className ? " ".concat(className) : ''),
50
62
  selected: selected,
51
- tabIndex: disabled ? -1 : 0,
63
+ tabIndex: disabled ? -1 : 0
64
+ }, rest), {}, {
52
65
  children: [/*#__PURE__*/_jsx(ToggleSwitchContainer, {
53
66
  id: "switchContainer",
54
67
  children: /*#__PURE__*/_jsx(Switch, {
@@ -59,8 +72,7 @@ var ToggleSwitch = function ToggleSwitch(_ref) {
59
72
  htmlFor: id,
60
73
  children: label
61
74
  })]
62
- });
63
- };
64
-
75
+ }));
76
+ });
65
77
  export default ToggleSwitch;
66
78
  //# sourceMappingURL=ToggleSwitch.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Toggles/ToggleSwitch.tsx"],"names":["React","ToggleSwitchContainer","ToggleSwitch","Switch","StyledSwitch","Size","useFocusVisibleRef","id","disabled","selected","label","isSemantic","size","onToggle","toggle","focusVisibleRef","Medium","e","key","toString","toLowerCase","concat"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA;AACA;AACA;;AAGA;AACA;AACA;AACA,SAASC,qBAAT,EAAgCC,YAAY,IAAIC,MAAhD,EAAwDC,YAAxD,QAA4E,iBAA5E;AACA,SAASC,IAAT,QAAqB,IAArB;AACA,SAASC,kBAAT,QAAmC,WAAnC;;;;AAEA,IAAMJ,YAAY,GAAG,SAAfA,YAAe,OAAsF;AAAA;;AAAA,MAAnFK,EAAmF,QAAnFA,EAAmF;AAAA,MAA/EC,QAA+E,QAA/EA,QAA+E;AAAA,MAArEC,QAAqE,QAArEA,QAAqE;AAAA,MAA3DC,KAA2D,QAA3DA,KAA2D;AAAA,MAApDC,UAAoD,QAApDA,UAAoD;AAAA,MAAxCC,IAAwC,QAAxCA,IAAwC;AAAA,MAAlCC,QAAkC,QAAlCA,QAAkC;;AACzG;AACF;AACA;AACE,MAAMC,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB;AACA,QAAIN,QAAJ,EAAc,OAFK,CAInB;;AACAK,IAAAA,QAAQ,CAAC,CAACJ,QAAF,CAAR;AACD,GAND;;AAOA,MAAMM,eAAe,GAAGT,kBAAkB,EAA1C;AAEAM,EAAAA,IAAI,YAAGA,IAAH,yCAAWP,IAAI,CAACW,MAApB;AAEA,sBACE,MAAC,YAAD;AACE,IAAA,GAAG,EAAED,eADP;AAEE,IAAA,OAAO,EAAE,iBAACE,CAAD;AAAA,aAAOH,MAAM,EAAb;AAAA,KAFX;AAGE,IAAA,OAAO,EAAE,iBAACG,CAAD;AAAA,aAAOA,CAAC,CAACC,GAAF,KAAU,OAAV,IAAqBJ,MAAM,EAAlC;AAAA,KAHX;AAIE,IAAA,SAAS,EAAEF,IAAI,CACZO,QADQ,GAERC,WAFQ,GAGRC,MAHQ,CAGDb,QAAQ,GAAG,WAAH,GAAiB,EAHxB,CAJb;AAQE,IAAA,QAAQ,EAAEC,QARZ;AASE,IAAA,QAAQ,EAAED,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAT5B;AAAA,4BAUE,KAAC,qBAAD;AAAuB,MAAA,EAAE,EAAC,iBAA1B;AAAA,6BACE,KAAC,MAAD;AAAQ,QAAA,SAAS,EAAEG,UAAU,GAAG,UAAH,GAAgB;AAA7C;AADF,MAVF,EAaGD,KAAK,iBACJ;AAAO,MAAA,SAAS,EAAE,OAAlB;AAA2B,MAAA,OAAO,EAAEH,EAApC;AAAA,gBACGG;AADH,MAdJ;AAAA,IADF;AAqBD,CApCD;;AAsCA,eAAeR,YAAf","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom types.\n */\nimport { ToggleSwitchProps } from './TogglerTypes';\n\n/**\n * Import custom styles.\n */\nimport { ToggleSwitchContainer, ToggleSwitch as Switch, StyledSwitch } from './TogglerStyles';\nimport { Size } from '..';\nimport { useFocusVisibleRef } from '../common';\n\nconst ToggleSwitch = ({ id, disabled, selected, label, isSemantic, size, onToggle }: ToggleSwitchProps) => {\n /**\n * Does all required pre-requisites and toggles the switcher state.\n */\n const toggle = () => {\n // If disabled, don't do anything\n if (disabled) return;\n\n // Toggle state change\n onToggle(!selected);\n };\n const focusVisibleRef = useFocusVisibleRef();\n\n size = size ?? Size.Medium;\n\n return (\n <StyledSwitch\n ref={focusVisibleRef}\n onClick={(e) => toggle()}\n onKeyUp={(e) => e.key === 'Enter' && toggle()}\n className={size\n .toString()\n .toLowerCase()\n .concat(disabled ? ' disabled' : '')}\n selected={selected}\n tabIndex={disabled ? -1 : 0}>\n <ToggleSwitchContainer id=\"switchContainer\">\n <Switch className={isSemantic ? 'semantic' : ''} />\n </ToggleSwitchContainer>\n {label && (\n <label className={'label'} htmlFor={id}>\n {label}\n </label>\n )}\n </StyledSwitch>\n );\n};\n\nexport default ToggleSwitch;\n"],"file":"ToggleSwitch.js"}
1
+ {"version":3,"sources":["../../src/Toggles/ToggleSwitch.tsx"],"names":["React","ToggleSwitchContainer","ToggleSwitch","Switch","StyledSwitch","Size","useFocusVisibleRef","forwardRef","ref","id","disabled","selected","label","isSemantic","size","onToggle","className","rest","toggle","focusVisibleRef","useImperativeHandle","current","Medium","e","key","toString","toLowerCase","concat"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA;AACA;AACA;;AAGA;AACA;AACA;AACA,SAAQC,qBAAR,EAA+BC,YAAY,IAAIC,MAA/C,EAAuDC,YAAvD,QAA0E,iBAA1E;AACA,SAAQC,IAAR,QAAmB,IAAnB;AACA,SAAQC,kBAAR,QAAiC,WAAjC;;;AAEA,IAAMJ,YAAY,gBAAGF,KAAK,CAACO,UAAN,CAAiB,gBAUuBC,GAVvB,EAU+B;AAAA;;AAAA,MAT5BC,EAS4B,QAT5BA,EAS4B;AAAA,MAR5BC,QAQ4B,QAR5BA,QAQ4B;AAAA,MAP5BC,QAO4B,QAP5BA,QAO4B;AAAA,MAN5BC,KAM4B,QAN5BA,KAM4B;AAAA,MAL5BC,UAK4B,QAL5BA,UAK4B;AAAA,MAJ5BC,IAI4B,QAJ5BA,IAI4B;AAAA,MAH5BC,QAG4B,QAH5BA,QAG4B;AAAA,MAF5BC,SAE4B,QAF5BA,SAE4B;AAAA,MADzBC,IACyB;;AACnE;AACF;AACA;AACE,MAAMC,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB;AACA,QAAIR,QAAJ,EAAc,OAFK,CAInB;;AACAK,IAAAA,QAAQ,CAAC,CAACJ,QAAF,CAAR;AACD,GAND;;AAQA,MAAMQ,eAAe,GAAGb,kBAAkB,CAAC,EAAD,CAA1C;AAEAN,EAAAA,KAAK,CAACoB,mBAAN,CAA0BZ,GAA1B,EAA+B;AAAA,WAAMW,eAAe,CAACE,OAAtB;AAAA,GAA/B,EAA8D,CAACF,eAAD,CAA9D;AAEAL,EAAAA,IAAI,YAAGA,IAAH,yCAAWT,IAAI,CAACiB,MAApB;AAEA,sBACE,MAAC,YAAD;AACE,IAAA,GAAG,EAAEH,eADP;AAEE,IAAA,OAAO,EAAE,iBAACI,CAAD;AAAA,aAAOL,MAAM,EAAb;AAAA,KAFX;AAGE,IAAA,SAAS,EAAE,mBAAAK,CAAC;AAAA,aAAI,CAACA,CAAC,CAACC,GAAF,KAAU,OAAV,IAAqBD,CAAC,CAACC,GAAF,KAAU,GAAhC,KAAwCN,MAAM,EAAlD;AAAA,KAHd;AAIE,IAAA,SAAS,EAAEJ,IAAI,CACZW,QADQ,GAERC,WAFQ,GAGRC,MAHQ,CAGDjB,QAAQ,GAAG,WAAH,GAAiB,EAHxB,EAIRiB,MAJQ,CAIDX,SAAS,cAAOA,SAAP,IAAqB,EAJ7B,CAJb;AASE,IAAA,QAAQ,EAAEL,QATZ;AAUE,IAAA,QAAQ,EAAED,QAAQ,GAAG,CAAC,CAAJ,GAAQ;AAV5B,KAWMO,IAXN;AAAA,4BAYE,KAAC,qBAAD;AAAuB,MAAA,EAAE,EAAC,iBAA1B;AAAA,6BACE,KAAC,MAAD;AAAQ,QAAA,SAAS,EAAEJ,UAAU,GAAG,UAAH,GAAgB;AAA7C;AADF,MAZF,EAeGD,KAAK,iBACJ;AAAO,MAAA,SAAS,EAAE,OAAlB;AAA2B,MAAA,OAAO,EAAEH,EAApC;AAAA,gBACGG;AADH,MAhBJ;AAAA,KADF;AAuBD,CAnDoB,CAArB;AAqDA,eAAeV,YAAf","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom types.\n */\nimport {ToggleSwitchProps} from './TogglerTypes';\n\n/**\n * Import custom styles.\n */\nimport {ToggleSwitchContainer, ToggleSwitch as Switch, StyledSwitch} from './TogglerStyles';\nimport {Size} from '..';\nimport {useFocusVisibleRef} from '../common';\n\nconst ToggleSwitch = React.forwardRef(({\n id,\n disabled,\n selected,\n label,\n isSemantic,\n size,\n onToggle,\n className,\n ...rest\n }: ToggleSwitchProps, ref) => {\n /**\n * Does all required pre-requisites and toggles the switcher state.\n */\n const toggle = () => {\n // If disabled, don't do anything\n if (disabled) return;\n\n // Toggle state change\n onToggle(!selected);\n };\n\n const focusVisibleRef = useFocusVisibleRef([]);\n\n React.useImperativeHandle(ref, () => focusVisibleRef.current, [focusVisibleRef]);\n\n size = size ?? Size.Medium;\n\n return (\n <StyledSwitch\n ref={focusVisibleRef}\n onClick={(e) => toggle()}\n onKeyDown={e => (e.key === 'Enter' || e.key === ' ') && toggle()}\n className={size\n .toString()\n .toLowerCase()\n .concat(disabled ? ' disabled' : '')\n .concat(className ? ` ${className}` : '')}\n selected={selected}\n tabIndex={disabled ? -1 : 0}\n {...rest}>\n <ToggleSwitchContainer id=\"switchContainer\">\n <Switch className={isSemantic ? 'semantic' : ''} />\n </ToggleSwitchContainer>\n {label && (\n <label className={'label'} htmlFor={id}>\n {label}\n </label>\n )}\n </StyledSwitch>\n );\n});\n\nexport default ToggleSwitch;\n"],"file":"ToggleSwitch.js"}
@@ -2,7 +2,7 @@ import { Size } from '..';
2
2
  /**
3
3
  * Types for the table.
4
4
  */
5
- export interface ToggleSwitchProps {
5
+ export interface ToggleSwitchProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onKeyDown' | 'onClick' | 'tabIndex'> {
6
6
  id: string;
7
7
  label?: string;
8
8
  disabled?: boolean;
@@ -1 +1 @@
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
+ {"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?: React.MutableRefObject<any> | null) => {\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,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare const useFocusVisibleRef: (focusWithinList?: React.MutableRefObject<any>[], ref?: any) => any;
2
+ export declare const useFocusVisibleRef: (focusWithinList?: React.MutableRefObject<any>[], ref?: React.MutableRefObject<any> | null | undefined) => React.MutableRefObject<any>;
@@ -1 +1 @@
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"}
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?: React.MutableRefObject<any> | null) => {\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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laerdal/life-react-components",
3
- "version": "1.10.3-dev.2",
3
+ "version": "1.10.3-dev.4",
4
4
  "private": false,
5
5
  "author": "Thomas Kalve <thomas.kalve@laerdal.com>",
6
6
  "contributors": [