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

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 (471) hide show
  1. package/dist/Accordion/ContentAccordion.cjs +1 -1
  2. package/dist/Accordion/ContentAccordion.cjs.map +1 -1
  3. package/dist/Accordion/ContentAccordion.js +2 -2
  4. package/dist/Accordion/ContentAccordion.js.map +1 -1
  5. package/dist/Accordion/styles.cjs +1 -1
  6. package/dist/Accordion/styles.cjs.map +1 -1
  7. package/dist/Accordion/styles.js +2 -2
  8. package/dist/Accordion/styles.js.map +1 -1
  9. package/dist/Banners/Banner.cjs +3 -3
  10. package/dist/Banners/Banner.cjs.map +1 -1
  11. package/dist/Banners/Banner.js +3 -3
  12. package/dist/Banners/Banner.js.map +1 -1
  13. package/dist/Banners/styles.cjs +1 -1
  14. package/dist/Banners/styles.cjs.map +1 -1
  15. package/dist/Banners/styles.js +1 -1
  16. package/dist/Banners/styles.js.map +1 -1
  17. package/dist/Breadcrumb/Breadcrumb.cjs +1 -0
  18. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  19. package/dist/Breadcrumb/Breadcrumb.js +1 -0
  20. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  21. package/dist/Button/BackButton.cjs +5 -2
  22. package/dist/Button/BackButton.cjs.map +1 -1
  23. package/dist/Button/BackButton.js +5 -3
  24. package/dist/Button/BackButton.js.map +1 -1
  25. package/dist/Button/Button.cjs +14 -28
  26. package/dist/Button/Button.cjs.map +1 -1
  27. package/dist/Button/Button.d.ts +3 -2
  28. package/dist/Button/Button.js +15 -29
  29. package/dist/Button/Button.js.map +1 -1
  30. package/dist/Button/DualFunctionButton.cjs +30 -8
  31. package/dist/Button/DualFunctionButton.cjs.map +1 -1
  32. package/dist/Button/DualFunctionButton.js +28 -7
  33. package/dist/Button/DualFunctionButton.js.map +1 -1
  34. package/dist/Button/Iconbutton.cjs +23 -32
  35. package/dist/Button/Iconbutton.cjs.map +1 -1
  36. package/dist/Button/Iconbutton.d.ts +3 -0
  37. package/dist/Button/Iconbutton.js +20 -32
  38. package/dist/Button/Iconbutton.js.map +1 -1
  39. package/dist/Card/Card.cjs +28 -44
  40. package/dist/Card/Card.cjs.map +1 -1
  41. package/dist/Card/Card.d.ts +3 -11
  42. package/dist/Card/Card.js +26 -44
  43. package/dist/Card/Card.js.map +1 -1
  44. package/dist/Card/CardBottomSection.cjs +33 -24
  45. package/dist/Card/CardBottomSection.cjs.map +1 -1
  46. package/dist/Card/CardBottomSection.d.ts +11 -2
  47. package/dist/Card/CardBottomSection.js +17 -24
  48. package/dist/Card/CardBottomSection.js.map +1 -1
  49. package/dist/Card/CardMiddleSection.cjs +38 -17
  50. package/dist/Card/CardMiddleSection.cjs.map +1 -1
  51. package/dist/Card/CardMiddleSection.d.ts +16 -3
  52. package/dist/Card/CardMiddleSection.js +30 -17
  53. package/dist/Card/CardMiddleSection.js.map +1 -1
  54. package/dist/Card/CardTopSection.cjs +27 -20
  55. package/dist/Card/CardTopSection.cjs.map +1 -1
  56. package/dist/Card/CardTopSection.d.ts +12 -4
  57. package/dist/Card/CardTopSection.js +17 -20
  58. package/dist/Card/CardTopSection.js.map +1 -1
  59. package/dist/Card/index.cjs +45 -9
  60. package/dist/Card/index.cjs.map +1 -1
  61. package/dist/Card/index.d.ts +3 -1
  62. package/dist/Card/index.js +3 -1
  63. package/dist/Card/index.js.map +1 -1
  64. package/dist/Chips/ActionChip.cjs +4 -4
  65. package/dist/Chips/ActionChip.cjs.map +1 -1
  66. package/dist/Chips/ActionChip.js +4 -4
  67. package/dist/Chips/ActionChip.js.map +1 -1
  68. package/dist/Chips/ChipStyles.cjs +5 -17
  69. package/dist/Chips/ChipStyles.cjs.map +1 -1
  70. package/dist/Chips/ChipStyles.d.ts +0 -3
  71. package/dist/Chips/ChipStyles.js +5 -8
  72. package/dist/Chips/ChipStyles.js.map +1 -1
  73. package/dist/Chips/ChipTypes.d.ts +8 -20
  74. package/dist/Chips/ChoiceChips.cjs +2 -2
  75. package/dist/Chips/ChoiceChips.cjs.map +1 -1
  76. package/dist/Chips/ChoiceChips.js +2 -2
  77. package/dist/Chips/ChoiceChips.js.map +1 -1
  78. package/dist/Chips/FilterChip.cjs +3 -3
  79. package/dist/Chips/FilterChip.cjs.map +1 -1
  80. package/dist/Chips/FilterChip.js +3 -3
  81. package/dist/Chips/FilterChip.js.map +1 -1
  82. package/dist/Chips/InputChip.cjs +21 -12
  83. package/dist/Chips/InputChip.cjs.map +1 -1
  84. package/dist/Chips/InputChip.js +21 -13
  85. package/dist/Chips/InputChip.js.map +1 -1
  86. package/dist/Chips/index.cjs +1 -1
  87. package/dist/Chips/index.cjs.map +1 -1
  88. package/dist/Chips/index.d.ts +1 -1
  89. package/dist/Chips/index.js +1 -1
  90. package/dist/Chips/index.js.map +1 -1
  91. package/dist/ChipsInput/ChipDropdownInput.cjs +400 -0
  92. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -0
  93. package/dist/ChipsInput/ChipDropdownInput.d.ts +21 -0
  94. package/dist/ChipsInput/ChipDropdownInput.js +382 -0
  95. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -0
  96. package/dist/ChipsInput/ChipInput.cjs +139 -0
  97. package/dist/ChipsInput/ChipInput.cjs.map +1 -0
  98. package/dist/{Chips → ChipsInput}/ChipInput.d.ts +1 -4
  99. package/dist/ChipsInput/ChipInput.js +120 -0
  100. package/dist/ChipsInput/ChipInput.js.map +1 -0
  101. package/dist/ChipsInput/ChipInputField.cjs +232 -0
  102. package/dist/ChipsInput/ChipInputField.cjs.map +1 -0
  103. package/dist/ChipsInput/ChipInputField.d.ts +25 -0
  104. package/dist/ChipsInput/ChipInputField.js +192 -0
  105. package/dist/ChipsInput/ChipInputField.js.map +1 -0
  106. package/dist/ChipsInput/ChipInputTypes.cjs +6 -0
  107. package/dist/ChipsInput/ChipInputTypes.cjs.map +1 -0
  108. package/dist/ChipsInput/ChipInputTypes.d.ts +22 -0
  109. package/dist/ChipsInput/ChipInputTypes.js +2 -0
  110. package/dist/ChipsInput/ChipInputTypes.js.map +1 -0
  111. package/dist/ChipsInput/index.cjs +19 -0
  112. package/dist/ChipsInput/index.cjs.map +1 -0
  113. package/dist/ChipsInput/index.d.ts +1 -0
  114. package/dist/ChipsInput/index.js +2 -0
  115. package/dist/ChipsInput/index.js.map +1 -0
  116. package/dist/Dropdown/BasicDropdown.cjs +40 -20
  117. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  118. package/dist/Dropdown/BasicDropdown.d.ts +2 -2
  119. package/dist/Dropdown/BasicDropdown.js +43 -22
  120. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  121. package/dist/Dropdown/CommonStyling.cjs +32 -18
  122. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  123. package/dist/Dropdown/CommonStyling.d.ts +7 -6
  124. package/dist/Dropdown/CommonStyling.js +18 -17
  125. package/dist/Dropdown/CommonStyling.js.map +1 -1
  126. package/dist/Dropdown/DropdownButton.cjs +94 -29
  127. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  128. package/dist/Dropdown/DropdownButton.d.ts +1 -1
  129. package/dist/Dropdown/DropdownButton.js +89 -29
  130. package/dist/Dropdown/DropdownButton.js.map +1 -1
  131. package/dist/Dropdown/DropdownButtonTypes.d.ts +16 -5
  132. package/dist/Dropdown/DropdownContent.cjs +167 -132
  133. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  134. package/dist/Dropdown/DropdownContent.d.ts +2 -2
  135. package/dist/Dropdown/DropdownContent.js +164 -133
  136. package/dist/Dropdown/DropdownContent.js.map +1 -1
  137. package/dist/Dropdown/DropdownFilter.cjs +135 -153
  138. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  139. package/dist/Dropdown/DropdownFilter.d.ts +9 -15
  140. package/dist/Dropdown/DropdownFilter.js +133 -153
  141. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  142. package/dist/Dropdown/index.cjs +0 -8
  143. package/dist/Dropdown/index.cjs.map +1 -1
  144. package/dist/Dropdown/index.d.ts +1 -2
  145. package/dist/Dropdown/index.js +1 -2
  146. package/dist/Dropdown/index.js.map +1 -1
  147. package/dist/Footer/Components/FooterDropdownLinks.cjs +6 -3
  148. package/dist/Footer/Components/FooterDropdownLinks.cjs.map +1 -1
  149. package/dist/Footer/Components/FooterDropdownLinks.js +6 -4
  150. package/dist/Footer/Components/FooterDropdownLinks.js.map +1 -1
  151. package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs +5 -3
  152. package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs.map +1 -1
  153. package/dist/Footer/Components/FooterNewsletterAndSocialSection.js +5 -4
  154. package/dist/Footer/Components/FooterNewsletterAndSocialSection.js.map +1 -1
  155. package/dist/Footer/Components/FooterTop.cjs +2 -1
  156. package/dist/Footer/Components/FooterTop.cjs.map +1 -1
  157. package/dist/Footer/Components/FooterTop.js +3 -2
  158. package/dist/Footer/Components/FooterTop.js.map +1 -1
  159. package/dist/GlobalNavigationBar/Avatar.cjs +5 -7
  160. package/dist/GlobalNavigationBar/Avatar.cjs.map +1 -1
  161. package/dist/GlobalNavigationBar/Avatar.js +5 -8
  162. package/dist/GlobalNavigationBar/Avatar.js.map +1 -1
  163. package/dist/GlobalNavigationBar/Logo.cjs +9 -6
  164. package/dist/GlobalNavigationBar/Logo.cjs.map +1 -1
  165. package/dist/GlobalNavigationBar/Logo.d.ts +2 -1
  166. package/dist/GlobalNavigationBar/Logo.js +9 -7
  167. package/dist/GlobalNavigationBar/Logo.js.map +1 -1
  168. package/dist/GlobalNavigationBar/MainMenu.cjs +10 -13
  169. package/dist/GlobalNavigationBar/MainMenu.cjs.map +1 -1
  170. package/dist/GlobalNavigationBar/MainMenu.js +9 -13
  171. package/dist/GlobalNavigationBar/MainMenu.js.map +1 -1
  172. package/dist/GlobalNavigationBar/RightSideNav.cjs +3 -5
  173. package/dist/GlobalNavigationBar/RightSideNav.cjs.map +1 -1
  174. package/dist/GlobalNavigationBar/RightSideNav.js +2 -5
  175. package/dist/GlobalNavigationBar/RightSideNav.js.map +1 -1
  176. package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs +4 -0
  177. package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs.map +1 -1
  178. package/dist/GlobalNavigationBar/UserMenu/MenuLink.js +3 -0
  179. package/dist/GlobalNavigationBar/UserMenu/MenuLink.js.map +1 -1
  180. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +1 -1
  181. package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
  182. package/dist/GlobalNavigationBar/mobile/CommonStyles.js +2 -2
  183. package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
  184. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +1 -1
  185. package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
  186. package/dist/GlobalNavigationBar/mobile/MobileMenu.js +2 -2
  187. package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
  188. package/dist/HyperLink/styling.cjs +1 -1
  189. package/dist/HyperLink/styling.cjs.map +1 -1
  190. package/dist/HyperLink/styling.js +1 -1
  191. package/dist/HyperLink/styling.js.map +1 -1
  192. package/dist/Image/ImageWithFallbacks.cjs +3 -1
  193. package/dist/Image/ImageWithFallbacks.cjs.map +1 -1
  194. package/dist/Image/ImageWithFallbacks.js +3 -1
  195. package/dist/Image/ImageWithFallbacks.js.map +1 -1
  196. package/dist/InputFields/Checkbox.cjs +20 -17
  197. package/dist/InputFields/Checkbox.cjs.map +1 -1
  198. package/dist/InputFields/Checkbox.d.ts +4 -3
  199. package/dist/InputFields/Checkbox.js +21 -18
  200. package/dist/InputFields/Checkbox.js.map +1 -1
  201. package/dist/InputFields/DatepickerField.cjs +15 -17
  202. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  203. package/dist/InputFields/DatepickerField.d.ts +3 -3
  204. package/dist/InputFields/DatepickerField.js +16 -22
  205. package/dist/InputFields/DatepickerField.js.map +1 -1
  206. package/dist/InputFields/NumberField.cjs +276 -0
  207. package/dist/InputFields/NumberField.cjs.map +1 -0
  208. package/dist/InputFields/NumberField.d.ts +21 -0
  209. package/dist/InputFields/NumberField.js +240 -0
  210. package/dist/InputFields/NumberField.js.map +1 -0
  211. package/dist/InputFields/PasswordField.cjs +21 -17
  212. package/dist/InputFields/PasswordField.cjs.map +1 -1
  213. package/dist/InputFields/PasswordField.d.ts +2 -3
  214. package/dist/InputFields/PasswordField.js +19 -15
  215. package/dist/InputFields/PasswordField.js.map +1 -1
  216. package/dist/InputFields/QuickSearch.cjs +119 -96
  217. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  218. package/dist/InputFields/QuickSearch.js +119 -96
  219. package/dist/InputFields/QuickSearch.js.map +1 -1
  220. package/dist/InputFields/RadioButton.cjs +14 -13
  221. package/dist/InputFields/RadioButton.cjs.map +1 -1
  222. package/dist/InputFields/RadioButton.d.ts +2 -1
  223. package/dist/InputFields/RadioButton.js +16 -13
  224. package/dist/InputFields/RadioButton.js.map +1 -1
  225. package/dist/InputFields/SearchBar.cjs +5 -5
  226. package/dist/InputFields/SearchBar.cjs.map +1 -1
  227. package/dist/InputFields/SearchBar.js +6 -6
  228. package/dist/InputFields/SearchBar.js.map +1 -1
  229. package/dist/InputFields/TextField.cjs +12 -27
  230. package/dist/InputFields/TextField.cjs.map +1 -1
  231. package/dist/InputFields/TextField.d.ts +4 -6
  232. package/dist/InputFields/TextField.js +12 -27
  233. package/dist/InputFields/TextField.js.map +1 -1
  234. package/dist/InputFields/Textarea.cjs +3 -14
  235. package/dist/InputFields/Textarea.cjs.map +1 -1
  236. package/dist/InputFields/Textarea.d.ts +0 -1
  237. package/dist/InputFields/Textarea.js +5 -14
  238. package/dist/InputFields/Textarea.js.map +1 -1
  239. package/dist/InputFields/components/SearchBarInput.cjs +6 -8
  240. package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
  241. package/dist/InputFields/components/SearchBarInput.d.ts +0 -3
  242. package/dist/InputFields/components/SearchBarInput.js +4 -5
  243. package/dist/InputFields/components/SearchBarInput.js.map +1 -1
  244. package/dist/InputFields/components/SearchField.cjs +29 -21
  245. package/dist/InputFields/components/SearchField.cjs.map +1 -1
  246. package/dist/InputFields/components/SearchField.d.ts +8 -8
  247. package/dist/InputFields/components/SearchField.js +25 -19
  248. package/dist/InputFields/components/SearchField.js.map +1 -1
  249. package/dist/InputFields/index.cjs +8 -0
  250. package/dist/InputFields/index.cjs.map +1 -1
  251. package/dist/InputFields/index.d.ts +2 -1
  252. package/dist/InputFields/index.js +2 -1
  253. package/dist/InputFields/index.js.map +1 -1
  254. package/dist/InputFields/styling.cjs +16 -26
  255. package/dist/InputFields/styling.cjs.map +1 -1
  256. package/dist/InputFields/styling.d.ts +3 -6
  257. package/dist/InputFields/styling.js +15 -23
  258. package/dist/InputFields/styling.js.map +1 -1
  259. package/dist/List/ListRow.cjs +6 -5
  260. package/dist/List/ListRow.cjs.map +1 -1
  261. package/dist/List/ListRow.js +9 -5
  262. package/dist/List/ListRow.js.map +1 -1
  263. package/dist/LoadingIndicator/LoadingIndicator.cjs +6 -1
  264. package/dist/LoadingIndicator/LoadingIndicator.cjs.map +1 -1
  265. package/dist/LoadingIndicator/LoadingIndicator.d.ts +2 -1
  266. package/dist/LoadingIndicator/LoadingIndicator.js +6 -1
  267. package/dist/LoadingIndicator/LoadingIndicator.js.map +1 -1
  268. package/dist/MenuItem/MenuItem.cjs +6 -2
  269. package/dist/MenuItem/MenuItem.cjs.map +1 -1
  270. package/dist/MenuItem/MenuItem.d.ts +1 -0
  271. package/dist/MenuItem/MenuItem.js +7 -3
  272. package/dist/MenuItem/MenuItem.js.map +1 -1
  273. package/dist/Modals/ModalContainer.cjs +78 -38
  274. package/dist/Modals/ModalContainer.cjs.map +1 -1
  275. package/dist/Modals/ModalContainer.d.ts +15 -8
  276. package/dist/Modals/ModalContainer.js +78 -36
  277. package/dist/Modals/ModalContainer.js.map +1 -1
  278. package/dist/Modals/ModalContent.cjs +0 -1
  279. package/dist/Modals/ModalContent.cjs.map +1 -1
  280. package/dist/Modals/ModalContent.d.ts +0 -1
  281. package/dist/Modals/ModalContent.js +0 -1
  282. package/dist/Modals/ModalContent.js.map +1 -1
  283. package/dist/Modals/ModalDialog.cjs +18 -26
  284. package/dist/Modals/ModalDialog.cjs.map +1 -1
  285. package/dist/Modals/ModalDialog.d.ts +1 -1
  286. package/dist/Modals/ModalDialog.js +19 -26
  287. package/dist/Modals/ModalDialog.js.map +1 -1
  288. package/dist/Modals/ModalStyles.cjs +33 -25
  289. package/dist/Modals/ModalStyles.cjs.map +1 -1
  290. package/dist/Modals/ModalStyles.d.ts +7 -1
  291. package/dist/Modals/ModalStyles.js +26 -24
  292. package/dist/Modals/ModalStyles.js.map +1 -1
  293. package/dist/NavItem/NavItem.cjs +1 -1
  294. package/dist/NavItem/NavItem.cjs.map +1 -1
  295. package/dist/NavItem/NavItem.js +2 -2
  296. package/dist/NavItem/NavItem.js.map +1 -1
  297. package/dist/Paginator/Paginator.cjs +1 -1
  298. package/dist/Paginator/Paginator.cjs.map +1 -1
  299. package/dist/Paginator/Paginator.js +2 -2
  300. package/dist/Paginator/Paginator.js.map +1 -1
  301. package/dist/QuizButton/QuizButton.cjs +4 -8
  302. package/dist/QuizButton/QuizButton.cjs.map +1 -1
  303. package/dist/QuizButton/QuizButton.js +5 -9
  304. package/dist/QuizButton/QuizButton.js.map +1 -1
  305. package/dist/SegmentControl/SegmentControl.cjs +1 -1
  306. package/dist/SegmentControl/SegmentControl.cjs.map +1 -1
  307. package/dist/SegmentControl/SegmentControl.js +2 -2
  308. package/dist/SegmentControl/SegmentControl.js.map +1 -1
  309. package/dist/Switcher/SwitcherMenuItem.cjs +1 -1
  310. package/dist/Switcher/SwitcherMenuItem.cjs.map +1 -1
  311. package/dist/Switcher/SwitcherMenuItem.js +2 -2
  312. package/dist/Switcher/SwitcherMenuItem.js.map +1 -1
  313. package/dist/Table/TableBody.cjs +1 -1
  314. package/dist/Table/TableBody.cjs.map +1 -1
  315. package/dist/Table/TableBody.js +1 -1
  316. package/dist/Table/TableBody.js.map +1 -1
  317. package/dist/Table/TableFooter.cjs +12 -14
  318. package/dist/Table/TableFooter.cjs.map +1 -1
  319. package/dist/Table/TableFooter.js +13 -15
  320. package/dist/Table/TableFooter.js.map +1 -1
  321. package/dist/Table/TableHeaders.cjs +1 -0
  322. package/dist/Table/TableHeaders.cjs.map +1 -1
  323. package/dist/Table/TableHeaders.js +1 -0
  324. package/dist/Table/TableHeaders.js.map +1 -1
  325. package/dist/Table/TableStyles.cjs +4 -4
  326. package/dist/Table/TableStyles.cjs.map +1 -1
  327. package/dist/Table/TableStyles.js +5 -5
  328. package/dist/Table/TableStyles.js.map +1 -1
  329. package/dist/Tabs/HorizontalTabs.cjs +5 -1
  330. package/dist/Tabs/HorizontalTabs.cjs.map +1 -1
  331. package/dist/Tabs/HorizontalTabs.js +6 -3
  332. package/dist/Tabs/HorizontalTabs.js.map +1 -1
  333. package/dist/Tabs/TabLink.cjs +48 -45
  334. package/dist/Tabs/TabLink.cjs.map +1 -1
  335. package/dist/Tabs/TabLink.js +47 -46
  336. package/dist/Tabs/TabLink.js.map +1 -1
  337. package/dist/Tabs/VerticalTabs.cjs.map +1 -1
  338. package/dist/Tabs/VerticalTabs.js.map +1 -1
  339. package/dist/Tile/Tile.cjs +61 -0
  340. package/dist/Tile/Tile.cjs.map +1 -0
  341. package/dist/Tile/Tile.d.ts +4 -0
  342. package/dist/Tile/Tile.js +43 -0
  343. package/dist/Tile/Tile.js.map +1 -0
  344. package/dist/Tile/TileBody.cjs +37 -0
  345. package/dist/Tile/TileBody.cjs.map +1 -0
  346. package/dist/Tile/TileBody.d.ts +6 -0
  347. package/dist/Tile/TileBody.js +22 -0
  348. package/dist/Tile/TileBody.js.map +1 -0
  349. package/dist/Tile/TileCommonItems.cjs +165 -0
  350. package/dist/Tile/TileCommonItems.cjs.map +1 -0
  351. package/dist/Tile/TileCommonItems.d.ts +9 -0
  352. package/dist/Tile/TileCommonItems.js +126 -0
  353. package/dist/Tile/TileCommonItems.js.map +1 -0
  354. package/dist/Tile/TileFooter.cjs +48 -0
  355. package/dist/Tile/TileFooter.cjs.map +1 -0
  356. package/dist/Tile/TileFooter.d.ts +7 -0
  357. package/dist/Tile/TileFooter.js +32 -0
  358. package/dist/Tile/TileFooter.js.map +1 -0
  359. package/dist/Tile/TileHeader.cjs +90 -0
  360. package/dist/Tile/TileHeader.cjs.map +1 -0
  361. package/dist/Tile/TileHeader.d.ts +7 -0
  362. package/dist/Tile/TileHeader.js +68 -0
  363. package/dist/Tile/TileHeader.js.map +1 -0
  364. package/dist/Tile/TileTypes.cjs +6 -0
  365. package/dist/Tile/TileTypes.cjs.map +1 -0
  366. package/dist/Tile/TileTypes.d.ts +57 -0
  367. package/dist/Tile/TileTypes.js +2 -0
  368. package/dist/Tile/TileTypes.js.map +1 -0
  369. package/dist/Tile/index.cjs +33 -0
  370. package/dist/Tile/index.cjs.map +1 -0
  371. package/dist/Tile/index.d.ts +3 -0
  372. package/dist/Tile/index.js +4 -0
  373. package/dist/Tile/index.js.map +1 -0
  374. package/dist/Toasters/Toast.cjs +2 -0
  375. package/dist/Toasters/Toast.cjs.map +1 -1
  376. package/dist/Toasters/Toast.js +2 -0
  377. package/dist/Toasters/Toast.js.map +1 -1
  378. package/dist/Toggles/ToggleButton.cjs +81 -0
  379. package/dist/Toggles/ToggleButton.cjs.map +1 -0
  380. package/dist/Toggles/ToggleButton.d.ts +14 -0
  381. package/dist/Toggles/ToggleButton.js +59 -0
  382. package/dist/Toggles/ToggleButton.js.map +1 -0
  383. package/dist/Toggles/ToggleSwitch.cjs +12 -6
  384. package/dist/Toggles/ToggleSwitch.cjs.map +1 -1
  385. package/dist/Toggles/ToggleSwitch.js +11 -6
  386. package/dist/Toggles/ToggleSwitch.js.map +1 -1
  387. package/dist/Toggles/TogglerStyles.cjs +2 -2
  388. package/dist/Toggles/TogglerStyles.cjs.map +1 -1
  389. package/dist/Toggles/TogglerStyles.js +3 -3
  390. package/dist/Toggles/TogglerStyles.js.map +1 -1
  391. package/dist/Toggles/index.cjs +8 -0
  392. package/dist/Toggles/index.cjs.map +1 -1
  393. package/dist/Toggles/index.d.ts +2 -1
  394. package/dist/Toggles/index.js +2 -1
  395. package/dist/Toggles/index.js.map +1 -1
  396. package/dist/Tooltips/TooltipStyles.cjs +2 -2
  397. package/dist/Tooltips/TooltipStyles.cjs.map +1 -1
  398. package/dist/Tooltips/TooltipStyles.js +3 -3
  399. package/dist/Tooltips/TooltipStyles.js.map +1 -1
  400. package/dist/Tooltips/TooltipTypes.cjs.map +1 -1
  401. package/dist/Tooltips/TooltipTypes.d.ts +1 -0
  402. package/dist/Tooltips/TooltipTypes.js.map +1 -1
  403. package/dist/Tooltips/TooltipWrapper.cjs +2 -0
  404. package/dist/Tooltips/TooltipWrapper.cjs.map +1 -1
  405. package/dist/Tooltips/TooltipWrapper.d.ts +1 -1
  406. package/dist/Tooltips/TooltipWrapper.js +2 -0
  407. package/dist/Tooltips/TooltipWrapper.js.map +1 -1
  408. package/dist/common/{HoverWithin.cjs → ActionWithin.cjs} +9 -5
  409. package/dist/common/ActionWithin.cjs.map +1 -0
  410. package/dist/common/{HoverWithin.d.ts → ActionWithin.d.ts} +0 -0
  411. package/dist/common/{HoverWithin.js → ActionWithin.js} +9 -5
  412. package/dist/common/ActionWithin.js.map +1 -0
  413. package/dist/common/ClickOutside.cjs +39 -0
  414. package/dist/common/ClickOutside.cjs.map +1 -0
  415. package/dist/common/ClickOutside.d.ts +1 -0
  416. package/dist/common/ClickOutside.js +25 -0
  417. package/dist/common/ClickOutside.js.map +1 -0
  418. package/dist/common/FocusOutside.cjs +39 -0
  419. package/dist/common/FocusOutside.cjs.map +1 -0
  420. package/dist/common/FocusOutside.d.ts +1 -0
  421. package/dist/common/FocusOutside.js +25 -0
  422. package/dist/common/FocusOutside.js.map +1 -0
  423. package/dist/common/FocusVisible.cjs +67 -19
  424. package/dist/common/FocusVisible.cjs.map +1 -1
  425. package/dist/common/FocusVisible.js +66 -19
  426. package/dist/common/FocusVisible.js.map +1 -1
  427. package/dist/common/InputStyling.cjs +1 -1
  428. package/dist/common/InputStyling.cjs.map +1 -1
  429. package/dist/common/InputStyling.js +2 -2
  430. package/dist/common/InputStyling.js.map +1 -1
  431. package/dist/common/index.cjs +18 -2
  432. package/dist/common/index.cjs.map +1 -1
  433. package/dist/common/index.d.ts +3 -1
  434. package/dist/common/index.js +3 -1
  435. package/dist/common/index.js.map +1 -1
  436. package/dist/icons/index.cjs +1 -1
  437. package/dist/icons/index.cjs.map +1 -1
  438. package/dist/icons/index.js +1 -1
  439. package/dist/icons/index.js.map +1 -1
  440. package/dist/index.cjs +28 -0
  441. package/dist/index.cjs.map +1 -1
  442. package/dist/index.d.ts +2 -0
  443. package/dist/index.js +2 -0
  444. package/dist/index.js.map +1 -1
  445. package/dist/styles/focus-styles.cjs +22 -0
  446. package/dist/styles/focus-styles.cjs.map +1 -0
  447. package/dist/styles/focus-styles.d.ts +2 -0
  448. package/dist/styles/focus-styles.js +9 -0
  449. package/dist/styles/focus-styles.js.map +1 -0
  450. package/dist/styles/index.cjs +60 -0
  451. package/dist/styles/index.cjs.map +1 -1
  452. package/dist/styles/index.d.ts +1 -0
  453. package/dist/styles/index.js +1 -0
  454. package/dist/styles/index.js.map +1 -1
  455. package/dist/types.cjs +10 -1
  456. package/dist/types.cjs.map +1 -1
  457. package/dist/types.d.ts +5 -0
  458. package/dist/types.js +8 -0
  459. package/dist/types.js.map +1 -1
  460. package/package.json +1 -1
  461. package/dist/Chips/ChipInput.cjs +0 -199
  462. package/dist/Chips/ChipInput.cjs.map +0 -1
  463. package/dist/Chips/ChipInput.js +0 -182
  464. package/dist/Chips/ChipInput.js.map +0 -1
  465. package/dist/Dropdown/ChipDropdownInput.cjs +0 -431
  466. package/dist/Dropdown/ChipDropdownInput.cjs.map +0 -1
  467. package/dist/Dropdown/ChipDropdownInput.d.ts +0 -24
  468. package/dist/Dropdown/ChipDropdownInput.js +0 -418
  469. package/dist/Dropdown/ChipDropdownInput.js.map +0 -1
  470. package/dist/common/HoverWithin.cjs.map +0 -1
  471. package/dist/common/HoverWithin.js.map +0 -1
