@splunk/dashboard-toolbar 29.3.4 → 29.5.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 (250) hide show
  1. package/.storybook/index.ts +2 -0
  2. package/.storybook/withDashboardApiContext.tsx +18 -0
  3. package/.storybook/withDashboardContext.tsx +34 -0
  4. package/CollapsibleToolbar.js +22 -6
  5. package/CollapsibleToolbar.js.map +2 -2
  6. package/IconButton.js +1 -1
  7. package/IconButton.js.map +2 -2
  8. package/Item.js +1 -1
  9. package/Item.js.map +2 -2
  10. package/ItemGroup.js +1 -1
  11. package/ItemGroup.js.map +2 -2
  12. package/PopoverItemButton.js +1 -1
  13. package/PopoverItemButton.js.map +2 -2
  14. package/README.md +1 -1
  15. package/Toolbar.js +1 -1
  16. package/Toolbar.js.map +2 -2
  17. package/buttons/Charts.js +1 -1
  18. package/buttons/Charts.js.map +2 -2
  19. package/buttons/Config.js +1 -1
  20. package/buttons/Config.js.map +2 -2
  21. package/buttons/ContentExport.js +1 -1
  22. package/buttons/ContentExport.js.map +2 -2
  23. package/buttons/Data.js +1 -1
  24. package/buttons/Data.js.map +2 -2
  25. package/buttons/EmptyVisualization.js +1 -1
  26. package/buttons/EmptyVisualization.js.map +2 -2
  27. package/buttons/ExportDashboardButton.js +22 -9
  28. package/buttons/ExportDashboardButton.js.map +4 -4
  29. package/buttons/Fullscreen.js +43 -4
  30. package/buttons/Fullscreen.js.map +3 -3
  31. package/buttons/GridLineSwitch.js +1 -1
  32. package/buttons/GridLineSwitch.js.map +2 -2
  33. package/buttons/HelpButton.js +2 -2
  34. package/buttons/HelpButton.js.map +2 -2
  35. package/buttons/IconGallery.js +1 -1
  36. package/buttons/IconGallery.js.map +2 -2
  37. package/buttons/Image.js +1 -1
  38. package/buttons/Image.js.map +2 -2
  39. package/buttons/ImageGallery.js +1 -1
  40. package/buttons/ImageGallery.js.map +2 -2
  41. package/buttons/Inputs.js +1 -1
  42. package/buttons/Inputs.js.map +2 -2
  43. package/buttons/Markdown.js +1 -1
  44. package/buttons/Markdown.js.map +2 -2
  45. package/buttons/ModeSwitch.js +1 -1
  46. package/buttons/ModeSwitch.js.map +2 -2
  47. package/buttons/Redo.js +1 -1
  48. package/buttons/Redo.js.map +2 -2
  49. package/buttons/Shapes.js +1 -1
  50. package/buttons/Shapes.js.map +2 -2
  51. package/buttons/Source.js +1 -1
  52. package/buttons/Source.js.map +2 -2
  53. package/buttons/Undo.js +1 -1
  54. package/buttons/Undo.js.map +2 -2
  55. package/buttons/index.js +77 -13
  56. package/buttons/index.js.map +3 -3
  57. package/groups/ActionsGroup.js.map +2 -2
  58. package/groups/ControlGroup.js +52 -4
  59. package/groups/ControlGroup.js.map +3 -3
  60. package/groups/EditingGroup.js +15 -4
  61. package/groups/EditingGroup.js.map +3 -3
  62. package/groups/EditorGroup.js +10 -1
  63. package/groups/EditorGroup.js.map +3 -3
  64. package/groups/EditorsControlGroup.js +10 -1
  65. package/groups/EditorsControlGroup.js.map +3 -3
  66. package/groups/HistoryGroup.js +10 -1
  67. package/groups/HistoryGroup.js.map +3 -3
  68. package/groups/SidebarControlGroup.js +10 -1
  69. package/groups/SidebarControlGroup.js.map +3 -3
  70. package/groups/VisualizationGroup.js +10 -1
  71. package/groups/VisualizationGroup.js.map +3 -3
  72. package/groups/index.js +37 -7
  73. package/groups/index.js.map +3 -3
  74. package/index.js +98 -18
  75. package/index.js.map +3 -3
  76. package/module/CollapsibleToolbar.js +10 -10
  77. package/module/IconButton.js +5 -5
  78. package/module/Item.js +2 -2
  79. package/module/ItemGroup.js +6 -6
  80. package/module/PopoverItemButton.js +3 -3
  81. package/module/Toolbar.js +5 -5
  82. package/module/buttons/Charts.js +14 -14
  83. package/module/buttons/Config.js +8 -8
  84. package/module/buttons/ContentExport.js +8 -8
  85. package/module/buttons/Data.js +9 -9
  86. package/module/buttons/EmptyVisualization.js +8 -8
  87. package/module/buttons/ExportDashboardButton.js +7 -6
  88. package/module/buttons/Fullscreen.js +8 -8
  89. package/module/buttons/GridLineSwitch.js +7 -7
  90. package/module/buttons/HelpButton.js +10 -10
  91. package/module/buttons/IconGallery.js +10 -10
  92. package/module/buttons/Image.js +8 -8
  93. package/module/buttons/ImageGallery.js +11 -11
  94. package/module/buttons/Inputs.js +10 -10
  95. package/module/buttons/Markdown.js +7 -7
  96. package/module/buttons/ModeSwitch.js +8 -8
  97. package/module/buttons/Redo.js +7 -7
  98. package/module/buttons/Shapes.js +12 -12
  99. package/module/buttons/Source.js +8 -8
  100. package/module/buttons/Undo.js +7 -7
  101. package/module/buttons/index.js +39 -39
  102. package/module/chunks/{chunk-ODHRJQTV.js → chunk-2MOF5ZP7.js} +15 -7
  103. package/module/chunks/chunk-2MOF5ZP7.js.map +7 -0
  104. package/module/chunks/{chunk-VCWH2JHM.js → chunk-4SWPK2TU.js} +2 -2
  105. package/module/chunks/chunk-4SWPK2TU.js.map +7 -0
  106. package/module/chunks/{chunk-ZSBWP6MR.js → chunk-53UCFOI6.js} +13 -13
  107. package/module/chunks/chunk-53UCFOI6.js.map +7 -0
  108. package/module/chunks/{chunk-K4QITIOD.js → chunk-5DYPICGQ.js} +5 -5
  109. package/module/chunks/chunk-5DYPICGQ.js.map +7 -0
  110. package/module/chunks/{chunk-RQY6BB7F.js → chunk-6NLVLUCU.js} +1 -1
  111. package/module/chunks/chunk-6NLVLUCU.js.map +7 -0
  112. package/module/chunks/{chunk-XIZP3DYZ.js → chunk-C3GFY32L.js} +2 -2
  113. package/module/chunks/{chunk-JOFJS4UX.js → chunk-C7TXRFKI.js} +8 -8
  114. package/module/chunks/chunk-C7TXRFKI.js.map +7 -0
  115. package/module/chunks/{chunk-5FZAZ2XU.js → chunk-CMTNN2GG.js} +5 -5
  116. package/module/chunks/{chunk-PMZ2AWNS.js → chunk-COV2OGVE.js} +8 -8
  117. package/module/chunks/{chunk-MFIWFQAS.js → chunk-CS7TUOVQ.js} +6 -6
  118. package/module/chunks/{chunk-3MBRWVZS.js → chunk-DQPRUHAE.js} +9 -9
  119. package/module/chunks/chunk-DQPRUHAE.js.map +7 -0
  120. package/module/chunks/{chunk-FREEN2T3.js → chunk-EZJSIK72.js} +3 -3
  121. package/module/chunks/{chunk-C3NA7YCT.js → chunk-EZS4433X.js} +5 -5
  122. package/module/chunks/{chunk-PVT2JFAW.js → chunk-F3BPX66Z.js} +4 -4
  123. package/module/chunks/{chunk-QSKQE2FQ.js → chunk-FK3PXQBK.js} +64 -23
  124. package/module/chunks/chunk-FK3PXQBK.js.map +7 -0
  125. package/module/chunks/{chunk-4NRVBOUP.js → chunk-GD75KGSO.js} +5 -5
  126. package/module/chunks/{chunk-GFSNM45K.js → chunk-GMMN7SOC.js} +1 -1
  127. package/module/chunks/chunk-GMMN7SOC.js.map +7 -0
  128. package/module/chunks/{chunk-MWYPBMHI.js → chunk-GPLJNXKE.js} +10 -10
  129. package/module/chunks/chunk-GPLJNXKE.js.map +7 -0
  130. package/module/chunks/{chunk-KUPEYUWA.js → chunk-I6AJG47U.js} +1 -1
  131. package/module/chunks/chunk-I6AJG47U.js.map +7 -0
  132. package/module/chunks/{chunk-OSX3RDKV.js → chunk-IHFVJPGQ.js} +1 -1
  133. package/module/chunks/chunk-IHFVJPGQ.js.map +7 -0
  134. package/module/chunks/{chunk-MTPPRK4H.js → chunk-IWFH2PBS.js} +10 -10
  135. package/module/chunks/{chunk-56627Y63.js → chunk-J7M7QRC7.js} +9 -9
  136. package/module/chunks/chunk-J7M7QRC7.js.map +7 -0
  137. package/module/chunks/{chunk-GAXH7J77.js → chunk-JIIPUMEA.js} +1 -1
  138. package/module/chunks/chunk-JIIPUMEA.js.map +7 -0
  139. package/module/chunks/{chunk-6SUOFSGJ.js → chunk-JW4TMLMZ.js} +5 -5
  140. package/module/chunks/{chunk-VE4HUG27.js → chunk-KGSEQL62.js} +1 -1
  141. package/module/chunks/chunk-KGSEQL62.js.map +7 -0
  142. package/module/chunks/{chunk-WADWICSE.js → chunk-LEEGJTZT.js} +5 -5
  143. package/module/chunks/{chunk-X4VCE6GS.js → chunk-MUXHFVOC.js} +7 -7
  144. package/module/chunks/chunk-MUXHFVOC.js.map +7 -0
  145. package/module/chunks/{chunk-Q67T3UVN.js → chunk-NGEW5KQQ.js} +28 -8
  146. package/module/chunks/chunk-NGEW5KQQ.js.map +7 -0
  147. package/module/chunks/{chunk-ACSHFRXI.js → chunk-NNGZB36V.js} +4 -4
  148. package/module/chunks/{chunk-NKC5QFQ5.js.map → chunk-NNGZB36V.js.map} +3 -3
  149. package/module/chunks/{chunk-BSXRAEA2.js → chunk-NSCDFVBR.js} +6 -6
  150. package/module/chunks/chunk-NSCDFVBR.js.map +7 -0
  151. package/module/chunks/{chunk-6MLJBCIJ.js → chunk-NTQBWCZU.js} +7 -7
  152. package/module/chunks/{chunk-47MSCQAS.js → chunk-OC4QIR2D.js} +5 -5
  153. package/module/chunks/chunk-OC4QIR2D.js.map +7 -0
  154. package/module/chunks/{chunk-NKC5QFQ5.js → chunk-PFHSMP6M.js} +4 -4
  155. package/module/chunks/chunk-PFHSMP6M.js.map +7 -0
  156. package/module/chunks/{chunk-L3N7HHJU.js → chunk-PFKZCA73.js} +7 -7
  157. package/module/chunks/{chunk-5D7CUYUH.js → chunk-RFWUOGJ3.js} +1 -1
  158. package/module/chunks/chunk-RFWUOGJ3.js.map +7 -0
  159. package/module/chunks/{chunk-JGTSF7O4.js → chunk-RJ5FWZWY.js} +5 -5
  160. package/module/chunks/{chunk-2KBENXG3.js → chunk-RKJ7RKNK.js} +1 -1
  161. package/module/chunks/chunk-RKJ7RKNK.js.map +7 -0
  162. package/module/chunks/{chunk-IIPBKMJD.js → chunk-RPNGCVZL.js} +1 -1
  163. package/module/chunks/chunk-RPNGCVZL.js.map +7 -0
  164. package/module/chunks/{chunk-4Y6PRJOC.js → chunk-S6LWLEQ4.js} +4 -4
  165. package/module/chunks/chunk-S6LWLEQ4.js.map +7 -0
  166. package/module/chunks/{chunk-D27CPPHI.js → chunk-SFYQQARV.js} +3 -3
  167. package/module/chunks/{chunk-YMZGQ7CB.js → chunk-UCI2OCYF.js} +5 -5
  168. package/module/chunks/chunk-UCI2OCYF.js.map +7 -0
  169. package/module/chunks/{chunk-O74T4JNL.js → chunk-V3YGNO27.js} +2 -2
  170. package/module/chunks/chunk-V3YGNO27.js.map +7 -0
  171. package/module/chunks/{chunk-HOKI2CUB.js → chunk-VITMNUKV.js} +1 -1
  172. package/module/chunks/chunk-VITMNUKV.js.map +7 -0
  173. package/module/chunks/{chunk-UOT4CE2C.js → chunk-VSD7VGBN.js} +6 -6
  174. package/module/chunks/{chunk-RIR6YMJC.js → chunk-WLLGLYOO.js} +30 -14
  175. package/module/chunks/chunk-WLLGLYOO.js.map +7 -0
  176. package/module/chunks/{chunk-MRXRYL4Y.js → chunk-WSTQTULM.js} +3 -3
  177. package/module/chunks/{chunk-IITJ2NKO.js → chunk-XIT2UXG2.js} +5 -5
  178. package/module/chunks/chunk-XIT2UXG2.js.map +7 -0
  179. package/module/chunks/{chunk-2QBSLWJJ.js → chunk-XWRMHLAP.js} +1 -1
  180. package/module/chunks/chunk-XWRMHLAP.js.map +7 -0
  181. package/module/chunks/{chunk-LGNNSZ2O.js → chunk-YDVHOHRE.js} +10 -10
  182. package/module/chunks/{chunk-RZJ2PCV4.js → chunk-ZV4AQ5DL.js} +1 -1
  183. package/module/chunks/chunk-ZV4AQ5DL.js.map +7 -0
  184. package/module/groups/ActionsGroup.js +6 -6
  185. package/module/groups/ControlGroup.js +41 -41
  186. package/module/groups/EditingGroup.js +41 -41
  187. package/module/groups/EditorGroup.js +41 -41
  188. package/module/groups/EditorsControlGroup.js +41 -41
  189. package/module/groups/HistoryGroup.js +41 -41
  190. package/module/groups/SidebarControlGroup.js +41 -41
  191. package/module/groups/VisualizationGroup.js +41 -41
  192. package/module/groups/index.js +48 -48
  193. package/module/index.js +50 -50
  194. package/package.json +33 -32
  195. package/types/CollapsibleToolbar.d.ts.map +1 -1
  196. package/types/buttons/Display/Display.d.ts.map +1 -1
  197. package/types/buttons/ExportDashboardButton.d.ts.map +1 -1
  198. package/types/buttons/Fullscreen.d.ts.map +1 -1
  199. package/types/buttons/Zoom/ZoomNumber.d.ts.map +1 -1
  200. package/types/hooks/useToolbarButtonClick.d.ts +2 -0
  201. package/types/hooks/useToolbarButtonClick.d.ts.map +1 -0
  202. package/module/chunks/chunk-2KBENXG3.js.map +0 -7
  203. package/module/chunks/chunk-2QBSLWJJ.js.map +0 -7
  204. package/module/chunks/chunk-3MBRWVZS.js.map +0 -7
  205. package/module/chunks/chunk-47MSCQAS.js.map +0 -7
  206. package/module/chunks/chunk-4Y6PRJOC.js.map +0 -7
  207. package/module/chunks/chunk-56627Y63.js.map +0 -7
  208. package/module/chunks/chunk-5D7CUYUH.js.map +0 -7
  209. package/module/chunks/chunk-ACSHFRXI.js.map +0 -7
  210. package/module/chunks/chunk-BSXRAEA2.js.map +0 -7
  211. package/module/chunks/chunk-GAXH7J77.js.map +0 -7
  212. package/module/chunks/chunk-GFSNM45K.js.map +0 -7
  213. package/module/chunks/chunk-HOKI2CUB.js.map +0 -7
  214. package/module/chunks/chunk-IIPBKMJD.js.map +0 -7
  215. package/module/chunks/chunk-IITJ2NKO.js.map +0 -7
  216. package/module/chunks/chunk-JOFJS4UX.js.map +0 -7
  217. package/module/chunks/chunk-K4QITIOD.js.map +0 -7
  218. package/module/chunks/chunk-KUPEYUWA.js.map +0 -7
  219. package/module/chunks/chunk-MWYPBMHI.js.map +0 -7
  220. package/module/chunks/chunk-O74T4JNL.js.map +0 -7
  221. package/module/chunks/chunk-ODHRJQTV.js.map +0 -7
  222. package/module/chunks/chunk-OSX3RDKV.js.map +0 -7
  223. package/module/chunks/chunk-Q67T3UVN.js.map +0 -7
  224. package/module/chunks/chunk-QSKQE2FQ.js.map +0 -7
  225. package/module/chunks/chunk-RIR6YMJC.js.map +0 -7
  226. package/module/chunks/chunk-RQY6BB7F.js.map +0 -7
  227. package/module/chunks/chunk-RZJ2PCV4.js.map +0 -7
  228. package/module/chunks/chunk-VCWH2JHM.js.map +0 -7
  229. package/module/chunks/chunk-VE4HUG27.js.map +0 -7
  230. package/module/chunks/chunk-X4VCE6GS.js.map +0 -7
  231. package/module/chunks/chunk-YMZGQ7CB.js.map +0 -7
  232. package/module/chunks/chunk-ZSBWP6MR.js.map +0 -7
  233. /package/module/chunks/{chunk-XIZP3DYZ.js.map → chunk-C3GFY32L.js.map} +0 -0
  234. /package/module/chunks/{chunk-5FZAZ2XU.js.map → chunk-CMTNN2GG.js.map} +0 -0
  235. /package/module/chunks/{chunk-PMZ2AWNS.js.map → chunk-COV2OGVE.js.map} +0 -0
  236. /package/module/chunks/{chunk-MFIWFQAS.js.map → chunk-CS7TUOVQ.js.map} +0 -0
  237. /package/module/chunks/{chunk-FREEN2T3.js.map → chunk-EZJSIK72.js.map} +0 -0
  238. /package/module/chunks/{chunk-C3NA7YCT.js.map → chunk-EZS4433X.js.map} +0 -0
  239. /package/module/chunks/{chunk-PVT2JFAW.js.map → chunk-F3BPX66Z.js.map} +0 -0
  240. /package/module/chunks/{chunk-4NRVBOUP.js.map → chunk-GD75KGSO.js.map} +0 -0
  241. /package/module/chunks/{chunk-MTPPRK4H.js.map → chunk-IWFH2PBS.js.map} +0 -0
  242. /package/module/chunks/{chunk-6SUOFSGJ.js.map → chunk-JW4TMLMZ.js.map} +0 -0
  243. /package/module/chunks/{chunk-WADWICSE.js.map → chunk-LEEGJTZT.js.map} +0 -0
  244. /package/module/chunks/{chunk-6MLJBCIJ.js.map → chunk-NTQBWCZU.js.map} +0 -0
  245. /package/module/chunks/{chunk-L3N7HHJU.js.map → chunk-PFKZCA73.js.map} +0 -0
  246. /package/module/chunks/{chunk-JGTSF7O4.js.map → chunk-RJ5FWZWY.js.map} +0 -0
  247. /package/module/chunks/{chunk-D27CPPHI.js.map → chunk-SFYQQARV.js.map} +0 -0
  248. /package/module/chunks/{chunk-UOT4CE2C.js.map → chunk-VSD7VGBN.js.map} +0 -0
  249. /package/module/chunks/{chunk-MRXRYL4Y.js.map → chunk-WSTQTULM.js.map} +0 -0
  250. /package/module/chunks/{chunk-LGNNSZ2O.js.map → chunk-YDVHOHRE.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/buttons/index.ts", "esm-externals:react", "esm-externals:@splunk/dashboard-ui", "esm-externals:@splunk/dashboard-utils", "esm-externals:@splunk/dashboard-context", "esm-externals:@splunk/themes", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-ui/Tooltip", "esm-externals:styled-components", "../src/Item.tsx", "../src/buttons/AIAssistant/AIAssistant.tsx", "esm-externals:@splunk/react-ui/Dropdown", "esm-externals:@splunk/react-ui/Menu", "esm-externals:@splunk/react-icons/ChartColumn", "esm-externals:@splunk/dashboard-state", "../src/hooks/useDropdown.ts", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "esm-externals:@splunk/react-ui/Button", "../src/IconButton.tsx", "../src/components/StyledButton.tsx", "../src/buttons/Charts.tsx", "esm-externals:@splunk/react-icons/Cog", "../src/buttons/Config.tsx", "esm-externals:@splunk/react-icons/ArrowBroadUnderbarDown", "../src/buttons/ContentExport.tsx", "esm-externals:@splunk/react-icons/CylinderMulti", "../src/buttons/Data.tsx", "esm-externals:@splunk/react-icons/Checkmark", "../src/buttons/Display/Display.tsx", "esm-externals:@splunk/react-icons/Square", "../src/buttons/EmptyVisualization.tsx", "../src/buttons/ExportDashboardButton.tsx", "esm-externals:@splunk/react-icons/ChevronsOut", "../src/buttons/Fullscreen.tsx", "esm-externals:@splunk/react-ui/Switch", "../src/components/ItemSeparator.tsx", "../src/buttons/GridLineSwitch.tsx", "esm-externals:@splunk/react-icons/ChartSingleValueIcon", "../src/buttons/IconGallery.tsx", "esm-externals:@splunk/react-icons/QuestionCircle", "../src/buttons/HelpButton.tsx", "esm-externals:@splunk/react-icons/Picture", "../src/buttons/Image.tsx", "../src/buttons/ImageGallery.tsx", "esm-externals:lodash", "esm-externals:@splunk/react-icons/SlidersTripleHorizontal", "esm-externals:@splunk/dashboard-definition", "../src/buttons/Inputs.tsx", "esm-externals:@splunk/react-icons/Markdown", "../src/buttons/Markdown.tsx", "../src/buttons/ModeSwitch.tsx", "esm-externals:@splunk/react-icons/ArrowBowRight", "../src/buttons/Redo.tsx", "esm-externals:@splunk/react-icons/Circle", "esm-externals:@splunk/react-icons/Line", "esm-externals:@splunk/react-icons/ShapesVariety", "../src/PopoverItemButton.tsx", "../src/buttons/Shapes.tsx", "esm-externals:@splunk/react-icons/WindowChevronsSlash", "../src/buttons/Source.tsx", "esm-externals:@splunk/react-icons/ListToken", "../src/buttons/tokenManager/TokenManager.tsx", "esm-externals:@splunk/react-icons/ArrowBowLeft", "../src/buttons/Undo.tsx", "esm-externals:@splunk/ui-utils/format", "../src/buttons/Zoom/ZoomMenu.tsx", "esm-externals:@splunk/react-ui/Number", "../src/buttons/Zoom/ZoomNumber.tsx", "../src/buttons/Zoom/Zoom.tsx"],
