@laerdal/life-react-components 1.8.0 → 1.9.0-dev.1

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 (399) hide show
  1. package/dist/Breadcrumb/Breadcrumb.cjs +1 -0
  2. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  3. package/dist/Breadcrumb/Breadcrumb.js +1 -0
  4. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  5. package/dist/Button/Button.cjs +4 -4
  6. package/dist/Button/Button.cjs.map +1 -1
  7. package/dist/Button/Button.d.ts +1 -1
  8. package/dist/Button/Button.js +4 -4
  9. package/dist/Button/Button.js.map +1 -1
  10. package/dist/Button/DualFunctionButton.cjs +1 -1
  11. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  12. package/dist/Button/DualFunctionButton.js +1 -1
  13. package/dist/Button/DualFunctionButton.js.map +1 -1
  14. package/dist/Button/Iconbutton.cjs +8 -2
  15. package/dist/Button/Iconbutton.cjs.map +1 -1
  16. package/dist/Button/Iconbutton.d.ts +3 -0
  17. package/dist/Button/Iconbutton.js +8 -2
  18. package/dist/Button/Iconbutton.js.map +1 -1
  19. package/dist/Chips/ChipStyles.cjs +1 -1
  20. package/dist/Chips/ChipStyles.cjs.map +1 -1
  21. package/dist/Chips/ChipStyles.js +1 -1
  22. package/dist/Chips/ChipStyles.js.map +1 -1
  23. package/dist/Chips/ChipTypes.d.ts +3 -3
  24. package/dist/Chips/ChoiceChips.cjs +1 -1
  25. package/dist/Chips/ChoiceChips.cjs.map +1 -1
  26. package/dist/Chips/ChoiceChips.js +1 -1
  27. package/dist/Chips/ChoiceChips.js.map +1 -1
  28. package/dist/Chips/FilterChip.cjs +2 -2
  29. package/dist/Chips/FilterChip.cjs.map +1 -1
  30. package/dist/Chips/FilterChip.js +2 -2
  31. package/dist/Chips/FilterChip.js.map +1 -1
  32. package/dist/Chips/InputChip.cjs.map +1 -1
  33. package/dist/Chips/InputChip.js +1 -1
  34. package/dist/Chips/InputChip.js.map +1 -1
  35. package/dist/ChipsInput/ChipDropdownInput.cjs +5 -6
  36. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  37. package/dist/ChipsInput/ChipDropdownInput.d.ts +0 -1
  38. package/dist/ChipsInput/ChipDropdownInput.js +6 -7
  39. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  40. package/dist/ChipsInput/ChipInput.cjs +0 -2
  41. package/dist/ChipsInput/ChipInput.cjs.map +1 -1
  42. package/dist/ChipsInput/ChipInput.js +0 -2
  43. package/dist/ChipsInput/ChipInput.js.map +1 -1
  44. package/dist/ChipsInput/ChipInputField.cjs +11 -18
  45. package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
  46. package/dist/ChipsInput/ChipInputField.d.ts +1 -1
  47. package/dist/ChipsInput/ChipInputField.js +13 -20
  48. package/dist/ChipsInput/ChipInputField.js.map +1 -1
  49. package/dist/ChipsInput/ChipInputTypes.d.ts +1 -1
  50. package/dist/Dropdown/BasicDropdown.cjs +9 -11
  51. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  52. package/dist/Dropdown/BasicDropdown.d.ts +2 -2
  53. package/dist/Dropdown/BasicDropdown.js +10 -12
  54. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  55. package/dist/Dropdown/CommonStyling.cjs +25 -13
  56. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  57. package/dist/Dropdown/CommonStyling.d.ts +7 -6
  58. package/dist/Dropdown/CommonStyling.js +11 -11
  59. package/dist/Dropdown/CommonStyling.js.map +1 -1
  60. package/dist/Dropdown/DropdownButton.cjs +76 -18
  61. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  62. package/dist/Dropdown/DropdownButton.d.ts +1 -1
  63. package/dist/Dropdown/DropdownButton.js +73 -19
  64. package/dist/Dropdown/DropdownButton.js.map +1 -1
  65. package/dist/Dropdown/DropdownButtonTypes.d.ts +16 -5
  66. package/dist/Dropdown/DropdownFilter.cjs +93 -151
  67. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  68. package/dist/Dropdown/DropdownFilter.d.ts +9 -15
  69. package/dist/Dropdown/DropdownFilter.js +94 -152
  70. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  71. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +107 -176
  72. package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
  73. package/dist/GlobalNavigationBar/GlobalNavigationBar.d.ts +13 -27
  74. package/dist/GlobalNavigationBar/GlobalNavigationBar.js +106 -176
  75. package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
  76. package/dist/GlobalNavigationBar/Logo.cjs +3 -5
  77. package/dist/GlobalNavigationBar/Logo.cjs.map +1 -1
  78. package/dist/GlobalNavigationBar/Logo.js +1 -1
  79. package/dist/GlobalNavigationBar/Logo.js.map +1 -1
  80. package/dist/GlobalNavigationBar/NavigationHelper.cjs +38 -0
  81. package/dist/GlobalNavigationBar/NavigationHelper.cjs.map +1 -0
  82. package/dist/GlobalNavigationBar/NavigationHelper.d.ts +4 -0
  83. package/dist/GlobalNavigationBar/NavigationHelper.js +27 -0
  84. package/dist/GlobalNavigationBar/NavigationHelper.js.map +1 -0
  85. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs +129 -0
  86. package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs.map +1 -0
  87. package/dist/GlobalNavigationBar/desktop/DesktopActions.d.ts +15 -0
  88. package/dist/GlobalNavigationBar/desktop/DesktopActions.js +99 -0
  89. package/dist/GlobalNavigationBar/desktop/DesktopActions.js.map +1 -0
  90. package/dist/GlobalNavigationBar/{ExtendedMainMenu.cjs → desktop/ExtendedMainMenu.cjs} +7 -9
  91. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.cjs.map +1 -0
  92. package/dist/GlobalNavigationBar/{ExtendedMainMenu.d.ts → desktop/ExtendedMainMenu.d.ts} +2 -2
  93. package/dist/GlobalNavigationBar/{ExtendedMainMenu.js → desktop/ExtendedMainMenu.js} +6 -6
  94. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.js.map +1 -0
  95. package/dist/GlobalNavigationBar/{MainMenu.cjs → desktop/MainMenu.cjs} +17 -21
  96. package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +1 -0
  97. package/dist/GlobalNavigationBar/desktop/MainMenu.d.ts +8 -0
  98. package/dist/GlobalNavigationBar/{MainMenu.js → desktop/MainMenu.js} +17 -21
  99. package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +1 -0
  100. package/dist/GlobalNavigationBar/{RightSideNav.cjs → desktop/RightSideNav.cjs} +22 -26
  101. package/dist/GlobalNavigationBar/desktop/RightSideNav.cjs.map +1 -0
  102. package/dist/GlobalNavigationBar/desktop/RightSideNav.d.ts +8 -0
  103. package/dist/GlobalNavigationBar/desktop/RightSideNav.js +59 -0
  104. package/dist/GlobalNavigationBar/desktop/RightSideNav.js.map +1 -0
  105. package/dist/GlobalNavigationBar/desktop/UserMenu.cjs +204 -0
  106. package/dist/GlobalNavigationBar/desktop/UserMenu.cjs.map +1 -0
  107. package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +7 -0
  108. package/dist/GlobalNavigationBar/desktop/UserMenu.js +163 -0
  109. package/dist/GlobalNavigationBar/desktop/UserMenu.js.map +1 -0
  110. package/dist/GlobalNavigationBar/index.cjs +15 -18
  111. package/dist/GlobalNavigationBar/index.cjs.map +1 -1
  112. package/dist/GlobalNavigationBar/index.d.ts +2 -2
  113. package/dist/GlobalNavigationBar/index.js +2 -2
  114. package/dist/GlobalNavigationBar/index.js.map +1 -1
  115. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +15 -21
  116. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
  117. package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +3 -6
  118. package/dist/GlobalNavigationBar/mobile/CommonStyles.js +14 -15
  119. package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  120. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +117 -221
  121. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
  122. package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +6 -25
  123. package/dist/GlobalNavigationBar/mobile/MobileMenu.js +116 -216
  124. package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
  125. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +221 -0
  126. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -0
  127. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.d.ts +11 -0
  128. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +184 -0
  129. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -0
  130. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs +160 -0
  131. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs.map +1 -0
  132. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.d.ts +12 -0
  133. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js +139 -0
  134. package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js.map +1 -0
  135. package/dist/GlobalNavigationBar/types.cjs +6 -0
  136. package/dist/GlobalNavigationBar/types.cjs.map +1 -0
  137. package/dist/GlobalNavigationBar/types.d.ts +120 -0
  138. package/dist/GlobalNavigationBar/types.js +2 -0
  139. package/dist/GlobalNavigationBar/types.js.map +1 -0
  140. package/dist/InputFields/Checkbox.cjs +10 -10
  141. package/dist/InputFields/Checkbox.cjs.map +1 -1
  142. package/dist/InputFields/Checkbox.d.ts +3 -3
  143. package/dist/InputFields/Checkbox.js +10 -10
  144. package/dist/InputFields/Checkbox.js.map +1 -1
  145. package/dist/InputFields/DatepickerField.cjs +26 -38
  146. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  147. package/dist/InputFields/DatepickerField.d.ts +3 -3
  148. package/dist/InputFields/DatepickerField.js +26 -42
  149. package/dist/InputFields/DatepickerField.js.map +1 -1
  150. package/dist/InputFields/Label.cjs +24 -14
  151. package/dist/InputFields/Label.cjs.map +1 -1
  152. package/dist/InputFields/Label.js +24 -16
  153. package/dist/InputFields/Label.js.map +1 -1
  154. package/dist/InputFields/NumberField.cjs +288 -0
  155. package/dist/InputFields/NumberField.cjs.map +1 -0
  156. package/dist/InputFields/NumberField.d.ts +21 -0
  157. package/dist/InputFields/NumberField.js +252 -0
  158. package/dist/InputFields/NumberField.js.map +1 -0
  159. package/dist/InputFields/PasswordField.cjs +23 -18
  160. package/dist/InputFields/PasswordField.cjs.map +1 -1
  161. package/dist/InputFields/PasswordField.d.ts +2 -3
  162. package/dist/InputFields/PasswordField.js +21 -16
  163. package/dist/InputFields/PasswordField.js.map +1 -1
  164. package/dist/InputFields/QuickSearch.cjs +2 -3
  165. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  166. package/dist/InputFields/QuickSearch.js +2 -3
  167. package/dist/InputFields/QuickSearch.js.map +1 -1
  168. package/dist/InputFields/RadioButton.cjs +5 -7
  169. package/dist/InputFields/RadioButton.cjs.map +1 -1
  170. package/dist/InputFields/RadioButton.d.ts +1 -1
  171. package/dist/InputFields/RadioButton.js +5 -5
  172. package/dist/InputFields/RadioButton.js.map +1 -1
  173. package/dist/InputFields/SearchBar.cjs +2 -2
  174. package/dist/InputFields/SearchBar.cjs.map +1 -1
  175. package/dist/InputFields/SearchBar.js +3 -3
  176. package/dist/InputFields/SearchBar.js.map +1 -1
  177. package/dist/InputFields/TextField.cjs +35 -40
  178. package/dist/InputFields/TextField.cjs.map +1 -1
  179. package/dist/InputFields/TextField.d.ts +6 -6
  180. package/dist/InputFields/TextField.js +35 -41
  181. package/dist/InputFields/TextField.js.map +1 -1
  182. package/dist/InputFields/Textarea.cjs +26 -31
  183. package/dist/InputFields/Textarea.cjs.map +1 -1
  184. package/dist/InputFields/Textarea.d.ts +1 -12
  185. package/dist/InputFields/Textarea.js +31 -33
  186. package/dist/InputFields/Textarea.js.map +1 -1
  187. package/dist/InputFields/components/SearchBarInput.cjs +1 -1
  188. package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
  189. package/dist/InputFields/components/SearchBarInput.js +1 -1
  190. package/dist/InputFields/components/SearchBarInput.js.map +1 -1
  191. package/dist/InputFields/components/SearchField.cjs +1 -3
  192. package/dist/InputFields/components/SearchField.cjs.map +1 -1
  193. package/dist/InputFields/components/SearchField.js +1 -2
  194. package/dist/InputFields/components/SearchField.js.map +1 -1
  195. package/dist/InputFields/index.cjs +8 -0
  196. package/dist/InputFields/index.cjs.map +1 -1
  197. package/dist/InputFields/index.d.ts +2 -1
  198. package/dist/InputFields/index.js +2 -1
  199. package/dist/InputFields/index.js.map +1 -1
  200. package/dist/InputFields/styling.cjs +22 -28
  201. package/dist/InputFields/styling.cjs.map +1 -1
  202. package/dist/InputFields/styling.d.ts +7 -7
  203. package/dist/InputFields/styling.js +19 -23
  204. package/dist/InputFields/styling.js.map +1 -1
  205. package/dist/InputFields/types.cjs +6 -0
  206. package/dist/InputFields/types.cjs.map +1 -0
  207. package/dist/InputFields/types.d.ts +38 -0
  208. package/dist/InputFields/types.js +2 -0
  209. package/dist/InputFields/types.js.map +1 -0
  210. package/dist/List/ListRow.cjs +1 -0
  211. package/dist/List/ListRow.cjs.map +1 -1
  212. package/dist/List/ListRow.js +1 -0
  213. package/dist/List/ListRow.js.map +1 -1
  214. package/dist/MenuItem/MenuItem.cjs +26 -11
  215. package/dist/MenuItem/MenuItem.cjs.map +1 -1
  216. package/dist/MenuItem/MenuItem.d.ts +6 -4
  217. package/dist/MenuItem/MenuItem.js +26 -11
  218. package/dist/MenuItem/MenuItem.js.map +1 -1
  219. package/dist/MenuItem/index.cjs.map +1 -1
  220. package/dist/MenuItem/index.js.map +1 -1
  221. package/dist/Modals/ModalNote.cjs +1 -1
  222. package/dist/Modals/ModalNote.cjs.map +1 -1
  223. package/dist/Modals/ModalNote.js +2 -2
  224. package/dist/Modals/ModalNote.js.map +1 -1
  225. package/dist/Popover/Popover.cjs +267 -0
  226. package/dist/Popover/Popover.cjs.map +1 -0
  227. package/dist/Popover/Popover.d.ts +26 -0
  228. package/dist/Popover/Popover.js +231 -0
  229. package/dist/Popover/Popover.js.map +1 -0
  230. package/dist/Popover/index.cjs +16 -0
  231. package/dist/Popover/index.cjs.map +1 -0
  232. package/dist/Popover/index.d.ts +1 -0
  233. package/dist/Popover/index.js +2 -0
  234. package/dist/Popover/index.js.map +1 -0
  235. package/dist/ProfileButton/ProfileButton.cjs +105 -0
  236. package/dist/ProfileButton/ProfileButton.cjs.map +1 -0
  237. package/dist/ProfileButton/ProfileButton.d.ts +14 -0
  238. package/dist/ProfileButton/ProfileButton.js +79 -0
  239. package/dist/ProfileButton/ProfileButton.js.map +1 -0
  240. package/dist/ProfileButton/index.cjs +16 -0
  241. package/dist/ProfileButton/index.cjs.map +1 -0
  242. package/dist/ProfileButton/index.d.ts +1 -0
  243. package/dist/ProfileButton/index.js +2 -0
  244. package/dist/ProfileButton/index.js.map +1 -0
  245. package/dist/QuizButton/QuizButton.cjs +1 -1
  246. package/dist/QuizButton/QuizButton.cjs.map +1 -1
  247. package/dist/QuizButton/QuizButton.js +1 -1
  248. package/dist/QuizButton/QuizButton.js.map +1 -1
  249. package/dist/Switcher/MobileSwitcherMenu.cjs +24 -78
  250. package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
  251. package/dist/Switcher/MobileSwitcherMenu.d.ts +6 -5
  252. package/dist/Switcher/MobileSwitcherMenu.js +26 -70
  253. package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
  254. package/dist/Table/Table.cjs +22 -22
  255. package/dist/Table/Table.cjs.map +1 -1
  256. package/dist/Table/Table.js +22 -22
  257. package/dist/Table/Table.js.map +1 -1
  258. package/dist/Table/TableBody.cjs +1 -1
  259. package/dist/Table/TableBody.cjs.map +1 -1
  260. package/dist/Table/TableBody.js +1 -1
  261. package/dist/Table/TableBody.js.map +1 -1
  262. package/dist/Table/TableFooter.cjs +12 -14
  263. package/dist/Table/TableFooter.cjs.map +1 -1
  264. package/dist/Table/TableFooter.js +13 -15
  265. package/dist/Table/TableFooter.js.map +1 -1
  266. package/dist/Table/TableHeaders.cjs +1 -0
  267. package/dist/Table/TableHeaders.cjs.map +1 -1
  268. package/dist/Table/TableHeaders.js +1 -0
  269. package/dist/Table/TableHeaders.js.map +1 -1
  270. package/dist/Tabs/TabLink.cjs +2 -3
  271. package/dist/Tabs/TabLink.cjs.map +1 -1
  272. package/dist/Tabs/TabLink.d.ts +1 -2
  273. package/dist/Tabs/TabLink.js +2 -3
  274. package/dist/Tabs/TabLink.js.map +1 -1
  275. package/dist/Tile/Tile.cjs +61 -0
  276. package/dist/Tile/Tile.cjs.map +1 -0
  277. package/dist/Tile/Tile.d.ts +4 -0
  278. package/dist/Tile/Tile.js +43 -0
  279. package/dist/Tile/Tile.js.map +1 -0
  280. package/dist/Tile/TileBody.cjs +37 -0
  281. package/dist/Tile/TileBody.cjs.map +1 -0
  282. package/dist/Tile/TileBody.d.ts +6 -0
  283. package/dist/Tile/TileBody.js +22 -0
  284. package/dist/Tile/TileBody.js.map +1 -0
  285. package/dist/Tile/TileCommonItems.cjs +165 -0
  286. package/dist/Tile/TileCommonItems.cjs.map +1 -0
  287. package/dist/Tile/TileCommonItems.d.ts +9 -0
  288. package/dist/Tile/TileCommonItems.js +126 -0
  289. package/dist/Tile/TileCommonItems.js.map +1 -0
  290. package/dist/Tile/TileFooter.cjs +48 -0
  291. package/dist/Tile/TileFooter.cjs.map +1 -0
  292. package/dist/Tile/TileFooter.d.ts +7 -0
  293. package/dist/Tile/TileFooter.js +32 -0
  294. package/dist/Tile/TileFooter.js.map +1 -0
  295. package/dist/Tile/TileHeader.cjs +90 -0
  296. package/dist/Tile/TileHeader.cjs.map +1 -0
  297. package/dist/Tile/TileHeader.d.ts +7 -0
  298. package/dist/Tile/TileHeader.js +68 -0
  299. package/dist/Tile/TileHeader.js.map +1 -0
  300. package/dist/Tile/TileTypes.cjs +6 -0
  301. package/dist/Tile/TileTypes.cjs.map +1 -0
  302. package/dist/Tile/TileTypes.d.ts +57 -0
  303. package/dist/Tile/TileTypes.js +2 -0
  304. package/dist/Tile/TileTypes.js.map +1 -0
  305. package/dist/Tile/index.cjs +33 -0
  306. package/dist/Tile/index.cjs.map +1 -0
  307. package/dist/Tile/index.d.ts +3 -0
  308. package/dist/Tile/index.js +4 -0
  309. package/dist/Tile/index.js.map +1 -0
  310. package/dist/common/StackState.cjs +47 -0
  311. package/dist/common/StackState.cjs.map +1 -0
  312. package/dist/common/StackState.d.ts +7 -0
  313. package/dist/common/StackState.js +30 -0
  314. package/dist/common/StackState.js.map +1 -0
  315. package/dist/hooks/useClickOutside.cjs +6 -2
  316. package/dist/hooks/useClickOutside.cjs.map +1 -1
  317. package/dist/hooks/useClickOutside.d.ts +1 -1
  318. package/dist/hooks/useClickOutside.js +6 -2
  319. package/dist/hooks/useClickOutside.js.map +1 -1
  320. package/dist/icons/contenticons/ContentIcons.cjs +3214 -3182
  321. package/dist/icons/contenticons/ContentIcons.cjs.map +1 -1
  322. package/dist/icons/contenticons/ContentIcons.d.ts +17 -0
  323. package/dist/icons/contenticons/ContentIcons.js +3341 -3365
  324. package/dist/icons/contenticons/ContentIcons.js.map +1 -1
  325. package/dist/icons/index.cjs +22 -69
  326. package/dist/icons/index.cjs.map +1 -1
  327. package/dist/icons/index.d.ts +1 -4
  328. package/dist/icons/index.js +19 -64
  329. package/dist/icons/index.js.map +1 -1
  330. package/dist/icons/systemicons/SystemIcons.cjs +3216 -2433
  331. package/dist/icons/systemicons/SystemIcons.cjs.map +1 -1
  332. package/dist/icons/systemicons/SystemIcons.d.ts +12 -2
  333. package/dist/icons/systemicons/SystemIcons.js +3016 -2267
  334. package/dist/icons/systemicons/SystemIcons.js.map +1 -1
  335. package/dist/index.cjs +56 -0
  336. package/dist/index.cjs.map +1 -1
  337. package/dist/index.d.ts +4 -0
  338. package/dist/index.js +4 -0
  339. package/dist/index.js.map +1 -1
  340. package/dist/styles/colors.cjs +1 -0
  341. package/dist/styles/colors.cjs.map +1 -1
  342. package/dist/styles/colors.d.ts +1 -0
  343. package/dist/styles/colors.js +1 -0
  344. package/dist/styles/colors.js.map +1 -1
  345. package/dist/styles/z-indexes.cjs +2 -1
  346. package/dist/styles/z-indexes.cjs.map +1 -1
  347. package/dist/styles/z-indexes.d.ts +1 -0
  348. package/dist/styles/z-indexes.js +2 -1
  349. package/dist/styles/z-indexes.js.map +1 -1
  350. package/dist/types.cjs +20 -1
  351. package/dist/types.cjs.map +1 -1
  352. package/dist/types.d.ts +10 -31
  353. package/dist/types.js +17 -0
  354. package/dist/types.js.map +1 -1
  355. package/package.json +13 -9
  356. package/dist/GlobalNavigationBar/Actions.cjs +0 -185
  357. package/dist/GlobalNavigationBar/Actions.cjs.map +0 -1
  358. package/dist/GlobalNavigationBar/Actions.d.ts +0 -13
  359. package/dist/GlobalNavigationBar/Actions.js +0 -160
  360. package/dist/GlobalNavigationBar/Actions.js.map +0 -1
  361. package/dist/GlobalNavigationBar/Avatar.cjs +0 -104
  362. package/dist/GlobalNavigationBar/Avatar.cjs.map +0 -1
  363. package/dist/GlobalNavigationBar/Avatar.d.ts +0 -15
  364. package/dist/GlobalNavigationBar/Avatar.js +0 -77
  365. package/dist/GlobalNavigationBar/Avatar.js.map +0 -1
  366. package/dist/GlobalNavigationBar/ExtendedMainMenu.cjs.map +0 -1
  367. package/dist/GlobalNavigationBar/ExtendedMainMenu.js.map +0 -1
  368. package/dist/GlobalNavigationBar/MainMenu.cjs.map +0 -1
  369. package/dist/GlobalNavigationBar/MainMenu.d.ts +0 -8
  370. package/dist/GlobalNavigationBar/MainMenu.js.map +0 -1
  371. package/dist/GlobalNavigationBar/RightSideNav.cjs.map +0 -1
  372. package/dist/GlobalNavigationBar/RightSideNav.d.ts +0 -8
  373. package/dist/GlobalNavigationBar/RightSideNav.js +0 -61
  374. package/dist/GlobalNavigationBar/RightSideNav.js.map +0 -1
  375. package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs +0 -112
  376. package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs.map +0 -1
  377. package/dist/GlobalNavigationBar/UserMenu/MenuLink.d.ts +0 -11
  378. package/dist/GlobalNavigationBar/UserMenu/MenuLink.js +0 -86
  379. package/dist/GlobalNavigationBar/UserMenu/MenuLink.js.map +0 -1
  380. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs +0 -178
  381. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs.map +0 -1
  382. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.d.ts +0 -16
  383. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.js +0 -146
  384. package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.js.map +0 -1
  385. package/dist/GlobalNavigationBar/UserMenu/UserMenu.cjs +0 -168
  386. package/dist/GlobalNavigationBar/UserMenu/UserMenu.cjs.map +0 -1
  387. package/dist/GlobalNavigationBar/UserMenu/UserMenu.d.ts +0 -15
  388. package/dist/GlobalNavigationBar/UserMenu/UserMenu.js +0 -135
  389. package/dist/GlobalNavigationBar/UserMenu/UserMenu.js.map +0 -1
  390. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.cjs +0 -49
  391. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.cjs.map +0 -1
  392. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.d.ts +0 -6
  393. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.js +0 -27
  394. package/dist/GlobalNavigationBar/mobile/ExitMenuButton.js.map +0 -1
  395. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.cjs +0 -91
  396. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.cjs.map +0 -1
  397. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.d.ts +0 -13
  398. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.js +0 -70
  399. package/dist/GlobalNavigationBar/mobile/MobileActionMenu.js.map +0 -1
