@splunk/dashboard-toolbar 29.4.0 → 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 (35) hide show
  1. package/README.md +1 -1
  2. package/buttons/index.js +3 -2
  3. package/buttons/index.js.map +2 -2
  4. package/groups/ControlGroup.js.map +2 -2
  5. package/groups/EditingGroup.js +3 -2
  6. package/groups/EditingGroup.js.map +2 -2
  7. package/groups/EditorGroup.js.map +2 -2
  8. package/groups/EditorsControlGroup.js.map +2 -2
  9. package/groups/HistoryGroup.js.map +2 -2
  10. package/groups/SidebarControlGroup.js.map +2 -2
  11. package/groups/VisualizationGroup.js.map +2 -2
  12. package/groups/index.js +3 -2
  13. package/groups/index.js.map +2 -2
  14. package/index.js +3 -2
  15. package/index.js.map +2 -2
  16. package/module/buttons/index.js +1 -1
  17. package/module/chunks/{chunk-UDFZF6TG.js → chunk-COV2OGVE.js} +2 -2
  18. package/module/chunks/{chunk-RP26L2VP.js → chunk-CS7TUOVQ.js} +2 -2
  19. package/module/chunks/{chunk-AYEBOQ6B.js → chunk-FK3PXQBK.js} +4 -3
  20. package/module/chunks/{chunk-AYEBOQ6B.js.map → chunk-FK3PXQBK.js.map} +2 -2
  21. package/module/chunks/{chunk-QEDHGXUU.js → chunk-PFKZCA73.js} +2 -2
  22. package/module/groups/ControlGroup.js +1 -1
  23. package/module/groups/EditingGroup.js +2 -2
  24. package/module/groups/EditorGroup.js +1 -1
  25. package/module/groups/EditorsControlGroup.js +2 -2
  26. package/module/groups/HistoryGroup.js +1 -1
  27. package/module/groups/SidebarControlGroup.js +2 -2
  28. package/module/groups/VisualizationGroup.js +1 -1
  29. package/module/groups/index.js +4 -4
  30. package/module/index.js +4 -4
  31. package/package.json +22 -21
  32. package/types/buttons/Zoom/ZoomNumber.d.ts.map +1 -1
  33. /package/module/chunks/{chunk-UDFZF6TG.js.map → chunk-COV2OGVE.js.map} +0 -0
  34. /package/module/chunks/{chunk-RP26L2VP.js.map → chunk-CS7TUOVQ.js.map} +0 -0
  35. /package/module/chunks/{chunk-QEDHGXUU.js.map → chunk-PFKZCA73.js.map} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  Display,
7
7
  TokenManager,
8
8
  Zoom
9
- } from "../chunks/chunk-AYEBOQ6B.js";
9
+ } from "../chunks/chunk-FK3PXQBK.js";
10
10
  import {
11
11
  Source_default
12
12
  } from "../chunks/chunk-5DYPICGQ.js";
@@ -3,7 +3,7 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  TokenManager
6
- } from "./chunk-AYEBOQ6B.js";
6
+ } from "./chunk-FK3PXQBK.js";
7
7
  import {
8
8
  Source_default
9
9
  } from "./chunk-5DYPICGQ.js";
@@ -37,4 +37,4 @@ var EditorsControlGroup_default = EditorsControlGroup;
37
37
  export {
38
38
  EditorsControlGroup_default
39
39
  };
40
- //# sourceMappingURL=chunk-UDFZF6TG.js.map
40
+ //# sourceMappingURL=chunk-COV2OGVE.js.map
@@ -3,7 +3,7 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  TokenManager
6
- } from "./chunk-AYEBOQ6B.js";
6
+ } from "./chunk-FK3PXQBK.js";
7
7
  import {
8
8
  Config_default
9
9
  } from "./chunk-XIT2UXG2.js";
@@ -28,4 +28,4 @@ var SidebarControlGroup_default = SidebarControlGroup;
28
28
  export {
29
29
  SidebarControlGroup_default
30
30
  };
