@splunk/dashboard-toolbar 29.2.1 → 29.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/buttons/ExportDashboardButton.js +7 -14
  2. package/buttons/ExportDashboardButton.js.map +4 -4
  3. package/buttons/HelpButton.js +0 -2
  4. package/buttons/HelpButton.js.map +2 -2
  5. package/buttons/Source.js +40 -17
  6. package/buttons/Source.js.map +4 -4
  7. package/buttons/index.js +165 -58
  8. package/buttons/index.js.map +4 -4
  9. package/groups/ControlGroup.js +53 -38
  10. package/groups/ControlGroup.js.map +4 -4
  11. package/groups/EditingGroup.js +53 -38
  12. package/groups/EditingGroup.js.map +4 -4
  13. package/groups/EditorGroup.js +76 -47
  14. package/groups/EditorGroup.js.map +4 -4
  15. package/groups/EditorsControlGroup.js +76 -47
  16. package/groups/EditorsControlGroup.js.map +4 -4
  17. package/groups/HistoryGroup.js +53 -38
  18. package/groups/HistoryGroup.js.map +4 -4
  19. package/groups/SidebarControlGroup.js +53 -38
  20. package/groups/SidebarControlGroup.js.map +4 -4
  21. package/groups/VisualizationGroup.js +53 -38
  22. package/groups/VisualizationGroup.js.map +4 -4
  23. package/groups/index.js +76 -47
  24. package/groups/index.js.map +4 -4
  25. package/index.js +167 -60
  26. package/index.js.map +4 -4
  27. package/module/buttons/ExportDashboardButton.js +1 -2
  28. package/module/buttons/HelpButton.js +1 -1
  29. package/module/buttons/Source.js +2 -1
  30. package/module/buttons/index.js +6 -4
  31. package/module/chunks/{chunk-4CPQH3IK.js → chunk-3MBRWVZS.js} +1 -3
  32. package/module/chunks/chunk-3MBRWVZS.js.map +7 -0
  33. package/module/chunks/{chunk-QPL25LDX.js → chunk-5FZAZ2XU.js} +2 -2
  34. package/module/chunks/{chunk-2OAGCVHC.js → chunk-K4QITIOD.js} +27 -10
  35. package/module/chunks/chunk-K4QITIOD.js.map +7 -0
  36. package/module/chunks/{chunk-V756NYFU.js → chunk-L3N7HHJU.js} +2 -2
  37. package/module/chunks/{chunk-3ZEZCWRH.js → chunk-MFIWFQAS.js} +2 -2
  38. package/module/chunks/{chunk-OQXE7KAJ.js → chunk-ODHRJQTV.js} +4 -5
  39. package/module/chunks/chunk-ODHRJQTV.js.map +7 -0
  40. package/module/chunks/{chunk-GJHVIF3J.js → chunk-PMZ2AWNS.js} +3 -3
  41. package/module/chunks/{chunk-OWHBAX5W.js → chunk-QSKQE2FQ.js} +103 -9
  42. package/module/chunks/chunk-QSKQE2FQ.js.map +7 -0
  43. package/module/groups/ControlGroup.js +4 -4
  44. package/module/groups/EditingGroup.js +5 -5
  45. package/module/groups/EditorGroup.js +5 -5
  46. package/module/groups/EditorsControlGroup.js +5 -5
  47. package/module/groups/HistoryGroup.js +4 -4
  48. package/module/groups/SidebarControlGroup.js +5 -5
  49. package/module/groups/VisualizationGroup.js +4 -4
  50. package/module/groups/index.js +8 -8
  51. package/module/index.js +10 -8
  52. package/package.json +18 -18
  53. package/types/buttons/Display/Display.d.ts +8 -0
  54. package/types/buttons/Display/Display.d.ts.map +1 -0
  55. package/types/buttons/Display/index.d.ts +2 -0
  56. package/types/buttons/Display/index.d.ts.map +1 -0
  57. package/types/buttons/ExportDashboardButton.d.ts.map +1 -1
  58. package/types/buttons/HelpButton.d.ts.map +1 -1
  59. package/types/buttons/Source.d.ts +1 -1
  60. package/types/buttons/Source.d.ts.map +1 -1
  61. package/types/buttons/index.d.ts +1 -0
  62. package/types/buttons/index.d.ts.map +1 -1
  63. package/module/chunks/chunk-2OAGCVHC.js.map +0 -7
  64. package/module/chunks/chunk-4CPQH3IK.js.map +0 -7
  65. package/module/chunks/chunk-OQXE7KAJ.js.map +0 -7
  66. package/module/chunks/chunk-OWHBAX5W.js.map +0 -7
  67. /package/module/chunks/{chunk-QPL25LDX.js.map → chunk-5FZAZ2XU.js.map} +0 -0
  68. /package/module/chunks/{chunk-V756NYFU.js.map → chunk-L3N7HHJU.js.map} +0 -0
  69. /package/module/chunks/{chunk-3ZEZCWRH.js.map → chunk-MFIWFQAS.js.map} +0 -0
  70. /package/module/chunks/{chunk-GJHVIF3J.js.map → chunk-PMZ2AWNS.js.map} +0 -0