4
- "sourcesContent": ["export * from './AIAssistant';\nexport { default as Charts } from './Charts';\nexport { default as Config } from './Config';\nexport type { ContentExportProps } from './ContentExport';\nexport { default as ContentExport } from './ContentExport';\nexport { default as Data } from './Data';\nexport * from './Display';\nexport { default as EmptyVisualization } from './EmptyVisualization';\nexport type { ExportDashboardButtonProps } from './ExportDashboardButton';\nexport { default as ExportDashboardButton } from './ExportDashboardButton';\nexport { default as Fullscreen } from './Fullscreen';\nexport { default as GridLineSwitch } from './GridLineSwitch';\nexport type { GridLineSwitchProps } from './GridLineSwitch';\nexport { default as IconGallery } from './IconGallery';\nexport { default as HelpButton } from './HelpButton';\nexport { default as Image } from './Image';\nexport { default as ImageGallery } from './ImageGallery';\nexport { default as Inputs } from './Inputs';\nexport { default as Markdown } from './Markdown';\nexport { default as ModeSwitch } from './ModeSwitch';\nexport { default as Redo } from './Redo';\nexport { default as Shapes } from './Shapes';\nexport type { SourceProps } from './Source';\nexport { default as Source } from './Source';\nexport * from './tokenManager';\nexport { default as Undo } from './Undo';\nexport * from './Zoom';\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/dashboard-ui\";\nexport * from \"@splunk/dashboard-ui\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/dashboard-utils\";\nexport * from \"@splunk/dashboard-utils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/dashboard-context\";\nexport * from \"@splunk/dashboard-context\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\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-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\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, { Suspense, useCallback } from 'react';\nimport { ErrorBoundary } from '@splunk/dashboard-ui';\nimport { console } from '@splunk/dashboard-utils';\nimport {\n useDashboardApi,\n useFeatureFlags,\n useMicrofrontendContext,\n} from '@splunk/dashboard-context';\nimport { useSplunkTheme } from '@splunk/themes';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport ToolbarItem from '../../Item';\n\nconst aiButtonStyle = { height: '100%' };\nconst EmptyComponent = () => null;\n\nexport const AIAssistant = () => {\n const { allowDashboardAIAssistant } = useFeatureFlags();\n const { AIButton } = useMicrofrontendContext().microfrontendProxy ?? {};\n const dashboardApi = useDashboardApi();\n\n const { colorScheme, density, family } = useSplunkTheme();\n\n const handleError = useCallback((error: string) => {\n console.error(_('Error loading AI Assistant:'), error);\n return <EmptyComponent />;\n }, []);\n\n const handleClick = useCallback(() => {\n dashboardApi.openPanel({\n activePanel: 'config',\n panelProps: {\n showAIPanel: true,\n },\n });\n }, [dashboardApi]);\n\n if (!allowDashboardAIAssistant || !AIButton) {\n return null;\n }\n\n return (\n <ErrorBoundary render={handleError}>\n <ToolbarItem>\n <Suspense key=\"ai-assistant\" fallback={null}>\n <Tooltip\n contentRelationship=\"label\"\n content={_('AI Assistant')}\n >\n <AIButton\n data-test=\"ai-button\"\n onClick={handleClick}\n colorScheme={colorScheme}\n style={aiButtonStyle}\n density={density}\n family={family}\n />\n </Tooltip>\n </Suspense>\n </ToolbarItem>\n </ErrorBoundary>\n );\n};\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/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/ChartColumn\";\nexport * from \"@splunk/react-icons/ChartColumn\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/dashboard-state\";\nexport * from \"@splunk/dashboard-state\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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", "\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", "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", "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 React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport styled from 'styled-components';\nimport Dropdown, {\n type DropdownChildrenRenderer,\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport { SplunkThemeProvider, useSplunkTheme } from '@splunk/themes';\n\nimport AddChartDropdown from '@splunk/react-icons/ChartColumn';\n\nimport { VisualizationFilter, type Taxonomy } from '@splunk/dashboard-ui';\nimport { useFeatureFlags } from '@splunk/dashboard-context';\nimport { batch } from '@splunk/dashboard-state';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\nimport { StyledDropdownButton } from '../components/StyledButton';\n\ninterface ScrollableMenuProps {\n maxHeight?: number | null;\n}\n\nconst ScrollableMenu = styled(Menu).attrs<ScrollableMenuProps>(\n ({ maxHeight }) => ({\n style: {\n maxHeight: maxHeight ?? undefined,\n },\n })\n)<ScrollableMenuProps>`\n overflow-y: auto;\n`;\n\nconst chartsDropdown = prepareIcon({\n Icon: AddChartDropdown,\n isMenu: true,\n screenReaderContent: _('Add chart'),\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n data-test=\"charts-button\"\n data-clickable\n appearance=\"subtle\"\n icon={chartsDropdown}\n />\n);\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\ntype Visualizations = Taxonomy[number]['visualizations'];\n\n/**\n * export for unit testing\n * @private\n */\nexport const getVisualizationListFromTaxonomy = ({\n taxonomy,\n handleCreateVisualization,\n}: {\n taxonomy: Taxonomy;\n handleCreateVisualization: (opt: {\n type: string;\n options: Record<string, unknown>;\n }) => () => void;\n}): JSX.Element[] =>\n taxonomy.reduce(\n (list: React.ReactElement[], { visualizations, category }) => {\n const availableVisualizations: Visualizations =\n visualizations.filter((props) => props.includeInToolbar);\n\n if (availableVisualizations.length === 0) {\n return list;\n }\n\n list.push(<Menu.Divider key={`menu-divider-${category}`} />);\n\n return list.concat(\n availableVisualizations.map((vizProps) => {\n const { label, type, initialOptions } = vizProps;\n const Icon = vizProps.icon as React.JSXElementConstructor<\n Record<string, unknown>\n > | null;\n\n if (!type) {\n return null;\n }\n\n const onClick = handleCreateVisualization({\n type,\n options: initialOptions as Record<string, unknown>,\n });\n\n return (\n <Menu.Item\n data-test={`add-${type}-button`}\n data-test-clickable\n onClick={onClick}\n startAdornment={!!Icon && <Icon size=\"18px\" />}\n key={`add-${type}-button`}\n >\n {label}\n </Menu.Item>\n );\n }) as JSX.Element[]\n );\n },\n []\n );\n\n/**\n * Charts button that has a dropdown menu.\n */\nconst Charts = ({ dashboardApi, preset }: ToolbarButtonProps): JSX.Element => {\n const { showNewDataForViz = true } = useFeatureFlags();\n\n const { family } = useSplunkTheme();\n const { handleForceClose, handleRequestClose, handleRequestOpen, isOpen } =\n useDropdown({\n isContentClickClose: false,\n });\n\n const taxonomy: Taxonomy = useMemo(\n () => new VisualizationFilter(preset).taxonomy,\n [preset]\n );\n\n const handleCreateVisualization = useCallback(\n ({\n type,\n options,\n }: {\n type: string;\n options: Record<string, unknown>;\n }) =>\n () => {\n batch(() => {\n dashboardApi?.createVisualization({\n visualizationDefinition: { type, options },\n });\n\n if (showNewDataForViz) {\n dashboardApi?.openPanel({\n activePanel: 'connectData',\n panelProps: {\n bindingType: 'primary',\n from: {\n activePanel: 'config',\n },\n },\n });\n }\n });\n\n handleForceClose();\n },\n [dashboardApi, showNewDataForViz, handleForceClose]\n );\n\n const visualizationList = useMemo(\n () =>\n getVisualizationListFromTaxonomy({\n taxonomy,\n handleCreateVisualization,\n }),\n [taxonomy, handleCreateVisualization]\n );\n\n const renderScrollableMenu = useCallback<DropdownChildrenRenderer>(\n ({ maxHeight }) => (\n <SplunkThemeProvider\n density={family === 'enterprise' ? 'comfortable' : 'compact'}\n >\n <ScrollableMenu\n maxHeight={maxHeight}\n data-test=\"add-chart-menu\"\n >\n {visualizationList}\n </ScrollableMenu>\n </SplunkThemeProvider>\n ),\n [family, visualizationList]\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 {renderScrollableMenu}\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Charts;\n", "\nimport * as defaultImport from \"@splunk/react-icons/Cog\";\nexport * from \"@splunk/react-icons/Cog\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Configuration from '@splunk/react-icons/Cog';\nimport { useToolbarRef } from '@splunk/dashboard-context';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst configurationIcon = prepareIcon({\n Icon: Configuration,\n screenReaderContent: _('Configuration'),\n});\n\n/**\n * Button that toggle open config panel\n */\nconst Config = ({ dashboardApi }: ToolbarButtonProps) => {\n const configButtonRef = useToolbarRef('config');\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'config';\n if (isOpen) {\n dashboardApi?.closePanel();\n } else {\n // Open config panel\n dashboardApi?.openPanel({\n activePanel: 'config',\n panelProps: {\n focusOnOpen: true,\n },\n });\n }\n }, [dashboardApi]);\n\n return (\n <IconButton\n buttonRef={configButtonRef}\n testLabel=\"config-button\"\n onClick={handleClick}\n icon={configurationIcon}\n />\n );\n};\n\nexport default Config;\n", "\nimport * as defaultImport from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\nexport * from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ArrowBroadUnderbarDown from '@splunk/react-icons/ArrowBroadUnderbarDown';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nexport interface ContentExportProps extends ToolbarButtonProps {\n disabled?: boolean;\n onClick?: ComponentProps<typeof IconButton>['onClick'];\n}\n\nconst icon = prepareIcon({\n Icon: ArrowBroadUnderbarDown,\n screenReaderContent: _('Export'),\n});\n\nconst ContentExport = ({ disabled, onClick }: ContentExportProps) => (\n <IconButton\n testLabel=\"content-export-button\"\n onClick={onClick}\n disabled={!!disabled}\n icon={icon}\n />\n);\n\nexport default ContentExport;\n", "\nimport * as defaultImport from \"@splunk/react-icons/CylinderMulti\";\nexport * from \"@splunk/react-icons/CylinderMulti\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport DataInput from '@splunk/react-icons/CylinderMulti';\n\nimport { useToolbarRef } from '@splunk/dashboard-context';\nimport { batch } from '@splunk/dashboard-state';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst dataInputIcon = prepareIcon({\n Icon: DataInput,\n screenReaderContent: _('Data source overview'),\n});\n\n/**\n * Button that toggle data overview panel\n */\nconst Data = ({ dashboardApi }: ToolbarButtonProps) => {\n const dataButtonRef = useToolbarRef('dataOverview');\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'dataOverview';\n if (isOpen) {\n dashboardApi.closePanel();\n } else {\n batch(() => {\n // Deselect all selected visualizations\n dashboardApi?.selectVisualization([]);\n // Open data overview panel\n dashboardApi?.openPanel({\n activePanel: 'dataOverview',\n panelProps: {\n focusOnOpen: true,\n },\n });\n });\n }\n }, [dashboardApi]);\n\n return (\n <IconButton\n buttonRef={dataButtonRef}\n testLabel=\"data-button\"\n onClick={handleClick}\n icon={dataInputIcon}\n />\n );\n};\n\nexport default Data;\n", "\nimport * as defaultImport from \"@splunk/react-icons/Checkmark\";\nexport * from \"@splunk/react-icons/Checkmark\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport {\n selectAreGlobalItemsCollapsed,\n selectGlobalInputs,\n useSelector,\n} from '@splunk/dashboard-state';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport styled from 'styled-components';\nimport useDropdown from '../../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst menuStyle = {\n minWidth: '150px',\n};\n\nconst CheckmarkPlaceholder = styled.span`\n display: inline-block;\n width: 16px;\n`;\n\ninterface DisplayProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n}\n\nexport const Display = ({\n appearance = 'default',\n dashboardApi,\n}: DisplayProps): JSX.Element | null => {\n const globalInputs = useSelector(selectGlobalInputs);\n const hasGlobalInputs = (globalInputs?.length ?? 0) > 0;\n const areInputsCollapsed = useSelector(selectAreGlobalItemsCollapsed);\n const showInputs = !areInputsCollapsed;\n\n const handleInputsToggle = useCallback(() => {\n dashboardApi?.setAreGlobalInputsCollapsed({\n collapsed: !areInputsCollapsed,\n });\n }, [dashboardApi, areInputsCollapsed]);\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const buttonToggle = useMemo(\n () => (\n <Button\n data-clickable\n data-test=\"display-dropdown-button\"\n appearance={appearance}\n isMenu\n aria-label={_('Display options')}\n >\n {_('Display')}\n </Button>\n ),\n [appearance]\n );\n\n const checkmarkIcon = useMemo(() => {\n return showInputs ? <Checkmark /> : <CheckmarkPlaceholder />;\n }, [showInputs]);\n\n const dropdownMenuChildren = useMemo(() => {\n const items = [];\n\n if (hasGlobalInputs) {\n items.push(\n <Menu.Item\n key=\"inputs-item\"\n data-test=\"inputs-menu-item\"\n onClick={handleInputsToggle}\n startAdornment={checkmarkIcon}\n >\n {_('Inputs')}\n </Menu.Item>\n );\n }\n\n return items;\n }, [hasGlobalInputs, handleInputsToggle, checkmarkIcon]);\n\n if (dropdownMenuChildren.length === 0) {\n return null;\n }\n\n return (\n <Tooltip contentRelationship=\"label\" content={_('Display')}>\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={buttonToggle}\n >\n <Menu\n style={menuStyle}\n focusMode=\"normal\"\n aria-label={_('Display options')}\n >\n {dropdownMenuChildren}\n </Menu>\n </Dropdown>\n </Tooltip>\n );\n};\n", "\nimport * as defaultImport from \"@splunk/react-icons/Square\";\nexport * from \"@splunk/react-icons/Square\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BoxUnchecked from '@splunk/react-icons/Square';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: BoxUnchecked,\n screenReaderContent: _('Add rectangle'),\n});\n\n/**\n * Button that creates a empty viz\n */\nconst EmptyVisualization = ({ dashboardApi }: ToolbarButtonProps) => {\n const handleClick = useCallback(async () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.rectangle',\n options: {\n fillColor: 'transparent',\n strokeColor: 'transparent',\n },\n },\n });\n\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"empty-viz-button\"\n onClick={handleClick}\n icon={icon}\n />\n );\n};\n\nexport default EmptyVisualization;\n", "import React, { useCallback, useRef, useState } from 'react';\nimport type { ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Download from '@splunk/react-icons/ArrowBroadUnderbarDown';\nimport { ExportDashboardModal } from '@splunk/dashboard-ui';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Button from '@splunk/react-ui/Button';\nimport type { ToolbarButtonProps } from '../types/common';\n\n// this icon should be sized consistent with the adjacent text, it does not need screenreader content\nconst downloadIcon = <Download />;\n\nexport interface ExportDashboardButtonProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n scale?: number;\n}\n\nconst ExportDashboardButton = ({\n appearance = 'secondary',\n scale = 1,\n}: ExportDashboardButtonProps) => {\n const [open, setOpen] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, []);\n\n return (\n <>\n <Button\n elementRef={buttonRef}\n icon={downloadIcon}\n key=\"export-dashboard-button\"\n data-clickable\n data-test=\"export-dashboard-button\"\n label={_('Download')}\n appearance={appearance || 'secondary'}\n onClick={handleOpen}\n />\n <ExportDashboardModal\n open={open}\n onModalClose={handleClose}\n scale={scale}\n returnFocus={buttonRef}\n />\n </>\n );\n};\n\nexport default ExportDashboardButton;\n", "\nimport * as defaultImport from \"@splunk/react-icons/ChevronsOut\";\nexport * from \"@splunk/react-icons/ChevronsOut\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport Fullscreen from '@splunk/react-icons/ChevronsOut';\nimport { selectFullscreenElement, useSelector } from '@splunk/dashboard-state';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: Fullscreen,\n screenReaderContent: _('Fullscreen'),\n});\n\n/**\n * Button that toggle fullscreen mode\n */\nconst FullScreen = ({ dashboardApi }: ToolbarButtonProps) => {\n const isFullscreen = !!useSelector(selectFullscreenElement);\n\n const handleClick = useCallback(() => {\n dashboardApi?.enterFullscreen();\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"fullscreen-button\"\n onClick={handleClick}\n disabled={isFullscreen}\n icon={icon}\n />\n );\n};\n\nexport default FullScreen;\n", "\nimport * as defaultImport from \"@splunk/react-ui/Switch\";\nexport * from \"@splunk/react-ui/Switch\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import styled from 'styled-components';\nimport { variables } from '@splunk/themes';\n\nconst ItemSeparator = styled.div`\n border-left-width: 1px;\n border-left-style: solid;\n border-left-color: ${variables.interactiveColorBorder};\n width: 0px;\n height: ${variables.inputHeight};\n`;\n\nexport default ItemSeparator;\n", "import React, { useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Switch from '@splunk/react-ui/Switch';\nimport {\n selectAreGridLinesEnabled,\n useSelector,\n} from '@splunk/dashboard-state';\nimport { variables } from '@splunk/themes';\nimport ItemSeparator from '../components/ItemSeparator';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst SwitchContainer = styled.div`\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: ${variables.spacingSmall};\n`;\n\nexport interface GridLineSwitchProps extends ToolbarButtonProps {\n showSeparator?: boolean;\n}\n\nconst GridLineSwitch = ({\n dashboardApi,\n mode,\n showSeparator,\n layoutType,\n}: GridLineSwitchProps) => {\n const showGrid = useSelector(selectAreGridLinesEnabled) ?? false;\n\n const handleClick = useCallback(() => {\n dashboardApi?.toggleGridLines(!showGrid);\n }, [dashboardApi, showGrid]);\n\n const separator = useMemo(\n () => (showSeparator ? <ItemSeparator key=\"item-separator\" /> : null),\n [showSeparator]\n );\n\n if (!dashboardApi || mode !== 'edit' || layoutType === 'grid') {\n return null;\n }\n\n return (\n <SwitchContainer key=\"grid-line-switch\">\n <Switch\n onClick={handleClick}\n selected={showGrid}\n selectedLabel={_('Gridlines displayed')}\n unselectedLabel={_('Gridlines not displayed')}\n appearance=\"toggle\"\n data-test=\"gridline-toggle\"\n data-clickable\n >\n {_('Gridlines')}\n </Switch>\n {separator}\n </SwitchContainer>\n );\n};\n\nexport default GridLineSwitch;\n", "\nimport * as defaultImport from \"@splunk/react-icons/ChartSingleValueIcon\";\nexport * from \"@splunk/react-icons/ChartSingleValueIcon\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\n\nimport AddIconDropdown from '@splunk/react-icons/ChartSingleValueIcon';\nimport { IconGallery as IconGalleryPanel } from '@splunk/dashboard-ui';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst MenusContainer = styled.div`\n display: flex;\n padding: 5px;\n`;\n\nconst iconGalleryDropdown = prepareIcon({\n Icon: AddIconDropdown,\n screenReaderContent: _('Add icon'),\n isMenu: true,\n});\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\n/**\n * Icon Gallery button that has as a dropdown menu.\n */\nconst IconGallery = ({ dashboardApi }: ToolbarButtonProps) => {\n const {\n handleForceClose,\n handleRequestClose,\n handleRequestOpen,\n setHasChildModal,\n isOpen,\n } = useDropdown({\n isContentClickClose: false,\n });\n\n const ButtonToggle = useMemo(\n () => (\n <StyledDropdownButton\n data-test=\"icon-gallery-button\"\n data-clickable\n appearance=\"subtle\"\n icon={iconGalleryDropdown}\n />\n ),\n []\n );\n const handlePanelClick = useCallback(\n async (iconURL: string) => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.singlevalueicon',\n options: {\n showValue: false,\n icon: iconURL,\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n handleForceClose();\n },\n [dashboardApi, handleForceClose]\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 <MenusContainer data-test=\"icon-menu\" data-open={isOpen}>\n <IconGalleryPanel\n onClick={handlePanelClick}\n setHasChildModal={setHasChildModal}\n />\n </MenusContainer>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default IconGallery;\n", "\nimport * as defaultImport from \"@splunk/react-icons/QuestionCircle\";\nexport * from \"@splunk/react-icons/QuestionCircle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useMemo } from 'react';\nimport Help from '@splunk/react-icons/QuestionCircle';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\nimport { StyledDropdownButton } from '../components/StyledButton';\n\nexport interface ToolbarHelpLink {\n label: string;\n description?: string;\n url: string;\n}\n\ninterface HelpProps extends ToolbarButtonProps {\n helpLinks?: ToolbarHelpLink[];\n}\n\nconst HelpIcon = prepareIcon({\n Icon: Help,\n screenReaderContent: _('Help links'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"help-button\"\n icon={HelpIcon}\n />\n);\n\n/**\n * Help button which expands dropdown full of links\n */\nconst HelpButton = ({ helpLinks = [] }: HelpProps) => {\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const HelpLinks = useMemo(() => {\n if (helpLinks.length === 0) {\n return [\n <Menu.Item\n data-test=\"no-links-provided\"\n key=\"no-links-provided\"\n disabled\n >\n {_('No Links')}\n </Menu.Item>,\n ];\n }\n\n return helpLinks.map((link: ToolbarHelpLink) => {\n const { label = '', description = '', url } = link;\n const key = label.replace(/\\s/g, '');\n\n return (\n <Menu.Item\n data-test=\"help-link\"\n data-test-clickable\n to={url}\n description={description}\n key={`help-link-${key}`}\n openInNewContext\n >\n {label}\n </Menu.Item>\n );\n });\n }, [helpLinks]);\n\n return (\n <ToolbarItem>\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu>{HelpLinks}</Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default HelpButton;\n", "\nimport * as defaultImport from \"@splunk/react-icons/Picture\";\nexport * from \"@splunk/react-icons/Picture\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Picture from '@splunk/react-icons/Picture';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: Picture,\n screenReaderContent: _('Add image'),\n});\n\n/**\n * Button that create a empty image\n */\nconst Image = ({ dashboardApi }: ToolbarButtonProps) => {\n const handleClick = useCallback(async () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n },\n },\n });\n\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"image-button\"\n onClick={handleClick}\n icon={icon}\n />\n );\n};\n\nexport default Image;\n", "import React, { useCallback } from 'react';\nimport styled from 'styled-components';\n\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport AddImage from '@splunk/react-icons/Picture';\n\nimport { ImageGallery as ImageGalleryPanel } from '@splunk/dashboard-ui';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst MenusContainer = styled.div`\n display: flex;\n padding: 5px;\n`;\n\nconst imageGalleryDropdown = prepareIcon({\n Icon: AddImage,\n screenReaderContent: _('Add image'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n data-test=\"image-gallery-button\"\n data-clickable\n appearance=\"subtle\"\n icon={imageGalleryDropdown}\n />\n);\n\nconst focusToggleReasons: never[] = [];\n\n/**\n * Image Gallery button that has as a dropdown menu.\n */\nconst ImageGallery = ({ dashboardApi }: ToolbarButtonProps) => {\n const {\n handleForceClose,\n handleRequestClose,\n handleRequestOpen,\n setHasChildModal,\n isOpen,\n } = useDropdown({\n isContentClickClose: false,\n });\n\n const handlePanelClick = useCallback(\n async (imageUrl: string) => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n src: imageUrl,\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n handleForceClose();\n },\n [dashboardApi, handleForceClose]\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 <MenusContainer>\n <ImageGalleryPanel\n onClick={handlePanelClick}\n setHasChildModal={setHasChildModal}\n />\n </MenusContainer>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default ImageGallery;\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport * from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/dashboard-definition\";\nexport * from \"@splunk/dashboard-definition\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useMemo } from 'react';\nimport { each } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Input from '@splunk/react-icons/SlidersTripleHorizontal';\nimport { DashboardDefinition } from '@splunk/dashboard-definition';\nimport type {\n PresetMap,\n InputConfig,\n DashboardApi,\n} from '@splunk/dashboard-types';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\nconst DEFAULT_PRESET_MAP = Object.freeze({} as PresetMap);\nconst addInputIcon = prepareIcon({\n Icon: Input,\n screenReaderContent: _('Add input'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"inputs-button\"\n icon={addInputIcon}\n />\n);\n\ninterface AddInputFactoryArgs {\n type: string;\n defaultConfig: {\n options?: Record<string, unknown>;\n [x: string]: unknown;\n };\n tokenPrefix: string;\n showToken: boolean;\n dashboardApi?: DashboardApi;\n}\n\n// click handler factory\nconst onCreateInputClickFactory =\n ({\n type,\n defaultConfig,\n tokenPrefix,\n showToken,\n dashboardApi,\n }: AddInputFactoryArgs) =>\n () => {\n if (!dashboardApi) {\n return;\n }\n\n const newConfig = {\n ...defaultConfig,\n type,\n options: {\n ...defaultConfig.options,\n },\n };\n // showToken flags whether or not the input has a token assigned on creation\n if (showToken) {\n newConfig.options.token = DashboardDefinition.fromJSON(\n dashboardApi?.getDefinition()\n ).nextTokenId(tokenPrefix);\n }\n dashboardApi.addInput(newConfig);\n dashboardApi.openPanel({ activePanel: 'config' });\n };\n\n/**\n * Add Input button that has a dropdown menu.\n */\nconst Inputs = ({\n dashboardApi,\n preset = DEFAULT_PRESET_MAP,\n}: ToolbarButtonProps) => {\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const InputTypeButtons = useMemo(() => {\n const buttons = [];\n\n const inputs = preset?.inputs as Record<\n string,\n {\n config: InputConfig;\n }\n >;\n\n each(inputs, (InputImpl, type) => {\n const {\n baseShape = {},\n label = _(`${type} Input`),\n description = '',\n tokenPrefix = 'token',\n includeInToolbar = true,\n icon: Icon = Input,\n // showToken flags whether or not the input has a token assigned on creation\n showToken = true,\n } = InputImpl.config || {};\n\n if (!includeInToolbar) {\n return;\n }\n\n const handleClick = onCreateInputClickFactory({\n type,\n defaultConfig: baseShape,\n tokenPrefix,\n showToken,\n dashboardApi,\n });\n\n const inputIcon = <Icon width=\"24px\" height=\"24px\" />;\n\n buttons.push(\n <Menu.Item\n data-test={`add-${type}-button`}\n data-test-clickable\n onClick={handleClick}\n startAdornment={inputIcon}\n description={description}\n key={`add-${type}-button`}\n >\n {label}\n </Menu.Item>\n );\n });\n\n if (buttons.length === 0) {\n buttons.push(\n <Menu.Item\n data-test=\"no-inputs-in-preset\"\n key=\"no-inputs-in-preset\"\n disabled\n >\n {_('No Inputs')}\n </Menu.Item>\n );\n }\n\n return buttons;\n }, [preset, dashboardApi]);\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>{InputTypeButtons}</Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Inputs;\n", "\nimport * as defaultImport from \"@splunk/react-icons/Markdown\";\nexport * from \"@splunk/react-icons/Markdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport MarkdownIcon from '@splunk/react-icons/Markdown';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: MarkdownIcon,\n screenReaderContent: _('Add markdown text'),\n});\n\n/**\n * Button that creates a empty markdown viz\n */\nconst Markdown = ({ dashboardApi }: ToolbarButtonProps): JSX.Element => {\n const handleClick = useCallback(() => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.markdown',\n options: {\n markdown: '',\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"markdown-button\"\n onClick={handleClick}\n icon={icon}\n />\n );\n};\n\nexport default Markdown;\n", "import React, { useCallback } from 'react';\nimport Button from '@splunk/react-ui/Button';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { useSelector, selectMode } from '@splunk/dashboard-state';\nimport { useDashboardApi } from '@splunk/dashboard-context';\nimport Item from '../Item';\n\n/**\n * Dashboard mode switch button\n */\nconst ModeSwitch = () => {\n const mode = useSelector(selectMode);\n const dashboardApi = useDashboardApi();\n const appearance = mode === 'edit' ? 'secondary' : 'primary';\n const label = mode === 'edit' ? _('View') : _('Edit');\n\n const handleClick = useCallback(() => {\n dashboardApi?.switchMode(mode === 'edit' ? 'view' : 'edit');\n }, [mode, dashboardApi]);\n\n return (\n <Item>\n <Button\n key=\"mode-button\"\n data-clickable\n data-test=\"mode-button\"\n inline={false}\n label={label}\n appearance={appearance}\n onClick={handleClick}\n />\n </Item>\n );\n};\n\nexport default ModeSwitch;\n", "\nimport * as defaultImport from \"@splunk/react-icons/ArrowBowRight\";\nexport * from \"@splunk/react-icons/ArrowBowRight\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "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 \"@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/Line\";\nexport * from \"@splunk/react-icons/Line\";\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", "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", "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, {\n type DropdownPossibleCloseReason,\n} 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: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\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 \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SourceIcon from '@splunk/react-icons/WindowChevronsSlash';\nimport { useRestoreFocus, useToolbarRef } from '@splunk/dashboard-context';\nimport type { ButtonClickHandler } from '@splunk/react-ui/Button';\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 toggles source mode\n */\nconst Source = ({ disabled = false, onClick }: SourceProps) => {\n const sourceButtonRef = useToolbarRef('source');\n const setReturnPoint = useRestoreFocus(sourceButtonRef);\n\n const onSourceClick = useCallback<ButtonClickHandler>(\n (event, data) => {\n if (onClick) {\n onClick(event, data);\n setReturnPoint();\n }\n },\n [onClick, setReturnPoint]\n );\n\n return (\n <IconButton\n testLabel=\"source-button\"\n onClick={onSourceClick}\n disabled={disabled}\n icon={icon}\n buttonRef={sourceButtonRef}\n />\n );\n};\n\nexport default Source;\n", "\nimport * as defaultImport from \"@splunk/react-icons/ListToken\";\nexport * from \"@splunk/react-icons/ListToken\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { useFeatureFlags } from '@splunk/dashboard-context';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ListToken from '@splunk/react-icons/ListToken';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport IconButton, { prepareIcon } from '../../IconButton';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst tokenManagerIcon = prepareIcon({\n Icon: ListToken,\n screenReaderContent: _('Token manager'),\n});\n\n/**\n * Button that toggles open token manager panel\n */\nexport const TokenManager = ({ dashboardApi }: ToolbarButtonProps) => {\n const { showTokenManager } = useFeatureFlags();\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'tokenManager';\n if (isOpen) {\n dashboardApi?.closePanel();\n } else {\n // Open tokens panel\n dashboardApi?.openPanel({\n activePanel: 'tokenManager',\n panelProps: {\n focusOnOpen: true,\n },\n });\n }\n }, [dashboardApi]);\n\n if (!showTokenManager) {\n return null;\n }\n\n return (\n <Tooltip\n contentRelationship=\"label\"\n content={_('Token manager')}\n data-test-label=\"token-manager-button\"\n >\n <IconButton\n testLabel=\"token-manager-button\"\n onClick={handleClick}\n icon={tokenManagerIcon}\n />\n </Tooltip>\n );\n};\n", "\nimport * as defaultImport from \"@splunk/react-icons/ArrowBowLeft\";\nexport * from \"@splunk/react-icons/ArrowBowLeft\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useEffect, useState } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport UndoIcon from '@splunk/react-icons/ArrowBowLeft';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: UndoIcon,\n screenReaderContent: _('Undo'),\n});\n\nconst Undo = ({ dashboardApi }: ToolbarButtonProps) => {\n // TODO: replace when history management is done in redux\n // mode changes can cause the button to mount while there is an undo state\n const [canUndo, setCanUndo] = useState(\n () => dashboardApi?.canUndo() ?? false\n );\n\n const onDefinitionChange = useCallback(() => {\n setCanUndo(dashboardApi?.canUndo() ?? 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.undo({ source: 'toolbar' });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"undo-button\"\n onClick={handleClick}\n disabled={!canUndo}\n icon={icon}\n />\n );\n};\n\nexport default Undo;\n", "\nimport * as defaultImport from \"@splunk/ui-utils/format\";\nexport * from \"@splunk/ui-utils/format\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport { isMac } from '@splunk/dashboard-utils';\nimport { sprintf } from '@splunk/ui-utils/format';\nimport useDropdown from '../../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst zoomLevels = [25, 50, 100, 150, 200];\n\nconst buttonStyle = {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n};\n\nconst menuStyle = {\n width: '200px',\n};\n\nexport interface ZoomMenuProps {\n appearance?: ButtonPropsBase['appearance'];\n dashboardApi: ToolbarButtonProps['dashboardApi'];\n currentScale: number;\n setCurrentScale: (scale: number) => void;\n scaleType: 'auto' | 'fit' | null;\n setScaleType: (type: 'auto' | 'fit' | null) => void;\n}\n\nexport const ZoomMenu = ({\n dashboardApi,\n appearance = 'default',\n currentScale,\n setCurrentScale,\n scaleType,\n setScaleType,\n}: ZoomMenuProps): JSX.Element => {\n const handleZoomOutClick = useCallback(() => {\n setScaleType(null);\n dashboardApi?.zoomOut();\n }, [setScaleType, dashboardApi]);\n\n const handleZoomInClick = useCallback(() => {\n setScaleType(null);\n dashboardApi?.zoomIn();\n }, [setScaleType, dashboardApi]);\n\n const handleScaleChange = useCallback(\n (scale: number) => () => {\n setCurrentScale(scale);\n setScaleType(null);\n dashboardApi?.setScale({ scale: scale / 100 });\n },\n [setScaleType, setCurrentScale, dashboardApi]\n );\n\n const handleFitToWidthClick = useCallback(() => {\n setScaleType('fit');\n dashboardApi?.fitToWidth();\n }, [setScaleType, dashboardApi]);\n\n const handleAutoClick = useCallback(() => {\n setScaleType('auto');\n dashboardApi?.fitToWidth({ maxScale: 1 });\n }, [setScaleType, dashboardApi]);\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const buttonToggle = (\n <Button\n data-clickable\n data-test=\"zoom-dropdown-button\"\n style={buttonStyle}\n appearance={appearance}\n isMenu\n aria-label={sprintf(_('Zoom level, %(currentScale)s%%'), {\n currentScale,\n })}\n />\n );\n\n const isMacOS = useMemo(() => isMac(), []);\n\n const dropdownMenuChildren = useMemo(() => {\n const zoomButtons = zoomLevels.map((percent) => {\n return (\n <Menu.Item\n data-test={`${percent}-percent`}\n onClick={handleScaleChange(percent)}\n key={percent}\n selectable\n selected={currentScale === percent && !scaleType}\n >\n {`${percent}%`}\n </Menu.Item>\n );\n });\n return [\n <Menu.Item\n data-test=\"auto\"\n onClick={handleAutoClick}\n key=\"auto\"\n selectable\n selected={scaleType === 'auto'}\n >\n {_('Auto')}\n </Menu.Item>,\n <Menu.Item\n data-test=\"fit-to-width\"\n onClick={handleFitToWidthClick}\n key=\"fit-to-width\"\n description={isMacOS ? _('Ctrl Cmd 0') : _('Ctrl Alt 0')}\n descriptionPosition=\"right\"\n selectable\n selected={scaleType === 'fit'}\n >\n {_('Fit')}\n </Menu.Item>,\n <Menu.Divider key=\"menu-divider-1\" />,\n ...zoomButtons,\n <Menu.Divider key=\"menu-divider-2\" />,\n <Menu.Item\n data-test=\"zoom-in\"\n onClick={handleZoomInClick}\n key=\"zoom-in\"\n description={isMacOS ? _('Ctrl Cmd =') : _('Ctrl Alt =')}\n descriptionPosition=\"right\"\n selectable\n >\n {_('Zoom in')}\n </Menu.Item>,\n <Menu.Item\n data-test=\"zoom-out\"\n onClick={handleZoomOutClick}\n key=\"zoom-out\"\n description={isMacOS ? _('Ctrl Cmd -') : _('Ctrl Alt -')}\n descriptionPosition=\"right\"\n selectable\n >\n {_('Zoom out')}\n </Menu.Item>,\n ];\n }, [\n currentScale,\n handleAutoClick,\n scaleType,\n handleFitToWidthClick,\n isMacOS,\n handleZoomInClick,\n handleZoomOutClick,\n handleScaleChange,\n ]);\n\n return (\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={buttonToggle}\n retainFocus\n >\n <Menu\n style={menuStyle}\n focusMode=\"normal\"\n aria-label={_('Zoom level')}\n >\n {dropdownMenuChildren}\n </Menu>\n </Dropdown>\n );\n};\n", "\nimport * as defaultImport from \"@splunk/react-ui/Number\";\nexport * from \"@splunk/react-ui/Number\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport styled from 'styled-components';\nimport Number from '@splunk/react-ui/Number';\nimport { variables } from '@splunk/themes';\nimport { useNumberInput, type OnValueChangeType } from '@splunk/dashboard-ui';\n\nconst StyledNumber = styled(Number)`\n padding-right: ${variables.spacingSmall};\n & > input {\n text-align: right;\n }\n`;\n\nconst StyledEndAdornment = styled.span`\n color: ${variables.contentColorActive};\n`;\n\ninterface ZoomNumberProps {\n currentScale: number;\n onScaleChange: (scale: number) => () => void;\n}\n\nexport const ZoomNumber = ({\n currentScale,\n onScaleChange,\n}: ZoomNumberProps) => {\n const onValueChange = useCallback<OnValueChangeType>(\n (e, value = 100) => {\n onScaleChange(value as number)();\n },\n [onScaleChange]\n );\n const { handleChange, handleBlur, handleFocus, handleKeyPress } =\n useNumberInput({\n value: currentScale,\n onValueChange,\n });\n\n return (\n <StyledNumber\n value={currentScale}\n onChange={handleChange}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n onFocus={handleFocus}\n step={5}\n min={1}\n max={10000}\n roundTo={0}\n endAdornment={<StyledEndAdornment>%</StyledEndAdornment>}\n hideStepButtons\n data-test=\"zoom-number\"\n append\n />\n );\n};\n", "import React, { useCallback, useMemo, useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { debounce } from 'lodash';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { variables } from '@splunk/themes';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport type { ButtonPropsBase } from '@splunk/react-ui/Button';\n\nimport { useDashboardApi } from '@splunk/dashboard-context';\nimport {\n selectActiveTab,\n useSelector,\n useDispatch,\n zoomLevelChanged,\n} from '@splunk/dashboard-state';\n\nimport type { ToolbarButtonProps } from '../../types/common';\nimport ItemSeparator from '../../components/ItemSeparator';\nimport { ZoomMenu } from './ZoomMenu';\nimport { ZoomNumber } from './ZoomNumber';\n\nconst Container = styled.div`\n margin-inline-end: 0;\n display: flex;\n min-width: 96px;\n gap: ${variables.spacingSmall};\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n width: 90px;\n & span {\n display: flex;\n }\n`;\n\nexport interface ZoomProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n showSeparator?: boolean;\n}\n\nexport const Zoom = ({\n showSeparator = true,\n appearance = 'default',\n mode = 'view',\n}: ZoomProps): JSX.Element => {\n const [currentScale, setCurrentScale] = useState(100);\n const [scaleType, setScaleType] = useState<'auto' | 'fit' | null>(null);\n const dashboardApi = useDashboardApi();\n const dispatch = useDispatch();\n\n const handleZoom = useCallback((level?: number) => {\n if (level) {\n setCurrentScale(Math.round(level * 100));\n }\n }, []);\n\n const debouncedDispatch = useMemo(\n () => debounce(dispatch, 500),\n [dispatch]\n );\n\n useEffect(() => {\n debouncedDispatch(\n zoomLevelChanged({\n scale: currentScale,\n scaleType,\n mode,\n })\n );\n }, [currentScale, scaleType, mode, debouncedDispatch]);\n\n const activeTabId = useSelector(selectActiveTab);\n useEffect(() => {\n const subscription = dashboardApi\n ?.getZoomLevel()\n ?.subscribe({ next: handleZoom });\n\n return () => {\n subscription?.unsubscribe();\n };\n }, [dashboardApi, activeTabId, handleZoom]);\n\n const separator = useMemo(\n () => (showSeparator ? <ItemSeparator key=\"item-separator\" /> : null),\n [showSeparator]\n );\n\n const handleScaleChange = useCallback(\n (scale: number) => () => {\n setCurrentScale(scale);\n setScaleType(null);\n dashboardApi?.setScale({ scale: scale / 100 });\n },\n [dashboardApi]\n );\n\n return (\n <Container>\n <StyledTooltip\n contentRelationship=\"label\"\n content={_('Zoom level')}\n >\n <ZoomNumber\n currentScale={currentScale}\n onScaleChange={handleScaleChange}\n />\n <ZoomMenu\n dashboardApi={dashboardApi}\n appearance={appearance}\n currentScale={currentScale}\n setCurrentScale={setCurrentScale}\n scaleType={scaleType}\n setScaleType={setScaleType}\n />\n </StyledTooltip>\n {separator}\n </Container>\n );\n};\n"],
5
- "mappings": "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",
3
+ "sources": ["../src/buttons/index.ts", "esm-externals:react", "esm-externals:@splunk/dashboard-ui", "esm-externals:@splunk/dashboard-utils", "esm-externals:@splunk/dashboard-context", "esm-externals:@splunk/themes", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-ui/Tooltip", "esm-externals:styled-components", "../src/Item.tsx", "../src/buttons/AIAssistant/AIAssistant.tsx", "esm-externals:@splunk/react-ui/Dropdown", "esm-externals:@splunk/react-ui/Menu", "esm-externals:@splunk/react-icons/ChartColumn", "esm-externals:@splunk/dashboard-state", "../src/hooks/useDropdown.ts", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "esm-externals:@splunk/react-ui/Button", "../src/IconButton.tsx", "../src/components/StyledButton.tsx", "../src/buttons/Charts.tsx", "esm-externals:@splunk/react-icons/Cog", "../src/buttons/Config.tsx", "esm-externals:@splunk/react-icons/ArrowBroadUnderbarDown", "../src/buttons/ContentExport.tsx", "esm-externals:@splunk/react-icons/CylinderMulti", "../src/buttons/Data.tsx", "esm-externals:@splunk/react-icons/Checkmark", "../src/buttons/Display/Display.tsx", "esm-externals:@splunk/react-icons/Square", "../src/buttons/EmptyVisualization.tsx", "../src/buttons/ExportDashboardButton.tsx", "esm-externals:@splunk/react-icons/ChevronsOut", "../src/hooks/useToolbarButtonClick.ts", "../src/buttons/Fullscreen.tsx", "esm-externals:@splunk/react-ui/Switch", "../src/components/ItemSeparator.tsx", "../src/buttons/GridLineSwitch.tsx", "esm-externals:@splunk/react-icons/ChartSingleValueIcon", "../src/buttons/IconGallery.tsx", "esm-externals:@splunk/react-icons/QuestionCircle", "../src/buttons/HelpButton.tsx", "esm-externals:@splunk/react-icons/Picture", "../src/buttons/Image.tsx", "../src/buttons/ImageGallery.tsx", "esm-externals:lodash", "esm-externals:@splunk/react-icons/SlidersTripleHorizontal", "esm-externals:@splunk/dashboard-definition", "../src/buttons/Inputs.tsx", "esm-externals:@splunk/react-icons/Markdown", "../src/buttons/Markdown.tsx", "../src/buttons/ModeSwitch.tsx", "esm-externals:@splunk/react-icons/ArrowBowRight", "../src/buttons/Redo.tsx", "esm-externals:@splunk/react-icons/Circle", "esm-externals:@splunk/react-icons/Line", "esm-externals:@splunk/react-icons/ShapesVariety", "../src/PopoverItemButton.tsx", "../src/buttons/Shapes.tsx", "esm-externals:@splunk/react-icons/WindowChevronsSlash", "../src/buttons/Source.tsx", "esm-externals:@splunk/react-icons/ListToken", "../src/buttons/tokenManager/TokenManager.tsx", "esm-externals:@splunk/react-icons/ArrowBowLeft", "../src/buttons/Undo.tsx", "esm-externals:@splunk/ui-utils/format", "../src/buttons/Zoom/ZoomMenu.tsx", "esm-externals:@splunk/react-ui/Number", "../src/buttons/Zoom/ZoomNumber.tsx", "../src/buttons/Zoom/Zoom.tsx"],
4
+ "sourcesContent": ["export * from './AIAssistant';\nexport { default as Charts } from './Charts';\nexport { default as Config } from './Config';\nexport type { ContentExportProps } from './ContentExport';\nexport { default as ContentExport } from './ContentExport';\nexport { default as Data } from './Data';\nexport * from './Display';\nexport { default as EmptyVisualization } from './EmptyVisualization';\nexport type { ExportDashboardButtonProps } from './ExportDashboardButton';\nexport { default as ExportDashboardButton } from './ExportDashboardButton';\nexport { default as Fullscreen } from './Fullscreen';\nexport { default as GridLineSwitch } from './GridLineSwitch';\nexport type { GridLineSwitchProps } from './GridLineSwitch';\nexport { default as IconGallery } from './IconGallery';\nexport { default as HelpButton } from './HelpButton';\nexport { default as Image } from './Image';\nexport { default as ImageGallery } from './ImageGallery';\nexport { default as Inputs } from './Inputs';\nexport { default as Markdown } from './Markdown';\nexport { default as ModeSwitch } from './ModeSwitch';\nexport { default as Redo } from './Redo';\nexport { default as Shapes } from './Shapes';\nexport type { SourceProps } from './Source';\nexport { default as Source } from './Source';\nexport * from './tokenManager';\nexport { default as Undo } from './Undo';\nexport * from './Zoom';\n", "import * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-ui\";\nexport * from \"@splunk/dashboard-ui\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-utils\";\nexport * from \"@splunk/dashboard-utils\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-context\";\nexport * from \"@splunk/dashboard-context\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/themes\";\nexport * from \"@splunk/themes\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default defaultImport.default;\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import React, { Suspense, useCallback } from 'react';\nimport { ErrorBoundary } from '@splunk/dashboard-ui';\nimport { console } from '@splunk/dashboard-utils';\nimport {\n useDashboardApi,\n useFeatureFlags,\n useMicrofrontendContext,\n} from '@splunk/dashboard-context';\nimport { useSplunkTheme } from '@splunk/themes';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport ToolbarItem from '../../Item';\n\nconst aiButtonStyle = { height: '100%' };\nconst EmptyComponent = () => null;\n\nexport const AIAssistant = () => {\n const { allowDashboardAIAssistant } = useFeatureFlags();\n const { AIButton } = useMicrofrontendContext().microfrontendProxy ?? {};\n const dashboardApi = useDashboardApi();\n\n const { colorScheme, density, family } = useSplunkTheme();\n\n const handleError = useCallback((error: string) => {\n console.error(_('Error loading AI Assistant:'), error);\n return <EmptyComponent />;\n }, []);\n\n const handleClick = useCallback(() => {\n dashboardApi.openPanel({\n activePanel: 'config',\n panelProps: {\n showAIPanel: true,\n },\n });\n }, [dashboardApi]);\n\n if (!allowDashboardAIAssistant || !AIButton) {\n return null;\n }\n\n return (\n <ErrorBoundary render={handleError}>\n <ToolbarItem>\n <Suspense key=\"ai-assistant\" fallback={null}>\n <Tooltip\n contentRelationship=\"label\"\n content={_('AI Assistant')}\n >\n <AIButton\n data-test=\"ai-button\"\n onClick={handleClick}\n colorScheme={colorScheme}\n style={aiButtonStyle}\n density={density}\n family={family}\n />\n </Tooltip>\n </Suspense>\n </ToolbarItem>\n </ErrorBoundary>\n );\n};\n", "import * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/ChartColumn\";\nexport * from \"@splunk/react-icons/ChartColumn\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-state\";\nexport * from \"@splunk/dashboard-state\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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 * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\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", "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 React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport styled from 'styled-components';\nimport Dropdown, {\n type DropdownChildrenRenderer,\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport { SplunkThemeProvider, useSplunkTheme } from '@splunk/themes';\n\nimport AddChartDropdown from '@splunk/react-icons/ChartColumn';\n\nimport { VisualizationFilter, type Taxonomy } from '@splunk/dashboard-ui';\nimport { useFeatureFlags } from '@splunk/dashboard-context';\nimport { batch } from '@splunk/dashboard-state';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\nimport { StyledDropdownButton } from '../components/StyledButton';\n\ninterface ScrollableMenuProps {\n maxHeight?: number | null;\n}\n\nconst ScrollableMenu = styled(Menu).attrs<ScrollableMenuProps>(\n ({ maxHeight }) => ({\n style: {\n maxHeight: maxHeight ?? undefined,\n },\n })\n)<ScrollableMenuProps>`\n overflow-y: auto;\n`;\n\nconst chartsDropdown = prepareIcon({\n Icon: AddChartDropdown,\n isMenu: true,\n screenReaderContent: _('Add chart'),\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n data-test=\"charts-button\"\n data-clickable\n appearance=\"subtle\"\n icon={chartsDropdown}\n />\n);\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\ntype Visualizations = Taxonomy[number]['visualizations'];\n\n/**\n * export for unit testing\n * @private\n */\nexport const getVisualizationListFromTaxonomy = ({\n taxonomy,\n handleCreateVisualization,\n}: {\n taxonomy: Taxonomy;\n handleCreateVisualization: (opt: {\n type: string;\n options: Record<string, unknown>;\n }) => () => void;\n}): JSX.Element[] =>\n taxonomy.reduce(\n (list: React.ReactElement[], { visualizations, category }) => {\n const availableVisualizations: Visualizations =\n visualizations.filter((props) => props.includeInToolbar);\n\n if (availableVisualizations.length === 0) {\n return list;\n }\n\n list.push(<Menu.Divider key={`menu-divider-${category}`} />);\n\n return list.concat(\n availableVisualizations.map((vizProps) => {\n const { label, type, initialOptions } = vizProps;\n const Icon = vizProps.icon as React.JSXElementConstructor<\n Record<string, unknown>\n > | null;\n\n if (!type) {\n return null;\n }\n\n const onClick = handleCreateVisualization({\n type,\n options: initialOptions as Record<string, unknown>,\n });\n\n return (\n <Menu.Item\n data-test={`add-${type}-button`}\n data-test-clickable\n onClick={onClick}\n startAdornment={!!Icon && <Icon size=\"18px\" />}\n key={`add-${type}-button`}\n >\n {label}\n </Menu.Item>\n );\n }) as JSX.Element[]\n );\n },\n []\n );\n\n/**\n * Charts button that has a dropdown menu.\n */\nconst Charts = ({ dashboardApi, preset }: ToolbarButtonProps): JSX.Element => {\n const { showNewDataForViz = true } = useFeatureFlags();\n\n const { family } = useSplunkTheme();\n const { handleForceClose, handleRequestClose, handleRequestOpen, isOpen } =\n useDropdown({\n isContentClickClose: false,\n });\n\n const taxonomy: Taxonomy = useMemo(\n () => new VisualizationFilter(preset).taxonomy,\n [preset]\n );\n\n const handleCreateVisualization = useCallback(\n ({\n type,\n options,\n }: {\n type: string;\n options: Record<string, unknown>;\n }) =>\n () => {\n batch(() => {\n dashboardApi?.createVisualization({\n visualizationDefinition: { type, options },\n });\n\n if (showNewDataForViz) {\n dashboardApi?.openPanel({\n activePanel: 'connectData',\n panelProps: {\n bindingType: 'primary',\n from: {\n activePanel: 'config',\n },\n },\n });\n }\n });\n\n handleForceClose();\n },\n [dashboardApi, showNewDataForViz, handleForceClose]\n );\n\n const visualizationList = useMemo(\n () =>\n getVisualizationListFromTaxonomy({\n taxonomy,\n handleCreateVisualization,\n }),\n [taxonomy, handleCreateVisualization]\n );\n\n const renderScrollableMenu = useCallback<DropdownChildrenRenderer>(\n ({ maxHeight }) => (\n <SplunkThemeProvider\n density={family === 'enterprise' ? 'comfortable' : 'compact'}\n >\n <ScrollableMenu\n maxHeight={maxHeight}\n data-test=\"add-chart-menu\"\n >\n {visualizationList}\n </ScrollableMenu>\n </SplunkThemeProvider>\n ),\n [family, visualizationList]\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 {renderScrollableMenu}\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Charts;\n", "import * as defaultImport from \"@splunk/react-icons/Cog\";\nexport * from \"@splunk/react-icons/Cog\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Configuration from '@splunk/react-icons/Cog';\nimport { useToolbarRef } from '@splunk/dashboard-context';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst configurationIcon = prepareIcon({\n Icon: Configuration,\n screenReaderContent: _('Configuration'),\n});\n\n/**\n * Button that toggle open config panel\n */\nconst Config = ({ dashboardApi }: ToolbarButtonProps) => {\n const configButtonRef = useToolbarRef('config');\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'config';\n if (isOpen) {\n dashboardApi?.closePanel();\n } else {\n // Open config panel\n dashboardApi?.openPanel({\n activePanel: 'config',\n panelProps: {\n focusOnOpen: true,\n },\n });\n }\n }, [dashboardApi]);\n\n return (\n <IconButton\n buttonRef={configButtonRef}\n testLabel=\"config-button\"\n onClick={handleClick}\n icon={configurationIcon}\n />\n );\n};\n\nexport default Config;\n", "import * as defaultImport from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\nexport * from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ArrowBroadUnderbarDown from '@splunk/react-icons/ArrowBroadUnderbarDown';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nexport interface ContentExportProps extends ToolbarButtonProps {\n disabled?: boolean;\n onClick?: ComponentProps<typeof IconButton>['onClick'];\n}\n\nconst icon = prepareIcon({\n Icon: ArrowBroadUnderbarDown,\n screenReaderContent: _('Export'),\n});\n\nconst ContentExport = ({ disabled, onClick }: ContentExportProps) => (\n <IconButton\n testLabel=\"content-export-button\"\n onClick={onClick}\n disabled={!!disabled}\n icon={icon}\n />\n);\n\nexport default ContentExport;\n", "import * as defaultImport from \"@splunk/react-icons/CylinderMulti\";\nexport * from \"@splunk/react-icons/CylinderMulti\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport DataInput from '@splunk/react-icons/CylinderMulti';\n\nimport { useToolbarRef } from '@splunk/dashboard-context';\nimport { batch } from '@splunk/dashboard-state';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst dataInputIcon = prepareIcon({\n Icon: DataInput,\n screenReaderContent: _('Data source overview'),\n});\n\n/**\n * Button that toggle data overview panel\n */\nconst Data = ({ dashboardApi }: ToolbarButtonProps) => {\n const dataButtonRef = useToolbarRef('dataOverview');\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'dataOverview';\n if (isOpen) {\n dashboardApi.closePanel();\n } else {\n batch(() => {\n // Deselect all selected visualizations\n dashboardApi?.selectVisualization([]);\n // Open data overview panel\n dashboardApi?.openPanel({\n activePanel: 'dataOverview',\n panelProps: {\n focusOnOpen: true,\n },\n });\n });\n }\n }, [dashboardApi]);\n\n return (\n <IconButton\n buttonRef={dataButtonRef}\n testLabel=\"data-button\"\n onClick={handleClick}\n icon={dataInputIcon}\n />\n );\n};\n\nexport default Data;\n", "import * as defaultImport from \"@splunk/react-icons/Checkmark\";\nexport * from \"@splunk/react-icons/Checkmark\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport {\n selectAreGlobalItemsCollapsed,\n selectGlobalInputs,\n selectDescription,\n selectIsDescriptionCollapsed,\n selectLayoutGlobalOptions,\n useSelector,\n} from '@splunk/dashboard-state';\nimport Checkmark from '@splunk/react-icons/Checkmark';\nimport { variables } from '@splunk/themes';\nimport styled from 'styled-components';\nimport useDropdown from '../../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst menuStyle = {\n minWidth: '150px',\n};\n\nconst CheckmarkIcon = styled(Checkmark)`\n color: ${variables.contentColorActive};\n`;\n\nconst CheckmarkPlaceholder = styled.span`\n display: inline-block;\n width: 16px;\n`;\n\ninterface DisplayProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n}\n\nexport const Display = ({\n appearance = 'default',\n dashboardApi,\n}: DisplayProps): JSX.Element | null => {\n const globalInputs = useSelector(selectGlobalInputs);\n const hasGlobalInputs = (globalInputs?.length ?? 0) > 0;\n const areInputsCollapsed = useSelector(selectAreGlobalItemsCollapsed);\n const showInputs = !areInputsCollapsed;\n const description = useSelector(selectDescription);\n const { showTitleAndDescription = true } = useSelector(\n selectLayoutGlobalOptions\n );\n const hasDescription = !!description && showTitleAndDescription;\n const isDescriptionCollapsed = useSelector(selectIsDescriptionCollapsed);\n const showDescription = !isDescriptionCollapsed;\n\n const handleInputsToggle = useCallback(() => {\n dashboardApi?.setAreGlobalInputsCollapsed({\n collapsed: !areInputsCollapsed,\n });\n }, [dashboardApi, areInputsCollapsed]);\n\n const handleDescriptionToggle = useCallback(() => {\n dashboardApi?.setIsDescriptionCollapsed({\n collapsed: !isDescriptionCollapsed,\n });\n }, [dashboardApi, isDescriptionCollapsed]);\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const buttonToggle = useMemo(\n () => (\n <Button\n data-clickable\n data-test=\"display-dropdown-button\"\n appearance={appearance}\n isMenu\n aria-label={_('Display options')}\n >\n {_('Display')}\n </Button>\n ),\n [appearance]\n );\n\n const inputsCheckmarkIcon = useMemo(() => {\n return showInputs ? <CheckmarkIcon /> : <CheckmarkPlaceholder />;\n }, [showInputs]);\n\n const descriptionCheckmarkIcon = useMemo(() => {\n return showDescription ? <CheckmarkIcon /> : <CheckmarkPlaceholder />;\n }, [showDescription]);\n\n const dropdownMenuChildren = useMemo(() => {\n const items = [];\n\n if (hasDescription) {\n items.push(\n <Menu.Item\n key=\"description-item\"\n data-test=\"description-menu-item\"\n onClick={handleDescriptionToggle}\n startAdornment={descriptionCheckmarkIcon}\n >\n {_('Dashboard description')}\n </Menu.Item>\n );\n }\n\n if (hasGlobalInputs) {\n items.push(\n <Menu.Item\n key=\"inputs-item\"\n data-test=\"inputs-menu-item\"\n onClick={handleInputsToggle}\n startAdornment={inputsCheckmarkIcon}\n >\n {_('Inputs')}\n </Menu.Item>\n );\n }\n\n return items;\n }, [\n hasDescription,\n hasGlobalInputs,\n handleDescriptionToggle,\n handleInputsToggle,\n descriptionCheckmarkIcon,\n inputsCheckmarkIcon,\n ]);\n\n if (dropdownMenuChildren.length === 0) {\n return null;\n }\n\n return (\n <Tooltip contentRelationship=\"label\" content={_('Display')}>\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={buttonToggle}\n >\n <Menu\n style={menuStyle}\n focusMode=\"normal\"\n aria-label={_('Display options')}\n >\n {dropdownMenuChildren}\n </Menu>\n </Dropdown>\n </Tooltip>\n );\n};\n", "import * as defaultImport from \"@splunk/react-icons/Square\";\nexport * from \"@splunk/react-icons/Square\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport BoxUnchecked from '@splunk/react-icons/Square';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: BoxUnchecked,\n screenReaderContent: _('Add rectangle'),\n});\n\n/**\n * Button that creates a empty viz\n */\nconst EmptyVisualization = ({ dashboardApi }: ToolbarButtonProps) => {\n const handleClick = useCallback(async () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.rectangle',\n options: {\n fillColor: 'transparent',\n strokeColor: 'transparent',\n },\n },\n });\n\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"empty-viz-button\"\n onClick={handleClick}\n icon={icon}\n />\n );\n};\n\nexport default EmptyVisualization;\n", "import React, { useCallback, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport type { ButtonPropsBase } from '@splunk/react-ui/Button';\nimport Download from '@splunk/react-icons/ArrowBroadUnderbarDown';\nimport { ExportDashboardModal } from '@splunk/dashboard-ui';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Button from '@splunk/react-ui/Button';\nimport type { ToolbarButtonProps } from '../types/common';\n\n// this icon should be sized consistent with the adjacent text, it does not need screenreader content\nconst downloadIcon = <Download />;\n\nconst StyledButton = styled(Button)`\n flex-shrink: 0;\n flex-grow: 0;\n`;\n\nexport interface ExportDashboardButtonProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n scale?: number;\n}\n\nconst ExportDashboardButton = ({\n appearance = 'secondary',\n scale = 1,\n}: ExportDashboardButtonProps) => {\n const [open, setOpen] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, []);\n\n return (\n <>\n <StyledButton\n elementRef={buttonRef}\n icon={downloadIcon}\n key=\"export-dashboard-button\"\n data-clickable\n data-test=\"export-dashboard-button\"\n label={_('Download')}\n appearance={appearance || 'secondary'}\n onClick={handleOpen}\n />\n <ExportDashboardModal\n open={open}\n onModalClose={handleClose}\n scale={scale}\n returnFocus={buttonRef}\n />\n </>\n );\n};\n\nexport default ExportDashboardButton;\n", "import * as defaultImport from \"@splunk/react-icons/ChevronsOut\";\nexport * from \"@splunk/react-icons/ChevronsOut\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import { useCallback } from 'react';\nimport { useDispatch, toolbarButtonClicked } from '@splunk/dashboard-state';\n\nexport const useToolbarButtonClick = <T extends unknown[]>(\n event?: string,\n onClick?: (...args: T) => void\n) => {\n const dispatch = useDispatch();\n\n return useCallback(\n (...args: T) => {\n if (dispatch && event) {\n dispatch(\n toolbarButtonClicked({\n event,\n })\n );\n }\n onClick?.(...args);\n },\n [dispatch, event, onClick]\n );\n};\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport Fullscreen from '@splunk/react-icons/ChevronsOut';\nimport { selectFullscreenElement, useSelector } from '@splunk/dashboard-state';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { useToolbarButtonClick } from '../hooks/useToolbarButtonClick';\n\nconst icon = prepareIcon({\n Icon: Fullscreen,\n screenReaderContent: _('Fullscreen'),\n});\n\n/**\n * Button that toggle fullscreen mode\n */\nconst FullScreen = ({ dashboardApi }: ToolbarButtonProps) => {\n const isFullscreen = !!useSelector(selectFullscreenElement);\n\n const enterFullscreen = useCallback(async () => {\n await dashboardApi?.enterFullscreen();\n }, [dashboardApi]);\n\n const handleClick = useToolbarButtonClick('fullscreen', enterFullscreen);\n\n return (\n <IconButton\n testLabel=\"fullscreen-button\"\n onClick={handleClick}\n disabled={isFullscreen}\n icon={icon}\n />\n );\n};\n\nexport default FullScreen;\n", "import * as defaultImport from \"@splunk/react-ui/Switch\";\nexport * from \"@splunk/react-ui/Switch\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import styled from 'styled-components';\nimport { variables } from '@splunk/themes';\n\nconst ItemSeparator = styled.div`\n border-left-width: 1px;\n border-left-style: solid;\n border-left-color: ${variables.interactiveColorBorder};\n width: 0px;\n height: ${variables.inputHeight};\n`;\n\nexport default ItemSeparator;\n", "import React, { useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Switch from '@splunk/react-ui/Switch';\nimport {\n selectAreGridLinesEnabled,\n useSelector,\n} from '@splunk/dashboard-state';\nimport { variables } from '@splunk/themes';\nimport ItemSeparator from '../components/ItemSeparator';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst SwitchContainer = styled.div`\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: ${variables.spacingSmall};\n`;\n\nexport interface GridLineSwitchProps extends ToolbarButtonProps {\n showSeparator?: boolean;\n}\n\nconst GridLineSwitch = ({\n dashboardApi,\n mode,\n showSeparator,\n layoutType,\n}: GridLineSwitchProps) => {\n const showGrid = useSelector(selectAreGridLinesEnabled) ?? false;\n\n const handleClick = useCallback(() => {\n dashboardApi?.toggleGridLines(!showGrid);\n }, [dashboardApi, showGrid]);\n\n const separator = useMemo(\n () => (showSeparator ? <ItemSeparator key=\"item-separator\" /> : null),\n [showSeparator]\n );\n\n if (!dashboardApi || mode !== 'edit' || layoutType === 'grid') {\n return null;\n }\n\n return (\n <SwitchContainer key=\"grid-line-switch\">\n <Switch\n onClick={handleClick}\n selected={showGrid}\n selectedLabel={_('Gridlines displayed')}\n unselectedLabel={_('Gridlines not displayed')}\n appearance=\"toggle\"\n data-test=\"gridline-toggle\"\n data-clickable\n >\n {_('Gridlines')}\n </Switch>\n {separator}\n </SwitchContainer>\n );\n};\n\nexport default GridLineSwitch;\n", "import * as defaultImport from \"@splunk/react-icons/ChartSingleValueIcon\";\nexport * from \"@splunk/react-icons/ChartSingleValueIcon\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\n\nimport AddIconDropdown from '@splunk/react-icons/ChartSingleValueIcon';\nimport { IconGallery as IconGalleryPanel } from '@splunk/dashboard-ui';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst MenusContainer = styled.div`\n display: flex;\n padding: 5px;\n`;\n\nconst iconGalleryDropdown = prepareIcon({\n Icon: AddIconDropdown,\n screenReaderContent: _('Add icon'),\n isMenu: true,\n});\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\n/**\n * Icon Gallery button that has as a dropdown menu.\n */\nconst IconGallery = ({ dashboardApi }: ToolbarButtonProps) => {\n const {\n handleForceClose,\n handleRequestClose,\n handleRequestOpen,\n setHasChildModal,\n isOpen,\n } = useDropdown({\n isContentClickClose: false,\n });\n\n const ButtonToggle = useMemo(\n () => (\n <StyledDropdownButton\n data-test=\"icon-gallery-button\"\n data-clickable\n appearance=\"subtle\"\n icon={iconGalleryDropdown}\n />\n ),\n []\n );\n const handlePanelClick = useCallback(\n async (iconURL: string) => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.singlevalueicon',\n options: {\n showValue: false,\n icon: iconURL,\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n handleForceClose();\n },\n [dashboardApi, handleForceClose]\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 <MenusContainer data-test=\"icon-menu\" data-open={isOpen}>\n <IconGalleryPanel\n onClick={handlePanelClick}\n setHasChildModal={setHasChildModal}\n />\n </MenusContainer>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default IconGallery;\n", "import * as defaultImport from \"@splunk/react-icons/QuestionCircle\";\nexport * from \"@splunk/react-icons/QuestionCircle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useMemo } from 'react';\nimport Help from '@splunk/react-icons/QuestionCircle';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../types/common';\nimport { prepareIcon } from '../IconButton';\nimport { StyledDropdownButton } from '../components/StyledButton';\n\nexport interface ToolbarHelpLink {\n label: string;\n description?: string;\n url: string;\n}\n\ninterface HelpProps extends ToolbarButtonProps {\n helpLinks?: ToolbarHelpLink[];\n}\n\nconst HelpIcon = prepareIcon({\n Icon: Help,\n screenReaderContent: _('Help links'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"help-button\"\n icon={HelpIcon}\n />\n);\n\n/**\n * Help button which expands dropdown full of links\n */\nconst HelpButton = ({ helpLinks = [] }: HelpProps) => {\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const HelpLinks = useMemo(() => {\n if (helpLinks.length === 0) {\n return [\n <Menu.Item\n data-test=\"no-links-provided\"\n key=\"no-links-provided\"\n disabled\n >\n {_('No Links')}\n </Menu.Item>,\n ];\n }\n\n return helpLinks.map((link: ToolbarHelpLink) => {\n const { label = '', description = '', url } = link;\n const key = label.replaceAll(/\\s/g, '');\n\n return (\n <Menu.Item\n data-test=\"help-link\"\n data-test-clickable\n to={url}\n description={description}\n key={`help-link-${key}`}\n openInNewContext\n >\n {label}\n </Menu.Item>\n );\n });\n }, [helpLinks]);\n\n return (\n <ToolbarItem>\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={ButtonToggle}\n >\n <Menu>{HelpLinks}</Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default HelpButton;\n", "import * as defaultImport from \"@splunk/react-icons/Picture\";\nexport * from \"@splunk/react-icons/Picture\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Picture from '@splunk/react-icons/Picture';\n\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: Picture,\n screenReaderContent: _('Add image'),\n});\n\n/**\n * Button that create a empty image\n */\nconst Image = ({ dashboardApi }: ToolbarButtonProps) => {\n const handleClick = useCallback(async () => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n },\n },\n });\n\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"image-button\"\n onClick={handleClick}\n icon={icon}\n />\n );\n};\n\nexport default Image;\n", "import React, { useCallback } from 'react';\nimport styled from 'styled-components';\n\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport { _ } from '@splunk/ui-utils/i18n';\n\nimport AddImage from '@splunk/react-icons/Picture';\n\nimport { ImageGallery as ImageGalleryPanel } from '@splunk/dashboard-ui';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport ToolbarItem from '../Item';\nimport useDropdown from '../hooks/useDropdown';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst MenusContainer = styled.div`\n display: flex;\n padding: 5px;\n`;\n\nconst imageGalleryDropdown = prepareIcon({\n Icon: AddImage,\n screenReaderContent: _('Add image'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n data-test=\"image-gallery-button\"\n data-clickable\n appearance=\"subtle\"\n icon={imageGalleryDropdown}\n />\n);\n\nconst focusToggleReasons: never[] = [];\n\n/**\n * Image Gallery button that has as a dropdown menu.\n */\nconst ImageGallery = ({ dashboardApi }: ToolbarButtonProps) => {\n const {\n handleForceClose,\n handleRequestClose,\n handleRequestOpen,\n setHasChildModal,\n isOpen,\n } = useDropdown({\n isContentClickClose: false,\n });\n\n const handlePanelClick = useCallback(\n async (imageUrl: string) => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.image',\n options: {\n preserveAspectRatio: true,\n src: imageUrl,\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n handleForceClose();\n },\n [dashboardApi, handleForceClose]\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 <MenusContainer>\n <ImageGalleryPanel\n onClick={handlePanelClick}\n setHasChildModal={setHasChildModal}\n />\n </MenusContainer>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default ImageGallery;\n", "import * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport * from \"@splunk/react-icons/SlidersTripleHorizontal\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/dashboard-definition\";\nexport * from \"@splunk/dashboard-definition\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useMemo } from 'react';\nimport { each } from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown, {\n type DropdownPossibleCloseReason,\n} from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Input from '@splunk/react-icons/SlidersTripleHorizontal';\nimport { DashboardDefinition } from '@splunk/dashboard-definition';\nimport type {\n PresetMap,\n InputConfig,\n DashboardApi,\n} from '@splunk/dashboard-types';\n\nimport { StyledDropdownButton } from '../components/StyledButton';\nimport useDropdown from '../hooks/useDropdown';\nimport ToolbarItem from '../Item';\nimport { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst focusToggleReasons: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\n\nconst DEFAULT_PRESET_MAP = Object.freeze({} as PresetMap);\nconst addInputIcon = prepareIcon({\n Icon: Input,\n screenReaderContent: _('Add input'),\n isMenu: true,\n});\n\nconst ButtonToggle = (\n <StyledDropdownButton\n appearance=\"subtle\"\n data-clickable\n data-test=\"inputs-button\"\n icon={addInputIcon}\n />\n);\n\ninterface AddInputFactoryArgs {\n type: string;\n defaultConfig: {\n options?: Record<string, unknown>;\n [x: string]: unknown;\n };\n tokenPrefix: string;\n showToken: boolean;\n dashboardApi?: DashboardApi;\n}\n\n// click handler factory\nconst onCreateInputClickFactory =\n ({\n type,\n defaultConfig,\n tokenPrefix,\n showToken,\n dashboardApi,\n }: AddInputFactoryArgs) =>\n () => {\n if (!dashboardApi) {\n return;\n }\n\n const newConfig = {\n ...defaultConfig,\n type,\n options: {\n ...defaultConfig.options,\n },\n };\n // showToken flags whether or not the input has a token assigned on creation\n if (showToken) {\n newConfig.options.token = DashboardDefinition.fromJSON(\n dashboardApi?.getDefinition()\n ).nextTokenId(tokenPrefix);\n }\n dashboardApi.addInput(newConfig);\n dashboardApi.openPanel({ activePanel: 'config' });\n };\n\n/**\n * Add Input button that has a dropdown menu.\n */\nconst Inputs = ({\n dashboardApi,\n preset = DEFAULT_PRESET_MAP,\n}: ToolbarButtonProps) => {\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const InputTypeButtons = useMemo(() => {\n const buttons = [];\n\n const inputs = preset?.inputs as Record<\n string,\n {\n config: InputConfig;\n }\n >;\n\n each(inputs, (InputImpl, type) => {\n const {\n baseShape = {},\n label = _(`${type} Input`),\n description = '',\n tokenPrefix = 'token',\n includeInToolbar = true,\n icon: Icon = Input,\n // showToken flags whether or not the input has a token assigned on creation\n showToken = true,\n } = InputImpl.config || {};\n\n if (!includeInToolbar) {\n return;\n }\n\n const handleClick = onCreateInputClickFactory({\n type,\n defaultConfig: baseShape,\n tokenPrefix,\n showToken,\n dashboardApi,\n });\n\n const inputIcon = <Icon width=\"24px\" height=\"24px\" />;\n\n buttons.push(\n <Menu.Item\n data-test={`add-${type}-button`}\n data-test-clickable\n onClick={handleClick}\n startAdornment={inputIcon}\n description={description}\n key={`add-${type}-button`}\n >\n {label}\n </Menu.Item>\n );\n });\n\n if (buttons.length === 0) {\n buttons.push(\n <Menu.Item\n data-test=\"no-inputs-in-preset\"\n key=\"no-inputs-in-preset\"\n disabled\n >\n {_('No Inputs')}\n </Menu.Item>\n );\n }\n\n return buttons;\n }, [preset, dashboardApi]);\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>{InputTypeButtons}</Menu>\n </Dropdown>\n </ToolbarItem>\n );\n};\n\nexport default Inputs;\n", "import * as defaultImport from \"@splunk/react-icons/Markdown\";\nexport * from \"@splunk/react-icons/Markdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport MarkdownIcon from '@splunk/react-icons/Markdown';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: MarkdownIcon,\n screenReaderContent: _('Add markdown text'),\n});\n\n/**\n * Button that creates a empty markdown viz\n */\nconst Markdown = ({ dashboardApi }: ToolbarButtonProps): JSX.Element => {\n const handleClick = useCallback(() => {\n dashboardApi?.createVisualization({\n visualizationDefinition: {\n type: 'splunk.markdown',\n options: {\n markdown: '',\n },\n },\n });\n dashboardApi?.openPanel({\n activePanel: 'config',\n });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"markdown-button\"\n onClick={handleClick}\n icon={icon}\n />\n );\n};\n\nexport default Markdown;\n", "import React, { useCallback } from 'react';\nimport Button from '@splunk/react-ui/Button';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { useSelector, selectMode } from '@splunk/dashboard-state';\nimport { useDashboardApi } from '@splunk/dashboard-context';\nimport Item from '../Item';\n\n/**\n * Dashboard mode switch button\n */\nconst ModeSwitch = () => {\n const mode = useSelector(selectMode);\n const dashboardApi = useDashboardApi();\n const appearance = mode === 'edit' ? 'secondary' : 'primary';\n const label = mode === 'edit' ? _('View') : _('Edit');\n\n const handleClick = useCallback(() => {\n dashboardApi?.switchMode(mode === 'edit' ? 'view' : 'edit');\n }, [mode, dashboardApi]);\n\n return (\n <Item>\n <Button\n key=\"mode-button\"\n data-clickable\n data-test=\"mode-button\"\n inline={false}\n label={label}\n appearance={appearance}\n onClick={handleClick}\n />\n </Item>\n );\n};\n\nexport default ModeSwitch;\n", "import * as defaultImport from \"@splunk/react-icons/ArrowBowRight\";\nexport * from \"@splunk/react-icons/ArrowBowRight\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "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", "import * as defaultImport from \"@splunk/react-icons/Circle\";\nexport * from \"@splunk/react-icons/Circle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/Line\";\nexport * from \"@splunk/react-icons/Line\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import * as defaultImport from \"@splunk/react-icons/ShapesVariety\";\nexport * from \"@splunk/react-icons/ShapesVariety\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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", "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, {\n type DropdownPossibleCloseReason,\n} 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: DropdownPossibleCloseReason[] = [\n 'escapeKey',\n 'tabKey',\n];\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", "import * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SourceIcon from '@splunk/react-icons/WindowChevronsSlash';\nimport { useRestoreFocus, useToolbarRef } from '@splunk/dashboard-context';\nimport type { ButtonClickHandler } from '@splunk/react-ui/Button';\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 toggles source mode\n */\nconst Source = ({ disabled = false, onClick }: SourceProps) => {\n const sourceButtonRef = useToolbarRef('source');\n const setReturnPoint = useRestoreFocus(sourceButtonRef);\n\n const onSourceClick = useCallback<ButtonClickHandler>(\n (event, data) => {\n if (onClick) {\n onClick(event, data);\n setReturnPoint();\n }\n },\n [onClick, setReturnPoint]\n );\n\n return (\n <IconButton\n testLabel=\"source-button\"\n onClick={onSourceClick}\n disabled={disabled}\n icon={icon}\n buttonRef={sourceButtonRef}\n />\n );\n};\n\nexport default Source;\n", "import * as defaultImport from \"@splunk/react-icons/ListToken\";\nexport * from \"@splunk/react-icons/ListToken\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport { useFeatureFlags } from '@splunk/dashboard-context';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport ListToken from '@splunk/react-icons/ListToken';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport IconButton, { prepareIcon } from '../../IconButton';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst tokenManagerIcon = prepareIcon({\n Icon: ListToken,\n screenReaderContent: _('Token manager'),\n});\n\n/**\n * Button that toggles open token manager panel\n */\nexport const TokenManager = ({ dashboardApi }: ToolbarButtonProps) => {\n const { showTokenManager } = useFeatureFlags();\n\n const handleClick = useCallback(() => {\n const isOpen = dashboardApi?.getOpenedPanel() === 'tokenManager';\n if (isOpen) {\n dashboardApi?.closePanel();\n } else {\n // Open tokens panel\n dashboardApi?.openPanel({\n activePanel: 'tokenManager',\n panelProps: {\n focusOnOpen: true,\n },\n });\n }\n }, [dashboardApi]);\n\n if (!showTokenManager) {\n return null;\n }\n\n return (\n <Tooltip\n contentRelationship=\"label\"\n content={_('Token manager')}\n data-test-label=\"token-manager-button\"\n >\n <IconButton\n testLabel=\"token-manager-button\"\n onClick={handleClick}\n icon={tokenManagerIcon}\n />\n </Tooltip>\n );\n};\n", "import * as defaultImport from \"@splunk/react-icons/ArrowBowLeft\";\nexport * from \"@splunk/react-icons/ArrowBowLeft\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useEffect, useState } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport UndoIcon from '@splunk/react-icons/ArrowBowLeft';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nconst icon = prepareIcon({\n Icon: UndoIcon,\n screenReaderContent: _('Undo'),\n});\n\nconst Undo = ({ dashboardApi }: ToolbarButtonProps) => {\n // TODO: replace when history management is done in redux\n // mode changes can cause the button to mount while there is an undo state\n const [canUndo, setCanUndo] = useState(\n () => dashboardApi?.canUndo() ?? false\n );\n\n const onDefinitionChange = useCallback(() => {\n setCanUndo(dashboardApi?.canUndo() ?? 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.undo({ source: 'toolbar' });\n }, [dashboardApi]);\n\n return (\n <IconButton\n testLabel=\"undo-button\"\n onClick={handleClick}\n disabled={!canUndo}\n icon={icon}\n />\n );\n};\n\nexport default Undo;\n", "import * as defaultImport from \"@splunk/ui-utils/format\";\nexport * from \"@splunk/ui-utils/format\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback, useMemo } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport Dropdown from '@splunk/react-ui/Dropdown';\nimport Menu from '@splunk/react-ui/Menu';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport { isMac } from '@splunk/dashboard-utils';\nimport { sprintf } from '@splunk/ui-utils/format';\nimport useDropdown from '../../hooks/useDropdown';\nimport type { ToolbarButtonProps } from '../../types/common';\n\nconst zoomLevels = [25, 50, 100, 150, 200];\n\nconst buttonStyle = {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n};\n\nconst menuStyle = {\n width: '200px',\n};\n\nexport interface ZoomMenuProps {\n appearance?: ButtonPropsBase['appearance'];\n dashboardApi: ToolbarButtonProps['dashboardApi'];\n currentScale: number;\n setCurrentScale: (scale: number) => void;\n scaleType: 'auto' | 'fit' | null;\n setScaleType: (type: 'auto' | 'fit' | null) => void;\n}\n\nexport const ZoomMenu = ({\n dashboardApi,\n appearance = 'default',\n currentScale,\n setCurrentScale,\n scaleType,\n setScaleType,\n}: ZoomMenuProps): JSX.Element => {\n const handleZoomOutClick = useCallback(() => {\n setScaleType(null);\n dashboardApi?.zoomOut();\n }, [setScaleType, dashboardApi]);\n\n const handleZoomInClick = useCallback(() => {\n setScaleType(null);\n dashboardApi?.zoomIn();\n }, [setScaleType, dashboardApi]);\n\n const handleScaleChange = useCallback(\n (scale: number) => () => {\n setCurrentScale(scale);\n setScaleType(null);\n dashboardApi?.setScale({ scale: scale / 100 });\n },\n [setScaleType, setCurrentScale, dashboardApi]\n );\n\n const handleFitToWidthClick = useCallback(() => {\n setScaleType('fit');\n dashboardApi?.fitToWidth();\n }, [setScaleType, dashboardApi]);\n\n const handleAutoClick = useCallback(() => {\n setScaleType('auto');\n dashboardApi?.fitToWidth({ maxScale: 1 });\n }, [setScaleType, dashboardApi]);\n\n const { handleRequestClose, handleRequestOpen, isOpen } = useDropdown({\n isContentClickClose: true,\n });\n\n const buttonToggle = (\n <Button\n data-clickable\n data-test=\"zoom-dropdown-button\"\n style={buttonStyle}\n appearance={appearance}\n isMenu\n aria-label={sprintf(_('Zoom level, %(currentScale)s%%'), {\n currentScale,\n })}\n />\n );\n\n const isMacOS = useMemo(() => isMac(), []);\n\n const dropdownMenuChildren = useMemo(() => {\n const zoomButtons = zoomLevels.map((percent) => {\n return (\n <Menu.Item\n data-test={`${percent}-percent`}\n onClick={handleScaleChange(percent)}\n key={percent}\n selectable\n selected={currentScale === percent && !scaleType}\n >\n {`${percent}%`}\n </Menu.Item>\n );\n });\n return [\n <Menu.Item\n data-test=\"auto\"\n onClick={handleAutoClick}\n key=\"auto\"\n selectable\n selected={scaleType === 'auto'}\n >\n {_('Auto')}\n </Menu.Item>,\n <Menu.Item\n data-test=\"fit-to-width\"\n onClick={handleFitToWidthClick}\n key=\"fit-to-width\"\n description={isMacOS ? _('Ctrl Cmd 0') : _('Ctrl Alt 0')}\n descriptionPosition=\"right\"\n selectable\n selected={scaleType === 'fit'}\n >\n {_('Fit')}\n </Menu.Item>,\n <Menu.Divider key=\"menu-divider-1\" />,\n ...zoomButtons,\n <Menu.Divider key=\"menu-divider-2\" />,\n <Menu.Item\n data-test=\"zoom-in\"\n onClick={handleZoomInClick}\n key=\"zoom-in\"\n description={isMacOS ? _('Ctrl Cmd =') : _('Ctrl Alt =')}\n descriptionPosition=\"right\"\n selectable\n >\n {_('Zoom in')}\n </Menu.Item>,\n <Menu.Item\n data-test=\"zoom-out\"\n onClick={handleZoomOutClick}\n key=\"zoom-out\"\n description={isMacOS ? _('Ctrl Cmd -') : _('Ctrl Alt -')}\n descriptionPosition=\"right\"\n selectable\n >\n {_('Zoom out')}\n </Menu.Item>,\n ];\n }, [\n currentScale,\n handleAutoClick,\n scaleType,\n handleFitToWidthClick,\n isMacOS,\n handleZoomInClick,\n handleZoomOutClick,\n handleScaleChange,\n ]);\n\n return (\n <Dropdown\n onRequestClose={handleRequestClose}\n onRequestOpen={handleRequestOpen}\n open={isOpen}\n toggle={buttonToggle}\n retainFocus\n >\n <Menu\n style={menuStyle}\n focusMode=\"normal\"\n aria-label={_('Zoom level')}\n >\n {dropdownMenuChildren}\n </Menu>\n </Dropdown>\n );\n};\n", "import * as defaultImport from \"@splunk/react-ui/Number\";\nexport * from \"@splunk/react-ui/Number\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import React, { useCallback } from 'react';\nimport styled from 'styled-components';\nimport SUINumber from '@splunk/react-ui/Number';\nimport { variables } from '@splunk/themes';\nimport { useNumberInput, type OnValueChangeType } from '@splunk/dashboard-ui';\n\nconst StyledNumber = styled(SUINumber)`\n padding-right: ${variables.spacingSmall};\n & > input {\n text-align: right;\n }\n`;\n\nconst StyledEndAdornment = styled.span`\n color: ${variables.contentColorActive};\n`;\n\ninterface ZoomNumberProps {\n currentScale: number;\n onScaleChange: (scale: number) => () => void;\n}\n\nconst percentAdornment = <StyledEndAdornment>%</StyledEndAdornment>;\n\nexport const ZoomNumber = ({\n currentScale,\n onScaleChange,\n}: ZoomNumberProps) => {\n const onValueChange = useCallback<OnValueChangeType>(\n (_e, value = 100) => {\n const v =\n typeof value === 'string' ? Number.parseInt(value, 10) : value;\n onScaleChange(v)();\n },\n [onScaleChange]\n );\n const { handleChange, handleBlur, handleFocus, handleKeyPress } =\n useNumberInput({\n value: currentScale,\n onValueChange,\n });\n\n return (\n <StyledNumber\n value={currentScale}\n onChange={handleChange}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n onFocus={handleFocus}\n step={5}\n min={1}\n max={10000}\n roundTo={0}\n endAdornment={percentAdornment}\n hideStepButtons\n data-test=\"zoom-number\"\n append\n />\n );\n};\n", "import React, { useCallback, useMemo, useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { debounce } from 'lodash';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { variables } from '@splunk/themes';\nimport Tooltip from '@splunk/react-ui/Tooltip';\nimport type { ButtonPropsBase } from '@splunk/react-ui/Button';\n\nimport { useDashboardApi } from '@splunk/dashboard-context';\nimport {\n selectActiveTab,\n useSelector,\n useDispatch,\n zoomLevelChanged,\n} from '@splunk/dashboard-state';\n\nimport type { ToolbarButtonProps } from '../../types/common';\nimport ItemSeparator from '../../components/ItemSeparator';\nimport { ZoomMenu } from './ZoomMenu';\nimport { ZoomNumber } from './ZoomNumber';\n\nconst Container = styled.div`\n margin-inline-end: 0;\n display: flex;\n min-width: 96px;\n gap: ${variables.spacingSmall};\n`;\n\nconst StyledTooltip = styled(Tooltip)`\n width: 90px;\n & span {\n display: flex;\n }\n`;\n\nexport interface ZoomProps extends ToolbarButtonProps {\n appearance?: ButtonPropsBase['appearance'];\n showSeparator?: boolean;\n}\n\nexport const Zoom = ({\n showSeparator = true,\n appearance = 'default',\n mode = 'view',\n}: ZoomProps): JSX.Element => {\n const [currentScale, setCurrentScale] = useState(100);\n const [scaleType, setScaleType] = useState<'auto' | 'fit' | null>(null);\n const dashboardApi = useDashboardApi();\n const dispatch = useDispatch();\n\n const handleZoom = useCallback((level?: number) => {\n if (level) {\n setCurrentScale(Math.round(level * 100));\n }\n }, []);\n\n const debouncedDispatch = useMemo(\n () => debounce(dispatch, 500),\n [dispatch]\n );\n\n useEffect(() => {\n debouncedDispatch(\n zoomLevelChanged({\n scale: currentScale,\n scaleType,\n mode,\n })\n );\n }, [currentScale, scaleType, mode, debouncedDispatch]);\n\n const activeTabId = useSelector(selectActiveTab);\n useEffect(() => {\n const subscription = dashboardApi\n ?.getZoomLevel()\n ?.subscribe({ next: handleZoom });\n\n return () => {\n subscription?.unsubscribe();\n };\n }, [dashboardApi, activeTabId, handleZoom]);\n\n const separator = useMemo(\n () => (showSeparator ? <ItemSeparator key=\"item-separator\" /> : null),\n [showSeparator]\n );\n\n const handleScaleChange = useCallback(\n (scale: number) => () => {\n setCurrentScale(scale);\n setScaleType(null);\n dashboardApi?.setScale({ scale: scale / 100 });\n },\n [dashboardApi]\n );\n\n return (\n <Container>\n <StyledTooltip\n contentRelationship=\"label\"\n content={_('Zoom level')}\n >\n <ZoomNumber\n currentScale={currentScale}\n onScaleChange={handleScaleChange}\n />\n <ZoomMenu\n dashboardApi={dashboardApi}\n appearance={appearance}\n currentScale={currentScale}\n setCurrentScale={setCurrentScale}\n scaleType={scaleType}\n setScaleType={setScaleType}\n />\n </StyledTooltip>\n {separator}\n </Container>\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA,oBAA+B;AAC/B,0BAAc;AACd,IAAO,gBAAS,aAAa,gBAA8B,wBAAU;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,iCAAc;AACd,IAAO,uBAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,oCAAc;AACd,IAAO,0BAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,sCAAc;AACd,IAAO,4BAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,4BAAc;AACd,IAAO,kBAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,sCAAc;AACd,IAAO,4BAAsB;;;ACA7B,IAAO,eAAQ,0BAAO;;;ACWtB,IAAM,gBAAgB,EAAE,QAAQ,OAAO;AACvC,IAAM,iBAAiB,MAAM;AAEtB,IAAM,cAAc,MAAM;AAhBjC;AAiBI,QAAM,EAAE,0BAA0B,QAAI,2CAAgB;AACtD,QAAM,EAAE,SAAS,KAAI,4DAAwB,EAAE,uBAA1B,YAAgD,CAAC;AACtE,QAAM,mBAAe,2CAAgB;AAErC,QAAM,EAAE,aAAa,SAAS,OAAO,QAAI,+BAAe;AAExD,QAAM,kBAAc,2BAAY,CAAC,UAAkB;AAC/C,oCAAQ,UAAM,gBAAE,6BAA6B,GAAG,KAAK;AACrD,WAAO,4CAAC,oBAAe;AAAA,EAC3B,GAAG,CAAC,CAAC;AAEL,QAAM,kBAAc,2BAAY,MAAM;AAClC,iBAAa,UAAU;AAAA,MACnB,aAAa;AAAA,MACb,YAAY;AAAA,QACR,aAAa;AAAA,MACjB;AAAA,IACJ,CAAC;AAAA,EACL,GAAG,CAAC,YAAY,CAAC;AAEjB,MAAI,CAAC,6BAA6B,CAAC,UAAU;AACzC,WAAO;AAAA,EACX;AAEA,SACI,4CAAC,sCAAc,QAAQ,eACnB,4CAAC,oBACG,4CAAC,0BAAS,KAAI,gBAAe,UAAU,QACnC;AAAA,IAAC;AAAA;AAAA,MACG,qBAAoB;AAAA,MACpB,aAAS,gBAAE,cAAc;AAAA;AAAA,IAEzB;AAAA,MAAC;AAAA;AAAA,QACG,aAAU;AAAA,QACV,SAAS;AAAA,QACT;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,EACJ,CACJ,CACJ,CACJ;AAER;;;AC9DA;AAAA;AAAA;AAAA;AAAA,IAAAC,iBAA+B;AAC/B,6BAAc;AACd,IAAO,mBAAS,aAAaA,iBAA8B,yBAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,kBAA8B,0BAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,gCAAc;AACd,IAAO,sBAAS,aAAaA,kBAA8B,0BAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,oCAAc;AACd,IAAO,0BAAS,aAAaA,kBAA8B,0BAAUA;;;ACwBrE,IAAM,cAAc,CAAC;AAAA,EACjB,sBAAsB;AAC1B,MAA0C;AACtC,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAAS,KAAK;AAC1C,QAAM,oBAAgB,sBAAO,KAAK;AAElC,QAAM,yBAAqB;AAAA,IACvB,CAAC,EAAE,OAAO,MAAM;AACZ,UAAI,WAAW,kBAAkB,CAAC,qBAAqB;AAEnD;AAAA,MACJ;AAGA,UAAI,WAAW,eAAe,cAAc,SAAS;AACjD;AAAA,MACJ;AAEA,gBAAU,KAAK;AAAA,IACnB;AAAA,IACA,CAAC,mBAAmB;AAAA,EACxB;AAEA,QAAM,wBAAoB,2BAAY,MAAM;AACxC,cAAU,IAAI;AAAA,EAClB,GAAG,CAAC,CAAC;AAEL,QAAM,uBAAmB,2BAAY,MAAM;AACvC,cAAU,KAAK;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,QAAM,uBAAmB,2BAAY,CAAC,UAAmB;AACrD,kBAAc,UAAU;AAAA,EAC5B,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,IAAO,sBAAQ;;;ACtEf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,8BAAc;AACd,IAAO,oBAAS,aAAaA,kBAA8B,0BAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,kBAA8B,0BAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,kBAA8B,0BAAUA;;;ACOrE,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;;;ACrFR,IAAM,uBAAuB,0BAAO,cAAM;AAAA;AAAA;;;ACsBjD,IAAM,iBAAiB,0BAAO,YAAI,EAAE;AAAA,EAChC,CAAC,EAAE,UAAU,OAAO;AAAA,IAChB,OAAO;AAAA,MACH,WAAW,gCAAa;AAAA,IAC5B;AAAA,EACJ;AACJ;AAAA;AAAA;AAIA,IAAM,iBAAiB,YAAY;AAAA,EAC/B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,yBAAqB,gBAAE,WAAW;AACtC,CAAC;AAED,IAAM,eACF;AAAA,EAAC;AAAA;AAAA,IACG,aAAU;AAAA,IACV,kBAAc;AAAA,IACd,YAAW;AAAA,IACX,MAAM;AAAA;AACV;AAGJ,IAAM,qBAAoD;AAAA,EACtD;AAAA,EACA;AACJ;AAQO,IAAM,mCAAmC,CAAC;AAAA,EAC7C;AAAA,EACA;AACJ,MAOI,SAAS;AAAA,EACL,CAAC,MAA4B,EAAE,gBAAgB,SAAS,MAAM;AAC1D,UAAM,0BACF,eAAe,OAAO,CAAC,UAAU,MAAM,gBAAgB;AAE3D,QAAI,wBAAwB,WAAW,GAAG;AACtC,aAAO;AAAA,IACX;AAEA,SAAK,KAAK,4CAAC,aAAK,SAAL,EAAa,KAAK,gBAAgB,QAAQ,IAAI,CAAE;AAE3D,WAAO,KAAK;AAAA,MACR,wBAAwB,IAAI,CAAC,aAAa;AACtC,cAAM,EAAE,OAAO,MAAM,eAAe,IAAI;AACxC,cAAM,OAAO,SAAS;AAItB,YAAI,CAAC,MAAM;AACP,iBAAO;AAAA,QACX;AAEA,cAAM,UAAU,0BAA0B;AAAA,UACtC;AAAA,UACA,SAAS;AAAA,QACb,CAAC;AAED,eACI;AAAA,UAAC,aAAK;AAAA,UAAL;AAAA,YACG,aAAW,OAAO,IAAI;AAAA,YACtB,uBAAmB;AAAA,YACnB;AAAA,YACA,gBAAgB,CAAC,CAAC,QAAQ,4CAAC,QAAK,MAAK,QAAO;AAAA,YAC5C,KAAK,OAAO,IAAI;AAAA;AAAA,UAEf;AAAA,QACL;AAAA,MAER,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EACA,CAAC;AACL;AAKJ,IAAM,SAAS,CAAC,EAAE,cAAc,OAAO,MAAuC;AAC1E,QAAM,EAAE,oBAAoB,KAAK,QAAI,2CAAgB;AAErD,QAAM,EAAE,OAAO,QAAI,+BAAe;AAClC,QAAM,EAAE,kBAAkB,oBAAoB,mBAAmB,OAAO,IACpE,oBAAY;AAAA,IACR,qBAAqB;AAAA,EACzB,CAAC;AAEL,QAAM,eAAqB;AAAA,IACvB,MAAM,IAAI,yCAAoB,MAAM,EAAE;AAAA,IACtC,CAAC,MAAM;AAAA,EACX;AAEA,QAAM,gCAA4B;AAAA,IAC9B,CAAC;AAAA,MACG;AAAA,MACA;AAAA,IACJ,MAII,MAAM;AACF,yCAAM,MAAM;AACR,qDAAc,oBAAoB;AAAA,UAC9B,yBAAyB,EAAE,MAAM,QAAQ;AAAA,QAC7C;AAEA,YAAI,mBAAmB;AACnB,uDAAc,UAAU;AAAA,YACpB,aAAa;AAAA,YACb,YAAY;AAAA,cACR,aAAa;AAAA,cACb,MAAM;AAAA,gBACF,aAAa;AAAA,cACjB;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,CAAC;AAED,uBAAiB;AAAA,IACrB;AAAA,IACJ,CAAC,cAAc,mBAAmB,gBAAgB;AAAA,EACtD;AAEA,QAAM,wBAAoB;AAAA,IACtB,MACI,iCAAiC;AAAA,MAC7B;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,IACL,CAAC,UAAU,yBAAyB;AAAA,EACxC;AAEA,QAAM,2BAAuB;AAAA,IACzB,CAAC,EAAE,UAAU,MACT;AAAA,MAAC;AAAA;AAAA,QACG,SAAS,WAAW,eAAe,gBAAgB;AAAA;AAAA,MAEnD;AAAA,QAAC;AAAA;AAAA,UACG;AAAA,UACA,aAAU;AAAA;AAAA,QAET;AAAA,MACL;AAAA,IACJ;AAAA,IAEJ,CAAC,QAAQ,iBAAiB;AAAA,EAC9B;AAEA,SACI,4CAAC,oBACG;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQ;AAAA;AAAA,IAEP;AAAA,EACL,CACJ;AAER;AAEA,IAAO,iBAAQ;;;AC5Mf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,wBAAc;AACd,IAAO,cAAS,aAAaA,kBAA8B,0BAAUA;;;ACKrE,IAAM,oBAAoB,YAAY;AAAA,EAClC,MAAM;AAAA,EACN,yBAAqB,gBAAE,eAAe;AAC1C,CAAC;AAKD,IAAM,SAAS,CAAC,EAAE,aAAa,MAA0B;AACrD,QAAM,sBAAkB,yCAAc,QAAQ;AAE9C,QAAM,kBAAc,2BAAY,MAAM;AAClC,UAAM,UAAS,6CAAc,sBAAqB;AAClD,QAAI,QAAQ;AACR,mDAAc;AAAA,IAClB,OAAO;AAEH,mDAAc,UAAU;AAAA,QACpB,aAAa;AAAA,QACb,YAAY;AAAA,UACR,aAAa;AAAA,QACjB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,MACX,WAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM;AAAA;AAAA,EACV;AAER;AAEA,IAAO,iBAAQ;;;AC3Cf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,2CAAc;AACd,IAAO,iCAAS,aAAaA,kBAA8B,0BAAUA;;;ACSrE,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,QAAQ;AACnC,CAAC;AAED,IAAM,gBAAgB,CAAC,EAAE,UAAU,QAAQ,MACvC;AAAA,EAAC;AAAA;AAAA,IACG,WAAU;AAAA,IACV;AAAA,IACA,UAAU,CAAC,CAAC;AAAA,IACZ;AAAA;AACJ;AAGJ,IAAO,wBAAQ;;;ACzBf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,kCAAc;AACd,IAAO,wBAAS,aAAaA,kBAA8B,0BAAUA;;;ACSrE,IAAM,gBAAgB,YAAY;AAAA,EAC9B,MAAM;AAAA,EACN,yBAAqB,gBAAE,sBAAsB;AACjD,CAAC;AAKD,IAAM,OAAO,CAAC,EAAE,aAAa,MAA0B;AACnD,QAAM,oBAAgB,yCAAc,cAAc;AAElD,QAAM,kBAAc,2BAAY,MAAM;AAClC,UAAM,UAAS,6CAAc,sBAAqB;AAClD,QAAI,QAAQ;AACR,mBAAa,WAAW;AAAA,IAC5B,OAAO;AACH,yCAAM,MAAM;AAER,qDAAc,oBAAoB,CAAC;AAEnC,qDAAc,UAAU;AAAA,UACpB,aAAa;AAAA,UACb,YAAY;AAAA,YACR,aAAa;AAAA,UACjB;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,MACX,WAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM;AAAA;AAAA,EACV;AAER;AAEA,IAAO,eAAQ;;;ACnDf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,8BAAc;AACd,IAAO,oBAAS,aAAaA,kBAA8B,0BAAUA;;;ACkBrE,IAAM,YAAY;AAAA,EACd,UAAU;AACd;AAEA,IAAM,gBAAgB,0BAAO,iBAAS;AAAA,aACzB,yBAAU,kBAAkB;AAAA;AAGzC,IAAM,uBAAuB,0BAAO;AAAA;AAAA;AAAA;AAS7B,IAAM,UAAU,CAAC;AAAA,EACpB,aAAa;AAAA,EACb;AACJ,MAAwC;AAxCxC;AAyCI,QAAM,mBAAe,qCAAY,0CAAkB;AACnD,QAAM,oBAAmB,kDAAc,WAAd,YAAwB,KAAK;AACtD,QAAM,yBAAqB,qCAAY,qDAA6B;AACpE,QAAM,aAAa,CAAC;AACpB,QAAM,kBAAc,qCAAY,yCAAiB;AACjD,QAAM,EAAE,0BAA0B,KAAK,QAAI;AAAA,IACvC;AAAA,EACJ;AACA,QAAM,iBAAiB,CAAC,CAAC,eAAe;AACxC,QAAM,6BAAyB,qCAAY,oDAA4B;AACvE,QAAM,kBAAkB,CAAC;AAEzB,QAAM,yBAAqB,2BAAY,MAAM;AACzC,iDAAc,4BAA4B;AAAA,MACtC,WAAW,CAAC;AAAA,IAChB;AAAA,EACJ,GAAG,CAAC,cAAc,kBAAkB,CAAC;AAErC,QAAM,8BAA0B,2BAAY,MAAM;AAC9C,iDAAc,0BAA0B;AAAA,MACpC,WAAW,CAAC;AAAA,IAChB;AAAA,EACJ,GAAG,CAAC,cAAc,sBAAsB,CAAC;AAEzC,QAAM,EAAE,oBAAoB,mBAAmB,OAAO,IAAI,oBAAY;AAAA,IAClE,qBAAqB;AAAA,EACzB,CAAC;AAED,QAAM,mBAAe;AAAA,IACjB,MACI;AAAA,MAAC;AAAA;AAAA,QACG,kBAAc;AAAA,QACd,aAAU;AAAA,QACV;AAAA,QACA,QAAM;AAAA,QACN,kBAAY,gBAAE,iBAAiB;AAAA;AAAA,UAE9B,gBAAE,SAAS;AAAA,IAChB;AAAA,IAEJ,CAAC,UAAU;AAAA,EACf;AAEA,QAAM,0BAAsB,uBAAQ,MAAM;AACtC,WAAO,aAAa,4CAAC,mBAAc,IAAK,4CAAC,0BAAqB;AAAA,EAClE,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,+BAA2B,uBAAQ,MAAM;AAC3C,WAAO,kBAAkB,4CAAC,mBAAc,IAAK,4CAAC,0BAAqB;AAAA,EACvE,GAAG,CAAC,eAAe,CAAC;AAEpB,QAAM,2BAAuB,uBAAQ,MAAM;AACvC,UAAM,QAAQ,CAAC;AAEf,QAAI,gBAAgB;AAChB,YAAM;AAAA,QACF;AAAA,UAAC,aAAK;AAAA,UAAL;AAAA,YACG,KAAI;AAAA,YACJ,aAAU;AAAA,YACV,SAAS;AAAA,YACT,gBAAgB;AAAA;AAAA,cAEf,gBAAE,uBAAuB;AAAA,QAC9B;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,iBAAiB;AACjB,YAAM;AAAA,QACF;AAAA,UAAC,aAAK;AAAA,UAAL;AAAA,YACG,KAAI;AAAA,YACJ,aAAU;AAAA,YACV,SAAS;AAAA,YACT,gBAAgB;AAAA;AAAA,cAEf,gBAAE,QAAQ;AAAA,QACf;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX,GAAG;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAED,MAAI,qBAAqB,WAAW,GAAG;AACnC,WAAO;AAAA,EACX;AAEA,SACI,4CAAC,mBAAQ,qBAAoB,SAAQ,aAAS,gBAAE,SAAS,KACrD;AAAA,IAAC;AAAA;AAAA,MACG,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQ;AAAA;AAAA,IAER;AAAA,MAAC;AAAA;AAAA,QACG,OAAO;AAAA,QACP,WAAU;AAAA,QACV,kBAAY,gBAAE,iBAAiB;AAAA;AAAA,MAE9B;AAAA,IACL;AAAA,EACJ,CACJ;AAER;;;ACzJA;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,kBAA8B,0BAAUA;;;ACMrE,IAAMC,QAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,eAAe;AAC1C,CAAC;AAKD,IAAM,qBAAqB,CAAC,EAAE,aAAa,MAA0B;AACjE,QAAM,kBAAc,2BAAY,MAAY;AACxC,iDAAc,oBAAoB;AAAA,MAC9B,yBAAyB;AAAA,QACrB,MAAM;AAAA,QACN,SAAS;AAAA,UACL,WAAW;AAAA,UACX,aAAa;AAAA,QACjB;AAAA,MACJ;AAAA,IACJ;AAEA,iDAAc,UAAU;AAAA,MACpB,aAAa;AAAA,IACjB;AAAA,EACJ,IAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAMA;AAAA;AAAA,EACV;AAER;AAEA,IAAO,6BAAQ;;;AChCf,IAAM,eAAe,4CAAC,oCAAS;AAE/B,IAAM,eAAe,0BAAO,cAAM;AAAA;AAAA;AAAA;AAUlC,IAAM,wBAAwB,CAAC;AAAA,EAC3B,aAAa;AAAA,EACb,QAAQ;AACZ,MAAkC;AAC9B,QAAM,CAAC,MAAM,OAAO,QAAI,wBAAS,KAAK;AACtC,QAAM,gBAAY,sBAA0B,IAAI;AAEhD,QAAM,iBAAa,2BAAY,MAAM;AACjC,YAAQ,IAAI;AAAA,EAChB,GAAG,CAAC,CAAC;AAEL,QAAM,kBAAc,2BAAY,MAAM;AAClC,YAAQ,KAAK;AAAA,EACjB,GAAG,CAAC,CAAC;AAEL,SACI,0EACI;AAAA,IAAC;AAAA;AAAA,MACG,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,KAAI;AAAA,MACJ,kBAAc;AAAA,MACd,aAAU;AAAA,MACV,WAAO,gBAAE,UAAU;AAAA,MACnB,YAAY,cAAc;AAAA,MAC1B,SAAS;AAAA;AAAA,EACb,GACA;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA,aAAa;AAAA;AAAA,EACjB,CACJ;AAER;AAEA,IAAO,gCAAQ;;;AC3Df;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,gCAAc;AACd,IAAO,sBAAS,aAAaA,kBAA8B,0BAAUA;;;ACC9D,IAAM,wBAAwB,CACjC,OACA,YACC;AACD,QAAM,eAAW,qCAAY;AAE7B,aAAO;AAAA,IACH,IAAI,SAAY;AACZ,UAAI,YAAY,OAAO;AACnB;AAAA,cACI,8CAAqB;AAAA,YACjB;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AACA,yCAAU,GAAG;AAAA,IACjB;AAAA,IACA,CAAC,UAAU,OAAO,OAAO;AAAA,EAC7B;AACJ;;;ACZA,IAAMC,QAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,YAAY;AACvC,CAAC;AAKD,IAAM,aAAa,CAAC,EAAE,aAAa,MAA0B;AACzD,QAAM,eAAe,CAAC,KAAC,qCAAY,+CAAuB;AAE1D,QAAM,sBAAkB,2BAAY,MAAY;AAC5C,UAAM,6CAAc;AAAA,EACxB,IAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,cAAc,sBAAsB,cAAc,eAAe;AAEvE,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAMA;AAAA;AAAA,EACV;AAER;AAEA,IAAO,qBAAQ;;;ACrCf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,kBAA8B,0BAAUA;;;ACCrE,IAAM,gBAAgB,0BAAO;AAAA;AAAA;AAAA,yBAGJ,yBAAU,sBAAsB;AAAA;AAAA,cAE3C,yBAAU,WAAW;AAAA;AAGnC,IAAO,wBAAQ;;;ACCf,IAAM,kBAAkB,0BAAO;AAAA;AAAA;AAAA;AAAA,WAIpB,yBAAU,YAAY;AAAA;AAOjC,IAAM,iBAAiB,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAA2B;AA5B3B;AA6BI,QAAM,YAAW,8CAAY,iDAAyB,MAArC,YAA0C;AAE3D,QAAM,kBAAc,2BAAY,MAAM;AAClC,iDAAc,gBAAgB,CAAC;AAAA,EACnC,GAAG,CAAC,cAAc,QAAQ,CAAC;AAE3B,QAAM,gBAAY;AAAA,IACd,MAAO,gBAAgB,4CAAC,yBAAc,KAAI,kBAAiB,IAAK;AAAA,IAChE,CAAC,aAAa;AAAA,EAClB;AAEA,MAAI,CAAC,gBAAgB,SAAS,UAAU,eAAe,QAAQ;AAC3D,WAAO;AAAA,EACX;AAEA,SACI,4CAAC,mBAAgB,KAAI,sBACjB;AAAA,IAAC;AAAA;AAAA,MACG,SAAS;AAAA,MACT,UAAU;AAAA,MACV,mBAAe,gBAAE,qBAAqB;AAAA,MACtC,qBAAiB,gBAAE,yBAAyB;AAAA,MAC5C,YAAW;AAAA,MACX,aAAU;AAAA,MACV,kBAAc;AAAA;AAAA,QAEb,gBAAE,WAAW;AAAA,EAClB,GACC,SACL;AAER;AAEA,IAAO,yBAAQ;;;AC9Df;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,yCAAc;AACd,IAAO,+BAAS,aAAaA,kBAA8B,0BAAUA;;;ACerE,IAAM,iBAAiB,0BAAO;AAAA;AAAA;AAAA;AAK9B,IAAM,sBAAsB,YAAY;AAAA,EACpC,MAAM;AAAA,EACN,yBAAqB,gBAAE,UAAU;AAAA,EACjC,QAAQ;AACZ,CAAC;AAED,IAAMC,sBAAoD;AAAA,EACtD;AAAA,EACA;AACJ;AAKA,IAAM,cAAc,CAAC,EAAE,aAAa,MAA0B;AAC1D,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI,oBAAY;AAAA,IACZ,qBAAqB;AAAA,EACzB,CAAC;AAED,QAAMC,oBAAe;AAAA,IACjB,MACI;AAAA,MAAC;AAAA;AAAA,QACG,aAAU;AAAA,QACV,kBAAc;AAAA,QACd,YAAW;AAAA,QACX,MAAM;AAAA;AAAA,IACV;AAAA,IAEJ,CAAC;AAAA,EACL;AACA,QAAM,uBAAmB;AAAA,IACrB,CAAO,YAAoB;AACvB,mDAAc,oBAAoB;AAAA,QAC9B,yBAAyB;AAAA,UACrB,MAAM;AAAA,UACN,SAAS;AAAA,YACL,WAAW;AAAA,YACX,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AACA,mDAAc,UAAU;AAAA,QACpB,aAAa;AAAA,MACjB;AACA,uBAAiB;AAAA,IACrB;AAAA,IACA,CAAC,cAAc,gBAAgB;AAAA,EACnC;AAEA,SACI,4CAAC,oBACG;AAAA,IAAC;AAAA;AAAA,MACG,oBAAoBD;AAAA,MACpB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQC;AAAA;AAAA,IAER,4CAAC,kBAAe,aAAU,aAAY,aAAW,UAC7C;AAAA,MAAC,qBAAAC;AAAA,MAAA;AAAA,QACG,SAAS;AAAA,QACT;AAAA;AAAA,IACJ,CACJ;AAAA,EACJ,CACJ;AAER;AAEA,IAAO,sBAAQ;;;ACjGf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,mCAAc;AACd,IAAO,yBAAS,aAAaA,kBAA8B,0BAAUA;;;ACmBrE,IAAM,WAAW,YAAY;AAAA,EACzB,MAAM;AAAA,EACN,yBAAqB,gBAAE,YAAY;AAAA,EACnC,QAAQ;AACZ,CAAC;AAED,IAAMC,gBACF;AAAA,EAAC;AAAA;AAAA,IACG,YAAW;AAAA,IACX,kBAAc;AAAA,IACd,aAAU;AAAA,IACV,MAAM;AAAA;AACV;AAMJ,IAAM,aAAa,CAAC,EAAE,YAAY,CAAC,EAAE,MAAiB;AAClD,QAAM,EAAE,oBAAoB,mBAAmB,OAAO,IAAI,oBAAY;AAAA,IAClE,qBAAqB;AAAA,EACzB,CAAC;AAED,QAAM,gBAAY,uBAAQ,MAAM;AAC5B,QAAI,UAAU,WAAW,GAAG;AACxB,aAAO;AAAA,QACH;AAAA,UAAC,aAAK;AAAA,UAAL;AAAA,YACG,aAAU;AAAA,YACV,KAAI;AAAA,YACJ,UAAQ;AAAA;AAAA,cAEP,gBAAE,UAAU;AAAA,QACjB;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,UAAU,IAAI,CAAC,SAA0B;AAC5C,YAAM,EAAE,QAAQ,IAAI,cAAc,IAAI,IAAI,IAAI;AAC9C,YAAM,MAAM,MAAM,WAAW,OAAO,EAAE;AAEtC,aACI;AAAA,QAAC,aAAK;AAAA,QAAL;AAAA,UACG,aAAU;AAAA,UACV,uBAAmB;AAAA,UACnB,IAAI;AAAA,UACJ;AAAA,UACA,KAAK,aAAa,GAAG;AAAA,UACrB,kBAAgB;AAAA;AAAA,QAEf;AAAA,MACL;AAAA,IAER,CAAC;AAAA,EACL,GAAG,CAAC,SAAS,CAAC;AAEd,SACI,4CAAC,oBACG;AAAA,IAAC;AAAA;AAAA,MACG,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQA;AAAA;AAAA,IAER,4CAAC,oBAAM,SAAU;AAAA,EACrB,CACJ;AAER;AAEA,IAAO,qBAAQ;;;AC1Ff;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,4BAAc;AACd,IAAO,kBAAS,aAAaA,kBAA8B,0BAAUA;;;ACMrE,IAAMC,QAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,WAAW;AACtC,CAAC;AAKD,IAAM,QAAQ,CAAC,EAAE,aAAa,MAA0B;AACpD,QAAM,kBAAc,2BAAY,MAAY;AACxC,iDAAc,oBAAoB;AAAA,MAC9B,yBAAyB;AAAA,QACrB,MAAM;AAAA,QACN,SAAS;AAAA,UACL,qBAAqB;AAAA,QACzB;AAAA,MACJ;AAAA,IACJ;AAEA,iDAAc,UAAU;AAAA,MACpB,aAAa;AAAA,IACjB;AAAA,EACJ,IAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAMA;AAAA;AAAA,EACV;AAER;AAEA,IAAO,gBAAQ;;;ACzBf,IAAMC,kBAAiB,0BAAO;AAAA;AAAA;AAAA;AAK9B,IAAM,uBAAuB,YAAY;AAAA,EACrC,MAAM;AAAA,EACN,yBAAqB,gBAAE,WAAW;AAAA,EAClC,QAAQ;AACZ,CAAC;AAED,IAAMC,gBACF;AAAA,EAAC;AAAA;AAAA,IACG,aAAU;AAAA,IACV,kBAAc;AAAA,IACd,YAAW;AAAA,IACX,MAAM;AAAA;AACV;AAGJ,IAAMC,sBAA8B,CAAC;AAKrC,IAAM,eAAe,CAAC,EAAE,aAAa,MAA0B;AAC3D,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI,oBAAY;AAAA,IACZ,qBAAqB;AAAA,EACzB,CAAC;AAED,QAAM,uBAAmB;AAAA,IACrB,CAAO,aAAqB;AACxB,mDAAc,oBAAoB;AAAA,QAC9B,yBAAyB;AAAA,UACrB,MAAM;AAAA,UACN,SAAS;AAAA,YACL,qBAAqB;AAAA,YACrB,KAAK;AAAA,UACT;AAAA,QACJ;AAAA,MACJ;AACA,mDAAc,UAAU;AAAA,QACpB,aAAa;AAAA,MACjB;AACA,uBAAiB;AAAA,IACrB;AAAA,IACA,CAAC,cAAc,gBAAgB;AAAA,EACnC;AAEA,SACI,4CAAC,oBACG;AAAA,IAAC;AAAA;AAAA,MACG,oBAAoBA;AAAA,MACpB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQD;AAAA;AAAA,IAER,4CAACD,iBAAA,MACG;AAAA,MAAC,qBAAAG;AAAA,MAAA;AAAA,QACG,SAAS;AAAA,QACT;AAAA;AAAA,IACJ,CACJ;AAAA,EACJ,CACJ;AAER;AAEA,IAAO,uBAAQ;;;AC3Ff;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,kBAA8B,0BAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,4CAAc;AACd,IAAO,kCAAS,aAAaA,kBAA8B,0BAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,yCAAc;AACd,IAAO,+BAAS,aAAaA,kBAA8B,0BAAUA;;;ACmBrE,IAAMC,sBAAoD;AAAA,EACtD;AAAA,EACA;AACJ;AAEA,IAAM,qBAAqB,OAAO,OAAO,CAAC,CAAc;AACxD,IAAM,eAAe,YAAY;AAAA,EAC7B,MAAM;AAAA,EACN,yBAAqB,gBAAE,WAAW;AAAA,EAClC,QAAQ;AACZ,CAAC;AAED,IAAMC,gBACF;AAAA,EAAC;AAAA;AAAA,IACG,YAAW;AAAA,IACX,kBAAc;AAAA,IACd,aAAU;AAAA,IACV,MAAM;AAAA;AACV;AAeJ,IAAM,4BACF,CAAC;AAAA,EACG;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MACA,MAAM;AACF,MAAI,CAAC,cAAc;AACf;AAAA,EACJ;AAEA,QAAM,YAAY,iCACX,gBADW;AAAA,IAEd;AAAA,IACA,SAAS,mBACF,cAAc;AAAA,EAEzB;AAEA,MAAI,WAAW;AACX,cAAU,QAAQ,QAAQ,iDAAoB;AAAA,MAC1C,6CAAc;AAAA,IAClB,EAAE,YAAY,WAAW;AAAA,EAC7B;AACA,eAAa,SAAS,SAAS;AAC/B,eAAa,UAAU,EAAE,aAAa,SAAS,CAAC;AACpD;AAKJ,IAAM,SAAS,CAAC;AAAA,EACZ;AAAA,EACA,SAAS;AACb,MAA0B;AACtB,QAAM,EAAE,oBAAoB,mBAAmB,OAAO,IAAI,oBAAY;AAAA,IAClE,qBAAqB;AAAA,EACzB,CAAC;AAED,QAAM,uBAAmB,uBAAQ,MAAM;AACnC,UAAM,UAAU,CAAC;AAEjB,UAAM,SAAS,iCAAQ;AAOvB,6BAAK,QAAQ,CAAC,WAAW,SAAS;AAC9B,YAAM;AAAA,QACF,YAAY,CAAC;AAAA,QACb,YAAQ,gBAAE,GAAG,IAAI,QAAQ;AAAA,QACzB,cAAc;AAAA,QACd,cAAc;AAAA,QACd,mBAAmB;AAAA,QACnB,MAAM,OAAO;AAAA;AAAA,QAEb,YAAY;AAAA,MAChB,IAAI,UAAU,UAAU,CAAC;AAEzB,UAAI,CAAC,kBAAkB;AACnB;AAAA,MACJ;AAEA,YAAM,cAAc,0BAA0B;AAAA,QAC1C;AAAA,QACA,eAAe;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAED,YAAM,YAAY,4CAAC,QAAK,OAAM,QAAO,QAAO,QAAO;AAEnD,cAAQ;AAAA,QACJ;AAAA,UAAC,aAAK;AAAA,UAAL;AAAA,YACG,aAAW,OAAO,IAAI;AAAA,YACtB,uBAAmB;AAAA,YACnB,SAAS;AAAA,YACT,gBAAgB;AAAA,YAChB;AAAA,YACA,KAAK,OAAO,IAAI;AAAA;AAAA,UAEf;AAAA,QACL;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,QAAI,QAAQ,WAAW,GAAG;AACtB,cAAQ;AAAA,QACJ;AAAA,UAAC,aAAK;AAAA,UAAL;AAAA,YACG,aAAU;AAAA,YACV,KAAI;AAAA,YACJ,UAAQ;AAAA;AAAA,cAEP,gBAAE,WAAW;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX,GAAG,CAAC,QAAQ,YAAY,CAAC;AAEzB,SACI,4CAAC,oBACG;AAAA,IAAC;AAAA;AAAA,MACG,oBAAoBD;AAAA,MACpB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQC;AAAA;AAAA,IAER,4CAAC,oBAAM,gBAAiB;AAAA,EAC5B,CACJ;AAER;AAEA,IAAO,iBAAQ;;;AC/Kf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,6BAAc;AACd,IAAO,mBAAS,aAAaA,kBAA8B,0BAAUA;;;ACIrE,IAAMC,QAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,mBAAmB;AAC9C,CAAC;AAKD,IAAM,WAAW,CAAC,EAAE,aAAa,MAAuC;AACpE,QAAM,kBAAc,2BAAY,MAAM;AAClC,iDAAc,oBAAoB;AAAA,MAC9B,yBAAyB;AAAA,QACrB,MAAM;AAAA,QACN,SAAS;AAAA,UACL,UAAU;AAAA,QACd;AAAA,MACJ;AAAA,IACJ;AACA,iDAAc,UAAU;AAAA,MACpB,aAAa;AAAA,IACjB;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAMA;AAAA;AAAA,EACV;AAER;AAEA,IAAOC,oBAAQ;;;AC5Bf,IAAM,aAAa,MAAM;AACrB,QAAM,WAAO,qCAAY,kCAAU;AACnC,QAAM,mBAAe,2CAAgB;AACrC,QAAM,aAAa,SAAS,SAAS,cAAc;AACnD,QAAM,QAAQ,SAAS,aAAS,gBAAE,MAAM,QAAI,gBAAE,MAAM;AAEpD,QAAM,kBAAc,2BAAY,MAAM;AAClC,iDAAc,WAAW,SAAS,SAAS,SAAS;AAAA,EACxD,GAAG,CAAC,MAAM,YAAY,CAAC;AAEvB,SACI,4CAAC,oBACG;AAAA,IAAC;AAAA;AAAA,MACG,KAAI;AAAA,MACJ,kBAAc;AAAA,MACd,aAAU;AAAA,MACV,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA,SAAS;AAAA;AAAA,EACb,CACJ;AAER;AAEA,IAAO,qBAAQ;;;ACnCf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,kCAAc;AACd,IAAO,wBAAS,aAAaA,kBAA8B,0BAAUA;;;ACIrE,IAAMC,QAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,MAAM;AACjC,CAAC;AAED,IAAM,OAAO,CAAC,EAAE,aAAa,MAA0B;AAGnD,QAAM,CAAC,SAAS,UAAU,QAAI;AAAA,IAC1B,MAAG;AAfX;AAec,gEAAc,cAAd,YAA2B;AAAA;AAAA,EACrC;AAEA,QAAM,yBAAqB,2BAAY,MAAM;AAlBjD;AAmBQ,gBAAW,kDAAc,cAAd,YAA2B,KAAK;AAAA,EAC/C,GAAG,CAAC,YAAY,CAAC;AAEjB,+BAAU,MAAM;AACZ,QAAI,EAAC,6CAAc,iBAAgB;AAC/B,aAAO,MAAM;AAAA,IACjB;AAEA,WAAO,aAAa,eAAe,UAAU;AAAA,MACzC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL,GAAG,CAAC,cAAc,kBAAkB,CAAC;AAErC,QAAM,kBAAc,2BAAY,MAAM;AAClC,QAAI,CAAC,cAAc;AACf;AAAA,IACJ;AAEA,iBAAa,KAAK,EAAE,QAAQ,UAAU,CAAC;AAAA,EAC3C,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU,CAAC;AAAA,MACX,MAAMA;AAAA;AAAA,EACV;AAER;AAEA,IAAO,eAAQ;;;ACpDf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,kBAA8B,0BAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,kBAA8B,0BAAUA;;;ACFrE;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,kCAAc;AACd,IAAO,wBAAS,aAAaA,kBAA8B,0BAAUA;;;ACErE,IAAM,uBAAuB,0BAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQpC,IAAM,aAAa,0BAAO;AAAA;AAAA;AAAA;AAK1B,IAAM,cAAc,0BAAO;AAAA;AAAA;AAAA;AAAA;AAc3B,IAAM,oBAAoB,CAAC,EAAE,MAAAC,OAAM,MAAM,MACrC,4CAAC,4BACIA,SAAQ,4CAAC,kBAAYA,KAAK,GAC1B,SAAS,4CAAC,eAAY,aAAU,iBAAe,KAAM,CAC1D;AAGJ,IAAO,4BAAQ;;;ACjBf,IAAM,iBAAiB,YAAY;AAAA,EAC/B,MAAM;AAAA,EACN,yBAAqB,gBAAE,WAAW;AAAA,EAClC,QAAQ;AACZ,CAAC;AAED,IAAMC,gBACF;AAAA,EAAC;AAAA;AAAA,IACG,YAAW;AAAA,IACX,kBAAc;AAAA,IACd,aAAU;AAAA,IACV,MAAM;AAAA;AACV;AAGJ,IAAMC,sBAAoD;AAAA,EACtD;AAAA,EACA;AACJ;AAEA,IAAM,aAAa,4CAAC,oBAAO;AAC3B,IAAM,mBAAmB,4CAAC,oBAAa;AACvC,IAAM,WAAW,4CAAC,kBAAK;AAKvB,IAAM,SAAS,CAAC,EAAE,cAAc,WAAW,MAA0B;AACjE,QAAM,cAAc,eAAe;AAEnC,QAAM,EAAE,oBAAoB,mBAAmB,OAAO,IAAI,oBAAY;AAAA,IAClE,qBAAqB;AAAA,EACzB,CAAC;AAED,QAAM,iCAA6B;AAAA,IAC/B,CACI,aACA,mBACC;AACD,aAAO,MAAM;AACT,qDAAc,oBAAoB;AAAA,UAC9B,yBAAyB;AAAA,UACzB;AAAA,QACJ;AACA,qDAAc,UAAU,EAAE,aAAa,SAAS;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,CAAC,YAAY;AAAA,EACjB;AAEA,SACI,4CAAC,oBACG;AAAA,IAAC;AAAA;AAAA,MACG,oBAAoBA;AAAA,MACpB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQD;AAAA;AAAA,IAER,4CAAC,gBAAK,aAAU,wCACZ;AAAA,MAAC,aAAK;AAAA,MAAL;AAAA,QACG,aAAU;AAAA,QACV,SAAS,2BAA2B;AAAA,UAChC,MAAM;AAAA,QACV,CAAC;AAAA;AAAA,MAED;AAAA,QAAC;AAAA;AAAA,UACG,MAAM;AAAA,UACN,WAAO,gBAAE,SAAS;AAAA;AAAA,MACtB;AAAA,IACJ,GACA;AAAA,MAAC,aAAK;AAAA,MAAL;AAAA,QACG,aAAU;AAAA,QACV,SAAS,2BAA2B;AAAA,UAChC,MAAM;AAAA,QACV,CAAC;AAAA;AAAA,MAED;AAAA,QAAC;AAAA;AAAA,UACG,MAAM;AAAA,UACN,WAAO,gBAAE,WAAW;AAAA;AAAA,MACxB;AAAA,IACJ,GACC,eACG;AAAA,MAAC,aAAK;AAAA,MAAL;AAAA,QACG,aAAU;AAAA,QACV,SAAS;AAAA,UACL;AAAA,YACI,MAAM;AAAA,UACV;AAAA,UACA;AAAA,QACJ;AAAA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACG,MAAM;AAAA,UACN,WAAO,gBAAE,MAAM;AAAA;AAAA,MACnB;AAAA,IACJ,CAER;AAAA,EACJ,CACJ;AAER;AAEA,IAAO,iBAAQ;;;AC7Hf;AAAA;AAAA;AAAA;AAAA,IAAAE,kBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,kBAA8B,0BAAUA;;;ACWrE,IAAMC,QAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,aAAa;AACxC,CAAC;AAKD,IAAM,SAAS,CAAC,EAAE,WAAW,OAAO,QAAQ,MAAmB;AAC3D,QAAM,sBAAkB,yCAAc,QAAQ;AAC9C,QAAM,qBAAiB,2CAAgB,eAAe;AAEtD,QAAM,oBAAgB;AAAA,IAClB,CAAC,OAAO,SAAS;AACb,UAAI,SAAS;AACT,gBAAQ,OAAO,IAAI;AACnB,uBAAe;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,CAAC,SAAS,cAAc;AAAA,EAC5B;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT;AAAA,MACA,MAAMA;AAAA,MACN,WAAW;AAAA;AAAA,EACf;AAER;AAEA,IAAO,iBAAQ;;;AC9Cf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,8BAAc;AACd,IAAO,oBAAS,aAAaA,kBAA8B,0BAAUA;;;ACMrE,IAAM,mBAAmB,YAAY;AAAA,EACjC,MAAM;AAAA,EACN,yBAAqB,gBAAE,eAAe;AAC1C,CAAC;AAKM,IAAM,eAAe,CAAC,EAAE,aAAa,MAA0B;AAClE,QAAM,EAAE,iBAAiB,QAAI,2CAAgB;AAE7C,QAAM,kBAAc,2BAAY,MAAM;AAClC,UAAM,UAAS,6CAAc,sBAAqB;AAClD,QAAI,QAAQ;AACR,mDAAc;AAAA,IAClB,OAAO;AAEH,mDAAc,UAAU;AAAA,QACpB,aAAa;AAAA,QACb,YAAY;AAAA,UACR,aAAa;AAAA,QACjB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,MAAI,CAAC,kBAAkB;AACnB,WAAO;AAAA,EACX;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,qBAAoB;AAAA,MACpB,aAAS,gBAAE,eAAe;AAAA,MAC1B,mBAAgB;AAAA;AAAA,IAEhB;AAAA,MAAC;AAAA;AAAA,QACG,WAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA;AAAA,IACV;AAAA,EACJ;AAER;;;ACnDA;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,iCAAc;AACd,IAAO,uBAAS,aAAaA,kBAA8B,0BAAUA;;;ACIrE,IAAMC,QAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,MAAM;AACjC,CAAC;AAED,IAAM,OAAO,CAAC,EAAE,aAAa,MAA0B;AAGnD,QAAM,CAAC,SAAS,UAAU,QAAI;AAAA,IAC1B,MAAG;AAfX;AAec,gEAAc,cAAd,YAA2B;AAAA;AAAA,EACrC;AAEA,QAAM,yBAAqB,2BAAY,MAAM;AAlBjD;AAmBQ,gBAAW,kDAAc,cAAd,YAA2B,KAAK;AAAA,EAC/C,GAAG,CAAC,YAAY,CAAC;AAEjB,+BAAU,MAAM;AACZ,QAAI,EAAC,6CAAc,iBAAgB;AAC/B,aAAO,MAAM;AAAA,IACjB;AAEA,WAAO,aAAa,eAAe,UAAU;AAAA,MACzC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL,GAAG,CAAC,cAAc,kBAAkB,CAAC;AAErC,QAAM,kBAAc,2BAAY,MAAM;AAClC,QAAI,CAAC,cAAc;AACf;AAAA,IACJ;AAEA,iBAAa,KAAK,EAAE,QAAQ,UAAU,CAAC;AAAA,EAC3C,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU,CAAC;AAAA,MACX,MAAMA;AAAA;AAAA,EACV;AAER;AAEA,IAAO,eAAQ;;;ACpDf;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,kBAA8B,0BAAUA;;;ACQrE,IAAM,aAAa,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG;AAEzC,IAAM,cAAc;AAAA,EAChB,qBAAqB;AAAA,EACrB,wBAAwB;AAC5B;AAEA,IAAMC,aAAY;AAAA,EACd,OAAO;AACX;AAWO,IAAM,WAAW,CAAC;AAAA,EACrB;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAAkC;AAC9B,QAAM,yBAAqB,2BAAY,MAAM;AACzC,iBAAa,IAAI;AACjB,iDAAc;AAAA,EAClB,GAAG,CAAC,cAAc,YAAY,CAAC;AAE/B,QAAM,wBAAoB,2BAAY,MAAM;AACxC,iBAAa,IAAI;AACjB,iDAAc;AAAA,EAClB,GAAG,CAAC,cAAc,YAAY,CAAC;AAE/B,QAAM,wBAAoB;AAAA,IACtB,CAAC,UAAkB,MAAM;AACrB,sBAAgB,KAAK;AACrB,mBAAa,IAAI;AACjB,mDAAc,SAAS,EAAE,OAAO,QAAQ,IAAI;AAAA,IAChD;AAAA,IACA,CAAC,cAAc,iBAAiB,YAAY;AAAA,EAChD;AAEA,QAAM,4BAAwB,2BAAY,MAAM;AAC5C,iBAAa,KAAK;AAClB,iDAAc;AAAA,EAClB,GAAG,CAAC,cAAc,YAAY,CAAC;AAE/B,QAAM,sBAAkB,2BAAY,MAAM;AACtC,iBAAa,MAAM;AACnB,iDAAc,WAAW,EAAE,UAAU,EAAE;AAAA,EAC3C,GAAG,CAAC,cAAc,YAAY,CAAC;AAE/B,QAAM,EAAE,oBAAoB,mBAAmB,OAAO,IAAI,oBAAY;AAAA,IAClE,qBAAqB;AAAA,EACzB,CAAC;AAED,QAAM,eACF;AAAA,IAAC;AAAA;AAAA,MACG,kBAAc;AAAA,MACd,aAAU;AAAA,MACV,OAAO;AAAA,MACP;AAAA,MACA,QAAM;AAAA,MACN,kBAAY,4BAAQ,gBAAE,gCAAgC,GAAG;AAAA,QACrD;AAAA,MACJ,CAAC;AAAA;AAAA,EACL;AAGJ,QAAM,cAAU,uBAAQ,UAAM,+BAAM,GAAG,CAAC,CAAC;AAEzC,QAAM,2BAAuB,uBAAQ,MAAM;AACvC,UAAM,cAAc,WAAW,IAAI,CAAC,YAAY;AAC5C,aACI;AAAA,QAAC,aAAK;AAAA,QAAL;AAAA,UACG,aAAW,GAAG,OAAO;AAAA,UACrB,SAAS,kBAAkB,OAAO;AAAA,UAClC,KAAK;AAAA,UACL,YAAU;AAAA,UACV,UAAU,iBAAiB,WAAW,CAAC;AAAA;AAAA,QAEtC,GAAG,OAAO;AAAA,MACf;AAAA,IAER,CAAC;AACD,WAAO;AAAA,MACH;AAAA,QAAC,aAAK;AAAA,QAAL;AAAA,UACG,aAAU;AAAA,UACV,SAAS;AAAA,UACT,KAAI;AAAA,UACJ,YAAU;AAAA,UACV,UAAU,cAAc;AAAA;AAAA,YAEvB,gBAAE,MAAM;AAAA,MACb;AAAA,MACA;AAAA,QAAC,aAAK;AAAA,QAAL;AAAA,UACG,aAAU;AAAA,UACV,SAAS;AAAA,UACT,KAAI;AAAA,UACJ,aAAa,cAAU,gBAAE,YAAY,QAAI,gBAAE,YAAY;AAAA,UACvD,qBAAoB;AAAA,UACpB,YAAU;AAAA,UACV,UAAU,cAAc;AAAA;AAAA,YAEvB,gBAAE,KAAK;AAAA,MACZ;AAAA,MACA,4CAAC,aAAK,SAAL,EAAa,KAAI,kBAAiB;AAAA,MACnC,GAAG;AAAA,MACH,4CAAC,aAAK,SAAL,EAAa,KAAI,kBAAiB;AAAA,MACnC;AAAA,QAAC,aAAK;AAAA,QAAL;AAAA,UACG,aAAU;AAAA,UACV,SAAS;AAAA,UACT,KAAI;AAAA,UACJ,aAAa,cAAU,gBAAE,YAAY,QAAI,gBAAE,YAAY;AAAA,UACvD,qBAAoB;AAAA,UACpB,YAAU;AAAA;AAAA,YAET,gBAAE,SAAS;AAAA,MAChB;AAAA,MACA;AAAA,QAAC,aAAK;AAAA,QAAL;AAAA,UACG,aAAU;AAAA,UACV,SAAS;AAAA,UACT,KAAI;AAAA,UACJ,aAAa,cAAU,gBAAE,YAAY,QAAI,gBAAE,YAAY;AAAA,UACvD,qBAAoB;AAAA,UACpB,YAAU;AAAA;AAAA,YAET,gBAAE,UAAU;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ,GAAG;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAED,SACI;AAAA,IAAC;AAAA;AAAA,MACG,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,aAAW;AAAA;AAAA,IAEX;AAAA,MAAC;AAAA;AAAA,QACG,OAAOA;AAAA,QACP,WAAU;AAAA,QACV,kBAAY,gBAAE,YAAY;AAAA;AAAA,MAEzB;AAAA,IACL;AAAA,EACJ;AAER;;;AC7KA;AAAA;AAAA;AAAA;AAAA,IAAAC,kBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,kBAA8B,0BAAUA;;;ACIrE,IAAM,eAAe,0BAAO,cAAS;AAAA,qBAChB,yBAAU,YAAY;AAAA;AAAA;AAAA;AAAA;AAM3C,IAAM,qBAAqB,0BAAO;AAAA,aACrB,yBAAU,kBAAkB;AAAA;AAQzC,IAAM,mBAAmB,4CAAC,0BAAmB,GAAC;AAEvC,IAAM,aAAa,CAAC;AAAA,EACvB;AAAA,EACA;AACJ,MAAuB;AACnB,QAAM,oBAAgB;AAAA,IAClB,CAAC,IAAI,QAAQ,QAAQ;AACjB,YAAM,IACF,OAAO,UAAU,WAAW,OAAO,SAAS,OAAO,EAAE,IAAI;AAC7D,oBAAc,CAAC,EAAE;AAAA,IACrB;AAAA,IACA,CAAC,aAAa;AAAA,EAClB;AACA,QAAM,EAAE,cAAc,YAAY,aAAa,eAAe,QAC1D,qCAAe;AAAA,IACX,OAAO;AAAA,IACP;AAAA,EACJ,CAAC;AAEL,SACI;AAAA,IAAC;AAAA;AAAA,MACG,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS;AAAA,MACT,cAAc;AAAA,MACd,iBAAe;AAAA,MACf,aAAU;AAAA,MACV,QAAM;AAAA;AAAA,EACV;AAER;;;ACrCA,IAAM,YAAY,0BAAO;AAAA;AAAA;AAAA;AAAA,WAId,yBAAU,YAAY;AAAA;AAGjC,IAAM,gBAAgB,0BAAO,eAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAY7B,IAAM,OAAO,CAAC;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,OAAO;AACX,MAA8B;AAC1B,QAAM,CAAC,cAAc,eAAe,QAAI,wBAAS,GAAG;AACpD,QAAM,CAAC,WAAW,YAAY,QAAI,wBAAgC,IAAI;AACtE,QAAM,mBAAe,2CAAgB;AACrC,QAAM,eAAW,qCAAY;AAE7B,QAAM,iBAAa,2BAAY,CAAC,UAAmB;AAC/C,QAAI,OAAO;AACP,sBAAgB,KAAK,MAAM,QAAQ,GAAG,CAAC;AAAA,IAC3C;AAAA,EACJ,GAAG,CAAC,CAAC;AAEL,QAAM,wBAAoB;AAAA,IACtB,UAAM,yBAAS,UAAU,GAAG;AAAA,IAC5B,CAAC,QAAQ;AAAA,EACb;AAEA,+BAAU,MAAM;AACZ;AAAA,UACI,0CAAiB;AAAA,QACb,OAAO;AAAA,QACP;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAAC,cAAc,WAAW,MAAM,iBAAiB,CAAC;AAErD,QAAM,kBAAc,qCAAY,uCAAe;AAC/C,+BAAU,MAAM;AAzEpB;AA0EQ,UAAM,gBAAe,kDACf,mBADe,mBAEf,UAAU,EAAE,MAAM,WAAW;AAEnC,WAAO,MAAM;AACT,mDAAc;AAAA,IAClB;AAAA,EACJ,GAAG,CAAC,cAAc,aAAa,UAAU,CAAC;AAE1C,QAAM,gBAAY;AAAA,IACd,MAAO,gBAAgB,4CAAC,yBAAc,KAAI,kBAAiB,IAAK;AAAA,IAChE,CAAC,aAAa;AAAA,EAClB;AAEA,QAAM,wBAAoB;AAAA,IACtB,CAAC,UAAkB,MAAM;AACrB,sBAAgB,KAAK;AACrB,mBAAa,IAAI;AACjB,mDAAc,SAAS,EAAE,OAAO,QAAQ,IAAI;AAAA,IAChD;AAAA,IACA,CAAC,YAAY;AAAA,EACjB;AAEA,SACI,4CAAC,iBACG;AAAA,IAAC;AAAA;AAAA,MACG,qBAAoB;AAAA,MACpB,aAAS,gBAAE,YAAY;AAAA;AAAA,IAEvB;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,eAAe;AAAA;AAAA,IACnB;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,EACJ,GACC,SACL;AAER;",
6
6
  "names": ["Markdown_default", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon", "defaultImport", "icon", "defaultImport", "defaultImport", "focusToggleReasons", "ButtonToggle", "IconGalleryPanel", "defaultImport", "ButtonToggle", "defaultImport", "icon", "MenusContainer", "ButtonToggle", "focusToggleReasons", "ImageGalleryPanel", "defaultImport", "defaultImport", "defaultImport", "focusToggleReasons", "ButtonToggle", "defaultImport", "icon", "Markdown_default", "defaultImport", "icon", "defaultImport", "defaultImport", "defaultImport", "icon", "ButtonToggle", "focusToggleReasons", "defaultImport", "icon", "defaultImport", "defaultImport", "icon", "defaultImport", "menuStyle", "defaultImport"]
7
7
  }