31
- //# sourceMappingURL=chunk-RP26L2VP.js.map
31
+ //# sourceMappingURL=chunk-CS7TUOVQ.js.map
@@ -487,8 +487,9 @@ var ZoomNumber = ({
487
487
  onScaleChange
488
488
  }) => {
489
489
  const onValueChange = (0, react_exports.useCallback)(
490
- (e, value = 100) => {
491
- onScaleChange(value)();
490
+ (_e, value = 100) => {
491
+ const v = typeof value === "string" ? Number.parseInt(value, 10) : value;
492
+ onScaleChange(v)();
492
493
  },
493
494
  [onScaleChange]
494
495
  );
@@ -609,4 +610,4 @@ export {
609
610
  TokenManager,
610
611
  Zoom
611
612
  };
612
- //# sourceMappingURL=chunk-AYEBOQ6B.js.map
613
+ //# sourceMappingURL=chunk-FK3PXQBK.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["esm-externals:@splunk/react-ui/Tooltip", "../../src/buttons/AIAssistant/AIAssistant.tsx", "esm-externals:@splunk/react-icons/Checkmark", "../../src/buttons/Display/Display.tsx", "esm-externals:@splunk/react-icons/ListToken", "../../src/buttons/tokenManager/TokenManager.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": ["import * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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-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/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/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 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\nconst percentAdornment = <StyledEndAdornment>%</StyledEndAdornment>;\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={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": "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",
4
+ "sourcesContent": ["import * as defaultImport from \"@splunk/react-ui/Tooltip\";\nexport * from \"@splunk/react-ui/Tooltip\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\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-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/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/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": "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",
6
6
  "names": ["defaultImport", "defaultImport", "defaultImport", "menuStyle", "defaultImport"]
7
7
  }
@@ -3,7 +3,7 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  Zoom
6
- } from "./chunk-AYEBOQ6B.js";
6
+ } from "./chunk-FK3PXQBK.js";
7
7
  import {
8
8
  ModeSwitch_default
9
9
  } from "./chunk-NTQBWCZU.js";
@@ -45,4 +45,4 @@ var EditingGroup_default = EditingGroup;
45
45
  export {
46
46
  EditingGroup_default
47
47
  };
48
- //# sourceMappingURL=chunk-QEDHGXUU.js.map
48
+ //# sourceMappingURL=chunk-PFKZCA73.js.map
@@ -4,7 +4,7 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  ControlGroup_default
6
6
  } from "../chunks/chunk-F3BPX66Z.js";
7
- import "../chunks/chunk-AYEBOQ6B.js";
7
+ import "../chunks/chunk-FK3PXQBK.js";
8
8
  import "../chunks/chunk-5DYPICGQ.js";
9
9
  import "../chunks/chunk-PFHSMP6M.js";
10
10
  import "../chunks/chunk-J7M7QRC7.js";
@@ -3,8 +3,8 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  EditingGroup_default
6
- } from "../chunks/chunk-QEDHGXUU.js";
7
- import "../chunks/chunk-AYEBOQ6B.js";
6
+ } from "../chunks/chunk-PFKZCA73.js";
7
+ import "../chunks/chunk-FK3PXQBK.js";
8
8
  import "../chunks/chunk-5DYPICGQ.js";
9
9
  import "../chunks/chunk-PFHSMP6M.js";
10
10
  import "../chunks/chunk-J7M7QRC7.js";
@@ -4,7 +4,7 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  EditorGroup_default
6
6
  } from "../chunks/chunk-CMTNN2GG.js";
7
- import "../chunks/chunk-AYEBOQ6B.js";
7
+ import "../chunks/chunk-FK3PXQBK.js";
8
8
  import "../chunks/chunk-5DYPICGQ.js";
9
9
  import "../chunks/chunk-PFHSMP6M.js";
10
10
  import "../chunks/chunk-J7M7QRC7.js";
@@ -3,8 +3,8 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  EditorsControlGroup_default
6
- } from "../chunks/chunk-UDFZF6TG.js";
7
- import "../chunks/chunk-AYEBOQ6B.js";
6
+ } from "../chunks/chunk-COV2OGVE.js";
7
+ import "../chunks/chunk-FK3PXQBK.js";
8
8
  import "../chunks/chunk-5DYPICGQ.js";
9
9
  import "../chunks/chunk-PFHSMP6M.js";
10
10
  import "../chunks/chunk-J7M7QRC7.js";
@@ -4,7 +4,7 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  HistoryGroup_default
6
6
  } from "../chunks/chunk-GD75KGSO.js";
7
- import "../chunks/chunk-AYEBOQ6B.js";
7
+ import "../chunks/chunk-FK3PXQBK.js";
8
8
  import "../chunks/chunk-5DYPICGQ.js";
9
9
  import "../chunks/chunk-PFHSMP6M.js";
10
10
  import "../chunks/chunk-J7M7QRC7.js";