@@ -65,32 +65,23 @@ var defaultImport3 = __toESM(require("@splunk/dashboard-ui"));
65
65
  __reExport(dashboard_ui_exports, require("@splunk/dashboard-ui"));
66
66
  var dashboard_ui_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
67
67
 
68
- // esm-externals:@splunk/dashboard-utils
69
- var dashboard_utils_exports = {};
70
- __export(dashboard_utils_exports, {
71
- default: () => dashboard_utils_default
72
- });
73
- var defaultImport4 = __toESM(require("@splunk/dashboard-utils"));
74
- __reExport(dashboard_utils_exports, require("@splunk/dashboard-utils"));
75
- var dashboard_utils_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
76
-
77
68
  // esm-externals:@splunk/ui-utils/i18n
78
69
  var i18n_exports = {};
79
70
  __export(i18n_exports, {
80
71
  default: () => i18n_default
81
72
  });
82
- var defaultImport5 = __toESM(require("@splunk/ui-utils/i18n"));
73
+ var defaultImport4 = __toESM(require("@splunk/ui-utils/i18n"));
83
74
  __reExport(i18n_exports, require("@splunk/ui-utils/i18n"));
84
- var i18n_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
75
+ var i18n_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
85
76
 
86
77
  // esm-externals:@splunk/react-ui/Button
87
78
  var Button_exports = {};
88
79
  __export(Button_exports, {
89
80
  default: () => Button_default
90
81
  });
91
- var defaultImport6 = __toESM(require("@splunk/react-ui/Button"));
82
+ var defaultImport5 = __toESM(require("@splunk/react-ui/Button"));
92
83
  __reExport(Button_exports, require("@splunk/react-ui/Button"));
93
- var Button_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
84
+ var Button_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
94
85
 
95
86
  // src/buttons/ExportDashboardButton.tsx
96
87
  var downloadIcon = /* @__PURE__ */ react_default.createElement(ArrowBroadUnderbarDown_default, null);