@@ -11,6 +11,8 @@ exports.default = void 0;
11
11
 
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
13
 
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
14
16
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
17
 
16
18
  var React = _interopRequireWildcard(require("react"));
@@ -23,8 +25,14 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
23
25
 
24
26
  var _common = require("../common");
25
27
 
28
+ var _CommonStyling = require("./CommonStyling");
29
+
30
+ var _SystemIcons = require("../icons/systemicons/SystemIcons");
31
+
26
32
  var _jsxRuntime = require("react/jsx-runtime");
27
33
 
34
+ var _excluded = ["items", "icon", "disabled", "onClick", "itemsType", "action", "actionLabel", "actionVariant", "actionIcon", "actionLoading", "size", "width", "alignLeft", "multiSelect", "scrollable", "pinTopItem", "maxHeight", "className", "value"];
35
+
28
36
  var _templateObject;
29
37
 
30
38
  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); }
@@ -46,8 +54,8 @@ var DropdownButton = function DropdownButton(_ref) {
46
54
  actionVariant = _ref.actionVariant,
47
55
  actionIcon = _ref.actionIcon,
48
56
  actionLoading = _ref.actionLoading,
49
- width = _ref.width,
50
57
  size = _ref.size,
58
+ width = _ref.width,
51
59
  alignLeft = _ref.alignLeft,
52
60
  _ref$multiSelect = _ref.multiSelect,
53
61
  multiSelect = _ref$multiSelect === void 0 ? false : _ref$multiSelect,
@@ -56,7 +64,9 @@ var DropdownButton = function DropdownButton(_ref) {
56
64
  _ref$pinTopItem = _ref.pinTopItem,
57
65
  pinTopItem = _ref$pinTopItem === void 0 ? false : _ref$pinTopItem,
58
66
  maxHeight = _ref.maxHeight,
59
- className = _ref.className;
67
+ className = _ref.className,
68
+ value = _ref.value,
69
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
60
70
 
61
71
  // Globally used variables within the view.
62
72
  var _React$useState = React.useState(false),
@@ -87,6 +97,12 @@ var DropdownButton = function DropdownButton(_ref) {
87
97
  React.useEffect(function () {
88
98
  !dropdownOpen && setKeyboardNavigated(false);
89
99
  }, [dropdownOpen]);
100
+ React.useEffect(function () {
101
+ disabled && setDropdownOpen(false);
102
+ }, [disabled]);
103
+ React.useEffect(function () {
104
+ setSelectedValues(value || []);
105
+ }, [value]);
90
106
 
91
107
  var handleValueSelect = function handleValueSelect(values) {
92
108
  // Do all required actions
@@ -98,26 +114,68 @@ var DropdownButton = function DropdownButton(_ref) {
98
114
  */
99
115
 
100
116
 
101
- var renderIconButton = function renderIconButton() {
102
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
103
- variant: "secondary",
104
- shape: "circular",
105
- action: function action(event) {
106
- setDropdownOpen(!dropdownOpen);
107
-
108
- if ((event === null || event === void 0 ? void 0 : event.detail) !== 1) {
109
- setKeyboardNavigated(true);
110
- }
111
- },
112
- disabled: disabled,
113
- children: icon
114
- });
117
+ var renderButton = function renderButton() {
118
+ switch (rest.type) {
119
+ case 'icon':
120
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
121
+ variant: "secondary",
122
+ shape: "circular",
123
+ action: function action(event) {
124
+ setDropdownOpen(!dropdownOpen);
125
+
126
+ if ((event === null || event === void 0 ? void 0 : event.detail) !== 1) {
127
+ setKeyboardNavigated(true);
128
+ }
129
+ },
130
+ disabled: disabled,
131
+ children: icon
132
+ });
133
+
134
+ case 'text':
135
+ var label = rest.keepLabel || !(selectedValues !== null && selectedValues !== void 0 && selectedValues.length) ? rest.label : items.filter(function (a) {
136
+ return selectedValues.includes(a.value);
137
+ }).map(function (a) {
138
+ var _a$displayLabel;
139
+
140
+ return (_a$displayLabel = a.displayLabel) !== null && _a$displayLabel !== void 0 ? _a$displayLabel : a.value;
141
+ }).join(', ');
142
+ var cls = "".concat(disabled && 'disabled', " ").concat(dropdownOpen && 'expanded', " ").concat(className);
143
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyling.TextButtonDropdownWrapper, {
144
+ tabIndex: !disabled ? 0 : -1,
145
+ className: cls,
146
+ onMouseDown: _common.defaultOnMouseDownHandler,
147
+ onKeyDown: function onKeyDown(e) {
148
+ if (e.key === 'Enter' || e.key === ' ') {
149
+ e.preventDefault();
150
+ e.stopPropagation();
151
+ setDropdownOpen(!dropdownOpen);
152
+ setKeyboardNavigated(true);
153
+ }
154
+ },
155
+ onClick: function onClick() {
156
+ return !disabled && setDropdownOpen(!dropdownOpen);
157
+ },
158
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CommonStyling.TextButtonDropdownContent, {
159
+ children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyling.TextButtonDropdownIcon, {
160
+ children: icon
161
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyling.TextButtonDropdownText, {
162
+ children: label
163
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyling.TextButtonDropdownArrow, {
164
+ children: dropdownOpen ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowDropUp, {
165
+ size: "24px"
166
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowDropDown, {
167
+ size: "24px"
168
+ })
169
+ })]
170
+ })
171
+ });
172
+ }
115
173
  };
