@splunk/dashboard-toolbar 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/CollapsibleToolbar.js +261 -0
  2. package/CollapsibleToolbar.js.map +7 -0
  3. package/IconButton.js +168 -0
  4. package/IconButton.js.map +7 -0
  5. package/Item.js +52 -0
  6. package/Item.js.map +7 -0
  7. package/ItemGroup.js +127 -0
  8. package/ItemGroup.js.map +7 -0
  9. package/LICENSE.md +14 -0
  10. package/PopoverItemButton.js +78 -0
  11. package/PopoverItemButton.js.map +7 -0
  12. package/README.md +9 -0
  13. package/Toolbar.js +192 -0
  14. package/Toolbar.js.map +7 -0
  15. package/buttons/Charts.js +384 -0
  16. package/buttons/Charts.js.map +7 -0
  17. package/buttons/Config.js +224 -0
  18. package/buttons/Config.js.map +7 -0
  19. package/buttons/ContentExport.js +199 -0
  20. package/buttons/ContentExport.js.map +7 -0
  21. package/buttons/Data.js +236 -0
  22. package/buttons/Data.js.map +7 -0
  23. package/buttons/EmptyVisualization.js +234 -0
  24. package/buttons/EmptyVisualization.js.map +7 -0
  25. package/buttons/ExportDashboardButton.js +130 -0
  26. package/buttons/ExportDashboardButton.js.map +7 -0
  27. package/buttons/Fullscreen.js +214 -0
  28. package/buttons/Fullscreen.js.map +7 -0
  29. package/buttons/GridLineSwitch.js +145 -0
  30. package/buttons/GridLineSwitch.js.map +7 -0
  31. package/buttons/HelpButton.js +277 -0
  32. package/buttons/HelpButton.js.map +7 -0
  33. package/buttons/IconGallery.js +303 -0
  34. package/buttons/IconGallery.js.map +7 -0
  35. package/buttons/Image.js +233 -0
  36. package/buttons/Image.js.map +7 -0
  37. package/buttons/ImageGallery.js +300 -0
  38. package/buttons/ImageGallery.js.map +7 -0
  39. package/buttons/Inputs.js +348 -0
  40. package/buttons/Inputs.js.map +7 -0
  41. package/buttons/Markdown.js +213 -0
  42. package/buttons/Markdown.js.map +7 -0
  43. package/buttons/ModeSwitch.js +121 -0
  44. package/buttons/ModeSwitch.js.map +7 -0
  45. package/buttons/Redo.js +227 -0
  46. package/buttons/Redo.js.map +7 -0
  47. package/buttons/Shapes.js +357 -0
  48. package/buttons/Shapes.js.map +7 -0
  49. package/buttons/Source.js +199 -0
  50. package/buttons/Source.js.map +7 -0
  51. package/buttons/Undo.js +227 -0
  52. package/buttons/Undo.js.map +7 -0
  53. package/buttons/index.js +1857 -0
  54. package/buttons/index.js.map +7 -0
  55. package/groups/ActionsGroup.js +153 -0
  56. package/groups/ActionsGroup.js.map +7 -0
  57. package/groups/ControlGroup.js +701 -0
  58. package/groups/ControlGroup.js.map +7 -0
  59. package/groups/EditingGroup.js +1029 -0
  60. package/groups/EditingGroup.js.map +7 -0
  61. package/groups/EditorGroup.js +698 -0
  62. package/groups/EditorGroup.js.map +7 -0
  63. package/groups/EditorsControlGroup.js +753 -0
  64. package/groups/EditorsControlGroup.js.map +7 -0
  65. package/groups/HistoryGroup.js +761 -0
  66. package/groups/HistoryGroup.js.map +7 -0
  67. package/groups/SidebarControlGroup.js +740 -0
  68. package/groups/SidebarControlGroup.js.map +7 -0
  69. package/groups/VisualizationGroup.js +1218 -0
  70. package/groups/VisualizationGroup.js.map +7 -0
  71. package/groups/index.js +1778 -0
  72. package/groups/index.js.map +7 -0
  73. package/index.js +2245 -0
  74. package/index.js.map +7 -0
  75. package/module/CollapsibleToolbar.js +20 -0
  76. package/module/CollapsibleToolbar.js.map +7 -0
  77. package/module/IconButton.js +21 -0
  78. package/module/IconButton.js.map +7 -0
  79. package/module/Item.js +12 -0
  80. package/module/Item.js.map +7 -0
  81. package/module/ItemGroup.js +16 -0
  82. package/module/ItemGroup.js.map +7 -0
  83. package/module/PopoverItemButton.js +13 -0
  84. package/module/PopoverItemButton.js.map +7 -0
  85. package/module/Toolbar.js +15 -0
  86. package/module/Toolbar.js.map +7 -0
  87. package/module/buttons/Charts.js +26 -0
  88. package/module/buttons/Charts.js.map +7 -0
  89. package/module/buttons/Config.js +18 -0
  90. package/module/buttons/Config.js.map +7 -0
  91. package/module/buttons/ContentExport.js +18 -0
  92. package/module/buttons/ContentExport.js.map +7 -0
  93. package/module/buttons/Data.js +19 -0
  94. package/module/buttons/Data.js.map +7 -0
  95. package/module/buttons/EmptyVisualization.js +18 -0
  96. package/module/buttons/EmptyVisualization.js.map +7 -0
  97. package/module/buttons/ExportDashboardButton.js +17 -0
  98. package/module/buttons/ExportDashboardButton.js.map +7 -0
  99. package/module/buttons/Fullscreen.js +18 -0
  100. package/module/buttons/Fullscreen.js.map +7 -0
  101. package/module/buttons/GridLineSwitch.js +17 -0
  102. package/module/buttons/GridLineSwitch.js.map +7 -0
  103. package/module/buttons/HelpButton.js +20 -0
  104. package/module/buttons/HelpButton.js.map +7 -0
  105. package/module/buttons/IconGallery.js +20 -0
  106. package/module/buttons/IconGallery.js.map +7 -0
  107. package/module/buttons/Image.js +18 -0
  108. package/module/buttons/Image.js.map +7 -0
  109. package/module/buttons/ImageGallery.js +21 -0
  110. package/module/buttons/ImageGallery.js.map +7 -0
  111. package/module/buttons/Inputs.js +20 -0
  112. package/module/buttons/Inputs.js.map +7 -0
  113. package/module/buttons/Markdown.js +17 -0
  114. package/module/buttons/Markdown.js.map +7 -0
  115. package/module/buttons/ModeSwitch.js +18 -0
  116. package/module/buttons/ModeSwitch.js.map +7 -0
  117. package/module/buttons/Redo.js +17 -0
  118. package/module/buttons/Redo.js.map +7 -0
  119. package/module/buttons/Shapes.js +22 -0
  120. package/module/buttons/Shapes.js.map +7 -0
  121. package/module/buttons/Source.js +17 -0
  122. package/module/buttons/Source.js.map +7 -0
  123. package/module/buttons/Undo.js +17 -0
  124. package/module/buttons/Undo.js.map +7 -0
  125. package/module/buttons/index.js +108 -0
  126. package/module/buttons/index.js.map +7 -0
  127. package/module/chunks/chunk-2QMHWIV5.js +175 -0
  128. package/module/chunks/chunk-2QMHWIV5.js.map +7 -0
  129. package/module/chunks/chunk-4OLWQA6K.js +83 -0
  130. package/module/chunks/chunk-4OLWQA6K.js.map +7 -0
  131. package/module/chunks/chunk-52TYQW2Y.js +23 -0
  132. package/module/chunks/chunk-52TYQW2Y.js.map +7 -0
  133. package/module/chunks/chunk-72YLBMXL.js +199 -0
  134. package/module/chunks/chunk-72YLBMXL.js.map +7 -0
  135. package/module/chunks/chunk-734QWOYU.js +56 -0
  136. package/module/chunks/chunk-734QWOYU.js.map +7 -0
  137. package/module/chunks/chunk-A3BAVEME.js +77 -0
  138. package/module/chunks/chunk-A3BAVEME.js.map +7 -0
  139. package/module/chunks/chunk-AWNWXBE4.js +68 -0
  140. package/module/chunks/chunk-AWNWXBE4.js.map +7 -0
  141. package/module/chunks/chunk-B2LPQWLD.js +74 -0
  142. package/module/chunks/chunk-B2LPQWLD.js.map +7 -0
  143. package/module/chunks/chunk-BLXVTG4B.js +65 -0
  144. package/module/chunks/chunk-BLXVTG4B.js.map +7 -0
  145. package/module/chunks/chunk-BRGYD3MR.js +23 -0
  146. package/module/chunks/chunk-BRGYD3MR.js.map +7 -0
  147. package/module/chunks/chunk-BSMCGXVQ.js +22 -0
  148. package/module/chunks/chunk-BSMCGXVQ.js.map +7 -0
  149. package/module/chunks/chunk-CFGNNO2V.js +143 -0
  150. package/module/chunks/chunk-CFGNNO2V.js.map +7 -0
  151. package/module/chunks/chunk-E2DI77AU.js +15 -0
  152. package/module/chunks/chunk-E2DI77AU.js.map +7 -0
  153. package/module/chunks/chunk-ECEBJH6K.js +112 -0
  154. package/module/chunks/chunk-ECEBJH6K.js.map +7 -0
  155. package/module/chunks/chunk-ETJ5YPF3.js +31 -0
  156. package/module/chunks/chunk-ETJ5YPF3.js.map +7 -0
  157. package/module/chunks/chunk-FSOMEJXM.js +49 -0
  158. package/module/chunks/chunk-FSOMEJXM.js.map +7 -0
  159. package/module/chunks/chunk-FVGABOJM.js +37 -0
  160. package/module/chunks/chunk-FVGABOJM.js.map +7 -0
  161. package/module/chunks/chunk-G6N5OMKL.js +22 -0
  162. package/module/chunks/chunk-G6N5OMKL.js.map +7 -0
  163. package/module/chunks/chunk-GRIJP4FT.js +172 -0
  164. package/module/chunks/chunk-GRIJP4FT.js.map +7 -0
  165. package/module/chunks/chunk-GWAXQYWY.js +105 -0
  166. package/module/chunks/chunk-GWAXQYWY.js.map +7 -0
  167. package/module/chunks/chunk-HIICL66H.js +22 -0
  168. package/module/chunks/chunk-HIICL66H.js.map +7 -0
  169. package/module/chunks/chunk-HXY4TSUO.js +22 -0
  170. package/module/chunks/chunk-HXY4TSUO.js.map +7 -0
  171. package/module/chunks/chunk-IAEE4XLH.js +58 -0
  172. package/module/chunks/chunk-IAEE4XLH.js.map +7 -0
  173. package/module/chunks/chunk-IGGLU44N.js +22 -0
  174. package/module/chunks/chunk-IGGLU44N.js.map +7 -0
  175. package/module/chunks/chunk-IQG5GSSX.js +77 -0
  176. package/module/chunks/chunk-IQG5GSSX.js.map +7 -0
  177. package/module/chunks/chunk-J2TRUM5N.js +23 -0
  178. package/module/chunks/chunk-J2TRUM5N.js.map +7 -0
  179. package/module/chunks/chunk-J5CY2G3T.js +52 -0
  180. package/module/chunks/chunk-J5CY2G3T.js.map +7 -0
  181. package/module/chunks/chunk-JILFF3WY.js +122 -0
  182. package/module/chunks/chunk-JILFF3WY.js.map +7 -0
  183. package/module/chunks/chunk-JLYV2H24.js +21 -0
  184. package/module/chunks/chunk-JLYV2H24.js.map +7 -0
  185. package/module/chunks/chunk-JXPIKVRZ.js +48 -0
  186. package/module/chunks/chunk-JXPIKVRZ.js.map +7 -0
  187. package/module/chunks/chunk-KEARZQAT.js +57 -0
  188. package/module/chunks/chunk-KEARZQAT.js.map +7 -0
  189. package/module/chunks/chunk-KJLRQLFH.js +28 -0
  190. package/module/chunks/chunk-KJLRQLFH.js.map +7 -0
  191. package/module/chunks/chunk-L4ZPYLUY.js +25 -0
  192. package/module/chunks/chunk-L4ZPYLUY.js.map +7 -0
  193. package/module/chunks/chunk-NCPTJ5RB.js +185 -0
  194. package/module/chunks/chunk-NCPTJ5RB.js.map +7 -0
  195. package/module/chunks/chunk-NIACHGAA.js +25 -0
  196. package/module/chunks/chunk-NIACHGAA.js.map +7 -0
  197. package/module/chunks/chunk-NJF2IOVV.js +22 -0
  198. package/module/chunks/chunk-NJF2IOVV.js.map +7 -0
  199. package/module/chunks/chunk-NWVLNDCF.js +23 -0
  200. package/module/chunks/chunk-NWVLNDCF.js.map +7 -0
  201. package/module/chunks/chunk-OIQNUT2X.js +36 -0
  202. package/module/chunks/chunk-OIQNUT2X.js.map +7 -0
  203. package/module/chunks/chunk-OSDOIGWB.js +23 -0
  204. package/module/chunks/chunk-OSDOIGWB.js.map +7 -0
  205. package/module/chunks/chunk-OTGQ73VF.js +63 -0
  206. package/module/chunks/chunk-OTGQ73VF.js.map +7 -0
  207. package/module/chunks/chunk-QU7RW3YZ.js +39 -0
  208. package/module/chunks/chunk-QU7RW3YZ.js.map +7 -0
  209. package/module/chunks/chunk-RODBPKID.js +64 -0
  210. package/module/chunks/chunk-RODBPKID.js.map +7 -0
  211. package/module/chunks/chunk-SIFZZCPT.js +439 -0
  212. package/module/chunks/chunk-SIFZZCPT.js.map +7 -0
  213. package/module/chunks/chunk-UPZBDSS7.js +59 -0
  214. package/module/chunks/chunk-UPZBDSS7.js.map +7 -0
  215. package/module/chunks/chunk-UVD66GCR.js +4 -0
  216. package/module/chunks/chunk-UVD66GCR.js.map +7 -0
  217. package/module/chunks/chunk-VQIRZ53C.js +79 -0
  218. package/module/chunks/chunk-VQIRZ53C.js.map +7 -0
  219. package/module/chunks/chunk-WFAY6ABE.js +28 -0
  220. package/module/chunks/chunk-WFAY6ABE.js.map +7 -0
  221. package/module/chunks/chunk-X2HLBQUA.js +64 -0
  222. package/module/chunks/chunk-X2HLBQUA.js.map +7 -0
  223. package/module/chunks/chunk-X7ATHE2S.js +23 -0
  224. package/module/chunks/chunk-X7ATHE2S.js.map +7 -0
  225. package/module/chunks/chunk-XUK4ZKWN.js +52 -0
  226. package/module/chunks/chunk-XUK4ZKWN.js.map +7 -0
  227. package/module/chunks/chunk-YKT3CRI6.js +23 -0
  228. package/module/chunks/chunk-YKT3CRI6.js.map +7 -0
  229. package/module/chunks/chunk-YPVMTO2L.js +111 -0
  230. package/module/chunks/chunk-YPVMTO2L.js.map +7 -0
  231. package/module/groups/ActionsGroup.js +16 -0
  232. package/module/groups/ActionsGroup.js.map +7 -0
  233. package/module/groups/ControlGroup.js +51 -0
  234. package/module/groups/ControlGroup.js.map +7 -0
  235. package/module/groups/EditingGroup.js +51 -0
  236. package/module/groups/EditingGroup.js.map +7 -0
  237. package/module/groups/EditorGroup.js +51 -0
  238. package/module/groups/EditorGroup.js.map +7 -0
  239. package/module/groups/EditorsControlGroup.js +51 -0
  240. package/module/groups/EditorsControlGroup.js.map +7 -0
  241. package/module/groups/HistoryGroup.js +51 -0
  242. package/module/groups/HistoryGroup.js.map +7 -0
  243. package/module/groups/SidebarControlGroup.js +51 -0
  244. package/module/groups/SidebarControlGroup.js.map +7 -0
  245. package/module/groups/VisualizationGroup.js +51 -0
  246. package/module/groups/VisualizationGroup.js.map +7 -0
  247. package/module/groups/index.js +80 -0
  248. package/module/groups/index.js.map +7 -0
  249. package/module/index.js +163 -0
  250. package/module/index.js.map +7 -0
  251. package/module/package.json +1 -0
  252. package/package.json +68 -0
  253. package/tsconfig.json +9 -0
  254. package/types/CollapsibleToolbar.d.ts +12 -0
  255. package/types/CollapsibleToolbar.d.ts.map +1 -0
  256. package/types/IconButton.d.ts +35 -0
  257. package/types/IconButton.d.ts.map +1 -0
  258. package/types/Item.d.ts +3 -0
  259. package/types/Item.d.ts.map +1 -0
  260. package/types/ItemGroup.d.ts +14 -0
  261. package/types/ItemGroup.d.ts.map +1 -0
  262. package/types/PopoverItemButton.d.ts +12 -0
  263. package/types/PopoverItemButton.d.ts.map +1 -0
  264. package/types/Toolbar.d.ts +14 -0
  265. package/types/Toolbar.d.ts.map +1 -0
  266. package/types/buttons/Charts.d.ts +19 -0
  267. package/types/buttons/Charts.d.ts.map +1 -0
  268. package/types/buttons/Config.d.ts +8 -0
  269. package/types/buttons/Config.d.ts.map +1 -0
  270. package/types/buttons/ContentExport.d.ts +10 -0
  271. package/types/buttons/ContentExport.d.ts.map +1 -0
  272. package/types/buttons/Data.d.ts +8 -0
  273. package/types/buttons/Data.d.ts.map +1 -0
  274. package/types/buttons/EmptyVisualization.d.ts +8 -0
  275. package/types/buttons/EmptyVisualization.d.ts.map +1 -0
  276. package/types/buttons/ExportDashboardButton.d.ts +10 -0
  277. package/types/buttons/ExportDashboardButton.d.ts.map +1 -0
  278. package/types/buttons/Fullscreen.d.ts +8 -0
  279. package/types/buttons/Fullscreen.d.ts.map +1 -0
  280. package/types/buttons/GridLineSwitch.d.ts +8 -0
  281. package/types/buttons/GridLineSwitch.d.ts.map +1 -0
  282. package/types/buttons/HelpButton.d.ts +16 -0
  283. package/types/buttons/HelpButton.d.ts.map +1 -0
  284. package/types/buttons/IconGallery.d.ts +8 -0
  285. package/types/buttons/IconGallery.d.ts.map +1 -0
  286. package/types/buttons/Image.d.ts +8 -0
  287. package/types/buttons/Image.d.ts.map +1 -0
  288. package/types/buttons/ImageGallery.d.ts +8 -0
  289. package/types/buttons/ImageGallery.d.ts.map +1 -0
  290. package/types/buttons/Inputs.d.ts +8 -0
  291. package/types/buttons/Inputs.d.ts.map +1 -0
  292. package/types/buttons/Markdown.d.ts +7 -0
  293. package/types/buttons/Markdown.d.ts.map +1 -0
  294. package/types/buttons/ModeSwitch.d.ts +7 -0
  295. package/types/buttons/ModeSwitch.d.ts.map +1 -0
  296. package/types/buttons/Redo.d.ts +5 -0
  297. package/types/buttons/Redo.d.ts.map +1 -0
  298. package/types/buttons/Shapes.d.ts +8 -0
  299. package/types/buttons/Shapes.d.ts.map +1 -0
  300. package/types/buttons/Source.d.ts +13 -0
  301. package/types/buttons/Source.d.ts.map +1 -0
  302. package/types/buttons/Undo.d.ts +5 -0
  303. package/types/buttons/Undo.d.ts.map +1 -0
  304. package/types/buttons/Zoom/Zoom.d.ts +8 -0
  305. package/types/buttons/Zoom/Zoom.d.ts.map +1 -0
  306. package/types/buttons/Zoom/ZoomMenu.d.ts +12 -0
  307. package/types/buttons/Zoom/ZoomMenu.d.ts.map +1 -0
  308. package/types/buttons/Zoom/ZoomNumber.d.ts +8 -0
  309. package/types/buttons/Zoom/ZoomNumber.d.ts.map +1 -0
  310. package/types/buttons/Zoom/index.d.ts +2 -0
  311. package/types/buttons/Zoom/index.d.ts.map +1 -0
  312. package/types/buttons/index.d.ts +26 -0
  313. package/types/buttons/index.d.ts.map +1 -0
  314. package/types/buttons/tokenManager/TokenManager.d.ts +7 -0
  315. package/types/buttons/tokenManager/TokenManager.d.ts.map +1 -0
  316. package/types/buttons/tokenManager/index.d.ts +2 -0
  317. package/types/buttons/tokenManager/index.d.ts.map +1 -0
  318. package/types/components/ItemSeparator.d.ts +3 -0
  319. package/types/components/ItemSeparator.d.ts.map +1 -0
  320. package/types/components/StyledButton.d.ts +2 -0
  321. package/types/components/StyledButton.d.ts.map +1 -0
  322. package/types/groups/ActionsGroup.d.ts +10 -0
  323. package/types/groups/ActionsGroup.d.ts.map +1 -0
  324. package/types/groups/ControlGroup.d.ts +8 -0
  325. package/types/groups/ControlGroup.d.ts.map +1 -0
  326. package/types/groups/EditingGroup.d.ts +11 -0
  327. package/types/groups/EditingGroup.d.ts.map +1 -0
  328. package/types/groups/EditorGroup.d.ts +8 -0
  329. package/types/groups/EditorGroup.d.ts.map +1 -0
  330. package/types/groups/EditorsControlGroup.d.ts +8 -0
  331. package/types/groups/EditorsControlGroup.d.ts.map +1 -0
  332. package/types/groups/HistoryGroup.d.ts +8 -0
  333. package/types/groups/HistoryGroup.d.ts.map +1 -0
  334. package/types/groups/HistoryGroup.test.d.ts +2 -0
  335. package/types/groups/HistoryGroup.test.d.ts.map +1 -0
  336. package/types/groups/SidebarControlGroup.d.ts +8 -0
  337. package/types/groups/SidebarControlGroup.d.ts.map +1 -0
  338. package/types/groups/VisualizationGroup.d.ts +8 -0
  339. package/types/groups/VisualizationGroup.d.ts.map +1 -0
  340. package/types/groups/index.d.ts +11 -0
  341. package/types/groups/index.d.ts.map +1 -0
  342. package/types/hooks/useDropdown.d.ts +25 -0
  343. package/types/hooks/useDropdown.d.ts.map +1 -0
  344. package/types/index.d.ts +16 -0
  345. package/types/index.d.ts.map +1 -0
  346. package/types/types/common.d.ts +13 -0
  347. package/types/types/common.d.ts.map +1 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/buttons/Redo.tsx", "react", "@splunk/ui-utils/i18n", "@splunk/react-icons/ArrowBowRight", "@splunk/react-icons/CaretDown", "@splunk/react-ui/ScreenReaderContent", "@splunk/react-ui/Button", "styled-components", "../src/Item.tsx", "../src/IconButton.tsx"],