@@ -15,7 +15,7 @@ import * as React from 'react';
15
15
  import styled from 'styled-components';
16
16
  import { LoadingIndicator } from '../LoadingIndicator';
17
17
  import { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';
18
- import { COLORS } from '../styles';
18
+ import { COLORS, focusStyles, invertedFocusStyles } from '../styles';
19
19
  import { Size } from '../types';
20
20
  import { defaultOnMouseDownHandler } from '../common';
21
21
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -36,7 +36,7 @@ var getBorderRadius = function getBorderRadius(flatEdge, radius) {
36
36
  }
37
37
  };
38
38
 
39
- var Primary = styled.button(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n min-height: ", ";\n &.loading-state {\n cursor: wait;\n }\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n div.button-content {\n ", ";\n\n background-color: ", ";\n border-radius: ", ";\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n\n width: ", ";\n position: relative;\n\n min-height: ", ";\n min-width: ", ";\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ", ";\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ", ";\n width: ", ";\n height: ", ";\n svg {\n width: ", " !important;\n height: ", " !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ", ";\n width: ", ";\n path {\n fill: ", ";\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ", ";\n border-color: ", ";\n box-shadow: none !important;\n color: ", ";\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n }\n"])), function (props) {
39
+ var Primary = styled.button(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ", ";\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ", ";\n\n background-color: ", ";\n border-radius: ", ";\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n\n width: ", ";\n position: relative;\n\n min-height: ", ";\n min-width: ", ";\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ", ";\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ", ";\n width: ", ";\n height: ", ";\n svg {\n width: ", " !important;\n height: ", " !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ", ";\n width: ", ";\n path {\n fill: ", ";\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n\n &:focus,\n &.focus-state {\n ", "\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n }\n"])), function (props) {
40
40
  return props.size === Size.Large ? '56px' : '48px';
41
41
  }, function (props) {
42
42
  return props.size === Size.Large ? ComponentLStyling(ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_800 : COLORS.white) : props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_800 : COLORS.white) : ComponentMStyling(ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_800 : COLORS.white);
@@ -82,12 +82,8 @@ var Primary = styled.button(_templateObject || (_templateObject = _taggedTemplat
82
82
  return props.colorTheme === 'teal' ? COLORS.accent1_800 : (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_200 : COLORS.primary_800;
83
83
  }, function (props) {
84
84
  return (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_800 : COLORS.white;
85
- }, COLORS.focus_25, COLORS.focus, function (props) {
86
- return props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700;
87
85
  }, function (props) {
88
- return props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700;
89
- }, function (props) {
90
- return props.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white;
86
+ return props.invertFocus || props.invertFocus === undefined && props.colorTheme === 'dark' ? invertedFocusStyles : focusStyles;
91
87
  }, function (props) {
92
88
  return props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100;
93
89
  }, function (props) {
@@ -95,7 +91,7 @@ var Primary = styled.button(_templateObject || (_templateObject = _taggedTemplat
95
91
  }, function (props) {
96
92
  return props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100;
97
93
  });
98
- var Secondary = styled(Primary)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n div.button-content {\n color: ", ";\n border-color: ", ";\n background-color: transparent;\n div svg path {\n fill: ", ";\n }\n }\n\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ", ";\n border-color: ", ";\n background-color: transparent;\n div {\n svg {\n path {\n fill: ", ";\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ", ";\n border-color: ", ";\n background-color: transparent;\n div {\n svg {\n path {\n fill: ", ";\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ", ";\n border-color: ", ";\n }\n \n &:focus,\n &.focus-state {\n outline: none;\n div {\n outline: none;\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n }\n"])), function (props) {
94
+ var Secondary = styled(Primary)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n div.button-content {\n color: ", ";\n border-color: ", ";\n background-color: transparent;\n div svg path {\n fill: ", ";\n }\n }\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ", ";\n border-color: ", ";\n background-color: transparent;\n div {\n svg {\n path {\n fill: ", ";\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ", ";\n border-color: ", ";\n background-color: transparent;\n div {\n svg {\n path {\n fill: ", ";\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ", ";\n border-color: ", ";\n }\n"])), function (props) {
99
95
  return props.colorTheme === 'teal' ? COLORS.accent1 : (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.white : COLORS.primary;
100
96
  }, function (props) {
101
97
  return props.colorTheme === 'teal' ? COLORS.accent1 : (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.white : COLORS.primary;
@@ -117,14 +113,8 @@ var Secondary = styled(Primary)(_templateObject2 || (_templateObject2 = _taggedT
117
113
  return (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_700 : COLORS.neutral_300;
118
114
  }, function (props) {
119
115
  return (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_700 : COLORS.neutral_100;
120
- }, COLORS.focus_25, COLORS.focus, function (props) {
121
- return props.colorTheme === 'dark' ? 'transparent' : COLORS.white;
122
- }, function (props) {
123
- return props.colorTheme === 'teal' ? COLORS.accent1 : props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.primary;
124
- }, function (props) {
125
- return props.colorTheme === 'dark' ? COLORS.white : COLORS.primary_500;
126
116
  });
127
- var Tertiary = styled(Primary)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n div.button-content {\n color: ", ";\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ", ";\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n div {\n svg {\n path {\n fill: ", ";\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n div {\n svg {\n path {\n fill: ", ";\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ", ";\n border-color: transparent !important;\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n }\n"])), function (props) {
117
+ var Tertiary = styled(Primary)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n div.button-content {\n color: ", ";\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ", ";\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n div {\n svg {\n path {\n fill: ", ";\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n div {\n svg {\n path {\n fill: ", ";\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ", ";\n border-color: transparent !important;\n }\n"])), function (props) {
128
118
  return props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500;
129
119
  }, function (props) {
130
120
  return props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary;
@@ -144,15 +134,10 @@ var Tertiary = styled(Primary)(_templateObject3 || (_templateObject3 = _taggedTe
144
134
  return props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100;
145
135
  }, function (props) {
146
136
  return props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800;
147
- }, COLORS.neutral_300, COLORS.focus_25, COLORS.focus, COLORS.white, function (props) {
148
- return props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary;
149
- }, function (props) {
150
- return props.colorTheme === 'teal' ? COLORS.accent1_500 : COLORS.primary_500;
151
- });
152
- var Correct = styled(Primary)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n div.button-content {\n color: white;\n border-color: ", ";\n background-color: ", ";\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n }\n"])), COLORS.correct_500, COLORS.correct_500, COLORS.correct_700, COLORS.correct_700, COLORS.correct_700, COLORS.correct_700, COLORS.correct_800, COLORS.correct_800, COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_100);
153
- var Critical = styled(Primary)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n div.button-content {\n color: white;\n border-color: ", ";\n background-color: ", ";\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n }\n"])), COLORS.critical_500, COLORS.critical_500, COLORS.critical_700, COLORS.critical_700, COLORS.critical_700, COLORS.critical_700, COLORS.critical_800, COLORS.critical_800, COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_100);
154
-
155
- var Button = function Button(_ref) {
137
+ }, COLORS.neutral_300);
138
+ var Positive = styled(Primary)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n div.button-content {\n color: white;\n border-color: ", ";\n background-color: ", ";\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n }\n"])), COLORS.correct_500, COLORS.correct_500, COLORS.correct_700, COLORS.correct_700, COLORS.correct_800, COLORS.correct_800, COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_100);
139
+ var Critical = styled(Primary)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n div.button-content {\n color: white;\n border-color: ", ";\n background-color: ", ";\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ", ";\n background-color: ", ";\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n }\n"])), COLORS.critical_500, COLORS.critical_500, COLORS.critical_700, COLORS.critical_700, COLORS.critical_800, COLORS.critical_800, COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_100);
140
+ var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
156
141
  var _ref$children = _ref.children,
157
142
  children = _ref$children === void 0 ? '' : _ref$children,
158
143
  _ref$variant = _ref.variant,
@@ -198,8 +183,8 @@ var Button = function Button(_ref) {
198
183
  ButtonStyled = Tertiary;
199
184
  break;
200
185
 
201
- case 'correct':
202
- ButtonStyled = Correct;
186
+ case 'positive':
187
+ ButtonStyled = Positive;
203
188
  break;
204
189
 
205
190
  case 'critical':
@@ -208,6 +193,7 @@ var Button = function Button(_ref) {
208
193
  }
209
194
 
210
195
  return /*#__PURE__*/_jsx(ButtonStyled, _objectSpread(_objectSpread({}, renderProps), {}, {
196
+ ref: ref,
211
197
  disabled: disabled,
212
198
  iconOnly: !children,
213
199
  type: type,
@@ -223,13 +209,13 @@ var Button = function Button(_ref) {
223
209
  children: renderContent()
224
210
  })
225
211
  }));
226
- };
227
-
212
+ });
228
213
  Button.propTypes = {
229
- variant: _pt.oneOf(['primary', 'secondary', 'tertiary', 'correct', 'critical']),
214
+ variant: _pt.oneOf(['primary', 'secondary', 'tertiary', 'positive', 'critical']),
230
215
  role: _pt.oneOfType([_pt.oneOf(['button']), _pt.string]),
231
216
  title: _pt.string,
232
217
  colorTheme: _pt.oneOf(['teal', 'dark']),
218
+ invertFocus: _pt.bool,
233
219
  width: _pt.oneOfType([_pt.oneOf(['auto']), _pt.string]),
234
220
  loading: _pt.bool,
235
221
  testId: _pt.string,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Button/Button.tsx"],"names":["React","styled","LoadingIndicator","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","Size","defaultOnMouseDownHandler","getBorderRadius","flatEdge","radius","Primary","button","props","size","Large","Bold","colorTheme","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","focus_25","focus","neutral_100","neutral_300","Secondary","primary_300","primary_500","Tertiary","accent1_20","primary_20","accent1_100","accent1_500","Correct","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","ButtonStyled","className","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ${(props) => (props.size === Size.Large ? '14px 18px' : props.size === Size.Small ? '4px 10px' : '6px 14px')};\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '-2px -4px' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '-2px -4px' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n box-shadow: none !important;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n color: ${props => props.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white};\n }\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n \n &:focus,\n &.focus-state {\n outline: none;\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'dark' ? 'transparent' : COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.primary};\n color: ${props => props.colorTheme === 'dark' ? COLORS.white : COLORS.primary_500};\n }\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary};\n color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_500 : COLORS.primary_500};\n }\n }\n`;\n\nconst Correct = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'correct' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button: React.FunctionComponent<ButtonProps> = ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n let ButtonStyled = Primary;\n switch(variant)\n {\n case 'secondary':\n ButtonStyled = Secondary;\n break;\n case 'tertiary':\n ButtonStyled = Tertiary;\n break;\n case 'correct':\n ButtonStyled = Correct;\n break;\n case 'critical':\n ButtonStyled = Critical;\n break;\n }\n\n return (\n <ButtonStyled\n {...renderProps}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </ButtonStyled>\n );\n};\n\nexport default Button;\n"],"file":"Button.js"}
1
+ {"version":3,"sources":["../../src/Button/Button.tsx"],"names":["React","styled","LoadingIndicator","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","focusStyles","invertedFocusStyles","Size","defaultOnMouseDownHandler","getBorderRadius","flatEdge","radius","Primary","button","props","size","Large","Bold","colorTheme","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","invertFocus","undefined","neutral_100","neutral_300","Secondary","primary_300","Tertiary","primary_500","accent1_20","primary_20","accent1_100","Positive","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","forwardRef","ref","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","ButtonStyled","className","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport {COLORS, focusStyles, invertedFocusStyles} from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ${(props) => (props.size === Size.Large ? '14px 18px' : props.size === Size.Small ? '4px 10px' : '6px 14px')};\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '-2px -4px' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '-2px -4px' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n ${props => props.invertFocus || (props.invertFocus === undefined && props.colorTheme === 'dark') ? invertedFocusStyles : focusStyles}\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n`;\n\nconst Positive = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'positive' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n invertFocus?: boolean;\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>( ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}, ref) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n let ButtonStyled = Primary;\n switch(variant)\n {\n case 'secondary':\n ButtonStyled = Secondary;\n break;\n case 'tertiary':\n ButtonStyled = Tertiary;\n break;\n case 'positive':\n ButtonStyled = Positive;\n break;\n case 'critical':\n ButtonStyled = Critical;\n break;\n }\n\n return (\n <ButtonStyled\n {...renderProps}\n ref={ref}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </ButtonStyled>\n );\n});\n\nexport default Button;\n"],"file":"Button.js"}
@@ -33,6 +33,8 @@ var _DropdownContent = _interopRequireDefault(require("../Dropdown/DropdownConte
33
33
 
34
34
  var _styledComponents = _interopRequireDefault(require("styled-components"));
35
35
 
36
+ var _common = require("../common");
37
+
36
38
  var _jsxRuntime = require("react/jsx-runtime");
37
39
 
38
40
  var _excluded = ["children", "variant", "type", "size", "width", "testId", "disabled", "id", "dropdownMenuValues", "setDropdownMenuValues", "dropdownCustomizationProps"],
@@ -86,19 +88,33 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
86
88
  focused = _React$useState4[0],
87
89
  setFocused = _React$useState4[1];
88
90
 
89
- var dropdownContainerRef = React.useRef(null);
90
-
91
- var _React$useState5 = React.useState([]),
91
+ var _React$useState5 = React.useState(false),
92
92
  _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
93
- selectedValues = _React$useState6[0],
94
- setSelectedValues = _React$useState6[1];
93
+ keyboardNavigated = _React$useState6[0],
94
+ setKeyboardNavigated = _React$useState6[1];
95
95
 
96
+ var dropdownContainerRef = React.useRef(null);
97
+
98
+ var _React$useState7 = React.useState([]),
99
+ _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
100
+ selectedValues = _React$useState8[0],
101
+ setSelectedValues = _React$useState8[1];
102
+
103
+ var dropdownContentRef = React.useRef(null);
104
+ var dropdownButtonRef = (0, _common.useClickOutsideRef)(function () {
105
+ return setIsOpen(false);
106
+ }, [dropdownContainerRef], (0, _common.useFocusOutsideRef)(function () {
107
+ return setIsOpen(false);
108
+ }, [dropdownContentRef]));
109
+ React.useEffect(function () {
110
+ !isOpen && setKeyboardNavigated(false);
111
+ }, [isOpen]);
96
112
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(ButtonsContainer, {
97
113
  ref: dropdownContainerRef,
98
114
  size: size,
99
115
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_CommonStyling.Dropdown, {
100
116
  isButton: true,
101
- locked: false,
117
+ readOnly: false,
102
118
  disabled: false,
103
119
  margin: "",
104
120
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, _objectSpread(_objectSpread({}, renderProps), {}, {
@@ -115,14 +131,15 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
115
131
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
116
132
  customizationProps: dropdownCustomizationProps,
117
133
  filter: "",
134
+ ref: dropdownContentRef,
118
135
  selectedValues: dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues !== null && dropdownMenuValues !== void 0 ? dropdownMenuValues : selectedValues,
119
136
  setSelectedValues: setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues,
120
137
  isButton: true,
121
138
  setIsOpen: setIsOpen,
122
139
  focused: focused,
123
140
  setFocused: setFocused,
124
- hideOnClickOutside: true,
125
141
  size: size,
142
+ outline: keyboardNavigated,
126
143
  isOpen: isOpen,
127
144
  id: id !== null && id !== void 0 ? id : 'dropdownId',
128
145
  messageOnNoResults: "",
@@ -133,8 +150,13 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
133
150
  }, renderProps), {}, {
134
151
  onKeyPress: function onKeyPress(e) {
135
152
  if (isOpen) return;
136
- if (e.key === 'Enter' || e.key === ' ') setFocused(0);
153
+
154
+ if (e.key === 'Enter' || e.key === ' ') {
155
+ setFocused(0);
156
+ setKeyboardNavigated(true);
157
+ }
137
158
  },
159
+ ref: dropdownButtonRef,
138
160
  disabled: disabled,
139
161
  type: type,
140
162
  size: size,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Button/DualFunctionButton.tsx"],"names":["ButtonsContainer","styled","div","props","size","Size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","React","useState","isOpen","setIsOpen","focused","setFocused","dropdownContainerRef","useRef","selectedValues","setSelectedValues","itemsType","e","key","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport Button, {ButtonProps} from './Button'\nimport {ArrowDropDown, ArrowDropUp} from '../icons/systemicons/SystemIcons';\nimport {Dropdown} from '../Dropdown/CommonStyling';\nimport {Size} from '../types';\nimport DropdownContent, {DropdownCustomizationProps} from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${props => props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px'};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n }) => {\n // Let's filter out properties that we don't need to render.\n const {loading, icon, onClick, ...renderProps} = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n return <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} locked={false} disabled={false} margin=\"\">\n <Button\n {...renderProps}\n onClick={onClick}\n disabled={disabled}\n type={type}\n loading={loading}\n icon={icon}\n size={size}\n width={width}\n variant={variant}\n flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : (dropdownMenuValues ?? selectedValues)}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n hideOnClickOutside={true}\n size={size}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}/>\n </Dropdown>\n <Button variant={variant}\n {...renderProps}\n onKeyPress={(e:any) => {\n if(isOpen)\n return;\n\n if (e.key === 'Enter' || e.key === ' ')\n setFocused(0);\n }}\n\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {e.stopPropagation(); setIsOpen(!isOpen);}}\n icon={isOpen ? <ArrowDropUp size=\"16px\"/> : <ArrowDropDown size=\"16px\"/>}\n flatEdge=\"left\"/>\n </ButtonsContainer>;\n};\n\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.cjs"}
1
+ {"version":3,"sources":["../../src/Button/DualFunctionButton.tsx"],"names":["ButtonsContainer","styled","div","props","size","Size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","React","useState","isOpen","setIsOpen","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useEffect","itemsType","e","key","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport Button, {ButtonProps} from './Button'\nimport {ArrowDropDown, ArrowDropUp} from '../icons/systemicons/SystemIcons';\nimport {Dropdown} from '../Dropdown/CommonStyling';\nimport {Size} from '../types';\nimport DropdownContent, {DropdownCustomizationProps} from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${props => props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px'};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n }) => {\n // Let's filter out properties that we don't need to render.\n const {loading, icon, onClick, ...renderProps} = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(() => setIsOpen(false), [dropdownContainerRef], useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]));\n\n React.useEffect(() => { !isOpen && setKeyboardNavigated(false); }, [isOpen]);\n\n return <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button\n {...renderProps}\n onClick={onClick}\n disabled={disabled}\n type={type}\n loading={loading}\n icon={icon}\n size={size}\n width={width}\n variant={variant}\n flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : (dropdownMenuValues ?? selectedValues)}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}/>\n </Dropdown>\n <Button variant={variant}\n {...renderProps}\n onKeyPress={(e:any) => {\n if(isOpen)\n return;\n\n if (e.key === 'Enter' || e.key === ' '){\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n ref={dropdownButtonRef}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {e.stopPropagation(); setIsOpen(!isOpen);}}\n icon={isOpen ? <ArrowDropUp size=\"16px\"/> : <ArrowDropDown size=\"16px\"/>}\n flatEdge=\"left\"/>\n </ButtonsContainer>;\n};\n\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.cjs"}
@@ -19,6 +19,7 @@ import { Dropdown } from '../Dropdown/CommonStyling';
19
19
  import { Size } from '../types';
20
20
  import DropdownContent from '../Dropdown/DropdownContent';
21
21
  import styled from 'styled-components';
22
+ import { useClickOutsideRef, useFocusOutsideRef } from '../common';
22
23
  import { jsx as _jsx } from "react/jsx-runtime";
23
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
24
25
  var ButtonsContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ", ";\n }\n"])), function (props) {
@@ -60,19 +61,33 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
60
61
  focused = _React$useState4[0],
61
62
  setFocused = _React$useState4[1];
62
63
 
64
+ var _React$useState5 = React.useState(false),
65
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
66
+ keyboardNavigated = _React$useState6[0],
67
+ setKeyboardNavigated = _React$useState6[1];
68
+
63
69
  var dropdownContainerRef = React.useRef(null);
64
70
 
65
- var _React$useState5 = React.useState([]),
66
- _React$useState6 = _slicedToArray(_React$useState5, 2),
67
- selectedValues = _React$useState6[0],
68
- setSelectedValues = _React$useState6[1];
71
+ var _React$useState7 = React.useState([]),
72
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
73
+ selectedValues = _React$useState8[0],
74
+ setSelectedValues = _React$useState8[1];
69
75
 
76
+ var dropdownContentRef = React.useRef(null);
77
+ var dropdownButtonRef = useClickOutsideRef(function () {
78
+ return setIsOpen(false);
79
+ }, [dropdownContainerRef], useFocusOutsideRef(function () {
80
+ return setIsOpen(false);
81
+ }, [dropdownContentRef]));
82
+ React.useEffect(function () {
83
+ !isOpen && setKeyboardNavigated(false);
84
+ }, [isOpen]);
70
85
  return /*#__PURE__*/_jsxs(ButtonsContainer, {
71
86
  ref: dropdownContainerRef,
72
87
  size: size,
73
88
  children: [/*#__PURE__*/_jsxs(Dropdown, {
74
89
  isButton: true,
75
- locked: false,
90
+ readOnly: false,
76
91
  disabled: false,
77
92
  margin: "",
78
93
  children: [/*#__PURE__*/_jsx(Button, _objectSpread(_objectSpread({}, renderProps), {}, {
@@ -89,14 +104,15 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
89
104
  })), /*#__PURE__*/_jsx(DropdownContent, {
90
105
  customizationProps: dropdownCustomizationProps,
91
106
  filter: "",
107
+ ref: dropdownContentRef,
92
108
  selectedValues: dropdownCustomizationProps.itemsType == 'normal' ? [] : dropdownMenuValues !== null && dropdownMenuValues !== void 0 ? dropdownMenuValues : selectedValues,
93
109
  setSelectedValues: setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues,
94
110
  isButton: true,
95
111
  setIsOpen: setIsOpen,
96
112
  focused: focused,
97
113
  setFocused: setFocused,
98
- hideOnClickOutside: true,
99
114
  size: size,
115
+ outline: keyboardNavigated,
100
116
  isOpen: isOpen,
101
117
  id: id !== null && id !== void 0 ? id : 'dropdownId',
102
118
  messageOnNoResults: "",
@@ -107,8 +123,13 @@ var DualFunctionButton = function DualFunctionButton(_ref) {
107
123
  }, renderProps), {}, {
108
124
  onKeyPress: function onKeyPress(e) {
109
125
  if (isOpen) return;
110
- if (e.key === 'Enter' || e.key === ' ') setFocused(0);
126
+
127
+ if (e.key === 'Enter' || e.key === ' ') {
128
+ setFocused(0);
129
+ setKeyboardNavigated(true);
130
+ }
111
131
  },
132
+ ref: dropdownButtonRef,
112
133
  disabled: disabled,
113
134
  type: type,
114
135
  size: size,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Button/DualFunctionButton.tsx"],"names":["React","Button","ArrowDropDown","ArrowDropUp","Dropdown","Size","DropdownContent","styled","ButtonsContainer","div","props","size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","useState","isOpen","setIsOpen","focused","setFocused","dropdownContainerRef","useRef","selectedValues","setSelectedValues","itemsType","e","key","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport Button, {ButtonProps} from './Button'\nimport {ArrowDropDown, ArrowDropUp} from '../icons/systemicons/SystemIcons';\nimport {Dropdown} from '../Dropdown/CommonStyling';\nimport {Size} from '../types';\nimport DropdownContent, {DropdownCustomizationProps} from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${props => props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px'};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n }) => {\n // Let's filter out properties that we don't need to render.\n const {loading, icon, onClick, ...renderProps} = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n return <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} locked={false} disabled={false} margin=\"\">\n <Button\n {...renderProps}\n onClick={onClick}\n disabled={disabled}\n type={type}\n loading={loading}\n icon={icon}\n size={size}\n width={width}\n variant={variant}\n flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : (dropdownMenuValues ?? selectedValues)}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n hideOnClickOutside={true}\n size={size}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}/>\n </Dropdown>\n <Button variant={variant}\n {...renderProps}\n onKeyPress={(e:any) => {\n if(isOpen)\n return;\n\n if (e.key === 'Enter' || e.key === ' ')\n setFocused(0);\n }}\n\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {e.stopPropagation(); setIsOpen(!isOpen);}}\n icon={isOpen ? <ArrowDropUp size=\"16px\"/> : <ArrowDropDown size=\"16px\"/>}\n flatEdge=\"left\"/>\n </ButtonsContainer>;\n};\n\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.js"}
1
+ {"version":3,"sources":["../../src/Button/DualFunctionButton.tsx"],"names":["React","Button","ArrowDropDown","ArrowDropUp","Dropdown","Size","DropdownContent","styled","useClickOutsideRef","useFocusOutsideRef","ButtonsContainer","div","props","size","Large","Medium","DualFunctionButton","children","variant","type","width","testId","disabled","id","dropdownMenuValues","setDropdownMenuValues","dropdownCustomizationProps","loading","icon","onClick","renderProps","useState","isOpen","setIsOpen","focused","setFocused","keyboardNavigated","setKeyboardNavigated","dropdownContainerRef","useRef","selectedValues","setSelectedValues","dropdownContentRef","dropdownButtonRef","useEffect","itemsType","e","key","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport Button, {ButtonProps} from './Button'\nimport {ArrowDropDown, ArrowDropUp} from '../icons/systemicons/SystemIcons';\nimport {Dropdown} from '../Dropdown/CommonStyling';\nimport {Size} from '../types';\nimport DropdownContent, {DropdownCustomizationProps} from '../Dropdown/DropdownContent';\nimport styled from 'styled-components';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\n\nconst ButtonsContainer = styled.div<{ size?: Size }>`\n display: flex;\n align-items: center;\n\n button:first-child {\n margin-right: 2px;\n }\n\n div.button-content {\n gap: 0px;\n padding: ${props => props.size == Size.Large ? '4px 18px' : props.size == Size.Medium ? '4px 14px' : '4px 10px'};\n }\n`;\n\nexport interface ButtonOption {\n label: string;\n}\n\nexport interface DualButtonProps extends ButtonProps {\n dropdownCustomizationProps: DropdownCustomizationProps;\n dropdownMenuValues?: string[];\n setDropdownMenuValues?: (values: string[]) => void | boolean | undefined;\n}\n\nconst DualFunctionButton: React.FunctionComponent<DualButtonProps> = ({\n children = 'Primary Button',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n testId,\n disabled,\n id,\n dropdownMenuValues,\n setDropdownMenuValues,\n dropdownCustomizationProps,\n ...props\n }) => {\n // Let's filter out properties that we don't need to render.\n const {loading, icon, onClick, ...renderProps} = props;\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const dropdownButtonRef = useClickOutsideRef(() => setIsOpen(false), [dropdownContainerRef], useFocusOutsideRef(() => setIsOpen(false), [dropdownContentRef]));\n\n React.useEffect(() => { !isOpen && setKeyboardNavigated(false); }, [isOpen]);\n\n return <ButtonsContainer ref={dropdownContainerRef} size={size}>\n <Dropdown isButton={true} readOnly={false} disabled={false} margin=\"\">\n <Button\n {...renderProps}\n onClick={onClick}\n disabled={disabled}\n type={type}\n loading={loading}\n icon={icon}\n size={size}\n width={width}\n variant={variant}\n flatEdge=\"right\">\n {children}\n </Button>\n <DropdownContent\n customizationProps={dropdownCustomizationProps}\n filter=\"\"\n ref={dropdownContentRef}\n selectedValues={dropdownCustomizationProps.itemsType == 'normal' ? [] : (dropdownMenuValues ?? selectedValues)}\n setSelectedValues={setDropdownMenuValues ? setDropdownMenuValues : setSelectedValues}\n isButton={true}\n setIsOpen={setIsOpen}\n focused={focused}\n setFocused={setFocused}\n size={size}\n outline={keyboardNavigated}\n isOpen={isOpen}\n id={id ?? 'dropdownId'}\n messageOnNoResults=\"\"\n alignLeft={true}/>\n </Dropdown>\n <Button variant={variant}\n {...renderProps}\n onKeyPress={(e:any) => {\n if(isOpen)\n return;\n\n if (e.key === 'Enter' || e.key === ' '){\n setFocused(0);\n setKeyboardNavigated(true);\n }\n }}\n ref={dropdownButtonRef}\n disabled={disabled}\n type={type}\n size={size}\n minWidth={'unset'}\n onClick={(e) => {e.stopPropagation(); setIsOpen(!isOpen);}}\n icon={isOpen ? <ArrowDropUp size=\"16px\"/> : <ArrowDropDown size=\"16px\"/>}\n flatEdge=\"left\"/>\n </ButtonsContainer>;\n};\n\n\nexport default DualFunctionButton;\n"],"file":"DualFunctionButton.js"}