@laerdal/life-react-components 1.2.2-dev.7 → 1.3.0

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 (270) hide show
  1. package/dist/esm/Accordion/AccordionItem.js +70 -0
  2. package/dist/esm/Accordion/AccordionItem.js.map +1 -0
  3. package/dist/esm/Accordion/AccordionMenu.js +61 -0
  4. package/dist/esm/Accordion/AccordionMenu.js.map +1 -0
  5. package/dist/esm/Accordion/__tests__/AccordionMenu.test.js +53 -0
  6. package/dist/esm/Accordion/__tests__/AccordionMenu.test.js.map +1 -0
  7. package/dist/esm/Accordion/index.js +4 -0
  8. package/dist/esm/Accordion/index.js.map +1 -0
  9. package/dist/esm/Accordion/styles.js +75 -0
  10. package/dist/esm/Accordion/styles.js.map +1 -0
  11. package/dist/esm/Breadcrumb/Breadcrumb.js.map +1 -1
  12. package/dist/esm/Button/Iconbutton.js +5 -2
  13. package/dist/esm/Button/Iconbutton.js.map +1 -1
  14. package/dist/esm/Dropdown/BasicDropdown.js +17 -9
  15. package/dist/esm/Dropdown/BasicDropdown.js.map +1 -1
  16. package/dist/esm/Dropdown/CommonStyling.js +71 -71
  17. package/dist/esm/Dropdown/CommonStyling.js.map +1 -1
  18. package/dist/esm/Dropdown/DropdownContent.js +13 -1
  19. package/dist/esm/Dropdown/DropdownContent.js.map +1 -1
  20. package/dist/esm/GlobalNavigationBar/Avatar.js +2 -2
  21. package/dist/esm/GlobalNavigationBar/Avatar.js.map +1 -1
  22. package/dist/esm/GlobalNavigationBar/ExtendedMainMenu.js +2 -1
  23. package/dist/esm/GlobalNavigationBar/ExtendedMainMenu.js.map +1 -1
  24. package/dist/esm/GlobalNavigationBar/GlobalNavigationBar.js +6 -2
  25. package/dist/esm/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  26. package/dist/esm/GlobalNavigationBar/Logo.js +10 -10
  27. package/dist/esm/GlobalNavigationBar/Logo.js.map +1 -1
  28. package/dist/esm/GlobalNavigationBar/UserMenu/MobileUserMenu.js +2 -1
  29. package/dist/esm/GlobalNavigationBar/UserMenu/MobileUserMenu.js.map +1 -1
  30. package/dist/esm/GlobalNavigationBar/UserMenu/UserMenu.js +2 -1
  31. package/dist/esm/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
  32. package/dist/esm/GlobalNavigationBar/mobile/CommonStyles.js +8 -1
  33. package/dist/esm/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  34. package/dist/esm/HyperLink/HyperLink.js +20 -17
  35. package/dist/esm/HyperLink/HyperLink.js.map +1 -1
  36. package/dist/esm/InputFields/Checkbox.js +27 -16
  37. package/dist/esm/InputFields/Checkbox.js.map +1 -1
  38. package/dist/esm/InputFields/DatepickerField.js +6 -0
  39. package/dist/esm/InputFields/DatepickerField.js.map +1 -1
  40. package/dist/esm/InputFields/PasswordField.js +1 -1
  41. package/dist/esm/InputFields/PasswordField.js.map +1 -1
  42. package/dist/esm/InputFields/RadioButton.js +21 -14
  43. package/dist/esm/InputFields/RadioButton.js.map +1 -1
  44. package/dist/esm/InputFields/SearchBar.js +13 -13
  45. package/dist/esm/InputFields/SearchBar.js.map +1 -1
  46. package/dist/esm/List/ListRow.js +4 -1
  47. package/dist/esm/List/ListRow.js.map +1 -1
  48. package/dist/esm/Modals/ModalContainer.js +8 -1
  49. package/dist/esm/Modals/ModalContainer.js.map +1 -1
  50. package/dist/esm/Modals/ModalDialog.js +76 -26
  51. package/dist/esm/Modals/ModalDialog.js.map +1 -1
  52. package/dist/esm/Modals/ModalStyles.js +38 -21
  53. package/dist/esm/Modals/ModalStyles.js.map +1 -1
  54. package/dist/esm/Modals/ModalTypes.js +2 -0
  55. package/dist/esm/Modals/ModalTypes.js.map +1 -0
  56. package/dist/esm/NavItem/NavItem.js +4 -0
  57. package/dist/esm/NavItem/NavItem.js.map +1 -1
  58. package/dist/esm/Paginator/Paginator.js +60 -48
  59. package/dist/esm/Paginator/Paginator.js.map +1 -1
  60. package/dist/esm/Paginator/__tests__/Paginator.test.js +4 -4
  61. package/dist/esm/Paginator/__tests__/Paginator.test.js.map +1 -1
  62. package/dist/esm/Switcher/MobileSwitcherMenu.js +2 -1
  63. package/dist/esm/Switcher/MobileSwitcherMenu.js.map +1 -1
  64. package/dist/esm/Switcher/SwitcherMenuItem.js +5 -0
  65. package/dist/esm/Switcher/SwitcherMenuItem.js.map +1 -1
  66. package/dist/esm/Tabs/HorizontalTabs.js +10 -4
  67. package/dist/esm/Tabs/HorizontalTabs.js.map +1 -1
  68. package/dist/esm/Tabs/TabLink.js +15 -4
  69. package/dist/esm/Tabs/TabLink.js.map +1 -1
  70. package/dist/esm/Toasters/ToastContext.js +2 -1
  71. package/dist/esm/Toasters/ToastContext.js.map +1 -1
  72. package/dist/esm/Tooltips/TooltipStyles.js +6 -5
  73. package/dist/esm/Tooltips/TooltipStyles.js.map +1 -1
  74. package/dist/esm/Tooltips/TooltipTypes.js.map +1 -1
  75. package/dist/esm/Tooltips/TooltipWrapper.js +4 -1
  76. package/dist/esm/Tooltips/TooltipWrapper.js.map +1 -1
  77. package/dist/esm/icons/index.js +1 -1
  78. package/dist/esm/icons/index.js.map +1 -1
  79. package/dist/esm/index.js +1 -0
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/esm/styles/typography.js +25 -6
  82. package/dist/esm/styles/typography.js.map +1 -1
  83. package/dist/esm/styles/z-indexes.js +14 -0
  84. package/dist/esm/styles/z-indexes.js.map +1 -0
  85. package/dist/js/Accordion/AccordionItem.d.ts +9 -0
  86. package/dist/js/Accordion/AccordionItem.js +101 -0
  87. package/dist/js/Accordion/AccordionItem.js.map +1 -0
  88. package/dist/js/Accordion/AccordionMenu.d.ts +17 -0
  89. package/dist/js/Accordion/AccordionMenu.js +111 -0
  90. package/dist/js/Accordion/AccordionMenu.js.map +1 -0
  91. package/dist/js/Accordion/__tests__/AccordionMenu.test.js +101 -0
  92. package/dist/js/Accordion/__tests__/AccordionMenu.test.js.map +1 -0
  93. package/dist/js/Accordion/index.d.ts +3 -0
  94. package/dist/js/Accordion/index.js +30 -0
  95. package/dist/js/Accordion/index.js.map +1 -0
  96. package/dist/js/Accordion/styles.d.ts +11 -0
  97. package/dist/js/Accordion/styles.js +52 -0
  98. package/dist/js/Accordion/styles.js.map +1 -0
  99. package/dist/js/Breadcrumb/Breadcrumb.js.map +1 -1
  100. package/dist/js/Button/Iconbutton.d.ts +1 -1
  101. package/dist/js/Button/Iconbutton.js +16 -9
  102. package/dist/js/Button/Iconbutton.js.map +1 -1
  103. package/dist/js/Dropdown/BasicDropdown.d.ts +4 -1
  104. package/dist/js/Dropdown/BasicDropdown.js +17 -9
  105. package/dist/js/Dropdown/BasicDropdown.js.map +1 -1
  106. package/dist/js/Dropdown/CommonStyling.d.ts +2 -0
  107. package/dist/js/Dropdown/CommonStyling.js +8 -4
  108. package/dist/js/Dropdown/CommonStyling.js.map +1 -1
  109. package/dist/js/Dropdown/DropdownContent.js +5 -3
  110. package/dist/js/Dropdown/DropdownContent.js.map +1 -1
  111. package/dist/js/GlobalNavigationBar/Avatar.js +2 -2
  112. package/dist/js/GlobalNavigationBar/Avatar.js.map +1 -1
  113. package/dist/js/GlobalNavigationBar/ExtendedMainMenu.js +3 -1
  114. package/dist/js/GlobalNavigationBar/ExtendedMainMenu.js.map +1 -1
  115. package/dist/js/GlobalNavigationBar/GlobalNavigationBar.js +5 -3
  116. package/dist/js/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  117. package/dist/js/GlobalNavigationBar/Logo.js +9 -9
  118. package/dist/js/GlobalNavigationBar/Logo.js.map +1 -1
  119. package/dist/js/GlobalNavigationBar/UserMenu/MobileUserMenu.js +3 -1
  120. package/dist/js/GlobalNavigationBar/UserMenu/MobileUserMenu.js.map +1 -1
  121. package/dist/js/GlobalNavigationBar/UserMenu/UserMenu.js +3 -1
  122. package/dist/js/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
  123. package/dist/js/GlobalNavigationBar/mobile/CommonStyles.js +4 -2
  124. package/dist/js/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  125. package/dist/js/HyperLink/HyperLink.d.ts +2 -2
  126. package/dist/js/HyperLink/HyperLink.js +19 -15
  127. package/dist/js/HyperLink/HyperLink.js.map +1 -1
  128. package/dist/js/InputFields/Checkbox.js +9 -5
  129. package/dist/js/InputFields/Checkbox.js.map +1 -1
  130. package/dist/js/InputFields/DatepickerField.js +3 -1
  131. package/dist/js/InputFields/DatepickerField.js.map +1 -1
  132. package/dist/js/InputFields/PasswordField.js +1 -1
  133. package/dist/js/InputFields/PasswordField.js.map +1 -1
  134. package/dist/js/InputFields/RadioButton.js +3 -3
  135. package/dist/js/InputFields/RadioButton.js.map +1 -1
  136. package/dist/js/InputFields/SearchBar.js +15 -15
  137. package/dist/js/InputFields/SearchBar.js.map +1 -1
  138. package/dist/js/List/ListRow.js +3 -1
  139. package/dist/js/List/ListRow.js.map +1 -1
  140. package/dist/js/Modals/ModalContainer.js +3 -1
  141. package/dist/js/Modals/ModalContainer.js.map +1 -1
  142. package/dist/js/Modals/ModalDialog.d.ts +2 -6
  143. package/dist/js/Modals/ModalDialog.js +77 -46
  144. package/dist/js/Modals/ModalDialog.js.map +1 -1
  145. package/dist/js/Modals/ModalStyles.d.ts +6 -0
  146. package/dist/js/Modals/ModalStyles.js +34 -14
  147. package/dist/js/Modals/ModalStyles.js.map +1 -1
  148. package/dist/js/Modals/ModalTypes.d.ts +18 -0
  149. package/dist/js/Modals/ModalTypes.js +6 -0
  150. package/dist/js/Modals/ModalTypes.js.map +1 -0
  151. package/dist/js/NavItem/NavItem.js +3 -1
  152. package/dist/js/NavItem/NavItem.js.map +1 -1
  153. package/dist/js/Paginator/Paginator.js +39 -38
  154. package/dist/js/Paginator/Paginator.js.map +1 -1
  155. package/dist/js/Paginator/__tests__/Paginator.test.js +6 -6
  156. package/dist/js/Paginator/__tests__/Paginator.test.js.map +1 -1
  157. package/dist/js/Switcher/MobileSwitcherMenu.js +3 -1
  158. package/dist/js/Switcher/MobileSwitcherMenu.js.map +1 -1
  159. package/dist/js/Switcher/SwitcherMenuItem.js +3 -1
  160. package/dist/js/Switcher/SwitcherMenuItem.js.map +1 -1
  161. package/dist/js/Tabs/HorizontalTabs.js +4 -2
  162. package/dist/js/Tabs/HorizontalTabs.js.map +1 -1
  163. package/dist/js/Tabs/TabLink.js +4 -2
  164. package/dist/js/Tabs/TabLink.js.map +1 -1
  165. package/dist/js/Toasters/ToastContext.js +3 -1
  166. package/dist/js/Toasters/ToastContext.js.map +1 -1
  167. package/dist/js/Tooltips/TooltipStyles.d.ts +4 -2
  168. package/dist/js/Tooltips/TooltipStyles.js +12 -4
  169. package/dist/js/Tooltips/TooltipStyles.js.map +1 -1
  170. package/dist/js/Tooltips/TooltipTypes.d.ts +1 -0
  171. package/dist/js/Tooltips/TooltipTypes.js.map +1 -1
  172. package/dist/js/Tooltips/TooltipWrapper.d.ts +1 -1
  173. package/dist/js/Tooltips/TooltipWrapper.js +5 -1
  174. package/dist/js/Tooltips/TooltipWrapper.js.map +1 -1
  175. package/dist/js/icons/index.js +1 -1
  176. package/dist/js/icons/index.js.map +1 -1
  177. package/dist/js/index.d.ts +1 -0
  178. package/dist/js/index.js +13 -0
  179. package/dist/js/index.js.map +1 -1
  180. package/dist/js/styles/typography.d.ts +1 -0
  181. package/dist/js/styles/typography.js +25 -6
  182. package/dist/js/styles/typography.js.map +1 -1
  183. package/dist/js/styles/z-indexes.d.ts +13 -0
  184. package/dist/js/styles/z-indexes.js +21 -0
  185. package/dist/js/styles/z-indexes.js.map +1 -0
  186. package/dist/umd/Accordion/AccordionItem.js +98 -0
  187. package/dist/umd/Accordion/AccordionItem.js.map +1 -0
  188. package/dist/umd/Accordion/AccordionMenu.js +138 -0
  189. package/dist/umd/Accordion/AccordionMenu.js.map +1 -0
  190. package/dist/umd/Accordion/__tests__/AccordionMenu.test.js +74 -0
  191. package/dist/umd/Accordion/__tests__/AccordionMenu.test.js.map +1 -0
  192. package/dist/umd/Accordion/index.js +44 -0
  193. package/dist/umd/Accordion/index.js.map +1 -0
  194. package/dist/umd/Accordion/styles.js +101 -0
  195. package/dist/umd/Accordion/styles.js.map +1 -0
  196. package/dist/umd/Breadcrumb/Breadcrumb.js.map +1 -1
  197. package/dist/umd/Button/Iconbutton.js +16 -59
  198. package/dist/umd/Button/Iconbutton.js.map +1 -1
  199. package/dist/umd/Dropdown/BasicDropdown.js +17 -9
  200. package/dist/umd/Dropdown/BasicDropdown.js.map +1 -1
  201. package/dist/umd/Dropdown/CommonStyling.js +74 -75
  202. package/dist/umd/Dropdown/CommonStyling.js.map +1 -1
  203. package/dist/umd/Dropdown/DropdownContent.js +16 -5
  204. package/dist/umd/Dropdown/DropdownContent.js.map +1 -1
  205. package/dist/umd/GlobalNavigationBar/Avatar.js +2 -2
  206. package/dist/umd/GlobalNavigationBar/Avatar.js.map +1 -1
  207. package/dist/umd/GlobalNavigationBar/ExtendedMainMenu.js +5 -5
  208. package/dist/umd/GlobalNavigationBar/ExtendedMainMenu.js.map +1 -1
  209. package/dist/umd/GlobalNavigationBar/GlobalNavigationBar.js +9 -6
  210. package/dist/umd/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  211. package/dist/umd/GlobalNavigationBar/Logo.js +10 -10
  212. package/dist/umd/GlobalNavigationBar/Logo.js.map +1 -1
  213. package/dist/umd/GlobalNavigationBar/UserMenu/MobileUserMenu.js +5 -5
  214. package/dist/umd/GlobalNavigationBar/UserMenu/MobileUserMenu.js.map +1 -1
  215. package/dist/umd/GlobalNavigationBar/UserMenu/UserMenu.js +5 -5
  216. package/dist/umd/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
  217. package/dist/umd/GlobalNavigationBar/mobile/CommonStyles.js +11 -5
  218. package/dist/umd/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  219. package/dist/umd/HyperLink/HyperLink.js +68 -17
  220. package/dist/umd/HyperLink/HyperLink.js.map +1 -1
  221. package/dist/umd/InputFields/Checkbox.js +27 -16
  222. package/dist/umd/InputFields/Checkbox.js.map +1 -1
  223. package/dist/umd/InputFields/DatepickerField.js +9 -4
  224. package/dist/umd/InputFields/DatepickerField.js.map +1 -1
  225. package/dist/umd/InputFields/PasswordField.js +1 -1
  226. package/dist/umd/InputFields/PasswordField.js.map +1 -1
  227. package/dist/umd/InputFields/RadioButton.js +21 -14
  228. package/dist/umd/InputFields/RadioButton.js.map +1 -1
  229. package/dist/umd/InputFields/SearchBar.js +13 -13
  230. package/dist/umd/InputFields/SearchBar.js.map +1 -1
  231. package/dist/umd/List/ListRow.js +7 -5
  232. package/dist/umd/List/ListRow.js.map +1 -1
  233. package/dist/umd/Modals/ModalContainer.js +11 -5
  234. package/dist/umd/Modals/ModalContainer.js.map +1 -1
  235. package/dist/umd/Modals/ModalDialog.js +77 -29
  236. package/dist/umd/Modals/ModalDialog.js.map +1 -1
  237. package/dist/umd/Modals/ModalStyles.js +39 -22
  238. package/dist/umd/Modals/ModalStyles.js.map +1 -1
  239. package/dist/umd/Modals/ModalTypes.js +20 -0
  240. package/dist/umd/Modals/ModalTypes.js.map +1 -0
  241. package/dist/umd/NavItem/NavItem.js +7 -4
  242. package/dist/umd/NavItem/NavItem.js.map +1 -1
  243. package/dist/umd/Paginator/Paginator.js +60 -51
  244. package/dist/umd/Paginator/Paginator.js.map +1 -1
  245. package/dist/umd/Paginator/__tests__/Paginator.test.js +4 -4
  246. package/dist/umd/Paginator/__tests__/Paginator.test.js.map +1 -1
  247. package/dist/umd/Switcher/MobileSwitcherMenu.js +5 -5
  248. package/dist/umd/Switcher/MobileSwitcherMenu.js.map +1 -1
  249. package/dist/umd/Switcher/SwitcherMenuItem.js +8 -4
  250. package/dist/umd/Switcher/SwitcherMenuItem.js.map +1 -1
  251. package/dist/umd/Tabs/HorizontalTabs.js +12 -7
  252. package/dist/umd/Tabs/HorizontalTabs.js.map +1 -1
  253. package/dist/umd/Tabs/TabLink.js +18 -8
  254. package/dist/umd/Tabs/TabLink.js.map +1 -1
  255. package/dist/umd/Toasters/ToastContext.js +5 -5
  256. package/dist/umd/Toasters/ToastContext.js.map +1 -1
  257. package/dist/umd/Tooltips/TooltipStyles.js +11 -9
  258. package/dist/umd/Tooltips/TooltipStyles.js.map +1 -1
  259. package/dist/umd/Tooltips/TooltipTypes.js.map +1 -1
  260. package/dist/umd/Tooltips/TooltipWrapper.js +4 -1
  261. package/dist/umd/Tooltips/TooltipWrapper.js.map +1 -1
  262. package/dist/umd/icons/index.js +1 -1
  263. package/dist/umd/icons/index.js.map +1 -1
  264. package/dist/umd/index.js +13 -4
  265. package/dist/umd/index.js.map +1 -1
  266. package/dist/umd/styles/typography.js +25 -6
  267. package/dist/umd/styles/typography.js.map +1 -1
  268. package/dist/umd/styles/z-indexes.js +33 -0
  269. package/dist/umd/styles/z-indexes.js.map +1 -0
  270. package/package.json +10 -19
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Z_INDEXES = void 0;
7
+ var Z_INDEXES = {
8
+ hover: '1',
9
+ active: '2',
10
+ focus: '3',
11
+ dropdown: '1000',
12
+ sticky_menu: '1020',
13
+ fixed_menu: '1030',
14
+ backdrop: '1040',
15
+ off_canvas: '1050',
16
+ modal: '1060',
17
+ toast: '1070',
18
+ tooltip: '1080'
19
+ };
20
+ exports.Z_INDEXES = Z_INDEXES;
21
+ //# sourceMappingURL=z-indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/styles/z-indexes.ts"],"names":["Z_INDEXES","hover","active","focus","dropdown","sticky_menu","fixed_menu","backdrop","off_canvas","modal","toast","tooltip"],"mappings":";;;;;;AAAO,IAAMA,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,GADgB;AAEvBC,EAAAA,MAAM,EAAE,GAFe;AAGvBC,EAAAA,KAAK,EAAE,GAHgB;AAMvBC,EAAAA,QAAQ,EAAE,MANa;AAOvBC,EAAAA,WAAW,EAAE,MAPU;AAQvBC,EAAAA,UAAU,EAAE,MARW;AASvBC,EAAAA,QAAQ,EAAE,MATa;AAUvBC,EAAAA,UAAU,EAAE,MAVW;AAWvBC,EAAAA,KAAK,EAAE,MAXgB;AAYvBC,EAAAA,KAAK,EAAE,MAZgB;AAavBC,EAAAA,OAAO,EAAE;AAbc,CAAlB","sourcesContent":["export const Z_INDEXES = {\n hover: '1',\n active: '2',\n focus: '3',\n\n\n dropdown: '1000',\n sticky_menu: '1020',\n fixed_menu: '1030',\n backdrop: '1040',\n off_canvas: '1050',\n modal: '1060',\n toast: '1070',\n tooltip: '1080',\n}\n"],"file":"z-indexes.js"}
@@ -0,0 +1,98 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "prop-types", "react", "..", "../icons", "./styles"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("prop-types"), require("react"), require(".."), require("../icons"), require("./styles"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global.propTypes, global.react, global._, global.icons, global.styles);
11
+ global.undefined = mod.exports;
12
+ }
13
+ })(this, function (exports, _propTypes, _react, _, _icons, _styles) {
14
+ "use strict";
15
+
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+
20
+ var _propTypes2 = _interopRequireDefault(_propTypes);
21
+
22
+ var _react2 = _interopRequireDefault(_react);
23
+
24
+ function _interopRequireDefault(obj) {
25
+ return obj && obj.__esModule ? obj : {
26
+ default: obj
27
+ };
28
+ }
29
+
30
+ const AccordionItem = props => {
31
+ const {
32
+ id,
33
+ onSelect,
34
+ isActive,
35
+ title,
36
+ icon,
37
+ disabled,
38
+ isLast
39
+ } = props;
40
+
41
+ const supressFocusRef = _react2.default.useRef(null);
42
+
43
+ const [tabbedHere, setTabbedHere] = _react2.default.useState(false);
44
+
45
+ _react2.default.useEffect(() => {
46
+ !!disabled && setTabbedHere(false);
47
+ }, [disabled]);
48
+
49
+ return /*#__PURE__*/_react2.default.createElement(_styles.AccordionItemContainer, {
50
+ id: id,
51
+ displaySeparator: !isActive && !isLast
52
+ }, /*#__PURE__*/_react2.default.createElement(_styles.ItemHeaderContainer, {
53
+ tabIndex: !disabled ? 0 : -1,
54
+ onClick: () => {
55
+ if (!disabled) {
56
+ onSelect(id);
57
+ }
58
+ },
59
+ onKeyDown: e => {
60
+ if (e.key == 'Enter') onSelect(id);
61
+ },
62
+ onBlur: () => {
63
+ setTabbedHere(false);
64
+ supressFocusRef.current = false;
65
+ },
66
+ onFocus: () => {
67
+ if (!disabled) {
68
+ if (!supressFocusRef.current) setTabbedHere(true);else supressFocusRef.current = false;
69
+ }
70
+ },
71
+ onMouseDown: () => {
72
+ if (!disabled && !tabbedHere) supressFocusRef.current = true;
73
+ },
74
+ tabbedHere: tabbedHere,
75
+ isActive: isActive,
76
+ isDisabled: disabled ?? false
77
+ }, icon && /*#__PURE__*/_react2.default.cloneElement(icon, {
78
+ size: '24px'
79
+ }), /*#__PURE__*/_react2.default.createElement(_.ComponentM, {
80
+ className: "headerLabel",
81
+ color: isActive ? _.COLORS.neutral_800 : disabled ? _.COLORS.neutral_300 : _.COLORS.neutral_600
82
+ }, title), isActive ? /*#__PURE__*/_react2.default.createElement(_icons.SystemIcons.ChevronUp, {
83
+ color: _.COLORS.neutral_800,
84
+ size: "20px"
85
+ }) : /*#__PURE__*/_react2.default.createElement(_icons.SystemIcons.ChevronDown, {
86
+ color: _.COLORS.neutral_600,
87
+ size: "20px"
88
+ })), isActive && /*#__PURE__*/_react2.default.createElement(_styles.ItemBodyContainer, null, /*#__PURE__*/_react2.default.createElement(_.ComponentS, null, props.children)));
89
+ };
90
+
91
+ AccordionItem.propTypes = {
92
+ onSelect: _propTypes2.default.func.isRequired,
93
+ isActive: _propTypes2.default.bool.isRequired,
94
+ isLast: _propTypes2.default.bool.isRequired
95
+ };
96
+ exports.default = AccordionItem;
97
+ });
98
+ //# sourceMappingURL=AccordionItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Accordion/AccordionItem.tsx"],"names":["onSelect","isActive","isLast","AccordionItem","props","supressFocusRef","React","setTabbedHere","e","disabled","icon","size","COLORS","neutral_600"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { COLORS, ComponentM, ComponentS } from '..';\nimport { SystemIcons } from '../icons';\nimport { AccordionItemProps } from './AccordionMenu';\nimport { AccordionItemContainer, HeaderIconContainer, ItemBodyContainer, ItemHeaderContainer } from './styles';\n\ninterface AccordionItemPropsInner extends AccordionItemProps {\n onSelect: (id: string) => void;\n isActive: boolean;\n isLast: boolean;\n}\n\nconst AccordionItem: React.FunctionComponent<AccordionItemPropsInner> = (props: AccordionItemPropsInner) => {\n const { id, onSelect, isActive, title, icon, disabled, isLast } = props;\n\n const supressFocusRef = React.useRef<any>(null);\n const [tabbedHere, setTabbedHere] = React.useState<boolean>(false);\n\n React.useEffect(() => {\n !!disabled && setTabbedHere(false);\n }, [disabled]);\n\n return (\n <AccordionItemContainer id={id} displaySeparator={!isActive && !isLast}>\n <ItemHeaderContainer\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (!disabled) {\n onSelect(id);\n }\n }}\n onKeyDown={(e: any) => {\n if(e.key == 'Enter')\n onSelect(id);\n }}\n onBlur={() => {\n setTabbedHere(false);\n supressFocusRef.current = false;\n }}\n onFocus={() => {\n if(!disabled) {\n if (!supressFocusRef.current) setTabbedHere(true);\n else supressFocusRef.current = false;\n }\n }}\n onMouseDown={() => {\n if (!disabled && !tabbedHere) supressFocusRef.current = true;\n }}\n tabbedHere={tabbedHere}\n isActive={isActive}\n isDisabled={disabled ?? false}>\n {icon && React.cloneElement(icon as React.ReactElement, { size: '24px' })}\n <ComponentM className=\"headerLabel\" color={isActive ? COLORS.neutral_800 : disabled ? COLORS.neutral_300 : COLORS.neutral_600}>{title}</ComponentM>\n {isActive ? <SystemIcons.ChevronUp color={COLORS.neutral_800} size=\"20px\" /> : <SystemIcons.ChevronDown color={COLORS.neutral_600} size=\"20px\" />}\n </ItemHeaderContainer>\n {isActive && (\n <ItemBodyContainer>\n <ComponentS>{props.children}</ComponentS>\n </ItemBodyContainer>\n )}\n </AccordionItemContainer>\n );\n};\n\nexport default AccordionItem;\n"],"file":"AccordionItem.js"}
@@ -0,0 +1,138 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "prop-types", "react", "./AccordionItem", "./styles"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("prop-types"), require("react"), require("./AccordionItem"), require("./styles"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global.propTypes, global.react, global.AccordionItem, global.styles);
11
+ global.undefined = mod.exports;
12
+ }
13
+ })(this, function (exports, _propTypes, _react, _AccordionItem, _styles) {
14
+ "use strict";
15
+
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+
20
+ var _propTypes2 = _interopRequireDefault(_propTypes);
21
+
22
+ var React = _interopRequireWildcard(_react);
23
+
24
+ var _AccordionItem2 = _interopRequireDefault(_AccordionItem);
25
+
26
+ function _getRequireWildcardCache(nodeInterop) {
27
+ if (typeof WeakMap !== "function") return null;
28
+ var cacheBabelInterop = new WeakMap();
29
+ var cacheNodeInterop = new WeakMap();
30
+ return (_getRequireWildcardCache = function (nodeInterop) {
31
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
32
+ })(nodeInterop);
33
+ }
34
+
35
+ function _interopRequireWildcard(obj, nodeInterop) {
36
+ if (!nodeInterop && obj && obj.__esModule) {
37
+ return obj;
38
+ }
39
+
40
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
41
+ return {
42
+ default: obj
43
+ };
44
+ }
45
+
46
+ var cache = _getRequireWildcardCache(nodeInterop);
47
+
48
+ if (cache && cache.has(obj)) {
49
+ return cache.get(obj);
50
+ }
51
+
52
+ var newObj = {};
53
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
54
+
55
+ for (var key in obj) {
56
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
57
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
58
+
59
+ if (desc && (desc.get || desc.set)) {
60
+ Object.defineProperty(newObj, key, desc);
61
+ } else {
62
+ newObj[key] = obj[key];
63
+ }
64
+ }
65
+ }
66
+
67
+ newObj.default = obj;
68
+
69
+ if (cache) {
70
+ cache.set(obj, newObj);
71
+ }
72
+
73
+ return newObj;
74
+ }
75
+
76
+ function _interopRequireDefault(obj) {
77
+ return obj && obj.__esModule ? obj : {
78
+ default: obj
79
+ };
80
+ }
81
+
82
+ const AccordionMenu = ({
83
+ items,
84
+ selectedItems,
85
+ setSelectedItems,
86
+ onSelect,
87
+ multipleActive
88
+ }) => {
89
+ const [builtinSelectedItems, builtinSetSelectedItems] = React.useState([]);
90
+
91
+ const getCollection = () => {
92
+ return selectedItems ? selectedItems : builtinSelectedItems;
93
+ };
94
+
95
+ const getUpdateFunction = () => {
96
+ return setSelectedItems ? setSelectedItems : builtinSetSelectedItems;
97
+ };
98
+
99
+ const onSelected = id => {
100
+ const collection = getCollection();
101
+ const updateFunc = getUpdateFunction();
102
+ const isActive = !!collection.find(x => x == id);
103
+
104
+ if (multipleActive) {
105
+ if (isActive) updateFunc(collection.filter(x => x != id));else updateFunc([...collection, id]);
106
+ } else updateFunc(isActive ? [] : [id]);
107
+
108
+ onSelect && onSelect(id);
109
+ };
110
+
111
+ return /*#__PURE__*/React.createElement(_styles.AccordionMenuWrapper, null, items.map(item => /*#__PURE__*/React.createElement(_AccordionItem2.default, {
112
+ key: item.id,
113
+ disabled: item.disabled,
114
+ id: item.id,
115
+ title: item.title,
116
+ icon: item.icon,
117
+ isActive: !!getCollection().find(x => x == item.id),
118
+ isLast: items.indexOf(item) === items.length - 1,
119
+ onSelect: onSelected
120
+ }, item.children)));
121
+ };
122
+
123
+ AccordionMenu.propTypes = {
124
+ items: _propTypes2.default.arrayOf(_propTypes2.default.shape({
125
+ id: _propTypes2.default.string.isRequired,
126
+ disabled: _propTypes2.default.bool,
127
+ title: _propTypes2.default.string.isRequired,
128
+ icon: _propTypes2.default.node,
129
+ children: _propTypes2.default.node.isRequired
130
+ })).isRequired,
131
+ selectedItems: _propTypes2.default.arrayOf(_propTypes2.default.string),
132
+ setSelectedItems: _propTypes2.default.func,
133
+ onSelect: _propTypes2.default.func,
134
+ multipleActive: _propTypes2.default.bool
135
+ };
136
+ exports.default = AccordionMenu;
137
+ });
138
+ //# sourceMappingURL=AccordionMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Accordion/AccordionMenu.tsx"],"names":["items","selectedItems","setSelectedItems","onSelect","multipleActive","id","disabled","title","icon","children","AccordionMenu","React","getCollection","getUpdateFunction","onSelected","collection","updateFunc","isActive","x","item"],"mappings":";;;;;;;;;;;;;;;;;;;;;MAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,QAAMU,aAAsD,GAAG,CAAC;AAAA,IAAA,KAAA;AAAA,IAAA,aAAA;AAAA,IAAA,gBAAA;AAAA,IAAA,QAAA;AAAoDN,IAAAA;AAApD,GAAD,KAA0F;AAEvJ,UAAM,CAAA,oBAAA,EAAA,uBAAA,IAAkDO,KAAK,CAALA,QAAAA,CAAxD,EAAwDA,CAAxD;;AAEA,UAAMC,aAAa,GAAG,MAAM;AAC1B,aAAOX,aAAa,GAAA,aAAA,GAApB,oBAAA;AADF,KAAA;;AAIA,UAAMY,iBAAiB,GAAG,MAAM;AAC9B,aAAOX,gBAAgB,GAAA,gBAAA,GAAvB,uBAAA;AADF,KAAA;;AAIA,UAAMY,UAAU,GAAIT,EAAD,IAAgB;AACjC,YAAMU,UAAU,GAAGH,aAAnB,EAAA;AACA,YAAMI,UAAU,GAAGH,iBAAnB,EAAA;AAEA,YAAMI,QAAQ,GAAG,CAAC,CAACF,UAAU,CAAVA,IAAAA,CAAgBG,CAAC,IAAIA,CAAC,IAAzC,EAAmBH,CAAnB;;AACA,UAAA,cAAA,EAAmB;AACjB,YAAA,QAAA,EACEC,UAAU,CAACD,UAAU,CAAVA,MAAAA,CAAkBG,CAAC,IAAIA,CAAC,IADrC,EACaH,CAAD,CAAVC,CADF,KAIEA,UAAU,CAAC,CAAC,GAAD,UAAA,EAAXA,EAAW,CAAD,CAAVA;AALJ,OAAA,MAQEA,UAAU,CAACC,QAAQ,GAAA,EAAA,GAAQ,CAA3BD,EAA2B,CAAjB,CAAVA;;AAEFb,MAAAA,QAAQ,IAAIA,QAAQ,CAApBA,EAAoB,CAApBA;AAfF,KAAA;;AAkBA,WAAA,aACE,KAAA,CAAA,aAAA,CAAA,4BAAA,EAAA,IAAA,EACG,KAAK,CAAL,GAAA,CAAWgB,IAAD,IAAA,aACT,KAAA,CAAA,aAAA,CAAA,uBAAA,EAAA;AACE,MAAA,GAAG,EAAEA,IAAI,CADX,EAAA;AAEE,MAAA,QAAQ,EAAEA,IAAI,CAFhB,QAAA;AAGE,MAAA,EAAE,EAAEA,IAAI,CAHV,EAAA;AAIE,MAAA,KAAK,EAAEA,IAAI,CAJb,KAAA;AAKE,MAAA,IAAI,EAAEA,IAAI,CALZ,IAAA;AAME,MAAA,QAAQ,EAAE,CAAC,CAACP,aAAa,GAAbA,IAAAA,CAAqBM,CAAC,IAAIA,CAAC,IAAIC,IAAI,CANjD,EAMcP,CANd;AAOE,MAAA,MAAM,EAAEZ,KAAK,CAALA,OAAAA,CAAAA,IAAAA,MAAwBA,KAAK,CAALA,MAAAA,GAPlC,CAAA;AAQE,MAAA,QAAQ,EAAEc;AARZ,KAAA,EASGK,IAAI,CAZb,QAGM,CADD,CADH,CADF;AA9BF,GAAA;;;AAfEnB,IAAAA,K;AAQAK,MAAAA,E;AACAC,MAAAA,Q;AACAC,MAAAA,K;AACAC,MAAAA,I;AACAC,MAAAA,Q;;AAXAR,IAAAA,a;AACAC,IAAAA,gB;AACAC,IAAAA,Q;AACAC,IAAAA,c;;oBA4DF,a","sourcesContent":["import * as React from 'react';\nimport AccordionItem from './AccordionItem';\nimport { AccordionMenuWrapper } from './styles';\n\nexport interface AccordionProps {\n items: AccordionItemProps[];\n selectedItems?: string[];\n setSelectedItems?: (a: string[]) => void;\n onSelect?: (id: string) => void;\n multipleActive?: boolean;\n}\n\nexport interface AccordionItemProps {\n id: string;\n disabled?: boolean;\n title: string;\n icon?: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst AccordionMenu: React.FunctionComponent<AccordionProps> = ({ items, selectedItems, setSelectedItems, onSelect, multipleActive }: AccordionProps) => {\n\n const [builtinSelectedItems, builtinSetSelectedItems] = React.useState<string[]>([]);\n\n const getCollection = () => {\n return selectedItems ? selectedItems : builtinSelectedItems;\n };\n\n const getUpdateFunction = () => {\n return setSelectedItems ? setSelectedItems : builtinSetSelectedItems;\n }\n\n const onSelected = (id: string) => {\n const collection = getCollection();\n const updateFunc = getUpdateFunction();\n\n const isActive = !!collection.find(x => x == id);\n if(multipleActive) {\n if(isActive)\n updateFunc(collection.filter(x => x != id));\n \n else \n updateFunc([...collection, id]);\n }\n else\n updateFunc(isActive ? [] : [id]);\n\n onSelect && onSelect(id);\n };\n\n return (\n <AccordionMenuWrapper>\n {items.map((item) => (\n <AccordionItem\n key={item.id}\n disabled={item.disabled}\n id={item.id}\n title={item.title}\n icon={item.icon}\n isActive={!!getCollection().find(x => x == item.id)}\n isLast={items.indexOf(item) === items.length - 1}\n onSelect={onSelected}>\n {item.children}\n </AccordionItem>\n ))}\n </AccordionMenuWrapper>\n );\n};\n\nexport default AccordionMenu;\n"],"file":"AccordionMenu.js"}
@@ -0,0 +1,74 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["react", "@testing-library/react", "../../styles", "../AccordionMenu", "jest-styled-components"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(require("react"), require("@testing-library/react"), require("../../styles"), require("../AccordionMenu"), require("jest-styled-components"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(global.react, global.react, global.styles, global.AccordionMenu, global.jestStyledComponents);
11
+ global.undefined = mod.exports;
12
+ }
13
+ })(this, function (_react, _react3, _styles, _AccordionMenu) {
14
+ "use strict";
15
+
16
+ var _react2 = _interopRequireDefault(_react);
17
+
18
+ var _AccordionMenu2 = _interopRequireDefault(_AccordionMenu);
19
+
20
+ function _interopRequireDefault(obj) {
21
+ return obj && obj.__esModule ? obj : {
22
+ default: obj
23
+ };
24
+ }
25
+
26
+ const accordionItems = [{
27
+ id: 'test1_id',
28
+ title: 'Item label with text 1',
29
+ children: /*#__PURE__*/_react2.default.createElement("div", null, "content test1")
30
+ }, {
31
+ id: 'test2_id',
32
+ title: 'Item label with text 2',
33
+ children: /*#__PURE__*/_react2.default.createElement("div", null, "content test2")
34
+ }];
35
+ describe('<AccordionMenu />', () => {
36
+ it('Check correct text placed on labels', async () => {
37
+ const {
38
+ queryByText
39
+ } = (0, _react3.render)( /*#__PURE__*/_react2.default.createElement(_AccordionMenu2.default, {
40
+ items: accordionItems,
41
+ onSelect: () => {}
42
+ }));
43
+ expect(queryByText('Item label with text 1')).toBeDefined();
44
+ expect(queryByText('Item label with text 2')).toBeDefined();
45
+ expect(queryByText('content test1')).toBeNull();
46
+ });
47
+ it('Check item label element color and label', async () => {
48
+ const {
49
+ container
50
+ } = (0, _react3.render)( /*#__PURE__*/_react2.default.createElement(_AccordionMenu2.default, {
51
+ items: accordionItems,
52
+ onSelect: () => {}
53
+ }));
54
+ const headerItem = container.querySelector('#test2_id');
55
+ expect(headerItem).toBeDefined();
56
+ expect(headerItem?.children[0]).toHaveStyleRule('background', _styles.COLORS.neutral_20);
57
+ expect(headerItem?.textContent).toContain('Item label with text 2');
58
+ });
59
+ it('Check expanded item text', async () => {
60
+ const {
61
+ container
62
+ } = (0, _react3.render)( /*#__PURE__*/_react2.default.createElement(_AccordionMenu2.default, {
63
+ items: accordionItems,
64
+ onSelect: () => {},
65
+ selectedItems: ['test1_id']
66
+ }));
67
+ const headerItem = container.querySelector('#test1_id'); //check item expanded
68
+
69
+ expect(headerItem?.children[1]).toBeDefined();
70
+ expect(headerItem?.children[1]?.textContent).toContain('content test1');
71
+ });
72
+ });
73
+ });
74
+ //# sourceMappingURL=AccordionMenu.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/Accordion/__tests__/AccordionMenu.test.tsx"],"names":["accordionItems","id","title","children","describe","it","queryByText","render","expect","container","headerItem","COLORS"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,QAAMA,cAAc,GAAG,CACrB;AACEC,IAAAA,EAAE,EADJ,UAAA;AAEEC,IAAAA,KAAK,EAFP,wBAAA;AAGEC,IAAAA,QAAQ,EAAA,aAAE,gBAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAA,eAAA;AAHZ,GADqB,EAMrB;AACEF,IAAAA,EAAE,EADJ,UAAA;AAEEC,IAAAA,KAAK,EAFP,wBAAA;AAGEC,IAAAA,QAAQ,EAAA,aAAE,gBAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAA,eAAA;AAHZ,GANqB,CAAvB;AAaAC,EAAAA,QAAQ,CAAA,mBAAA,EAAsB,MAAM;AAClCC,IAAAA,EAAE,CAAA,qCAAA,EAAwC,YAAY;AACpD,YAAM;AAAEC,QAAAA;AAAF,UAAkBC,qBAAM,aAAC,gBAAA,aAAA,CAAA,uBAAA,EAAA;AAAe,QAAA,KAAK,EAApB,cAAA;AAAsC,QAAA,QAAQ,EAAE,MAAM,CAAE;AAAxD,OAAA,CAAPA,CAAxB;AACAC,MAAAA,MAAM,CAACF,WAAW,CAAlBE,wBAAkB,CAAZ,CAANA,CAAAA,WAAAA;AACAA,MAAAA,MAAM,CAACF,WAAW,CAAlBE,wBAAkB,CAAZ,CAANA,CAAAA,WAAAA;AACAA,MAAAA,MAAM,CAACF,WAAW,CAAlBE,eAAkB,CAAZ,CAANA,CAAAA,QAAAA;AAJFH,KAAE,CAAFA;AAOAA,IAAAA,EAAE,CAAA,0CAAA,EAA6C,YAAY;AACzD,YAAM;AAAEI,QAAAA;AAAF,UAAgBF,qBAAM,aAAC,gBAAA,aAAA,CAAA,uBAAA,EAAA;AAAe,QAAA,KAAK,EAApB,cAAA;AAAsC,QAAA,QAAQ,EAAE,MAAM,CAAE;AAAxD,OAAA,CAAPA,CAAtB;AACA,YAAMG,UAAU,GAAGD,SAAS,CAATA,aAAAA,CAAnB,WAAmBA,CAAnB;AACAD,MAAAA,MAAM,CAANA,UAAM,CAANA,CAAAA,WAAAA;AACAA,MAAAA,MAAM,CAACE,UAAU,EAAVA,QAAAA,CAAPF,CAAOE,CAAD,CAANF,CAAAA,eAAAA,CAAAA,YAAAA,EAA8DG,eAA9DH,UAAAA;AACAA,MAAAA,MAAM,CAACE,UAAU,EAAjBF,WAAM,CAANA,CAAAA,SAAAA,CAAAA,wBAAAA;AALFH,KAAE,CAAFA;AAQAA,IAAAA,EAAE,CAAA,0BAAA,EAA6B,YAAY;AACzC,YAAM;AAAEI,QAAAA;AAAF,UAAgBF,qBAAM,aAAC,gBAAA,aAAA,CAAA,uBAAA,EAAA;AAAe,QAAA,KAAK,EAApB,cAAA;AAAsC,QAAA,QAAQ,EAAE,MAAM,CAAtD,CAAA;AAA0D,QAAA,aAAa,EAAE,CAAA,UAAA;AAAzE,OAAA,CAAPA,CAAtB;AACA,YAAMG,UAAU,GAAGD,SAAS,CAATA,aAAAA,CAFsB,WAEtBA,CAAnB,CAFyC,CAGzC;;AACAD,MAAAA,MAAM,CAACE,UAAU,EAAVA,QAAAA,CAAPF,CAAOE,CAAD,CAANF,CAAAA,WAAAA;AACAA,MAAAA,MAAM,CAACE,UAAU,EAAVA,QAAAA,CAAAA,CAAAA,GAAPF,WAAM,CAANA,CAAAA,SAAAA,CAAAA,eAAAA;AALFH,KAAE,CAAFA;AAhBFD,GAAQ,CAARA","sourcesContent":["import React from 'react';\nimport { render } from '@testing-library/react';\nimport 'jest-styled-components';\nimport { COLORS } from '../../styles';\nimport AccordionMenu from '../AccordionMenu';\n\nconst accordionItems = [\n {\n id: 'test1_id',\n title: 'Item label with text 1',\n children: <div>content test1</div>,\n },\n {\n id: 'test2_id',\n title: 'Item label with text 2',\n children: <div>content test2</div>,\n },\n];\n\ndescribe('<AccordionMenu />', () => {\n it('Check correct text placed on labels', async () => {\n const { queryByText } = render(<AccordionMenu items={accordionItems} onSelect={() => {}}></AccordionMenu>);\n expect(queryByText('Item label with text 1')).toBeDefined();\n expect(queryByText('Item label with text 2')).toBeDefined();\n expect(queryByText('content test1')).toBeNull();\n });\n\n it('Check item label element color and label', async () => {\n const { container } = render(<AccordionMenu items={accordionItems} onSelect={() => {}}></AccordionMenu>);\n const headerItem = container.querySelector('#test2_id');\n expect(headerItem).toBeDefined();\n expect(headerItem?.children[0]).toHaveStyleRule('background', COLORS.neutral_20);\n expect(headerItem?.textContent).toContain('Item label with text 2');\n });\n\n it('Check expanded item text', async () => {\n const { container } = render(<AccordionMenu items={accordionItems} onSelect={() => {}} selectedItems={['test1_id']}></AccordionMenu>);\n const headerItem = container.querySelector('#test1_id');\n //check item expanded\n expect(headerItem?.children[1]).toBeDefined();\n expect(headerItem?.children[1]?.textContent).toContain('content test1');\n });\n});\n"],"file":"AccordionMenu.test.js"}
@@ -0,0 +1,44 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "./AccordionMenu", "./styles"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("./AccordionMenu"), require("./styles"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global.AccordionMenu, global.styles);
11
+ global.undefined = mod.exports;
12
+ }
13
+ })(this, function (exports, _AccordionMenu, _styles) {
14
+ "use strict";
15
+
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ Object.defineProperty(exports, "AccordionMenu", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _interopRequireDefault(_AccordionMenu).default;
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "AccordionMenuItem", {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _interopRequireDefault(_AccordionMenu).default;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "AccordionMenuWrapper", {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _styles.AccordionMenuWrapper;
35
+ }
36
+ });
37
+
38
+ function _interopRequireDefault(obj) {
39
+ return obj && obj.__esModule ? obj : {
40
+ default: obj
41
+ };
42
+ }
43
+ });
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Accordion/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;oDAAA,O;;;;;;oDACA,O;;;;;;qBACA,oB","sourcesContent":["export { default as AccordionMenu } from './AccordionMenu';\nexport { default as AccordionMenuItem } from './AccordionMenu';\nexport { AccordionMenuWrapper } from './styles';\n"],"file":"index.js"}
@@ -0,0 +1,101 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "styled-components", "../styles", "../styles/z-indexes"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("styled-components"), require("../styles"), require("../styles/z-indexes"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global.styledComponents, global.styles, global.zIndexes);
11
+ global.undefined = mod.exports;
12
+ }
13
+ })(this, function (exports, _styledComponents, _styles, _zIndexes) {
14
+ "use strict";
15
+
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.ItemBodyContainer = exports.HeaderIconContainer = exports.ItemHeaderContainer = exports.AccordionItemContainer = exports.AccordionMenuWrapper = undefined;
20
+
21
+ var _styledComponents2 = _interopRequireDefault(_styledComponents);
22
+
23
+ function _interopRequireDefault(obj) {
24
+ return obj && obj.__esModule ? obj : {
25
+ default: obj
26
+ };
27
+ }
28
+
29
+ const AccordionMenuWrapper = exports.AccordionMenuWrapper = _styledComponents2.default.div`
30
+ min-width: 320px;
31
+ display: flex;
32
+ flex-direction: column;
33
+ box-sizing: border-box;
34
+ `;
35
+ const AccordionItemContainer = exports.AccordionItemContainer = _styledComponents2.default.div`
36
+ width: 100%;
37
+ display: flex;
38
+ flex-direction: column;
39
+ box-sizing: border-box;
40
+ border-bottom: ${props => props.displaySeparator ? `1px solid ${_styles.COLORS.neutral_100}` : ''};
41
+ `;
42
+ const disabledState = _styledComponents.css`
43
+ background: ${_styles.COLORS.white}!important;
44
+ color: ${_styles.COLORS.neutral_300};
45
+ pointer-events: none;
46
+ svg {
47
+ color: ${_styles.COLORS.neutral_300}!important;
48
+ }
49
+ `;
50
+ const ItemHeaderContainer = exports.ItemHeaderContainer = _styledComponents2.default.div`
51
+ position: relative;
52
+ display: flex;
53
+ align-items: center;
54
+ gap: 8px;
55
+ padding: 12px 16px 11px 16px;
56
+ cursor: pointer;
57
+ background: ${_styles.COLORS.neutral_20};
58
+ cursor: ${props => props.isDisabled ? 'not-allowed' : 'pointer'};
59
+ svg:last-child {
60
+ margin-left: auto;
61
+ }
62
+ outline: none;
63
+ ${props => props.tabbedHere ? _styledComponents.css`
64
+ z-index: ${_zIndexes.Z_INDEXES.focus};
65
+ box-shadow: 0px 4px 12px ${_styles.COLORS.primary_500}, 0px 0px 8px ${_styles.COLORS.primary_500};` : ''}
66
+
67
+ ${props => props.isDisabled ? disabledState : ''}
68
+ :hover {
69
+ background: ${_styles.COLORS.primary_20};
70
+ }
71
+
72
+ :hover .headerLabel {
73
+ color: ${_styles.COLORS.primary_700};
74
+ }
75
+
76
+ :active .headerLabel {
77
+ color: ${_styles.COLORS.primary_800};
78
+ }
79
+
80
+ :hover svg {
81
+ color: ${_styles.COLORS.primary_700};
82
+ }
83
+
84
+ :active svg {
85
+ color: ${_styles.COLORS.primary_800};
86
+ }
87
+
88
+ :active {
89
+ background: ${_styles.COLORS.primary_100};
90
+ }
91
+ `;
92
+ const HeaderIconContainer = exports.HeaderIconContainer = _styledComponents2.default.div`
93
+ margin-left: auto;
94
+ `;
95
+ const ItemBodyContainer = exports.ItemBodyContainer = _styledComponents2.default.div`
96
+ padding: 0px 16px;
97
+ margin: 12px 0;
98
+ background: ${_styles.COLORS.white};
99
+ `;
100
+ });
101
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Accordion/styles.ts"],"names":["AccordionMenuWrapper","styled","div","AccordionItemContainer","props","COLORS","neutral_100","disabledState","css","white","neutral_300","ItemHeaderContainer","neutral_20","Z_INDEXES","focus","primary_500","primary_20","primary_700","primary_800","primary_100","HeaderIconContainer","ItemBodyContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,QAAMA,oBAAoB,WAApBA,oBAAoB,GAAGC,2BAAOC,GAAI;AAC/C;AACA;AACA;AACA;AAJO,CAAA;AAOA,QAAMC,sBAAsB,WAAtBA,sBAAsB,GAAGF,2BAAOC,GAAoC;AACjF;AACA;AACA;AACA;AACA,mBAAoBE,KAAD,IAAYA,KAAK,CAALA,gBAAAA,GAA0B,aAAYC,eAAOC,WAA7CF,EAAAA,GAA6D,EAAI;AALzF,CAAA;AAQP,QAAMG,aAAa,GAAGC,qBAAI;AAC1B,gBAAgBH,eAAOI,KAAM;AAC7B,WAAWJ,eAAOK,WAAY;AAC9B;AACA;AACA,aAAaL,eAAOK,WAAY;AAChC;AANA,CAAA;AASO,QAAMC,mBAAmB,WAAnBA,mBAAmB,GAAGV,2BAAOC,GAAqE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgBG,eAAOO,UAAW;AAClC,YAAaR,KAAD,IAAYA,KAAK,CAALA,UAAAA,GAAAA,aAAAA,GAAmC,SAAW;AACtE;AACA;AACA;AACA;AACA,IAAIA,KAAK,IAAIA,KAAK,CAALA,UAAAA,GAAmBI,qBAAI;AACpC,eAAeK,oBAAUC,KAAM;AAC/B,+BAA+BT,eAAOU,WAAY,iBAAgBV,eAAOU,WAF5DX,GAAAA,GAE6E,EAAG;AAC7F;AACA,IAAKA,KAAD,IAAYA,KAAK,CAALA,UAAAA,GAAAA,aAAAA,GAAmC,EAAI;AACvD;AACA,kBAAkBC,eAAOW,UAAW;AACpC;AACA;AACA;AACA,aAAaX,eAAOY,WAAY;AAChC;AACA;AACA;AACA,aAAaZ,eAAOa,WAAY;AAChC;AACA;AACA;AACA,aAAab,eAAOY,WAAY;AAChC;AACA;AACA;AACA,aAAaZ,eAAOa,WAAY;AAChC;AACA;AACA;AACA,kBAAkBb,eAAOc,WAAY;AACrC;AAxCO,CAAA;AA2CA,QAAMC,mBAAmB,WAAnBA,mBAAmB,GAAGnB,2BAAOC,GAAI;AAC9C;AADO,CAAA;AAIA,QAAMmB,iBAAiB,WAAjBA,iBAAiB,GAAGpB,2BAAOC,GAAI;AAC5C;AACA;AACA,gBAAgBG,eAAOI,KAAM;AAHtB,CAAA","sourcesContent":["import styled, { css } from 'styled-components';\nimport { COLORS } from '../styles';\nimport { Z_INDEXES } from '../styles/z-indexes';\n\nexport const AccordionMenuWrapper = styled.div`\n min-width: 320px;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n`;\n\nexport const AccordionItemContainer = styled.div<{ displaySeparator: boolean; }>`\n width: 100%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n border-bottom: ${(props) => (props.displaySeparator ? `1px solid ${COLORS.neutral_100}` : '')};\n`;\n\nconst disabledState = css`\n background: ${COLORS.white}!important;\n color: ${COLORS.neutral_300};\n pointer-events: none;\n svg {\n color: ${COLORS.neutral_300}!important;\n }\n`;\n\nexport const ItemHeaderContainer = styled.div<{ isDisabled: boolean, isActive: boolean, tabbedHere: boolean }>`\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px 11px 16px;\n cursor: pointer;\n background: ${COLORS.neutral_20};\n cursor: ${(props) => (props.isDisabled ? 'not-allowed' : 'pointer')};\n svg:last-child {\n margin-left: auto;\n }\n outline: none;\n ${props => props.tabbedHere ? css`\n z-index: ${Z_INDEXES.focus};\n box-shadow: 0px 4px 12px ${COLORS.primary_500}, 0px 0px 8px ${COLORS.primary_500};` : ''}\n\n ${(props) => (props.isDisabled ? disabledState : '')}\n :hover {\n background: ${COLORS.primary_20};\n }\n\n :hover .headerLabel {\n color: ${COLORS.primary_700};\n }\n\n :active .headerLabel {\n color: ${COLORS.primary_800};\n }\n\n :hover svg {\n color: ${COLORS.primary_700};\n }\n\n :active svg {\n color: ${COLORS.primary_800};\n }\n\n :active {\n background: ${COLORS.primary_100};\n }\n`;\n\nexport const HeaderIconContainer = styled.div`\n margin-left: auto;\n`;\n\nexport const ItemBodyContainer = styled.div`\n padding: 0px 16px;\n margin: 12px 0;\n background: ${COLORS.white};\n`;\n"],"file":"styles.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Breadcrumb/Breadcrumb.tsx"],"names":["homeIcon","homeLabel","homeUrl","items","marginRight","size","Size","BreadcrumbContainer","styled","div","props","FontStyles","ComponentTextStyle","COLORS","primary_700","primary_800","ComponentXXSStyling","ComponentMStyling","ComponentSStyling","LastBreadcrumbItem","label","Breadcrumb","history","dropdownItems","x","value","displayLabel","navigate","links","chevronSize","url"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\n\nimport {COLORS} from '../styles';\nimport {ComponentTextStyle, Size, SystemIcons} from '..';\nimport {useHistory} from 'react-router';\nimport { HyperLink, IconButton } from '..';\nimport {BreadcrumbItem} from '@laerdal/life-react-components/src/Breadcrumb/BreadcrumbItem';\nimport {Link} from 'react-router-dom';\nimport {ComponentMStyling, ComponentSStyling, ComponentXXSStyling} from '../styles/typography';\nimport DropdownButton from '../Dropdown/DropdownButton';\nimport { DropdownItem } from '../Dropdown/DropdownContent';\n\ntype BreadcrumbProps = {\n homeIcon?: boolean;\n homeLabel?: string;\n homeUrl?: string;\n items?: BreadcrumbItem[];\n size?: Size;\n};\n\nconst marginRight = (size: Size | undefined) => {\n return size == Size.Small || size == Size.Medium ? 'margin-right: 8px;' : 'margin-right: 4px;'\n}\n\nconst BreadcrumbContainer = styled.div<{size: Size | undefined}>`\n display:flex;\n align-items: center;\n min-height: 48px;\n \n a {\n text-decoration: none;\n ${(props) => FontStyles(props.size, ComponentTextStyle.Regular, COLORS.neutral_600)}\n ${(props) => marginRight(props.size) }\n }\n\n .chevronicon {\n ${(props) => marginRight(props.size) }\n }\n\n a:hover {\n color: ${COLORS.primary_700};\n }\n a:active {\n color: ${COLORS.primary_800};\n }\n`;\n\nconst FontStyles = (size: Size | undefined, textStyle: ComponentTextStyle, color: string) => {\n switch (size) {\n case Size.XSmall:\n return ComponentXXSStyling(textStyle, color);\n case Size.Medium:\n return ComponentMStyling(textStyle, color);\n case Size.Small:\n default:\n return ComponentSStyling(textStyle, color);\n }\n}\n\nconst LastBreadcrumbItem = styled.label<{size: Size}>`\n ${(props) => FontStyles(props.size, ComponentTextStyle.Bold, COLORS.neutral_800)}\n ${(props) => marginRight(props.size) }\n`;\n\nconst Breadcrumb: React.FunctionComponent<BreadcrumbProps> = ({ \n items, \n size = Size.Small, \n homeIcon = true, \n homeLabel = 'Home', \n homeUrl = '/' }) => {\n\n const history = useHistory();\n const dropdownItems: DropdownItem[] = items ? items.slice(0, items.length - 2).map(x => ({ value: x.url, displayLabel: x.label })) : [];\n const navigate = (links: string[]) => { \n history.push(links[0]);\n };\n\n const chevronSize = size == Size.Medium ? \"24px\" : size == Size.Small ? \"20px\" : \"16px\";\n\n return (\n <BreadcrumbContainer size={size}>\n\n {homeIcon ? \n <IconButton variant=\"secondary\" shape=\"circular\" action={() => history.push(homeUrl)}>\n <SystemIcons.Home size={chevronSize} />\n </IconButton> : \n <HyperLink id={\"homelink\"} variant=\"default\" href={homeUrl}>\n {homeLabel}\n </HyperLink>}\n\n { !!items && items.length > 2 &&\n (items.length > 3 ?\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <DropdownButton \n alignLeft={true}\n items={dropdownItems} \n size={size}\n icon={<SystemIcons.MoreHorizontal color={COLORS.neutral_600} size=\"20px\" />}\n onClick={navigate} />\n </> :\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={\"link-item-\" + (items.length - 3)} target=\"_self\" variant=\"default\" href={items[items.length - 3].url}>\n {items[items.length - 3].label}\n </HyperLink> \n </>)\n }\n\n { !!items && items.length > 1 && \n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={\"link-item-\" + (items.length - 2)} target=\"_self\" variant=\"default\" href={items[items.length - 2].url}>\n {items[items.length - 2].label}\n </HyperLink>\n </>\n }\n\n { !!items && items.length > 0 && \n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <LastBreadcrumbItem size={size}>\n {items[items.length - 1].label}\n </LastBreadcrumbItem>\n </>\n }\n\n </BreadcrumbContainer>);\n};\n\nexport default Breadcrumb;\n"],"file":"Breadcrumb.js"}
1
+ {"version":3,"sources":["../../../src/Breadcrumb/Breadcrumb.tsx"],"names":["homeIcon","homeLabel","homeUrl","items","marginRight","size","Size","BreadcrumbContainer","styled","div","props","FontStyles","ComponentTextStyle","COLORS","primary_700","primary_800","ComponentXXSStyling","ComponentMStyling","ComponentSStyling","LastBreadcrumbItem","label","Breadcrumb","history","dropdownItems","x","value","displayLabel","navigate","links","chevronSize","url"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\n\nimport {COLORS} from '../styles';\nimport {ComponentTextStyle, Size, SystemIcons} from '..';\nimport {useHistory} from 'react-router';\nimport { HyperLink, IconButton } from '..';\nimport {BreadcrumbItem} from '@laerdal/life-react-components/src/Breadcrumb/BreadcrumbItem';\nimport {ComponentMStyling, ComponentSStyling, ComponentXXSStyling} from '../styles/typography';\nimport DropdownButton from '../Dropdown/DropdownButton';\nimport { DropdownItem } from '../Dropdown/DropdownContent';\n\ntype BreadcrumbProps = {\n homeIcon?: boolean;\n homeLabel?: string;\n homeUrl?: string;\n items?: BreadcrumbItem[];\n size?: Size;\n};\n\nconst marginRight = (size: Size | undefined) => {\n return size == Size.Small || size == Size.Medium ? 'margin-right: 8px;' : 'margin-right: 4px;'\n}\n\nconst BreadcrumbContainer = styled.div<{size: Size | undefined}>`\n display:flex;\n align-items: center;\n min-height: 48px;\n \n a {\n text-decoration: none;\n ${(props) => FontStyles(props.size, ComponentTextStyle.Regular, COLORS.neutral_600)}\n ${(props) => marginRight(props.size) }\n }\n\n .chevronicon {\n ${(props) => marginRight(props.size) }\n }\n\n a:hover {\n color: ${COLORS.primary_700};\n }\n a:active {\n color: ${COLORS.primary_800};\n }\n`;\n\nconst FontStyles = (size: Size | undefined, textStyle: ComponentTextStyle, color: string) => {\n switch (size) {\n case Size.XSmall:\n return ComponentXXSStyling(textStyle, color);\n case Size.Medium:\n return ComponentMStyling(textStyle, color);\n case Size.Small:\n default:\n return ComponentSStyling(textStyle, color);\n }\n}\n\nconst LastBreadcrumbItem = styled.label<{size: Size}>`\n ${(props) => FontStyles(props.size, ComponentTextStyle.Bold, COLORS.neutral_800)}\n ${(props) => marginRight(props.size) }\n`;\n\nconst Breadcrumb: React.FunctionComponent<BreadcrumbProps> = ({ \n items, \n size = Size.Small, \n homeIcon = true, \n homeLabel = 'Home', \n homeUrl = '/' }) => {\n\n const history = useHistory();\n const dropdownItems: DropdownItem[] = items ? items.slice(0, items.length - 2).map(x => ({ value: x.url, displayLabel: x.label })) : [];\n const navigate = (links: string[]) => { \n history.push(links[0]);\n };\n\n const chevronSize = size == Size.Medium ? \"24px\" : size == Size.Small ? \"20px\" : \"16px\";\n\n return (\n <BreadcrumbContainer size={size}>\n\n {homeIcon ? \n <IconButton variant=\"secondary\" shape=\"circular\" action={() => history.push(homeUrl)}>\n <SystemIcons.Home size={chevronSize} />\n </IconButton> : \n <HyperLink id={\"homelink\"} variant=\"default\" href={homeUrl}>\n {homeLabel}\n </HyperLink>}\n\n { !!items && items.length > 2 &&\n (items.length > 3 ?\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <DropdownButton \n alignLeft={true}\n items={dropdownItems} \n size={size}\n icon={<SystemIcons.MoreHorizontal color={COLORS.neutral_600} size=\"20px\" />}\n onClick={navigate} />\n </> :\n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={\"link-item-\" + (items.length - 3)} target=\"_self\" variant=\"default\" href={items[items.length - 3].url}>\n {items[items.length - 3].label}\n </HyperLink> \n </>)\n }\n\n { !!items && items.length > 1 && \n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <HyperLink id={\"link-item-\" + (items.length - 2)} target=\"_self\" variant=\"default\" href={items[items.length - 2].url}>\n {items[items.length - 2].label}\n </HyperLink>\n </>\n }\n\n { !!items && items.length > 0 && \n <>\n <SystemIcons.ChevronRight className=\"chevronicon\" color={COLORS.neutral_500} size={chevronSize} />\n <LastBreadcrumbItem size={size}>\n {items[items.length - 1].label}\n </LastBreadcrumbItem>\n </>\n }\n\n </BreadcrumbContainer>);\n};\n\nexport default Breadcrumb;\n"],"file":"Breadcrumb.js"}