@@ -3,8 +3,8 @@ SPLUNK CONFIDENTIAL – Use or disclosure of this material in whole or
3
3
  in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  SidebarControlGroup_default
6
- } from "../chunks/chunk-RP26L2VP.js";
7
- import "../chunks/chunk-AYEBOQ6B.js";
6
+ } from "../chunks/chunk-CS7TUOVQ.js";
7
+ import "../chunks/chunk-FK3PXQBK.js";
8
8
  import "../chunks/chunk-5DYPICGQ.js";
9
9
  import "../chunks/chunk-PFHSMP6M.js";
10
10
  import "../chunks/chunk-J7M7QRC7.js";
@@ -4,7 +4,7 @@ in part without a valid written license from Splunk Inc. is PROHIBITED. */
4
4
  import {
5
5
  VisualizationGroup_default
6
6
  } from "../chunks/chunk-YDVHOHRE.js";
7
- import "../chunks/chunk-AYEBOQ6B.js";
7
+ import "../chunks/chunk-FK3PXQBK.js";
8
8
  import "../chunks/chunk-5DYPICGQ.js";
9
9
  import "../chunks/chunk-PFHSMP6M.js";
10
10
  import "../chunks/chunk-J7M7QRC7.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "../chunks/chunk-GD75KGSO.js";
8
8
  import {
9
9
  SidebarControlGroup_default
10
- } from "../chunks/chunk-RP26L2VP.js";
10
+ } from "../chunks/chunk-CS7TUOVQ.js";
11
11
  import {
12
12
  VisualizationGroup_default
13
13
  } from "../chunks/chunk-YDVHOHRE.js";
@@ -19,14 +19,14 @@ import {
19
19
  } from "../chunks/chunk-F3BPX66Z.js";
20
20
  import {
21
21
  EditingGroup_default
22
- } from "../chunks/chunk-QEDHGXUU.js";
22
+ } from "../chunks/chunk-PFKZCA73.js";
23
23
  import {
24
24
  EditorGroup_default
25
25
  } from "../chunks/chunk-CMTNN2GG.js";
26
26
  import {
27
27
  EditorsControlGroup_default
28
- } from "../chunks/chunk-UDFZF6TG.js";
29
- import "../chunks/chunk-AYEBOQ6B.js";
28
+ } from "../chunks/chunk-COV2OGVE.js";
29
+ import "../chunks/chunk-FK3PXQBK.js";
30
30
  import "../chunks/chunk-5DYPICGQ.js";
31
31
  import "../chunks/chunk-PFHSMP6M.js";
32
32
  import "../chunks/chunk-J7M7QRC7.js";
package/module/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunks/chunk-GD75KGSO.js";
8
8
  import {
9
9
  SidebarControlGroup_default
10
- } from "./chunks/chunk-RP26L2VP.js";
10
+ } from "./chunks/chunk-CS7TUOVQ.js";
11
11
  import {
12
12
  VisualizationGroup_default
13
13
  } from "./chunks/chunk-YDVHOHRE.js";
@@ -19,19 +19,19 @@ import {
19
19
  } from "./chunks/chunk-F3BPX66Z.js";
20
20
  import {
21
21
  EditingGroup_default
22
- } from "./chunks/chunk-QEDHGXUU.js";
22
+ } from "./chunks/chunk-PFKZCA73.js";
23
23
  import {
24
24
  EditorGroup_default
25
25
  } from "./chunks/chunk-CMTNN2GG.js";
26
26
  import {
27
27
  EditorsControlGroup_default
28
- } from "./chunks/chunk-UDFZF6TG.js";
28
+ } from "./chunks/chunk-COV2OGVE.js";
29
29
  import {
30
30
  AIAssistant,
31
31
  Display,
32
32
  TokenManager,
33
33
  Zoom
34
- } from "./chunks/chunk-AYEBOQ6B.js";
34
+ } from "./chunks/chunk-FK3PXQBK.js";
35
35
  import {
36
36
  Source_default
37
37
  } from "./chunks/chunk-5DYPICGQ.js";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@splunk/dashboard-toolbar",
3
3
  "license": "SEE LICENSE IN LICENSE.md",
4
4
  "author": "Splunk",
5
- "version": "29.4.0",
5
+ "version": "29.5.0",
6
6
  "scripts": {
7
7
  "build": "udf-build",
8
8
  "clean": "git ls-files --others -i --exclude-standard *.js *.map | xargs rm && rm -rf .storybook-bundle buttons groups types test-reports",
@@ -20,47 +20,48 @@
20
20
  "test:visual:update": "STORYBOOK_PACKAGE='dashboard-toolbar' yarn workspace @udf/storybook test:visual:update"
21
21
  },