4
+ "sourcesContent": ["import React, { useCallback, useState, useEffect } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport RedoIcon from '@splunk/react-icons/ArrowBowRight';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: RedoIcon,\n screenReaderContent: _('Redo'),\n});\n\nconst Redo = ({ dashboardApi }: ToolbarButtonProps) => {\n // TODO: replace when history management is done in redux\n // mode changes can cause the button to mount while there is a redo state\n const [canRedo, setCanRedo] = useState(\n () => dashboardApi?.canRedo() ?? false\n );\n\n const onDefinitionChange = useCallback(() => {\n setCanRedo(dashboardApi?.canRedo() ?? false);\n }, [dashboardApi]);\n\n useEffect(() => {\n if (!dashboardApi?.historyManager) {\n return () => undefined;\n }\n // Dirty hack to get the history manager.\n return dashboardApi.historyManager.subscribe({\n onAdd: onDefinitionChange,\n onUndo: onDefinitionChange,\n onRedo: onDefinitionChange,\n });\n }, [dashboardApi, onDefinitionChange]);\n\n const handleClick = useCallback(() => {\n if (!dashboardApi) {\n return;\n }\n\n dashboardApi.redo({ source: 'toolbar' });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"redo-button\"\n onClick={handleClick}\n disabled={!canRedo}\n icon={icon}\n />\n );\n};\n\nexport default Redo;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/ArrowBowRight\";\nexport * from \"@splunk/react-icons/ArrowBowRight\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import React from 'react';\nimport type SVG from '@splunk/react-icons/SVG';\nimport DropdownIcon from '@splunk/react-icons/CaretDown';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n return (\n <ToolbarItem {...rest}>\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
5
+ "mappings": "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",
6
+ "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon"]
7
+ }
@@ -0,0 +1,357 @@
1
+ /* Copyright © 2020 Splunk Inc.
2
+ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
+ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
+ "use strict";
5
+ var __create = Object.create;
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __getOwnPropNames = Object.getOwnPropertyNames;
9
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
+ var __getProtoOf = Object.getPrototypeOf;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
+ var __spreadValues = (a, b) => {
15
+ for (var prop in b || (b = {}))
16
+ if (__hasOwnProp.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ if (__getOwnPropSymbols)
19
+ for (var prop of __getOwnPropSymbols(b)) {
20
+ if (__propIsEnum.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ }
23
+ return a;
24
+ };
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ var __export = (target, all) => {
38
+ for (var name in all)
39
+ __defProp(target, name, { get: all[name], enumerable: true });
40
+ };
41
+ var __copyProps = (to, from, except, desc) => {
42
+ if (from && typeof from === "object" || typeof from === "function") {
43
+ for (let key of __getOwnPropNames(from))
44
+ if (!__hasOwnProp.call(to, key) && key !== except)
45
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
46
+ }
47
+ return to;
48
+ };
49
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
50
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
51
+ // If the importer is in node compatibility mode or this is not an ESM
52
+ // file that has been converted to a CommonJS file using a Babel-
53
+ // compatible transform (i.e. "__esModule" has not been set), then set
54
+ // "default" to the CommonJS "module.exports" for node compatibility.
55
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
56
+ mod
57
+ ));
58
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
59
+
60
+ // src/buttons/Shapes.tsx
61
+ var Shapes_exports = {};
62
+ __export(Shapes_exports, {
63
+ default: () => Shapes_default
64
+ });
65
+ module.exports = __toCommonJS(Shapes_exports);
66
+
67
+ // esm-externals:react
68
+ var react_exports = {};
69
+ __export(react_exports, {
70
+ default: () => react_default
71
+ });
72
+ var defaultImport = __toESM(require("react"));
73
+ __reExport(react_exports, require("react"));
74
+ var react_default = "default" in defaultImport ? defaultImport.default : defaultImport;
75
+
76
+ // esm-externals:@splunk/react-ui/Menu
77
+ var Menu_exports = {};
78
+ __export(Menu_exports, {
79
+ default: () => Menu_default
80
+ });
81
+ var defaultImport2 = __toESM(require("@splunk/react-ui/Menu"));
82
+ __reExport(Menu_exports, require("@splunk/react-ui/Menu"));
83
+ var Menu_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
84
+
85
+ // esm-externals:@splunk/react-icons/Circle
86
+ var Circle_exports = {};
87
+ __export(Circle_exports, {
88
+ default: () => Circle_default
89
+ });
90
+ var defaultImport3 = __toESM(require("@splunk/react-icons/Circle"));
91
+ __reExport(Circle_exports, require("@splunk/react-icons/Circle"));
92
+ var Circle_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
93
+
94
+ // esm-externals:@splunk/react-icons/Square
95
+ var Square_exports = {};
96
+ __export(Square_exports, {
97
+ default: () => Square_default
98
+ });
99
+ var defaultImport4 = __toESM(require("@splunk/react-icons/Square"));
100
+ __reExport(Square_exports, require("@splunk/react-icons/Square"));
101
+ var Square_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
102
+
103
+ // esm-externals:@splunk/react-icons/Line
104
+ var Line_exports = {};
105
+ __export(Line_exports, {
106
+ default: () => Line_default
107
+ });
108
+ var defaultImport5 = __toESM(require("@splunk/react-icons/Line"));
109
+ __reExport(Line_exports, require("@splunk/react-icons/Line"));
110
+ var Line_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
111
+
112
+ // esm-externals:@splunk/react-ui/Dropdown
113
+ var Dropdown_exports = {};
114
+ __export(Dropdown_exports, {
115
+ default: () => Dropdown_default
116
+ });
117
+ var defaultImport6 = __toESM(require("@splunk/react-ui/Dropdown"));
118
+ __reExport(Dropdown_exports, require("@splunk/react-ui/Dropdown"));
119
+ var Dropdown_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
120
+
121
+ // esm-externals:@splunk/ui-utils/i18n
122
+ var i18n_exports = {};
123
+ __export(i18n_exports, {
124
+ default: () => i18n_default
125
+ });
126
+ var defaultImport7 = __toESM(require("@splunk/ui-utils/i18n"));
127
+ __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
128
+ var i18n_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
129
+
130
+ // esm-externals:@splunk/react-icons/ShapesVariety
131
+ var ShapesVariety_exports = {};
132
+ __export(ShapesVariety_exports, {
133
+ default: () => ShapesVariety_default
134
+ });
135
+ var defaultImport8 = __toESM(require("@splunk/react-icons/ShapesVariety"));
136
+ __reExport(ShapesVariety_exports, require("@splunk/react-icons/ShapesVariety"));
137
+ var ShapesVariety_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
138
+
139
+ // esm-externals:@splunk/react-ui/Button
140
+ var Button_exports = {};
141
+ __export(Button_exports, {
142
+ default: () => Button_default
143
+ });
144
+ var defaultImport9 = __toESM(require("@splunk/react-ui/Button"));
145
+ __reExport(Button_exports, require("@splunk/react-ui/Button"));
146
+ var Button_default = "default" in defaultImport9 ? defaultImport9.default : defaultImport9;
147
+
148
+ // esm-externals:styled-components
149
+ var styled_components_exports = {};
150
+ __export(styled_components_exports, {
151
+ default: () => styled_components_default
152
+ });
153
+ var defaultImport10 = __toESM(require("styled-components"));
154
+ __reExport(styled_components_exports, require("styled-components"));
155
+ var styled_components_default = "default" in defaultImport10 ? defaultImport10.default : defaultImport10;
156
+
157
+ // src/components/StyledButton.tsx
158
+ var StyledDropdownButton = styled_components_default(Button_default)`
159
+ max-width: '50px';
160
+ `;
161
+
162
+ // src/hooks/useDropdown.ts
163
+ var useDropdown = ({
164
+ isContentClickClose = true
165
+ }) => {
166
+ const [isOpen, setIsOpen] = (0, react_exports.useState)(false);
167
+ const hasChildModal = (0, react_exports.useRef)(false);
168
+ const handleRequestClose = (0, react_exports.useCallback)(
169
+ ({ reason }) => {
170
+ if (reason === "contentClick" && !isContentClickClose) {
171
+ return;
172
+ }
173
+ if (reason === "escapeKey" && hasChildModal.current) {
174
+ return;
175
+ }
176
+ setIsOpen(false);
177
+ },
178
+ [isContentClickClose]
179
+ );
180
+ const handleRequestOpen = (0, react_exports.useCallback)(() => {
181
+ setIsOpen(true);
182
+ }, []);
183
+ const handleForceClose = (0, react_exports.useCallback)(() => {
184
+ setIsOpen(false);
185
+ }, []);
186
+ const setHasChildModal = (0, react_exports.useCallback)((value) => {
187
+ hasChildModal.current = value;
188
+ }, []);
189
+ return {
190
+ isOpen,
191
+ handleRequestOpen,
192
+ handleRequestClose,
193
+ handleForceClose,
194
+ setHasChildModal
195
+ };
196
+ };
197
+ var useDropdown_default = useDropdown;
198
+
199
+ // src/Item.tsx
200
+ var Item_default = styled_components_default.div``;
201
+
202
+ // src/PopoverItemButton.tsx
203
+ var StyledContentWrapper = styled_components_default.span`
204
+ display: flex;
205
+ flex-direction: row;
206
+ justify-content: left;
207
+ align-items: center;
208
+ max-width: 100%;
209
+ `;
210
+ var StyledIcon = styled_components_default.span`
211
+ display: inline-block;
212
+ padding-right: 8px;
213
+ `;
214
+ var StyledLabel = styled_components_default.span`
215
+ text-overflow: ellipsis;
216
+ overflow: hidden;
217
+ flex: 0 1 auto;
218
+ `;
219
+ var PopoverItemButton = ({ icon, label }) => /* @__PURE__ */ react_default.createElement(StyledContentWrapper, null, icon && /* @__PURE__ */ react_default.createElement(StyledIcon, null, icon), label && /* @__PURE__ */ react_default.createElement(StyledLabel, { "data-test": "label-title" }, label));
220
+ var PopoverItemButton_default = PopoverItemButton;
221
+
222
+ // esm-externals:@splunk/react-icons/CaretDown
223
+ var CaretDown_exports = {};
224
+ __export(CaretDown_exports, {
225
+ default: () => CaretDown_default
226
+ });
227
+ var defaultImport11 = __toESM(require("@splunk/react-icons/CaretDown"));
228
+ __reExport(CaretDown_exports, require("@splunk/react-icons/CaretDown"));
229
+ var CaretDown_default = "default" in defaultImport11 ? defaultImport11.default : defaultImport11;
230
+
231
+ // esm-externals:@splunk/react-ui/ScreenReaderContent
232
+ var ScreenReaderContent_exports = {};
233
+ __export(ScreenReaderContent_exports, {
234
+ default: () => ScreenReaderContent_default
235
+ });
236
+ var defaultImport12 = __toESM(require("@splunk/react-ui/ScreenReaderContent"));
237
+ __reExport(ScreenReaderContent_exports, require("@splunk/react-ui/ScreenReaderContent"));
238
+ var ScreenReaderContent_default = "default" in defaultImport12 ? defaultImport12.default : defaultImport12;
239
+
240
+ // src/IconButton.tsx
241
+ var StyledDropdownIcon = styled_components_default(CaretDown_default)`
242
+ margin-left: -5px;
243
+ `;
244
+ var iconSize = 24;
245
+ var menuIconSize = 20;
246
+ var prepareIcon = (_a) => {
247
+ var _b = _a, {
248
+ Icon,
249
+ screenReaderContent,
250
+ isMenu = false
251
+ } = _b, props = __objRest(_b, [
252
+ "Icon",
253
+ "screenReaderContent",
254
+ "isMenu"
255
+ ]);
256
+ const size = isMenu ? menuIconSize : iconSize;
257
+ return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon, __spreadValues({ width: size, height: size }, props)), isMenu && /* @__PURE__ */ react_default.createElement(StyledDropdownIcon, { variant: "filled", width: 9, height: size }), screenReaderContent && /* @__PURE__ */ react_default.createElement(ScreenReaderContent_default, null, screenReaderContent));
258
+ };
259
+
260
+ // src/buttons/Shapes.tsx
261
+ var shapesDropdown = prepareIcon({
262
+ Icon: ShapesVariety_default,
263
+ screenReaderContent: (0, i18n_exports._)("Add shape"),
264
+ isMenu: true
265
+ });
266
+ var ButtonToggle = /* @__PURE__ */ react_default.createElement(
267
+ StyledDropdownButton,
268
+ {
269
+ appearance: "subtle",
270
+ "data-clickable": true,
271
+ "data-test": "shapes-button",
272
+ icon: shapesDropdown
273
+ }
274
+ );
275
+ var focusToggleReasons = [];
276
+ var circleIcon = /* @__PURE__ */ react_default.createElement(Circle_default, null);
277
+ var uncheckedBoxIcon = /* @__PURE__ */ react_default.createElement(Square_default, null);
278
+ var lineIcon = /* @__PURE__ */ react_default.createElement(Line_default, null);
279
+ var Shapes = ({ dashboardApi, layoutType }) => {
280
+ const supportLine = layoutType === "absolute";
281
+ const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown_default({
282
+ isContentClickClose: true
283
+ });
284
+ const handleCreateVizButtonClick = (0, react_exports.useCallback)(
285
+ (vizToCreate, layoutItemType) => {
286
+ return () => {
287
+ dashboardApi == null ? void 0 : dashboardApi.createVisualization({
288
+ visualizationDefinition: vizToCreate,
289
+ layoutItemType
290
+ });
291
+ dashboardApi == null ? void 0 : dashboardApi.openPanel({ activePanel: "config" });
292
+ };
293
+ },
294
+ [dashboardApi]
295
+ );
296
+ return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
297
+ Dropdown_default,
298
+ {
299
+ focusToggleReasons,
300
+ onRequestClose: handleRequestClose,
301
+ onRequestOpen: handleRequestOpen,
302
+ open: isOpen,
303
+ toggle: ButtonToggle
304
+ },
305
+ /* @__PURE__ */ react_default.createElement(Menu_default, { "data-test": "shapes-dropdown-children-container" }, /* @__PURE__ */ react_default.createElement(
306
+ Menu_default.Item,
307
+ {
308
+ "data-test": "ellipse-button",
309
+ onClick: handleCreateVizButtonClick({
310
+ type: "splunk.ellipse"
311
+ })
312
+ },
313
+ /* @__PURE__ */ react_default.createElement(
314
+ PopoverItemButton_default,
315
+ {
316
+ icon: circleIcon,
317
+ label: (0, i18n_exports._)("Ellipse")
318
+ }
319
+ )
320
+ ), /* @__PURE__ */ react_default.createElement(
321
+ Menu_default.Item,
322
+ {
323
+ "data-test": "rectangle-button",
324
+ onClick: handleCreateVizButtonClick({
325
+ type: "splunk.rectangle"
326
+ })
327
+ },
328
+ /* @__PURE__ */ react_default.createElement(
329
+ PopoverItemButton_default,
330
+ {
331
+ icon: uncheckedBoxIcon,
332
+ label: (0, i18n_exports._)("Rectangle")
333
+ }
334
+ )
335
+ ), supportLine && /* @__PURE__ */ react_default.createElement(
336
+ Menu_default.Item,
337
+ {
338
+ "data-test": "line-button",
339
+ onClick: handleCreateVizButtonClick(
340
+ {
341
+ type: "abslayout.line"
342
+ },
343
+ "line"
344
+ )
345
+ },
346
+ /* @__PURE__ */ react_default.createElement(
347
+ PopoverItemButton_default,
348
+ {
349
+ icon: lineIcon,
350
+ label: (0, i18n_exports._)("Line")
351
+ }
352
+ )
353
+ ))
354
+ ));
355
+ };
356
+ var Shapes_default = Shapes;
357
+ //# sourceMappingURL=Shapes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/buttons/Shapes.tsx", "react", "@splunk/react-ui/Menu", "@splunk/react-icons/Circle", "@splunk/react-icons/Square", "@splunk/react-icons/Line", "@splunk/react-ui/Dropdown", "@splunk/ui-utils/i18n", "@splunk/react-icons/ShapesVariety", "@splunk/react-ui/Button", "styled-components", "../src/components/StyledButton.tsx", "../src/hooks/useDropdown.ts", "../src/Item.tsx", "../src/PopoverItemButton.tsx", "@splunk/react-icons/CaretDown", "@splunk/react-ui/ScreenReaderContent", "../src/IconButton.tsx"],
4
+ "sourcesContent": ["import React, { useCallback } from 'react';\nimport Menu from '@splunk/react-ui/Menu';\nimport Circle from '@splunk/react-icons/Circle';\nimport BoxUnchecked from '@splunk/react-icons/Square';\nimport Line from '@splunk/react-icons/Line';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport AddShapeDropdown from '@splunk/react-icons/ShapesVariety';\nimport type {\n StructureItemType,\n VisualizationDefinition,\n} from '@splunk/dashboard-types';\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport PopoverItemButton from '../PopoverItemButton';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\n\nconst shapesDropdown = prepareIcon({\n Icon: AddShapeDropdown,\n screenReaderContent: _('Add shape'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"shapes-button\"\n icon={shapesDropdown}\n />\n);\n\nconst focusToggleReasons: never[] = [];\n\nconst circleIcon = <Circle />;\nconst uncheckedBoxIcon = <BoxUnchecked />;\nconst lineIcon = <Line />;\n\n/**\n * Shapes button that has a dropdown menu.\n */\nconst Shapes = ({ dashboardApi, layoutType }: ToolbarButtonProps) => {\n const supportLine = layoutType === 'absolute';\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const handleCreateVizButtonClick = useCallback(\n (\n vizToCreate: VisualizationDefinition<Record<string, unknown>>,\n layoutItemType?: StructureItemType\n ) => {\n return () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: vizToCreate,\n layoutItemType,\n });\n dashboardApi?.openPanel({ activePanel: 'config' });\n };\n },\n [dashboardApi]\n );\n\n return (\n <ToolbarItem>\n <Dropdown\n focusToggleReasons={focusToggleReasons}\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu data-test=\"shapes-dropdown-children-container\">\n <Menu.Item\n data-test=\"ellipse-button\"\n onClick={handleCreateVizButtonClick({\n type: 'splunk.ellipse',\n })}\n >\n <PopoverItemButton\n icon={circleIcon}\n label={_('Ellipse')}\n />\n </Menu.Item>\n <Menu.Item\n data-test=\"rectangle-button\"\n onClick={handleCreateVizButtonClick({\n type: 'splunk.rectangle',\n })}\n >\n <PopoverItemButton\n icon={uncheckedBoxIcon}\n label={_('Rectangle')}\n />\n </Menu.Item>\n {supportLine && (\n <Menu.Item\n data-test=\"line-button\"\n onClick={handleCreateVizButtonClick(\n {\n type: 'abslayout.line',\n },\n 'line'\n )}\n >\n <PopoverItemButton\n icon={lineIcon}\n label={_('Line')}\n />\n </Menu.Item>\n )}\n </Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Shapes;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Circle\";\nexport * from \"@splunk/react-icons/Circle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Square\";\nexport * from \"@splunk/react-icons/Square\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/Line\";\nexport * from \"@splunk/react-icons/Line\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/ShapesVariety\";\nexport * from \"@splunk/react-icons/ShapesVariety\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import Button from '@splunk/react-ui/Button';\nimport styled from 'styled-components';\n\nexport const StyledDropdownButton = styled(Button)`\n max-width: '50px';\n`;\n", "import type { DropdownRequestCloseHandler } from '@splunk/react-ui/Dropdown';\nimport { useCallback, useRef, useState } from 'react';\n\ninterface UseDropdownArgs {\n isContentClickClose?: boolean;\n}\n\ninterface UseDropdownReturn {\n isOpen: boolean;\n handleRequestClose: DropdownRequestCloseHandler;\n handleRequestOpen: () => void;\n handleForceClose: () => void;\n setHasChildModal: (value: boolean) => void;\n}\n\n/**\n * Custom React Hook for the controlled SUI Dropdown component.\n *\n * @param {Object} config\n * @param {Boolean} config.isContentClickClose Control if dropdown children onClick's will close the dropdown automatically\n * @returns {Object} value\n * @returns {Boolean} value.isOpen The only state of this hook\n * @returns {Function} value.handleRequestOpen Event handler to open the dropdown\n * @returns {Function} value.handleRequestClose Event handler that SUI Dropdown calls when requested to close\n * @returns {Function} value.handleForceClose Event handler to forcefully close the dropdown\n */\nconst useDropdown = ({\n isContentClickClose = true,\n}: UseDropdownArgs): UseDropdownReturn => {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildModal = useRef(false);\n\n const handleRequestClose = useCallback<DropdownRequestCloseHandler>(\n ({ reason }) => {\n if (reason === 'contentClick' && !isContentClickClose) {\n // This return results in the dropdown not closing.\n return;\n }\n\n // If there is a child modal then don't close the root on ESC press\n if (reason === 'escapeKey' && hasChildModal.current) {\n return;\n }\n\n setIsOpen(false);\n },\n [isContentClickClose]\n );\n\n const handleRequestOpen = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const handleForceClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const setHasChildModal = useCallback((value: boolean) => {\n hasChildModal.current = value;\n }, []);\n\n return {\n isOpen,\n handleRequestOpen,\n handleRequestClose,\n handleForceClose,\n setHasChildModal,\n };\n};\n\nexport default useDropdown;\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import React from 'react';\nimport styled from 'styled-components';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledContentWrapper = styled.span`\n display: flex;\n flex-direction: row;\n justify-content: left;\n align-items: center;\n max-width: 100%;\n`;\n\nconst StyledIcon = styled.span`\n display: inline-block;\n padding-right: 8px;\n`;\n\nconst StyledLabel = styled.span`\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 0 1 auto;\n`;\n\nexport interface PopoverItemButtonProps extends ToolbarButtonProps {\n icon: JSX.Element;\n label?: string;\n}\n\n/**\n * Custom button component for popovers created for specific styling - aligning text to the left\n */\nconst PopoverItemButton = ({ icon, label }: PopoverItemButtonProps) => (\n <StyledContentWrapper>\n {icon && <StyledIcon>{icon}</StyledIcon>}\n {label && <StyledLabel data-test=\"label-title\">{label}</StyledLabel>}\n </StyledContentWrapper>\n);\n\nexport default PopoverItemButton;\n", "\nimport * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React from 'react';\nimport type SVG from '@splunk/react-icons/SVG';\nimport DropdownIcon from '@splunk/react-icons/CaretDown';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n return (\n <ToolbarItem {...rest}>\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
5
+ "mappings": "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",
6
+ "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
+ }
@@ -0,0 +1,199 @@
1
+ /* Copyright © 2020 Splunk Inc.
2
+ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
+ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
+ "use strict";
5
+ var __create = Object.create;
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __getOwnPropNames = Object.getOwnPropertyNames;
9
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
+ var __getProtoOf = Object.getPrototypeOf;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
+ var __spreadValues = (a, b) => {
15
+ for (var prop in b || (b = {}))
16
+ if (__hasOwnProp.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ if (__getOwnPropSymbols)
19
+ for (var prop of __getOwnPropSymbols(b)) {
20
+ if (__propIsEnum.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ }
23
+ return a;
24
+ };
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ var __export = (target, all) => {
38
+ for (var name in all)
39
+ __defProp(target, name, { get: all[name], enumerable: true });
40
+ };
41
+ var __copyProps = (to, from, except, desc) => {
42
+ if (from && typeof from === "object" || typeof from === "function") {
43
+ for (let key of __getOwnPropNames(from))
44
+ if (!__hasOwnProp.call(to, key) && key !== except)
45
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
46
+ }
47
+ return to;
48
+ };
49
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
50
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
51
+ // If the importer is in node compatibility mode or this is not an ESM
52
+ // file that has been converted to a CommonJS file using a Babel-
53
+ // compatible transform (i.e. "__esModule" has not been set), then set
54
+ // "default" to the CommonJS "module.exports" for node compatibility.
55
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
56
+ mod
57
+ ));
58
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
59
+
60
+ // src/buttons/Source.tsx
61
+ var Source_exports = {};
62
+ __export(Source_exports, {
63
+ default: () => Source_default
64
+ });
65
+ module.exports = __toCommonJS(Source_exports);
66
+
67
+ // esm-externals:react
68
+ var react_exports = {};
69
+ __export(react_exports, {
70
+ default: () => react_default
71
+ });
72
+ var defaultImport = __toESM(require("react"));
73
+ __reExport(react_exports, require("react"));
74
+ var react_default = "default" in defaultImport ? defaultImport.default : defaultImport;
75
+
76
+ // esm-externals:@splunk/ui-utils/i18n
77
+ var i18n_exports = {};
78
+ __export(i18n_exports, {
79
+ default: () => i18n_default
80
+ });
81
+ var defaultImport2 = __toESM(require("@splunk/ui-utils/i18n"));
82
+ __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
83
+ var i18n_default = "default" in defaultImport2 ? defaultImport2.default : defaultImport2;
84
+
85
+ // esm-externals:@splunk/react-icons/WindowChevronsSlash
86
+ var WindowChevronsSlash_exports = {};
87
+ __export(WindowChevronsSlash_exports, {
88
+ default: () => WindowChevronsSlash_default
89
+ });
90
+ var defaultImport3 = __toESM(require("@splunk/react-icons/WindowChevronsSlash"));
91
+ __reExport(WindowChevronsSlash_exports, require("@splunk/react-icons/WindowChevronsSlash"));
92
+ var WindowChevronsSlash_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
93
+
94
+ // esm-externals:@splunk/react-icons/CaretDown
95
+ var CaretDown_exports = {};
96
+ __export(CaretDown_exports, {
97
+ default: () => CaretDown_default
98
+ });
99
+ var defaultImport4 = __toESM(require("@splunk/react-icons/CaretDown"));
100
+ __reExport(CaretDown_exports, require("@splunk/react-icons/CaretDown"));
101
+ var CaretDown_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
102
+
103
+ // esm-externals:@splunk/react-ui/ScreenReaderContent
104
+ var ScreenReaderContent_exports = {};
105
+ __export(ScreenReaderContent_exports, {
106
+ default: () => ScreenReaderContent_default
107
+ });
108
+ var defaultImport5 = __toESM(require("@splunk/react-ui/ScreenReaderContent"));
109
+ __reExport(ScreenReaderContent_exports, require("@splunk/react-ui/ScreenReaderContent"));
110
+ var ScreenReaderContent_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
111
+
112
+ // esm-externals:@splunk/react-ui/Button
113
+ var Button_exports = {};
114
+ __export(Button_exports, {
115
+ default: () => Button_default
116
+ });
117
+ var defaultImport6 = __toESM(require("@splunk/react-ui/Button"));
118
+ __reExport(Button_exports, require("@splunk/react-ui/Button"));
119
+ var Button_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
120
+
121
+ // esm-externals:styled-components
122
+ var styled_components_exports = {};
123
+ __export(styled_components_exports, {
124
+ default: () => styled_components_default
125
+ });
126
+ var defaultImport7 = __toESM(require("styled-components"));
127
+ __reExport(styled_components_exports, require("styled-components"));
128
+ var styled_components_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
129
+
130
+ // src/Item.tsx
131
+ var Item_default = styled_components_default.div``;
132
+
133
+ // src/IconButton.tsx
134
+ var StyledDropdownIcon = styled_components_default(CaretDown_default)`
135
+ margin-left: -5px;
136
+ `;
137
+ var iconSize = 24;
138
+ var menuIconSize = 20;
139
+ var prepareIcon = (_a) => {
140
+ var _b = _a, {
141
+ Icon,
142
+ screenReaderContent,
143
+ isMenu = false
144
+ } = _b, props = __objRest(_b, [
145
+ "Icon",
146
+ "screenReaderContent",
147
+ "isMenu"
148
+ ]);
149
+ const size = isMenu ? menuIconSize : iconSize;
150
+ return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(Icon, __spreadValues({ width: size, height: size }, props)), isMenu && /* @__PURE__ */ react_default.createElement(StyledDropdownIcon, { variant: "filled", width: 9, height: size }), screenReaderContent && /* @__PURE__ */ react_default.createElement(ScreenReaderContent_default, null, screenReaderContent));
151
+ };
152
+ var IconButton = (_a) => {
153
+ var _b = _a, {
154
+ icon: icon2,
155
+ buttonRef,
156
+ disabled = false,
157
+ onClick,
158
+ label,
159
+ testLabel
160
+ } = _b, rest = __objRest(_b, [
161
+ "icon",
162
+ "buttonRef",
163
+ "disabled",
164
+ "onClick",
165
+ "label",
166
+ "testLabel"
167
+ ]);
168
+ return /* @__PURE__ */ react_default.createElement(Item_default, __spreadValues({}, rest), /* @__PURE__ */ react_default.createElement(
169
+ Button_default,
170
+ {
171
+ elementRef: buttonRef,
172
+ onClick,
173
+ disabled,
174
+ appearance: "subtle",
175
+ icon: icon2,
176
+ label,
177
+ "data-test": testLabel,
178
+ "data-clickable": true
179
+ }
180
+ ));
181
+ };
182
+ var IconButton_default = IconButton;
183
+
184
+ // src/buttons/Source.tsx
185
+ var icon = prepareIcon({
186
+ Icon: WindowChevronsSlash_default,
187
+ screenReaderContent: (0, i18n_exports._)("Source code")
188
+ });
189
+ var Source = ({ disabled = false, onClick }) => /* @__PURE__ */ react_default.createElement(
190
+ IconButton_default,
191
+ {
192
+ testLabel: "source-button",
193
+ onClick,
194
+ disabled,
195
+ icon
196
+ }
197
+ );
198
+ var Source_default = Source;
199
+ //# sourceMappingURL=Source.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/buttons/Source.tsx", "react", "@splunk/ui-utils/i18n", "@splunk/react-icons/WindowChevronsSlash", "@splunk/react-icons/CaretDown", "@splunk/react-ui/ScreenReaderContent", "@splunk/react-ui/Button", "styled-components", "../src/Item.tsx", "../src/IconButton.tsx"],
4
+ "sourcesContent": ["import React, { type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SourceIcon from '@splunk/react-icons/WindowChevronsSlash';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nexport interface SourceProps extends ToolbarButtonProps {\n onClick?: ComponentProps<typeof IconButton>['onClick'];\n disabled?: boolean;\n}\n\nconst icon = prepareIcon({\n Icon: SourceIcon,\n screenReaderContent: _('Source code'),\n});\n\n/**\n * Button that toggle source mode\n */\nconst Source = ({ disabled = false, onClick }: SourceProps) => (\n <IconButton\n testLabel=\"source-button\"\n onClick={onClick}\n disabled={disabled}\n icon={icon}\n />\n);\n\nexport default Source;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import React from 'react';\nimport type SVG from '@splunk/react-icons/SVG';\nimport DropdownIcon from '@splunk/react-icons/CaretDown';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n return (\n <ToolbarItem {...rest}>\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,0BAAc;AACd,IAAO,gBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,8BAAc;AACd,IAAO,oBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,sCAAc;AACd,IAAO,4BAAS,aAAaA,iBAA8B,yBAAUA;;;ACDrE,IAAO,eAAQ,0BAAO;;;ACOtB,IAAM,qBAAqB,0BAAO,iBAAY;AAAA;AAAA;AAIvC,IAAM,WAAW;AACjB,IAAM,eAAe;AAoBrB,IAAM,cAAc,CAAC,OAKJ;AALI,eACxB;AAAA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EArCb,IAkC4B,IAIrB,kBAJqB,IAIrB;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,OAAO,SAAS,eAAe;AACrC,SACI,0EACI,4CAAC,uBAAK,OAAO,MAAM,QAAQ,QAAU,MAAO,GAC3C,UACG,4CAAC,sBAAmB,SAAQ,UAAS,OAAO,GAAG,QAAQ,MAAM,GAEhE,uBACG,4CAAC,mCAAqB,mBAAoB,CAElD;AAER;AAWA,IAAM,aAAa,CAAC,OAQgB;AARhB,eAChB;AAAA,UAAAC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EArEJ,IA+DoB,IAOb,iBAPa,IAOb;AAAA,IANH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACI,4CAAC,iCAAgB,OACb;AAAA,IAAC;AAAA;AAAA,MACG,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,YAAW;AAAA,MACX,MAAMA;AAAA,MACN;AAAA,MACA,aAAW;AAAA,MACX,kBAAc;AAAA;AAAA,EAClB,CACJ;AAER;AAEA,IAAO,qBAAQ;;;AT7Ef,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,aAAa;AACxC,CAAC;AAKD,IAAM,SAAS,CAAC,EAAE,WAAW,OAAO,QAAQ,MACxC;AAAA,EAAC;AAAA;AAAA,IACG,WAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AACJ;AAGJ,IAAO,iBAAQ;",
6
+ "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon"]
7
+ }