116
174
 
117
175
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Wrapper, {
118
176
  className: className,
119
177
  ref: containerRef,
120
- children: [renderIconButton(), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
178
+ children: [renderButton(), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
121
179
  customizationProps: {
122
180
  itemsType: itemsType,
123
181
  action: action !== null && action !== void 0 ? action : function () {},
@@ -141,7 +199,7 @@ var DropdownButton = function DropdownButton(_ref) {
141
199
  setIsOpen: setDropdownOpen,
142
200
  outline: keyboardNavigated,
143
201
  filter: "",
144
- selectedValues: itemsType == 'normal' ? [] : selectedValues,
202
+ selectedValues: rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues,
145
203
  setSelectedValues: setSelectedValues,
146
204
  messageOnNoResults: "No results",
147
205
  isButton: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","React","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigated","setKeyboardNavigated","containerRef","useEffect","handleValueSelect","values","renderIconButton","event","detail","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {IconButton} from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport {DropdownButtonProps} from './DropdownButtonTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({\n items,\n icon,\n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className\n }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n\n const containerRef = useClickOutsideRef(() => setDropdownOpen(false), [], useFocusOutsideRef(() => setDropdownOpen(false)));\n\n React.useEffect(() => {\n !dropdownOpen && setKeyboardNavigated(false)\n }, [dropdownOpen]);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton variant=\"secondary\"\n shape=\"circular\"\n action={(event: any) => {\n setDropdownOpen(!dropdownOpen);\n if (event?.detail !== 1) {\n setKeyboardNavigated(true);\n }\n }}\n disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper className={className} ref={containerRef}>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n outline={keyboardNavigated}\n filter=\"\"\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults=\"No results\"\n isButton={true}\n id=\"dropdown-content\"\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.cjs"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","size","width","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","value","rest","React","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigated","setKeyboardNavigated","containerRef","useEffect","handleValueSelect","values","renderButton","type","event","detail","label","keepLabel","length","filter","a","includes","map","displayLabel","join","cls","defaultOnMouseDownHandler","e","key","preventDefault","stopPropagation","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {IconButton} from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport {DropdownButtonProps} from './DropdownButtonTypes';\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {\n TextButtonDropdownArrow,\n TextButtonDropdownContent,\n TextButtonDropdownIcon,\n TextButtonDropdownText,\n TextButtonDropdownWrapper\n} from './CommonStyling';\nimport {ArrowDropDown, ArrowDropUp} from '../icons/systemicons/SystemIcons';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({\n items,\n icon,\n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n size,\n width,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className,\n value,\n ...rest\n }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n\n const containerRef = useClickOutsideRef(() => setDropdownOpen(false), [], useFocusOutsideRef(() => setDropdownOpen(false)));\n\n React.useEffect(() => {\n !dropdownOpen && setKeyboardNavigated(false)\n }, [dropdownOpen]);\n\n React.useEffect(() => {\n disabled && setDropdownOpen(false)\n }, [disabled]);\n\n React.useEffect(() => {\n setSelectedValues(value || []);\n }, [value]);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderButton = () => {\n switch (rest.type) {\n case 'icon':\n return (\n <IconButton variant=\"secondary\"\n shape=\"circular\"\n action={(event: any) => {\n setDropdownOpen(!dropdownOpen);\n if (event?.detail !== 1) {\n setKeyboardNavigated(true);\n }\n }}\n disabled={disabled}>\n {icon}\n </IconButton>\n );\n case 'text':\n const label = rest.keepLabel || !selectedValues?.length\n ? rest.label\n : items.filter(a => selectedValues.includes(a.value)).map(a => a.displayLabel ?? a.value).join(', ');\n const cls = `${disabled && 'disabled'} ${dropdownOpen && 'expanded'} ${className}`;\n return <TextButtonDropdownWrapper tabIndex={!disabled ? 0 : -1}\n className={cls}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n setDropdownOpen(!dropdownOpen);\n setKeyboardNavigated(true);\n }\n }}\n onClick={() => !disabled && setDropdownOpen(!dropdownOpen)}>\n <TextButtonDropdownContent>\n {icon && <TextButtonDropdownIcon>{icon}</TextButtonDropdownIcon>}\n <TextButtonDropdownText>{label}</TextButtonDropdownText>\n <TextButtonDropdownArrow>\n {\n dropdownOpen\n ? <ArrowDropUp size=\"24px\"/>\n : <ArrowDropDown size=\"24px\"/>\n }\n </TextButtonDropdownArrow>\n </TextButtonDropdownContent>\n </TextButtonDropdownWrapper>\n }\n };\n\n return (\n <Wrapper className={className} ref={containerRef}>\n {renderButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n outline={keyboardNavigated}\n filter=\"\"\n selectedValues={rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults=\"No results\"\n isButton={true}\n id=\"dropdown-content\"\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.cjs"}
@@ -2,5 +2,5 @@
2
2
  * Import custom types.
3
3
  */
4
4
  import { DropdownButtonProps } from './DropdownButtonTypes';
5
- declare const DropdownButton: ({ items, icon, disabled, onClick, itemsType, action, actionLabel, actionVariant, actionIcon, actionLoading, width, size, alignLeft, multiSelect, scrollable, pinTopItem, maxHeight, className }: DropdownButtonProps) => JSX.Element;
5
+ declare const DropdownButton: ({ items, icon, disabled, onClick, itemsType, action, actionLabel, actionVariant, actionIcon, actionLoading, size, width, alignLeft, multiSelect, scrollable, pinTopItem, maxHeight, className, value, ...rest }: DropdownButtonProps) => JSX.Element;
6
6
  export default DropdownButton;
@@ -1,5 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
3
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
4
+ var _excluded = ["items", "icon", "disabled", "onClick", "itemsType", "action", "actionLabel", "actionVariant", "actionIcon", "actionLoading", "size", "width", "alignLeft", "multiSelect", "scrollable", "pinTopItem", "maxHeight", "className", "value"];
3
5
 
4
6
  var _templateObject;
5
7
 
@@ -18,7 +20,9 @@ import styled from 'styled-components';
18
20
  * Import custom types.
19
21
  */
20
22
 
21
- import { useClickOutsideRef, useFocusOutsideRef } from '../common';
23
+ import { defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef } from '../common';
24
+ import { TextButtonDropdownArrow, TextButtonDropdownContent, TextButtonDropdownIcon, TextButtonDropdownText, TextButtonDropdownWrapper } from './CommonStyling';
25
+ import { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';
22
26
  import { jsx as _jsx } from "react/jsx-runtime";
23
27
  import { jsxs as _jsxs } from "react/jsx-runtime";
24
28
  var Wrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n display: inline-block;\n"])));
@@ -36,8 +40,8 @@ var DropdownButton = function DropdownButton(_ref) {
36
40
  actionVariant = _ref.actionVariant,
37
41
  actionIcon = _ref.actionIcon,
38
42
  actionLoading = _ref.actionLoading,
39
- width = _ref.width,
40
43
  size = _ref.size,
44
+ width = _ref.width,
41
45
  alignLeft = _ref.alignLeft,
42
46
  _ref$multiSelect = _ref.multiSelect,
43
47
  multiSelect = _ref$multiSelect === void 0 ? false : _ref$multiSelect,
@@ -46,7 +50,9 @@ var DropdownButton = function DropdownButton(_ref) {
46
50
  _ref$pinTopItem = _ref.pinTopItem,
47
51
  pinTopItem = _ref$pinTopItem === void 0 ? false : _ref$pinTopItem,
48
52
  maxHeight = _ref.maxHeight,
49
- className = _ref.className;
53
+ className = _ref.className,
54
+ value = _ref.value,
55
+ rest = _objectWithoutProperties(_ref, _excluded);
50
56
 
51
57
  // Globally used variables within the view.
52
58
  var _React$useState = React.useState(false),
@@ -77,6 +83,12 @@ var DropdownButton = function DropdownButton(_ref) {
77
83
  React.useEffect(function () {
78
84
  !dropdownOpen && setKeyboardNavigated(false);
79
85
  }, [dropdownOpen]);
86
+ React.useEffect(function () {
87
+ disabled && setDropdownOpen(false);
88
+ }, [disabled]);
89
+ React.useEffect(function () {
90
+ setSelectedValues(value || []);
91
+ }, [value]);
80
92
 
81
93
  var handleValueSelect = function handleValueSelect(values) {
82
94
  // Do all required actions
@@ -88,26 +100,68 @@ var DropdownButton = function DropdownButton(_ref) {
88
100
  */
89
101
 
90
102
 
91
- var renderIconButton = function renderIconButton() {
92
- return /*#__PURE__*/_jsx(IconButton, {
93
- variant: "secondary",
94
- shape: "circular",
95
- action: function action(event) {
96
- setDropdownOpen(!dropdownOpen);
97
-
98
- if ((event === null || event === void 0 ? void 0 : event.detail) !== 1) {
99
- setKeyboardNavigated(true);
100
- }
101
- },
102
- disabled: disabled,
103
- children: icon
104
- });
103
+ var renderButton = function renderButton() {
104
+ switch (rest.type) {
105
+ case 'icon':
106
+ return /*#__PURE__*/_jsx(IconButton, {
107
+ variant: "secondary",
108
+ shape: "circular",
109
+ action: function action(event) {
110
+ setDropdownOpen(!dropdownOpen);
111
+
112
+ if ((event === null || event === void 0 ? void 0 : event.detail) !== 1) {
113
+ setKeyboardNavigated(true);
114
+ }
115
+ },
116
+ disabled: disabled,
117
+ children: icon
118
+ });
119
+
120
+ case 'text':
121
+ var label = rest.keepLabel || !(selectedValues !== null && selectedValues !== void 0 && selectedValues.length) ? rest.label : items.filter(function (a) {
122
+ return selectedValues.includes(a.value);
123
+ }).map(function (a) {
124
+ var _a$displayLabel;
125
+
126
+ return (_a$displayLabel = a.displayLabel) !== null && _a$displayLabel !== void 0 ? _a$displayLabel : a.value;
127
+ }).join(', ');
128
+ var cls = "".concat(disabled && 'disabled', " ").concat(dropdownOpen && 'expanded', " ").concat(className);
129
+ return /*#__PURE__*/_jsx(TextButtonDropdownWrapper, {
130
+ tabIndex: !disabled ? 0 : -1,
131
+ className: cls,
132
+ onMouseDown: defaultOnMouseDownHandler,
133
+ onKeyDown: function onKeyDown(e) {
134
+ if (e.key === 'Enter' || e.key === ' ') {
135
+ e.preventDefault();
136
+ e.stopPropagation();
137
+ setDropdownOpen(!dropdownOpen);
138
+ setKeyboardNavigated(true);
139
+ }
140
+ },
141
+ onClick: function onClick() {
142
+ return !disabled && setDropdownOpen(!dropdownOpen);
143
+ },
144
+ children: /*#__PURE__*/_jsxs(TextButtonDropdownContent, {
145
+ children: [icon && /*#__PURE__*/_jsx(TextButtonDropdownIcon, {
146
+ children: icon
147
+ }), /*#__PURE__*/_jsx(TextButtonDropdownText, {
148
+ children: label
149
+ }), /*#__PURE__*/_jsx(TextButtonDropdownArrow, {
150
+ children: dropdownOpen ? /*#__PURE__*/_jsx(ArrowDropUp, {
151
+ size: "24px"
152
+ }) : /*#__PURE__*/_jsx(ArrowDropDown, {
153
+ size: "24px"
154
+ })
155
+ })]
156
+ })
157
+ });
158
+ }
105
159
  };
106
160
 
107
161
  return /*#__PURE__*/_jsxs(Wrapper, {
108
162
  className: className,
109
163
  ref: containerRef,
110
- children: [renderIconButton(), /*#__PURE__*/_jsx(DropdownContent, {
164
+ children: [renderButton(), /*#__PURE__*/_jsx(DropdownContent, {
111
165
  customizationProps: {
112
166
  itemsType: itemsType,
113
167
  action: action !== null && action !== void 0 ? action : function () {},
@@ -131,7 +185,7 @@ var DropdownButton = function DropdownButton(_ref) {
131
185
  setIsOpen: setDropdownOpen,
132
186
  outline: keyboardNavigated,
133
187
  filter: "",
134
- selectedValues: itemsType == 'normal' ? [] : selectedValues,
188
+ selectedValues: rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues,
135
189
  setSelectedValues: setSelectedValues,
136
190
  messageOnNoResults: "No results",
137
191
  isButton: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["React","IconButton","DropdownContent","styled","useClickOutsideRef","useFocusOutsideRef","Wrapper","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigated","setKeyboardNavigated","containerRef","useEffect","handleValueSelect","values","renderIconButton","event","detail","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {IconButton} from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport {DropdownButtonProps} from './DropdownButtonTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({\n items,\n icon,\n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className\n }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n\n const containerRef = useClickOutsideRef(() => setDropdownOpen(false), [], useFocusOutsideRef(() => setDropdownOpen(false)));\n\n React.useEffect(() => {\n !dropdownOpen && setKeyboardNavigated(false)\n }, [dropdownOpen]);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton variant=\"secondary\"\n shape=\"circular\"\n action={(event: any) => {\n setDropdownOpen(!dropdownOpen);\n if (event?.detail !== 1) {\n setKeyboardNavigated(true);\n }\n }}\n disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper className={className} ref={containerRef}>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n outline={keyboardNavigated}\n filter=\"\"\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults=\"No results\"\n isButton={true}\n id=\"dropdown-content\"\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["React","IconButton","DropdownContent","styled","defaultOnMouseDownHandler","useClickOutsideRef","useFocusOutsideRef","TextButtonDropdownArrow","TextButtonDropdownContent","TextButtonDropdownIcon","TextButtonDropdownText","TextButtonDropdownWrapper","ArrowDropDown","ArrowDropUp","Wrapper","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","size","width","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","value","rest","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigated","setKeyboardNavigated","containerRef","useEffect","handleValueSelect","values","renderButton","type","event","detail","label","keepLabel","length","filter","a","includes","map","displayLabel","join","cls","e","key","preventDefault","stopPropagation","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {IconButton} from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport {DropdownButtonProps} from './DropdownButtonTypes';\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {\n TextButtonDropdownArrow,\n TextButtonDropdownContent,\n TextButtonDropdownIcon,\n TextButtonDropdownText,\n TextButtonDropdownWrapper\n} from './CommonStyling';\nimport {ArrowDropDown, ArrowDropUp} from '../icons/systemicons/SystemIcons';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({\n items,\n icon,\n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n size,\n width,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className,\n value,\n ...rest\n }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n\n const containerRef = useClickOutsideRef(() => setDropdownOpen(false), [], useFocusOutsideRef(() => setDropdownOpen(false)));\n\n React.useEffect(() => {\n !dropdownOpen && setKeyboardNavigated(false)\n }, [dropdownOpen]);\n\n React.useEffect(() => {\n disabled && setDropdownOpen(false)\n }, [disabled]);\n\n React.useEffect(() => {\n setSelectedValues(value || []);\n }, [value]);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderButton = () => {\n switch (rest.type) {\n case 'icon':\n return (\n <IconButton variant=\"secondary\"\n shape=\"circular\"\n action={(event: any) => {\n setDropdownOpen(!dropdownOpen);\n if (event?.detail !== 1) {\n setKeyboardNavigated(true);\n }\n }}\n disabled={disabled}>\n {icon}\n </IconButton>\n );\n case 'text':\n const label = rest.keepLabel || !selectedValues?.length\n ? rest.label\n : items.filter(a => selectedValues.includes(a.value)).map(a => a.displayLabel ?? a.value).join(', ');\n const cls = `${disabled && 'disabled'} ${dropdownOpen && 'expanded'} ${className}`;\n return <TextButtonDropdownWrapper tabIndex={!disabled ? 0 : -1}\n className={cls}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n setDropdownOpen(!dropdownOpen);\n setKeyboardNavigated(true);\n }\n }}\n onClick={() => !disabled && setDropdownOpen(!dropdownOpen)}>\n <TextButtonDropdownContent>\n {icon && <TextButtonDropdownIcon>{icon}</TextButtonDropdownIcon>}\n <TextButtonDropdownText>{label}</TextButtonDropdownText>\n <TextButtonDropdownArrow>\n {\n dropdownOpen\n ? <ArrowDropUp size=\"24px\"/>\n : <ArrowDropDown size=\"24px\"/>\n }\n </TextButtonDropdownArrow>\n </TextButtonDropdownContent>\n </TextButtonDropdownWrapper>\n }\n };\n\n return (\n <Wrapper className={className} ref={containerRef}>\n {renderButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n outline={keyboardNavigated}\n filter=\"\"\n selectedValues={rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults=\"No results\"\n isButton={true}\n id=\"dropdown-content\"\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
@@ -1,10 +1,9 @@
1
1
  import { Size } from '../types';
2
2
  import { DropdownItem } from './DropdownContent';
3
- export interface DropdownButtonProps {
3
+ export interface DropdownButtonBaseProps {
4
4
  items: DropdownItem[];
5
+ value?: string[];
5
6
  onClick: (value: string[]) => void;
6
- icon?: React.ReactNode;
7
- width?: string;
8
7
  disabled?: boolean;
9
8
  size?: Size;
10
9
  itemsType?: 'normal' | 'radio' | 'checkbox';
@@ -15,8 +14,20 @@ export interface DropdownButtonProps {
15
14
  actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;
16
15
  multiSelect?: boolean;
17
16
  scrollable?: boolean;
18
- pinTopItem?: boolean;
19
- alignLeft?: boolean;
20
17
  maxHeight?: string;
18
+ pinTopItem?: boolean;
21
19
  className?: string;
20
+ icon?: React.ReactNode;
21
+ width?: string;
22
+ alignLeft?: boolean;
22
23
  }
24
+ export declare type IconDropdownButtonProps = DropdownButtonBaseProps & {
25
+ type: 'icon';
26
+ icon: React.ReactNode;
27
+ };
28
+ export declare type TextDropdownButtonProps = DropdownButtonBaseProps & {
29
+ type: 'text';
30
+ label?: string;
31
+ keepLabel?: boolean;
32
+ };
33
+ export declare type DropdownButtonProps = IconDropdownButtonProps | TextDropdownButtonProps;