22
22
  "dependencies": {
23
- "@splunk/dashboard-context": "29.4.0",
24
- "@splunk/dashboard-definition": "29.4.0",
25
- "@splunk/dashboard-telemetry": "29.4.0",
26
- "@splunk/dashboard-ui": "29.4.0",
27
- "@splunk/dashboard-utils": "29.4.0",
28
- "@splunk/react-icons": "^5.6.0",
29
- "@splunk/react-ui": "^5.7.0",
30
- "@splunk/themes": "^1.4.1",
23
+ "@splunk/dashboard-context": "29.5.0",
24
+ "@splunk/dashboard-definition": "29.5.0",
25
+ "@splunk/dashboard-telemetry": "29.5.0",
26
+ "@splunk/dashboard-ui": "29.5.0",
27
+ "@splunk/dashboard-utils": "29.5.0",
28
+ "@splunk/react-icons": "^5.8.0",
29
+ "@splunk/react-ui": "^5.8.0",
30
+ "@splunk/themes": "^1.5.0",
31
31
  "@splunk/ui-utils": "^1.12.0",
32
32
  "lodash": "^4.17.23",
33
33
  "rxjs": "^5.5.12"
34
34
  },
35
35
  "peerDependencies": {
36
- "@splunk/dashboard-state": "^29.4.0",
36
+ "@splunk/dashboard-state": "^29.5.0",
37
37
  "react": "^18.3.1",
38
38
  "react-dom": "^18.3.1",
39
39
  "styled-components": "^5.3.11"
40
40
  },
41
41
  "devDependencies": {
42
- "@splunk/dashboard-build-tools": "29.4.0",
43
- "@splunk/dashboard-state": "29.4.0",
44
- "@splunk/dashboard-test-utils": "29.4.0",
45
- "@splunk/dashboard-types": "29.4.0",
42
+ "@splunk/dashboard-build-tools": "29.5.0",
43
+ "@splunk/dashboard-state": "29.5.0",
44
+ "@splunk/dashboard-test-utils": "29.5.0",
45
+ "@splunk/dashboard-types": "29.5.0",
46
46
  "@storybook/blocks": "^7.6.21",
47
47
  "@storybook/react": "^7.6.21",
48
48
  "@storybook/react-webpack5": "^7.6.21",
49
49
  "@storybook/test": "^7.6.21",
50
50
  "@testing-library/dom": "^10.4.1",
51
51
  "@testing-library/jest-dom": "^6.9.1",
52
- "@testing-library/react": "^16.3.1",
52
+ "@testing-library/react": "^16.3.2",
53
53
  "@testing-library/user-event": "^14.6.1",
54
- "@types/react": "^18.3.27",
55
- "@udf/storybook-helpers": "29.4.0",
56
- "@udf/typescript-configs": "29.4.0",
57
- "jest": "^30.1.3",
54
+ "@types/react": "^18.3.28",
55
+ "@udf/storybook-helpers": "29.5.0",
56
+ "@udf/typescript-configs": "29.5.0",
57
+ "jest": "^30.2.0",
58
58
  "react": "^18.3.1",
59
59
  "react-dom": "^18.3.1",
60
60
  "styled-components": "^5.3.11",
61
61
  "testing-library-selector": "^0.3.1",
62
- "ts-jest": "^29.4.4",
62
+ "ts-jest": "^29.4.6",
63
63
  "typescript": "5.9.3"
64
64
  },
65
- "types": "./types/index.d.ts"
65
+ "types": "./types/index.d.ts",
66
+ "gitHead": "fd946f52fb717b1216e3c63e7c72dca4aea353b1"
66
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ZoomNumber.d.ts","sourceRoot":"","sources":["../../../src/buttons/Zoom/ZoomNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAiB3C,UAAU,eAAe;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;CAChD;AAID,eAAO,MAAM,UAAU,GAAI,kCAGxB,eAAe,sBA8BjB,CAAC"}
1
+ {"version":3,"file":"ZoomNumber.d.ts","sourceRoot":"","sources":["../../../src/buttons/Zoom/ZoomNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAiB3C,UAAU,eAAe;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;CAChD;AAID,eAAO,MAAM,UAAU,GAAI,kCAGxB,eAAe,sBAgCjB,CAAC"}