@@ -99,6 +90,7 @@ var ExportDashboardButton = ({
99
90
  scale = 1
100
91
  }) => {
101
92
  const [open, setOpen] = (0, react_exports.useState)(false);
93
+ const buttonRef = (0, react_exports.useRef)(null);
102
94
  const handleOpen = (0, react_exports.useCallback)(() => {
103
95
  setOpen(true);
104
96
  }, []);
@@ -108,6 +100,7 @@ var ExportDashboardButton = ({
108
100
  return /* @__PURE__ */ react_default.createElement(react_default.Fragment, null, /* @__PURE__ */ react_default.createElement(
109
101
  Button_default,
110
102
  {
103
+ elementRef: buttonRef,
111
104
  icon: downloadIcon,
112
105
  key: "export-dashboard-button",
113
106
  "data-clickable": true,
@@ -122,7 +115,7 @@ var ExportDashboardButton = ({
122
115
  open,
123
116
  onModalClose: handleClose,
124
117
  scale,
125
- returnFocus: dashboard_utils_exports.noop
118
+ returnFocus: buttonRef
126
119
  }
127
120
  ));
128
121
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/buttons/ExportDashboardButton.tsx", "esm-externals:react", "esm-externals:@splunk/react-icons/ArrowBroadUnderbarDown", "esm-externals:@splunk/dashboard-ui", "esm-externals:@splunk/dashboard-utils", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-ui/Button"],
4
- "sourcesContent": ["import React, { useCallback, 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 { noop } from '@splunk/dashboard-utils';\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\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, []);\n\n return (\n <>\n <Button\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={noop}\n />\n </>\n );\n};\n\nexport default ExportDashboardButton;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\nexport * from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\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/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/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,0BAAc;AACd,IAAO,gBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,2CAAc;AACd,IAAO,iCAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,iCAAc;AACd,IAAO,uBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,oCAAc;AACd,IAAO,0BAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ANOrE,IAAM,eAAe,4CAAC,oCAAS;AAO/B,IAAM,wBAAwB,CAAC;AAAA,EAC3B,aAAa;AAAA,EACb,QAAQ;AACZ,MAAkC;AAC9B,QAAM,CAAC,MAAM,OAAO,QAAI,wBAAS,KAAK;AAEtC,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,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;",
6
- "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
3
+ "sources": ["../src/buttons/ExportDashboardButton.tsx", "esm-externals:react", "esm-externals:@splunk/react-icons/ArrowBroadUnderbarDown", "esm-externals:@splunk/dashboard-ui", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-ui/Button"],
4
+ "sourcesContent": ["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 \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\nexport * from \"@splunk/react-icons/ArrowBroadUnderbarDown\";\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/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/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,0BAAc;AACd,IAAO,gBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,2CAAc;AACd,IAAO,iCAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,iCAAc;AACd,IAAO,uBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ALMrE,IAAM,eAAe,4CAAC,oCAAS;AAO/B,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;",
6
+ "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
7
  }
@@ -211,7 +211,6 @@ var StyledDropdownButton = styled_components_default(Button_default)`
211
211
  `;
212
212
 
213
213
  // src/buttons/HelpButton.tsx
214
- var focusToggleReasons = [];
215
214
  var HelpIcon = prepareIcon({
216
215
  Icon: QuestionCircle_default,
217
216
  screenReaderContent: (0, i18n_exports._)("Help links"),
@@ -264,7 +263,6 @@ var HelpButton = ({ helpLinks = [] }) => {
264
263
  return /* @__PURE__ */ react_default.createElement(Item_default, null, /* @__PURE__ */ react_default.createElement(
265
264
  Dropdown_default,
266
265
  {
267
- focusToggleReasons,
268
266
  onRequestClose: handleRequestClose,
269
267
  onRequestOpen: handleRequestOpen,
270
268
  open: isOpen,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/buttons/HelpButton.tsx", "esm-externals:react", "esm-externals:@splunk/react-icons/QuestionCircle", "esm-externals:@splunk/react-ui/Dropdown", "esm-externals:@splunk/react-ui/Menu", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:styled-components", "../src/Item.tsx", "../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"],
4
- "sourcesContent": ["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 focusToggleReasons: never[] = [];\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 focusToggleReasons={focusToggleReasons}\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 \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/QuestionCircle\";\nexport * from \"@splunk/react-icons/QuestionCircle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\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 \"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 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"],
5
- "mappings": "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",
4
+ "sourcesContent": ["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 \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/QuestionCircle\";\nexport * from \"@splunk/react-icons/QuestionCircle\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Dropdown\";\nexport * from \"@splunk/react-ui/Dropdown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Menu\";\nexport * from \"@splunk/react-ui/Menu\";\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 \"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 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"],
5
+ "mappings": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
7
  }
package/buttons/Source.js CHANGED
@@ -91,41 +91,50 @@ var defaultImport3 = __toESM(require("@splunk/react-icons/WindowChevronsSlash"))
91
91
  __reExport(WindowChevronsSlash_exports, require("@splunk/react-icons/WindowChevronsSlash"));
92
92
  var WindowChevronsSlash_default = "default" in defaultImport3 ? defaultImport3.default : defaultImport3;
93
93
 
94
+ // esm-externals:@splunk/dashboard-context
95
+ var dashboard_context_exports = {};
96
+ __export(dashboard_context_exports, {
97
+ default: () => dashboard_context_default
98
+ });
99
+ var defaultImport4 = __toESM(require("@splunk/dashboard-context"));
100
+ __reExport(dashboard_context_exports, require("@splunk/dashboard-context"));
101
+ var dashboard_context_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
102
+
94
103
  // esm-externals:@splunk/react-icons/CaretDown
95
104
  var CaretDown_exports = {};
96
105
  __export(CaretDown_exports, {
97
106
  default: () => CaretDown_default
98
107
  });
99
- var defaultImport4 = __toESM(require("@splunk/react-icons/CaretDown"));
108
+ var defaultImport5 = __toESM(require("@splunk/react-icons/CaretDown"));
100
109
  __reExport(CaretDown_exports, require("@splunk/react-icons/CaretDown"));
101
- var CaretDown_default = "default" in defaultImport4 ? defaultImport4.default : defaultImport4;
110
+ var CaretDown_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
102
111
 
103
112
  // esm-externals:@splunk/react-ui/ScreenReaderContent
104
113
  var ScreenReaderContent_exports = {};
105
114
  __export(ScreenReaderContent_exports, {
106
115
  default: () => ScreenReaderContent_default
107
116
  });
108
- var defaultImport5 = __toESM(require("@splunk/react-ui/ScreenReaderContent"));
117
+ var defaultImport6 = __toESM(require("@splunk/react-ui/ScreenReaderContent"));
109
118
  __reExport(ScreenReaderContent_exports, require("@splunk/react-ui/ScreenReaderContent"));
110
- var ScreenReaderContent_default = "default" in defaultImport5 ? defaultImport5.default : defaultImport5;
119
+ var ScreenReaderContent_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
111
120
 
112
121
  // esm-externals:@splunk/react-ui/Button
113
122
  var Button_exports = {};
114
123
  __export(Button_exports, {
115
124
  default: () => Button_default
116
125
  });
117
- var defaultImport6 = __toESM(require("@splunk/react-ui/Button"));
126
+ var defaultImport7 = __toESM(require("@splunk/react-ui/Button"));
118
127
  __reExport(Button_exports, require("@splunk/react-ui/Button"));
119
- var Button_default = "default" in defaultImport6 ? defaultImport6.default : defaultImport6;
128
+ var Button_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
120
129
 
121
130
  // esm-externals:styled-components
122
131
  var styled_components_exports = {};
123
132
  __export(styled_components_exports, {
124
133
  default: () => styled_components_default
125
134
  });
126
- var defaultImport7 = __toESM(require("styled-components"));
135
+ var defaultImport8 = __toESM(require("styled-components"));
127
136
  __reExport(styled_components_exports, require("styled-components"));
128
- var styled_components_default = "default" in defaultImport7 ? defaultImport7.default : defaultImport7;
137
+ var styled_components_default = "default" in defaultImport8 ? defaultImport8.default : defaultImport8;
129
138
 
130
139
  // src/Item.tsx
131
140
  var Item_default = styled_components_default.div``;
@@ -186,14 +195,28 @@ var icon = prepareIcon({
186
195
  Icon: WindowChevronsSlash_default,
187
196
  screenReaderContent: (0, i18n_exports._)("Source code")
188
197
  });
189
- var Source = ({ disabled = false, onClick }) => /* @__PURE__ */ react_default.createElement(
190
- IconButton_default,
191
- {
192
- testLabel: "source-button",
193
- onClick,
194
- disabled,
195
- icon
196
- }
197
- );
198
+ var Source = ({ disabled = false, onClick }) => {
199
+ const sourceButtonRef = (0, dashboard_context_exports.useToolbarRef)("source");
200
+ const setReturnPoint = (0, dashboard_context_exports.useRestoreFocus)(sourceButtonRef);
201
+ const onSourceClick = (0, react_exports.useCallback)(
202
+ (event, data) => {
203
+ if (onClick) {
204
+ onClick(event, data);
205
+ setReturnPoint();
206
+ }
207
+ },
208
+ [onClick, setReturnPoint]
209
+ );
210
+ return /* @__PURE__ */ react_default.createElement(
211
+ IconButton_default,
212
+ {
213
+ testLabel: "source-button",
214
+ onClick: onSourceClick,
215
+ disabled,
216
+ icon,
217
+ buttonRef: sourceButtonRef
218
+ }
219
+ );
220
+ };
198
221
  var Source_default = Source;
199
222
  //# sourceMappingURL=Source.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/buttons/Source.tsx", "esm-externals:react", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-icons/WindowChevronsSlash", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "esm-externals:@splunk/react-ui/Button", "esm-externals:styled-components", "../src/Item.tsx", "../src/IconButton.tsx"],
4
- "sourcesContent": ["import React, { type ComponentProps } from 'react';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport SourceIcon from '@splunk/react-icons/WindowChevronsSlash';\nimport IconButton, { prepareIcon } from '../IconButton';\nimport type { ToolbarButtonProps } from '../types/common';\n\nexport interface SourceProps extends ToolbarButtonProps {\n onClick?: ComponentProps<typeof IconButton>['onClick'];\n disabled?: boolean;\n}\n\nconst icon = prepareIcon({\n Icon: SourceIcon,\n screenReaderContent: _('Source code'),\n});\n\n/**\n * Button that toggle source mode\n */\nconst Source = ({ disabled = false, onClick }: SourceProps) => (\n <IconButton\n testLabel=\"source-button\"\n onClick={onClick}\n disabled={disabled}\n icon={icon}\n />\n);\n\nexport default Source;\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import React from 'react';\nimport type SVG from '@splunk/react-icons/SVG';\nimport DropdownIcon from '@splunk/react-icons/CaretDown';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n return (\n <ToolbarItem {...rest}>\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAC/B,0BAAc;AACd,IAAO,gBAAS,aAAa,gBAA8B,wBAAU;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAA,iBAA+B;AAC/B,yBAAc;AACd,IAAO,eAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,8BAAc;AACd,IAAO,oBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,wCAAc;AACd,IAAO,8BAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,2BAAc;AACd,IAAO,iBAAS,aAAaA,iBAA8B,yBAAUA;;;ACHrE;AAAA;AAAA;AAAA;AACA,IAAAC,iBAA+B;AAC/B,sCAAc;AACd,IAAO,4BAAS,aAAaA,iBAA8B,yBAAUA;;;ACDrE,IAAO,eAAQ,0BAAO;;;ACOtB,IAAM,qBAAqB,0BAAO,iBAAY;AAAA;AAAA;AAIvC,IAAM,WAAW;AACjB,IAAM,eAAe;AAoBrB,IAAM,cAAc,CAAC,OAKJ;AALI,eACxB;AAAA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EArCb,IAkC4B,IAIrB,kBAJqB,IAIrB;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,OAAO,SAAS,eAAe;AACrC,SACI,0EACI,4CAAC,uBAAK,OAAO,MAAM,QAAQ,QAAU,MAAO,GAC3C,UACG,4CAAC,sBAAmB,SAAQ,UAAS,OAAO,GAAG,QAAQ,MAAM,GAEhE,uBACG,4CAAC,mCAAqB,mBAAoB,CAElD;AAER;AAWA,IAAM,aAAa,CAAC,OAQgB;AARhB,eAChB;AAAA,UAAAC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EArEJ,IA+DoB,IAOb,iBAPa,IAOb;AAAA,IANH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACI,4CAAC,iCAAgB,OACb;AAAA,IAAC;AAAA;AAAA,MACG,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,YAAW;AAAA,MACX,MAAMA;AAAA,MACN;AAAA,MACA,aAAW;AAAA,MACX,kBAAc;AAAA;AAAA,EAClB,CACJ;AAER;AAEA,IAAO,qBAAQ;;;AT7Ef,IAAM,OAAO,YAAY;AAAA,EACrB,MAAM;AAAA,EACN,yBAAqB,gBAAE,aAAa;AACxC,CAAC;AAKD,IAAM,SAAS,CAAC,EAAE,WAAW,OAAO,QAAQ,MACxC;AAAA,EAAC;AAAA;AAAA,IACG,WAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AACJ;AAGJ,IAAO,iBAAQ;",
6
- "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon"]
3
+ "sources": ["../src/buttons/Source.tsx", "esm-externals:react", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/react-icons/WindowChevronsSlash", "esm-externals:@splunk/dashboard-context", "esm-externals:@splunk/react-icons/CaretDown", "esm-externals:@splunk/react-ui/ScreenReaderContent", "esm-externals:@splunk/react-ui/Button", "esm-externals:styled-components", "../src/Item.tsx", "../src/IconButton.tsx"],
4
+ "sourcesContent": ["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 \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/WindowChevronsSlash\";\nexport * from \"@splunk/react-icons/WindowChevronsSlash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/dashboard-context\";\nexport * from \"@splunk/dashboard-context\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-icons/CaretDown\";\nexport * from \"@splunk/react-icons/CaretDown\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/ScreenReaderContent\";\nexport * from \"@splunk/react-ui/ScreenReaderContent\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Button\";\nexport * from \"@splunk/react-ui/Button\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "import styled from 'styled-components';\n\nexport default styled.div``;\n", "import React from 'react';\nimport type SVG from '@splunk/react-icons/SVG';\nimport DropdownIcon from '@splunk/react-icons/CaretDown';\nimport ScreenReaderContent from '@splunk/react-ui/ScreenReaderContent';\nimport Button, { type ButtonPropsBase } from '@splunk/react-ui/Button';\nimport styled from 'styled-components';\nimport ToolbarItem from './Item';\nimport type { ToolbarButtonProps } from './types/common';\n\nconst StyledDropdownIcon = styled(DropdownIcon)`\n margin-left: -5px;\n`;\n\nexport const iconSize = 24;\nexport const menuIconSize = 20;\n\ninterface PrepareIconProps extends React.ComponentProps<typeof SVG> {\n Icon: React.ComponentType<React.ComponentProps<typeof SVG>>;\n screenReaderContent?: string;\n isMenu?: boolean;\n variant?: 'filled' | 'outline' | 'none';\n}\n\n/**\n * Button adds a bunch of padding when there's any child elements even if they don't display anything (screenReaderContent)\n * This bundles the primary icon, a menu caret and screenReaderContent as an icon when needed.\n * Additionally accepts any properties of any react-icons element to be applied to primary icon\n * @param {Object} arg\n * @param {React.ElementType} arg.Icon The primary icon\n * @param {boolean} [arg.isMenu=false] Display a menu caret\n * @param {string} [arg.screenReaderContent] A label for the icon\n * @param {string} [arg.variant] Fill the icon, or not\n * @returns {JSX.Element}\n */\nexport const prepareIcon = ({\n Icon,\n screenReaderContent,\n isMenu = false,\n ...props\n}: PrepareIconProps) => {\n const size = isMenu ? menuIconSize : iconSize;\n return (\n <>\n <Icon width={size} height={size} {...props} />\n {isMenu && (\n <StyledDropdownIcon variant=\"filled\" width={9} height={size} />\n )}\n {screenReaderContent && (\n <ScreenReaderContent>{screenReaderContent}</ScreenReaderContent>\n )}\n </>\n );\n};\n\nexport interface IconButtonProps extends ToolbarButtonProps {\n icon?: JSX.Element;\n onClick?: ButtonPropsBase['onClick'];\n label?: string;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n testLabel?: string;\n disabled?: boolean;\n}\n\nconst IconButton = ({\n icon,\n buttonRef,\n disabled = false,\n onClick,\n label,\n testLabel,\n ...rest\n}: IconButtonProps): JSX.Element => {\n return (\n <ToolbarItem {...rest}>\n <Button\n elementRef={buttonRef}\n onClick={onClick}\n disabled={disabled}\n appearance=\"subtle\"\n icon={icon}\n label={label}\n data-test={testLabel}\n data-clickable\n />\n </ToolbarItem>\n );\n};\n\nexport default IconButton;\n"],
5
+ "mappings": "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",
6
+ "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "icon"]
7
7
  }