@grafana/components 0.0.40 → 0.0.42

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 (89) hide show
  1. package/dist/cjs/index.cjs +401 -5
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.cts +105 -4
  4. package/dist/esm/components/ComparisonBadge/ComparisonBadge.js +35 -0
  5. package/dist/esm/components/ComparisonBadge/ComparisonBadge.js.map +1 -1
  6. package/dist/esm/components/ComparisonTooltip/ComparisonTooltip.js +35 -0
  7. package/dist/esm/components/ComparisonTooltip/ComparisonTooltip.js.map +1 -1
  8. package/dist/esm/components/Icons/AlignLayoutLeft.js +10 -0
  9. package/dist/esm/components/Icons/AlignLayoutLeft.js.map +1 -0
  10. package/dist/esm/components/Icons/AlignLayoutRight.js +10 -0
  11. package/dist/esm/components/Icons/AlignLayoutRight.js.map +1 -0
  12. package/dist/esm/components/Icons/AppWindows.js +11 -0
  13. package/dist/esm/components/Icons/AppWindows.js.map +1 -0
  14. package/dist/esm/components/Icons/ApplicationObservability.js +13 -0
  15. package/dist/esm/components/Icons/ApplicationObservability.js.map +1 -0
  16. package/dist/esm/components/Icons/ArrowsDiagonalCrossingRight.js +13 -0
  17. package/dist/esm/components/Icons/ArrowsDiagonalCrossingRight.js.map +1 -0
  18. package/dist/esm/components/Icons/Channel.js +10 -0
  19. package/dist/esm/components/Icons/Channel.js.map +1 -0
  20. package/dist/esm/components/Icons/ChannelPlus.js +10 -0
  21. package/dist/esm/components/Icons/ChannelPlus.js.map +1 -0
  22. package/dist/esm/components/Icons/ChartLinePlus.js +11 -0
  23. package/dist/esm/components/Icons/ChartLinePlus.js.map +1 -0
  24. package/dist/esm/components/Icons/ChartPanel.js +11 -0
  25. package/dist/esm/components/Icons/ChartPanel.js.map +1 -0
  26. package/dist/esm/components/Icons/ChevronsLeftRightLine.js +13 -0
  27. package/dist/esm/components/Icons/ChevronsLeftRightLine.js.map +1 -0
  28. package/dist/esm/components/Icons/ChevronsUpDownLine.js +10 -0
  29. package/dist/esm/components/Icons/ChevronsUpDownLine.js.map +1 -0
  30. package/dist/esm/components/Icons/CircleFilled.js +10 -0
  31. package/dist/esm/components/Icons/CircleFilled.js.map +1 -0
  32. package/dist/esm/components/Icons/CirclesIntersect.js +12 -0
  33. package/dist/esm/components/Icons/CirclesIntersect.js.map +1 -0
  34. package/dist/esm/components/Icons/CloudDatabase.js +13 -0
  35. package/dist/esm/components/Icons/CloudDatabase.js.map +1 -0
  36. package/dist/esm/components/Icons/CloudInfo.js +10 -0
  37. package/dist/esm/components/Icons/CloudInfo.js.map +1 -0
  38. package/dist/esm/components/Icons/CoolS.js +10 -0
  39. package/dist/esm/components/Icons/CoolS.js.map +1 -0
  40. package/dist/esm/components/Icons/Drilldown.js +11 -0
  41. package/dist/esm/components/Icons/Drilldown.js.map +1 -0
  42. package/dist/esm/components/Icons/FileInfo.js +11 -0
  43. package/dist/esm/components/Icons/FileInfo.js.map +1 -0
  44. package/dist/esm/components/Icons/FileLog.js +13 -0
  45. package/dist/esm/components/Icons/FileLog.js.map +1 -0
  46. package/dist/esm/components/Icons/LaptopCloud.js +11 -0
  47. package/dist/esm/components/Icons/LaptopCloud.js.map +1 -0
  48. package/dist/esm/components/Icons/LayersOff.js +10 -0
  49. package/dist/esm/components/Icons/LayersOff.js.map +1 -0
  50. package/dist/esm/components/Icons/LayoutGridPlus.js +10 -0
  51. package/dist/esm/components/Icons/LayoutGridPlus.js.map +1 -0
  52. package/dist/esm/components/Icons/LoopedArrowsBoxes.js +13 -0
  53. package/dist/esm/components/Icons/LoopedArrowsBoxes.js.map +1 -0
  54. package/dist/esm/components/Icons/MultiStep.js +11 -0
  55. package/dist/esm/components/Icons/MultiStep.js.map +1 -0
  56. package/dist/esm/components/Icons/OrientationLandscape.js +15 -0
  57. package/dist/esm/components/Icons/OrientationLandscape.js.map +1 -0
  58. package/dist/esm/components/Icons/OrientationPortrait.js +12 -0
  59. package/dist/esm/components/Icons/OrientationPortrait.js.map +1 -0
  60. package/dist/esm/components/Icons/PanelLeftToggle.js +11 -0
  61. package/dist/esm/components/Icons/PanelLeftToggle.js.map +1 -0
  62. package/dist/esm/components/Icons/PanelRightToggle.js +11 -0
  63. package/dist/esm/components/Icons/PanelRightToggle.js.map +1 -0
  64. package/dist/esm/components/Icons/PlugDiagonal.js +10 -0
  65. package/dist/esm/components/Icons/PlugDiagonal.js.map +1 -0
  66. package/dist/esm/components/Icons/RefreshX4Ccw.js +14 -0
  67. package/dist/esm/components/Icons/RefreshX4Ccw.js.map +1 -0
  68. package/dist/esm/components/Icons/RefreshX4Cw.js +14 -0
  69. package/dist/esm/components/Icons/RefreshX4Cw.js.map +1 -0
  70. package/dist/esm/components/Icons/SquareDashedArrowSmallSquare.js +13 -0
  71. package/dist/esm/components/Icons/SquareDashedArrowSmallSquare.js.map +1 -0
  72. package/dist/esm/components/Icons/SquareList.js +10 -0
  73. package/dist/esm/components/Icons/SquareList.js.map +1 -0
  74. package/dist/esm/components/Icons/SquarePartialList.js +10 -0
  75. package/dist/esm/components/Icons/SquarePartialList.js.map +1 -0
  76. package/dist/esm/components/Icons/UserKey.js +11 -0
  77. package/dist/esm/components/Icons/UserKey.js.map +1 -0
  78. package/dist/esm/components/Icons/allIcons.js +70 -0
  79. package/dist/esm/components/Icons/allIcons.js.map +1 -1
  80. package/dist/esm/components/Icons/iconMetaData.js +49 -1
  81. package/dist/esm/components/Icons/iconMetaData.js.map +1 -1
  82. package/dist/esm/components/Popover/Popover.js +24 -4
  83. package/dist/esm/components/Popover/Popover.js.map +1 -1
  84. package/dist/esm/components/StackedChartNoData/StackedChartNoData.js +35 -0
  85. package/dist/esm/components/StackedChartNoData/StackedChartNoData.js.map +1 -1
  86. package/dist/esm/index.d.ts +105 -4
  87. package/dist/esm/index.js +35 -0
  88. package/dist/esm/index.js.map +1 -1
  89. package/package.json +2 -4
@@ -43,8 +43,8 @@ const Popover = forwardRef(
43
43
  const arrowRef = useRef(null);
44
44
  const closeTimer = useRef(void 0);
45
45
  const popoverId = useId();
46
- const [isOpenState, setOpen] = useState(isOpenControlled);
47
- const [isDelayedOpen, setDelayedOpen] = useState(isOpenControlled);
46
+ const [isOpenState, setOpen] = useState(isOpenControlled != null ? isOpenControlled : false);
47
+ const [isDelayedOpen, setDelayedOpen] = useState(isOpenControlled != null ? isOpenControlled : false);
48
48
  const isOpen = isOpenControlled != null ? isOpenControlled : isOpenState;
49
49
  const middleware = getMiddleware({ placement, arrowRef });
50
50
  const styles = getStyles();
@@ -128,9 +128,29 @@ const Popover = forwardRef(
128
128
  },
129
129
  [forwardedRef, refs]
130
130
  );
131
- const [trigger, content] = typeof _trigger !== "undefined" ? [_trigger, children] : [children, _content];
131
+ const [trigger, content] = (() => {
132
+ switch (true) {
133
+ /**
134
+ * If the popover is controlled, the trigger isn’t used at all
135
+ */
136
+ case typeof isOpenControlled !== "undefined":
137
+ return [void 0, children];
138
+ /**
139
+ * If a trigger prop was passed, use it as the trigger, and the children
140
+ * as the popover content
141
+ */
142
+ case typeof _trigger !== "undefined":
143
+ return [_trigger, children];
144
+ /**
145
+ * Otherwise, use the children as the trigger element, and the content
146
+ * prop as the popover content
147
+ */
148
+ default:
149
+ return [children, _content];
150
+ }
151
+ })();
132
152
  return /* @__PURE__ */ jsxs(Fragment, { children: [
133
- cloneElement(trigger, {
153
+ typeof trigger !== "undefined" && cloneElement(trigger, {
134
154
  ref: handleRef,
135
155
  tabIndex: 0,
136
156
  "aria-describedby": isOpen ? popoverId : void 0,
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import {\n forwardRef,\n cloneElement,\n useCallback,\n useId,\n useRef,\n useState,\n useLayoutEffect,\n JSX,\n} from 'react';\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n offset,\n Placement,\n safePolygon,\n shift,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useRole,\n useInteractions,\n useTransitionStyles,\n FloatingPortal,\n FloatingPortalProps,\n} from '@floating-ui/react';\nimport { usePortal } from '../PortalProvider';\nimport { getStyles } from './Popover.styles';\n\nexport interface SharedPopoverProps {\n /**\n * Should the popover be open? Implicitly means the popover visibility is\n * controlled; if omitted, the popover target will control visibility\n */\n isOpen?: boolean;\n\n /**\n * Set to true if you want the tooltip to stay long enough so the user can\n * move mouse over content to select text or click a link\n */\n isInteractive?: boolean;\n\n /**\n * Placement of the Popover relative to the trigger content\n */\n placement?: Placement;\n\n /**\n * Transition duration for hide/show effects, in milliseconds\n */\n transitionDuration?: number;\n\n /**\n * Additional delay before hiding the popover after mouseout, in milliseconds\n */\n hideDelay?: number;\n\n /**\n * Virtual element to anchor the popover to instead of the trigger\n */\n virtualElement?: React.RefObject<Element>;\n\n /**\n * DOM element or ID to render the portal into, falls back to document.body\n */\n portalContainer?: FloatingPortalProps['root'];\n}\n\nexport interface PopoverWithTriggerProps extends SharedPopoverProps {\n /**\n * Content used to trigger the Popover being displayed\n */\n trigger: JSX.Element;\n\n /**\n * Content to render within the Popover\n */\n children: JSX.Element;\n\n /**\n * When using a Trigger prop, there shouldn’t be a content prop\n */\n content?: never;\n}\n\nexport interface PopoverWithContentProps extends SharedPopoverProps {\n /**\n * Content to render within the Popover\n */\n content: JSX.Element | string;\n\n /**\n * Children to use as the trigger for the Popover\n */\n children: JSX.Element;\n\n /**\n * When using a Content prop, there shouldn’t be a trigger prop\n */\n trigger?: never;\n}\n\nexport type PopoverProps = PopoverWithTriggerProps | PopoverWithContentProps;\n\nconst POPOVER_OFFSET = 8;\n\nconst getMiddleware = ({\n placement,\n arrowRef,\n}: {\n placement?: Placement;\n arrowRef: React.RefObject<null>;\n}) => {\n const BOUNDARY_ELEMENT_ID = 'floating-boundary';\n const _flip = flip({\n // Ensure we flip to the perpendicular axis if it doesn't fit\n // on narrow viewports.\n crossAxis: 'alignment',\n fallbackAxisSideDirection: 'end',\n boundary: document.getElementById(BOUNDARY_ELEMENT_ID) ?? undefined,\n });\n\n const middleware = placement?.includes('-') ? [_flip, shift()] : [shift(), _flip];\n\n // the order of middleware is important!\n // `arrow` should almost always be at the end\n // see https://floating-ui.com/docs/arrow#order\n return [\n offset(POPOVER_OFFSET),\n ...middleware,\n arrow({\n element: arrowRef,\n }),\n ];\n};\n\nexport const Popover = forwardRef<HTMLElement, PopoverProps>(\n (\n {\n trigger: _trigger,\n content: _content,\n children,\n isOpen: isOpenControlled,\n isInteractive = false,\n placement = 'bottom',\n transitionDuration = 200,\n hideDelay = 500,\n virtualElement,\n portalContainer,\n },\n forwardedRef,\n ) => {\n const arrowRef = useRef(null);\n const closeTimer = useRef<number | undefined>(undefined);\n const popoverId = useId();\n const [isOpenState, setOpen] = useState(isOpenControlled);\n const [isDelayedOpen, setDelayedOpen] = useState(isOpenControlled);\n const isOpen = isOpenControlled ?? isOpenState;\n const middleware = getMiddleware({ placement, arrowRef });\n const styles = getStyles();\n const { root } = usePortal();\n\n const portalRoot = (() => {\n switch (true) {\n case portalContainer instanceof HTMLElement:\n return portalContainer;\n case typeof portalContainer === 'string':\n return document.getElementById(portalContainer);\n default:\n return root;\n }\n })();\n\n const { context, refs, floatingStyles } = useFloating({\n open: isOpen,\n placement,\n onOpenChange: (open) => {\n setOpen(open);\n clearTimeout(closeTimer.current);\n\n if (!open) {\n closeTimer.current = window.setTimeout(() => {\n setDelayedOpen(open);\n }, transitionDuration + hideDelay);\n } else {\n setDelayedOpen(open);\n }\n },\n middleware,\n whileElementsMounted: autoUpdate,\n });\n\n useLayoutEffect(() => {\n if (virtualElement && virtualElement.current !== null) {\n const domRect = virtualElement.current.getBoundingClientRect();\n\n refs.setPositionReference({\n getBoundingClientRect: () => {\n if (virtualElement.current !== null)\n return virtualElement.current.getBoundingClientRect();\n return domRect;\n },\n contextElement: virtualElement.current,\n });\n }\n }, [refs, virtualElement]);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useDismiss(context),\n useHover(context, {\n handleClose: isInteractive ? safePolygon() : undefined,\n move: false,\n delay: {\n open: 0,\n close: hideDelay,\n },\n }),\n useFocus(context),\n useRole(context),\n ]);\n\n const { styles: transitionStyles } = useTransitionStyles(context, {\n duration: transitionDuration,\n initial: ({ side }) => ({\n opacity: 0,\n transform:\n side === 'top' || side === 'bottom'\n ? `translateY(${POPOVER_OFFSET}px)`\n : `translateX(${POPOVER_OFFSET}px)`,\n }),\n open: ({ side }) => ({\n opacity: 1,\n transform: side === 'top' || side === 'bottom' ? `translateY(0)` : `translateX(0)`,\n }),\n close: ({ side }) => ({\n opacity: 0,\n transform:\n side === 'top' || side === 'bottom'\n ? `translateY(${POPOVER_OFFSET}px)`\n : `translateX(${POPOVER_OFFSET}px)`,\n }),\n });\n\n const handleRef = useCallback(\n (ref: HTMLElement | null) => {\n refs.setReference(ref);\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(ref);\n } else if (forwardedRef) {\n forwardedRef.current = ref;\n }\n },\n [forwardedRef, refs],\n );\n\n /**\n * The interface of Popover supports two methods of usage where the children can\n * either represent the content of the popover, or the element to trigger\n * rendering the popover. Dependent on whether the trigger or content prop is\n * provided, the children prop will handle the other scenario.\n */\n const [trigger, content] =\n typeof _trigger !== 'undefined' ? [_trigger, children] : [children, _content];\n\n return (\n <>\n {/* element to trigger displaying the popover */}\n {cloneElement(trigger, {\n ref: handleRef,\n tabIndex: 0,\n 'aria-describedby': isOpen ? popoverId : undefined,\n ...getReferenceProps(),\n })}\n {/* content to render inside the popover when open */}\n {(isDelayedOpen || isOpen) && (\n <FloatingPortal root={portalRoot}>\n <div ref={refs.setFloating} style={floatingStyles} {...getFloatingProps()}>\n <div style={transitionStyles} className={styles.shadow}>\n <FloatingArrow className={styles.arrow} ref={arrowRef} context={context} />\n <div id={popoverId} role=\"tooltip\" className={styles.container}>\n {content}\n </div>\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n },\n);\n\nPopover.displayName = 'Popover';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import {\n forwardRef,\n cloneElement,\n useCallback,\n useId,\n useRef,\n useState,\n useLayoutEffect,\n JSX,\n} from 'react';\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n offset,\n safePolygon,\n shift,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useRole,\n useInteractions,\n useTransitionStyles,\n FloatingPortal,\n FloatingPortalProps,\n Placement,\n} from '@floating-ui/react';\nimport { usePortal } from '../PortalProvider';\nimport { getStyles } from './Popover.styles';\n\nexport type { Placement };\n\nexport interface SharedPopoverProps {\n /**\n * Should the popover be open? Implicitly means the popover visibility is\n * controlled; if omitted, the popover target will control visibility\n */\n isOpen?: boolean;\n\n /**\n * Set to true if you want the tooltip to stay long enough so the user can\n * move mouse over content to select text or click a link\n */\n isInteractive?: boolean;\n\n /**\n * Placement of the Popover relative to the trigger content\n */\n placement?: Placement;\n\n /**\n * Transition duration for hide/show effects, in milliseconds\n */\n transitionDuration?: number;\n\n /**\n * Additional delay before hiding the popover after mouseout, in milliseconds\n */\n hideDelay?: number;\n\n /**\n * Virtual element to anchor the popover to instead of the trigger\n */\n virtualElement?: React.RefObject<Element>;\n\n /**\n * DOM element or ID to render the portal into, falls back to document.body\n */\n portalContainer?: FloatingPortalProps['root'];\n}\n\nexport interface PopoverWithTriggerProps extends SharedPopoverProps {\n /**\n * Content used to trigger the Popover being displayed\n */\n trigger: JSX.Element;\n\n /**\n * Content to render within the Popover\n */\n children: JSX.Element;\n\n /**\n * When using a Trigger prop, there shouldn’t be a content prop\n */\n content?: never;\n\n /**\n * When using a Trigger prop, the prop is uncontrolled, so no isOpen prop should be provided.\n */\n isOpen?: never;\n}\n\nexport interface PopoverWithContentProps extends SharedPopoverProps {\n /**\n * Content to render within the Popover\n */\n content: JSX.Element | string;\n\n /**\n * Children to use as the trigger for the Popover\n */\n children: JSX.Element;\n\n /**\n * When using a Content prop, there shouldn’t be a trigger prop\n */\n trigger?: never;\n\n /**\n * When using a Trigger prop, the prop is uncontrolled, so no isOpen prop should be provided.\n */\n isOpen?: never;\n}\n\nexport interface ControlledPopoverProps extends SharedPopoverProps {\n /**\n * When controlled, there is no trigger prop\n */\n trigger?: never;\n\n /**\n * Equally, when controlled there is no content prop since we can just use children\n */\n content?: never;\n\n /**\n * Virtual element to anchor the popover to instead of the trigger is required in this case\n */\n virtualElement: React.RefObject<Element>;\n\n /**\n * Children to use as the trigger for the Popover\n */\n children: JSX.Element;\n\n /**\n * Controlled popover requires the isOpen prop to be provided\n */\n isOpen: boolean;\n}\n\nexport type PopoverProps =\n | PopoverWithTriggerProps\n | PopoverWithContentProps\n | ControlledPopoverProps;\n\nconst POPOVER_OFFSET = 8;\n\nconst getMiddleware = ({\n placement,\n arrowRef,\n}: {\n placement?: Placement;\n arrowRef: React.RefObject<null>;\n}) => {\n const BOUNDARY_ELEMENT_ID = 'floating-boundary';\n const _flip = flip({\n // Ensure we flip to the perpendicular axis if it doesn't fit\n // on narrow viewports.\n crossAxis: 'alignment',\n fallbackAxisSideDirection: 'end',\n boundary: document.getElementById(BOUNDARY_ELEMENT_ID) ?? undefined,\n });\n\n const middleware = placement?.includes('-') ? [_flip, shift()] : [shift(), _flip];\n\n // the order of middleware is important!\n // `arrow` should almost always be at the end\n // see https://floating-ui.com/docs/arrow#order\n return [\n offset(POPOVER_OFFSET),\n ...middleware,\n arrow({\n element: arrowRef,\n }),\n ];\n};\n\nexport const Popover = forwardRef<HTMLElement, PopoverProps>(\n (\n {\n trigger: _trigger,\n content: _content,\n children,\n isOpen: isOpenControlled,\n isInteractive = false,\n placement = 'bottom',\n transitionDuration = 200,\n hideDelay = 500,\n virtualElement,\n portalContainer,\n },\n forwardedRef,\n ) => {\n const arrowRef = useRef(null);\n const closeTimer = useRef<number | undefined>(undefined);\n const popoverId = useId();\n const [isOpenState, setOpen] = useState(isOpenControlled ?? false);\n const [isDelayedOpen, setDelayedOpen] = useState(isOpenControlled ?? false);\n const isOpen = isOpenControlled ?? isOpenState;\n const middleware = getMiddleware({ placement, arrowRef });\n const styles = getStyles();\n const { root } = usePortal();\n\n const portalRoot = (() => {\n switch (true) {\n case portalContainer instanceof HTMLElement:\n return portalContainer;\n case typeof portalContainer === 'string':\n return document.getElementById(portalContainer);\n default:\n return root;\n }\n })();\n\n const { context, refs, floatingStyles } = useFloating({\n open: isOpen,\n placement,\n onOpenChange: (open) => {\n setOpen(open);\n clearTimeout(closeTimer.current);\n\n if (!open) {\n closeTimer.current = window.setTimeout(() => {\n setDelayedOpen(open);\n }, transitionDuration + hideDelay);\n } else {\n setDelayedOpen(open);\n }\n },\n middleware,\n whileElementsMounted: autoUpdate,\n });\n\n useLayoutEffect(() => {\n if (virtualElement && virtualElement.current !== null) {\n const domRect = virtualElement.current.getBoundingClientRect();\n\n refs.setPositionReference({\n getBoundingClientRect: () => {\n if (virtualElement.current !== null)\n return virtualElement.current.getBoundingClientRect();\n return domRect;\n },\n contextElement: virtualElement.current,\n });\n }\n }, [refs, virtualElement]);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useDismiss(context),\n useHover(context, {\n handleClose: isInteractive ? safePolygon() : undefined,\n move: false,\n delay: {\n open: 0,\n close: hideDelay,\n },\n }),\n useFocus(context),\n useRole(context),\n ]);\n\n const { styles: transitionStyles } = useTransitionStyles(context, {\n duration: transitionDuration,\n initial: ({ side }) => ({\n opacity: 0,\n transform:\n side === 'top' || side === 'bottom'\n ? `translateY(${POPOVER_OFFSET}px)`\n : `translateX(${POPOVER_OFFSET}px)`,\n }),\n open: ({ side }) => ({\n opacity: 1,\n transform: side === 'top' || side === 'bottom' ? `translateY(0)` : `translateX(0)`,\n }),\n close: ({ side }) => ({\n opacity: 0,\n transform:\n side === 'top' || side === 'bottom'\n ? `translateY(${POPOVER_OFFSET}px)`\n : `translateX(${POPOVER_OFFSET}px)`,\n }),\n });\n\n const handleRef = useCallback(\n (ref: HTMLElement | null) => {\n refs.setReference(ref);\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(ref);\n } else if (forwardedRef) {\n forwardedRef.current = ref;\n }\n },\n [forwardedRef, refs],\n );\n\n /**\n * The interface of Popover supports two methods of usage where the children\n * can either represent the content of the popover, or the element to\n * trigger rendering the popover. Dependent on whether the trigger or\n * content prop is provided, the children prop will handle the other\n * scenario.\n *\n * Additionally, it also supports the use of a virtualElement prop to\n * control the position of the popover, and the isOpen prop for controlled\n * open/closed state. In the latter case, no trigger element is passed and\n * the children prop is used as the content of the popover (with the\n * virtualElement controlling the popover position)\n */\n const [trigger, content] = (() => {\n switch (true) {\n /**\n * If the popover is controlled, the trigger isn’t used at all\n */\n case typeof isOpenControlled !== 'undefined':\n return [undefined, children];\n\n /**\n * If a trigger prop was passed, use it as the trigger, and the children\n * as the popover content\n */\n case typeof _trigger !== 'undefined':\n return [_trigger, children];\n\n /**\n * Otherwise, use the children as the trigger element, and the content\n * prop as the popover content\n */\n default:\n return [children, _content];\n }\n })();\n\n return (\n <>\n {/* element to trigger displaying the popover */}\n {typeof trigger !== 'undefined' &&\n cloneElement(trigger, {\n ref: handleRef,\n tabIndex: 0,\n 'aria-describedby': isOpen ? popoverId : undefined,\n ...getReferenceProps(),\n })}\n {/* content to render inside the popover when open */}\n {(isDelayedOpen || isOpen) && (\n <FloatingPortal root={portalRoot}>\n <div ref={refs.setFloating} style={floatingStyles} {...getFloatingProps()}>\n <div style={transitionStyles} className={styles.shadow}>\n <FloatingArrow className={styles.arrow} ref={arrowRef} context={context} />\n <div id={popoverId} role=\"tooltip\" className={styles.container}>\n {content}\n </div>\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n },\n);\n\nPopover.displayName = 'Popover';\n"],"names":[],"mappings":"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"}
@@ -36,6 +36,8 @@ import '../Icons/AlignHorizontalJustifyStart.js';
36
36
  import '../Icons/AlignHorizontalSpaceAround.js';
37
37
  import '../Icons/AlignHorizontalSpaceBetween.js';
38
38
  import '../Icons/AlignJustify.js';
39
+ import '../Icons/AlignLayoutLeft.js';
40
+ import '../Icons/AlignLayoutRight.js';
39
41
  import '../Icons/AlignLeft.js';
40
42
  import '../Icons/AlignRight.js';
41
43
  import '../Icons/AlignStartHorizontal.js';
@@ -61,7 +63,9 @@ import '../Icons/Anvil.js';
61
63
  import '../Icons/Aperture.js';
62
64
  import '../Icons/AppWindowMac.js';
63
65
  import '../Icons/AppWindow.js';
66
+ import '../Icons/AppWindows.js';
64
67
  import '../Icons/Apple.js';
68
+ import '../Icons/ApplicationObservability.js';
65
69
  import '../Icons/ArchiveRestore.js';
66
70
  import '../Icons/ArchiveX.js';
67
71
  import '../Icons/Archive.js';
@@ -129,6 +133,7 @@ import '../Icons/ArrowUpToLine.js';
129
133
  import '../Icons/ArrowUpWideNarrow.js';
130
134
  import '../Icons/ArrowUpZA.js';
131
135
  import '../Icons/ArrowUp.js';
136
+ import '../Icons/ArrowsDiagonalCrossingRight.js';
132
137
  import '../Icons/ArrowsUpFromLine.js';
133
138
  import '../Icons/Asserts.js';
134
139
  import '../Icons/AsteriskSquare.js';
@@ -349,6 +354,8 @@ import '../Icons/Cast.js';
349
354
  import '../Icons/Castle.js';
350
355
  import '../Icons/Cat.js';
351
356
  import '../Icons/Cctv.js';
357
+ import '../Icons/ChannelPlus.js';
358
+ import '../Icons/Channel.js';
352
359
  import '../Icons/ChartArea.js';
353
360
  import '../Icons/ChartBarBig.js';
354
361
  import '../Icons/ChartBarDecreasing.js';
@@ -362,6 +369,7 @@ import '../Icons/ChartColumnIncreasing.js';
362
369
  import '../Icons/ChartColumnStacked.js';
363
370
  import '../Icons/ChartColumn.js';
364
371
  import '../Icons/ChartGantt.js';
372
+ import '../Icons/ChartLinePlus.js';
365
373
  import '../Icons/ChartLine.js';
366
374
  import '../Icons/ChartNetwork.js';
367
375
  import '../Icons/ChartNoAxesColumnDecreasing.js';
@@ -369,6 +377,7 @@ import '../Icons/ChartNoAxesColumnIncreasing.js';
369
377
  import '../Icons/ChartNoAxesColumn.js';
370
378
  import '../Icons/ChartNoAxesCombined.js';
371
379
  import '../Icons/ChartNoAxesGantt.js';
380
+ import '../Icons/ChartPanel.js';
372
381
  import '../Icons/ChartPie.js';
373
382
  import '../Icons/ChartScatter.js';
374
383
  import '../Icons/ChartSpline.js';
@@ -404,10 +413,12 @@ import '../Icons/ChevronUp.js';
404
413
  import '../Icons/ChevronsDownUp.js';
405
414
  import '../Icons/ChevronsDown.js';
406
415
  import '../Icons/ChevronsLeftRightEllipsis.js';
416
+ import '../Icons/ChevronsLeftRightLine.js';
407
417
  import '../Icons/ChevronsLeftRight.js';
408
418
  import '../Icons/ChevronsLeft.js';
409
419
  import '../Icons/ChevronsRightLeft.js';
410
420
  import '../Icons/ChevronsRight.js';
421
+ import '../Icons/ChevronsUpDownLine.js';
411
422
  import '../Icons/ChevronsUpDown.js';
412
423
  import '../Icons/ChevronsUp.js';
413
424
  import '../Icons/Chrome.js';
@@ -438,6 +449,7 @@ import '../Icons/CircleEllipsis.js';
438
449
  import '../Icons/CircleEqual.js';
439
450
  import '../Icons/CircleFadingArrowUp.js';
440
451
  import '../Icons/CircleFadingPlus.js';
452
+ import '../Icons/CircleFilled.js';
441
453
  import '../Icons/CircleGauge.js';
442
454
  import '../Icons/CircleHelp.js';
443
455
  import '../Icons/CircleMinus.js';
@@ -462,6 +474,7 @@ import '../Icons/CircleUserRound.js';
462
474
  import '../Icons/CircleUser.js';
463
475
  import '../Icons/CircleX.js';
464
476
  import '../Icons/Circle.js';
477
+ import '../Icons/CirclesIntersect.js';
465
478
  import '../Icons/CircuitBoard.js';
466
479
  import '../Icons/Citrus.js';
467
480
  import '../Icons/Clapperboard.js';
@@ -503,10 +516,12 @@ import '../Icons/CloudAlert.js';
503
516
  import '../Icons/CloudBackup.js';
504
517
  import '../Icons/CloudCheck.js';
505
518
  import '../Icons/CloudCog.js';
519
+ import '../Icons/CloudDatabase.js';
506
520
  import '../Icons/CloudDownload.js';
507
521
  import '../Icons/CloudDrizzle.js';
508
522
  import '../Icons/CloudFog.js';
509
523
  import '../Icons/CloudHail.js';
524
+ import '../Icons/CloudInfo.js';
510
525
  import '../Icons/CloudLightning.js';
511
526
  import '../Icons/CloudMoonRain.js';
512
527
  import '../Icons/CloudMoon.js';
@@ -553,6 +568,7 @@ import '../Icons/Container.js';
553
568
  import '../Icons/Contrast.js';
554
569
  import '../Icons/Cookie.js';
555
570
  import '../Icons/CookingPot.js';
571
+ import '../Icons/CoolS.js';
556
572
  import '../Icons/CopyCheck.js';
557
573
  import '../Icons/CopyMinus.js';
558
574
  import '../Icons/CopyPlus.js';
@@ -630,6 +646,7 @@ import '../Icons/DraftingCompass.js';
630
646
  import '../Icons/Drama.js';
631
647
  import '../Icons/Dribbble.js';
632
648
  import '../Icons/Drill.js';
649
+ import '../Icons/Drilldown.js';
633
650
  import '../Icons/Drone.js';
634
651
  import '../Icons/DropletOff.js';
635
652
  import '../Icons/Droplet.js';
@@ -703,6 +720,7 @@ import '../Icons/FileExclamationPoint.js';
703
720
  import '../Icons/FileHeadphone.js';
704
721
  import '../Icons/FileHeart.js';
705
722
  import '../Icons/FileImage.js';
723
+ import '../Icons/FileInfo.js';
706
724
  import '../Icons/FileInput.js';
707
725
  import '../Icons/FileJson_2.js';
708
726
  import '../Icons/FileJson.js';
@@ -711,6 +729,7 @@ import '../Icons/FileKey.js';
711
729
  import '../Icons/FileLineChart.js';
712
730
  import '../Icons/FileLock_2.js';
713
731
  import '../Icons/FileLock.js';
732
+ import '../Icons/FileLog.js';
714
733
  import '../Icons/FileMinus_2.js';
715
734
  import '../Icons/FileMinusCorner.js';
716
735
  import '../Icons/FileMinus.js';
@@ -1012,6 +1031,7 @@ import '../Icons/LandPlot.js';
1012
1031
  import '../Icons/Landmark.js';
1013
1032
  import '../Icons/Languages.js';
1014
1033
  import '../Icons/Laptop_2.js';
1034
+ import '../Icons/LaptopCloud.js';
1015
1035
  import '../Icons/LaptopMinimalCheck.js';
1016
1036
  import '../Icons/LaptopMinimal.js';
1017
1037
  import '../Icons/Laptop.js';
@@ -1020,9 +1040,11 @@ import '../Icons/Lasso.js';
1020
1040
  import '../Icons/Laugh.js';
1021
1041
  import '../Icons/Layers_2.js';
1022
1042
  import '../Icons/Layers_3.js';
1043
+ import '../Icons/LayersOff.js';
1023
1044
  import '../Icons/LayersPlus.js';
1024
1045
  import '../Icons/Layers.js';
1025
1046
  import '../Icons/LayoutDashboard.js';
1047
+ import '../Icons/LayoutGridPlus.js';
1026
1048
  import '../Icons/LayoutGrid.js';
1027
1049
  import '../Icons/LayoutList.js';
1028
1050
  import '../Icons/LayoutPanelLeft.js';
@@ -1084,6 +1106,7 @@ import '../Icons/LogIn.js';
1084
1106
  import '../Icons/LogOut.js';
1085
1107
  import '../Icons/Logs.js';
1086
1108
  import '../Icons/Lollipop.js';
1109
+ import '../Icons/LoopedArrowsBoxes.js';
1087
1110
  import '../Icons/Luggage.js';
1088
1111
  import '../Icons/MSquare.js';
1089
1112
  import '../Icons/Magnet.js';
@@ -1216,6 +1239,7 @@ import '../Icons/MoveUpRight.js';
1216
1239
  import '../Icons/MoveUp.js';
1217
1240
  import '../Icons/MoveVertical.js';
1218
1241
  import '../Icons/Move.js';
1242
+ import '../Icons/MultiStep.js';
1219
1243
  import '../Icons/Music_2.js';
1220
1244
  import '../Icons/Music_3.js';
1221
1245
  import '../Icons/Music_4.js';
@@ -1245,6 +1269,8 @@ import '../Icons/Okta.js';
1245
1269
  import '../Icons/Omega.js';
1246
1270
  import '../Icons/Option.js';
1247
1271
  import '../Icons/Orbit.js';
1272
+ import '../Icons/OrientationLandscape.js';
1273
+ import '../Icons/OrientationPortrait.js';
1248
1274
  import '../Icons/Origami.js';
1249
1275
  import '../Icons/Outdent.js';
1250
1276
  import '../Icons/Package_2.js';
@@ -1274,11 +1300,13 @@ import '../Icons/PanelLeftDashed.js';
1274
1300
  import '../Icons/PanelLeftInactive.js';
1275
1301
  import '../Icons/PanelLeftOpen.js';
1276
1302
  import '../Icons/PanelLeftRightDashed.js';
1303
+ import '../Icons/PanelLeftToggle.js';
1277
1304
  import '../Icons/PanelLeft.js';
1278
1305
  import '../Icons/PanelRightClose.js';
1279
1306
  import '../Icons/PanelRightDashed.js';
1280
1307
  import '../Icons/PanelRightInactive.js';
1281
1308
  import '../Icons/PanelRightOpen.js';
1309
+ import '../Icons/PanelRightToggle.js';
1282
1310
  import '../Icons/PanelRight.js';
1283
1311
  import '../Icons/PanelTopBottomDashed.js';
1284
1312
  import '../Icons/PanelTopClose.js';
@@ -1353,6 +1381,7 @@ import '../Icons/PlayCircle.js';
1353
1381
  import '../Icons/PlaySquare.js';
1354
1382
  import '../Icons/Play.js';
1355
1383
  import '../Icons/Plug_2.js';
1384
+ import '../Icons/PlugDiagonal.js';
1356
1385
  import '../Icons/PlugZap_2.js';
1357
1386
  import '../Icons/PlugZap.js';
1358
1387
  import '../Icons/Plug.js';
@@ -1416,6 +1445,8 @@ import '../Icons/RefreshCcwDot.js';
1416
1445
  import '../Icons/RefreshCcw.js';
1417
1446
  import '../Icons/RefreshCwOff.js';
1418
1447
  import '../Icons/RefreshCw.js';
1448
+ import '../Icons/RefreshX4Ccw.js';
1449
+ import '../Icons/RefreshX4Cw.js';
1419
1450
  import '../Icons/Refrigerator.js';
1420
1451
  import '../Icons/Regex.js';
1421
1452
  import '../Icons/RemoveFormatting.js';
@@ -1611,6 +1642,7 @@ import '../Icons/SquareChevronLeft.js';
1611
1642
  import '../Icons/SquareChevronRight.js';
1612
1643
  import '../Icons/SquareChevronUp.js';
1613
1644
  import '../Icons/SquareCode.js';
1645
+ import '../Icons/SquareDashedArrowSmallSquare.js';
1614
1646
  import '../Icons/SquareDashedBottomCode.js';
1615
1647
  import '../Icons/SquareDashedBottom.js';
1616
1648
  import '../Icons/SquareDashedKanban.js';
@@ -1624,12 +1656,14 @@ import '../Icons/SquareFunction.js';
1624
1656
  import '../Icons/SquareGanttChart.js';
1625
1657
  import '../Icons/SquareKanban.js';
1626
1658
  import '../Icons/SquareLibrary.js';
1659
+ import '../Icons/SquareList.js';
1627
1660
  import '../Icons/SquareM.js';
1628
1661
  import '../Icons/SquareMenu.js';
1629
1662
  import '../Icons/SquareMinus.js';
1630
1663
  import '../Icons/SquareMousePointer.js';
1631
1664
  import '../Icons/SquareParkingOff.js';
1632
1665
  import '../Icons/SquareParking.js';
1666
+ import '../Icons/SquarePartialList.js';
1633
1667
  import '../Icons/SquarePause.js';
1634
1668
  import '../Icons/SquarePen.js';
1635
1669
  import '../Icons/SquarePercent.js';
@@ -1827,6 +1861,7 @@ import '../Icons/UserCircle_2.js';
1827
1861
  import '../Icons/UserCircle.js';
1828
1862
  import '../Icons/UserCog_2.js';
1829
1863
  import '../Icons/UserCog.js';
1864
+ import '../Icons/UserKey.js';
1830
1865
  import '../Icons/UserLock.js';
1831
1866
  import '../Icons/UserMinus_2.js';
1832
1867
  import '../Icons/UserMinus.js';
@@ -1 +1 @@
1
- {"version":3,"file":"StackedChartNoData.js","sources":["../../../../src/components/StackedChartNoData/StackedChartNoData.tsx"],"sourcesContent":["import { GlobalCSSVariables } from '@grafana/design-tokens';\nimport { Icon } from '../Icon';\nimport { AlertTriangle } from '../Icons';\nimport { cssVariables, getStyles } from './StackedChartNoData.styles';\nimport { STACKED_CHART_DEFAULT_HEIGHT } from '../StackedChart/common';\n\nexport type StackedChartNoDataMessageFormatter = (args: {\n period: string;\n className: string;\n}) => React.ReactElement;\n\nexport interface StackedChartNoDataProps {\n /**\n * Height to render the stacked chart skeleton, in pixels\n */\n height?: number;\n\n /**\n * Period for which this chart has no data, as a preformatted string\n */\n period?: string;\n\n /**\n * Optional formatter for content message\n */\n formatMessage?: StackedChartNoDataMessageFormatter;\n}\n\n/**\n * The default content formatter assumes a percentage value, but you can create\n * your own formatter using the provided arguments of total and index. The\n * colorClassName allows you to set the colour of some text or an icon to the\n * same colour as the equivalent chart segment.\n */\nconst defaultContentFormatter: StackedChartNoDataMessageFormatter = ({ period, className }) => (\n <>\n No data for <span className={className}>{period}</span>\n </>\n);\n\nexport const StackedChartNoData = ({\n height = STACKED_CHART_DEFAULT_HEIGHT,\n period = 'current',\n formatMessage = defaultContentFormatter,\n}: StackedChartNoDataProps) => {\n const styles = getStyles(height);\n\n return (\n <>\n <GlobalCSSVariables variables={cssVariables()} defaultColorMode={null} />\n <div className={styles.container}>\n <Icon component={AlertTriangle} size=\"sm\" />\n <span>{formatMessage({ period, className: styles.label })}</span>\n </div>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,0BAA8D,CAAC,EAAE,MAAA,EAAQ,SAAA,uBAC7E,IAAA,CAAA,QAAA,EAAA,EAAE,QAAA,EAAA;AAAA,EAAA,cAAA;AAAA,kBACY,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAuB,QAAA,EAAA,MAAA,EAAO;AAAA,CAAA,EAClD,CAAA;AAGK,MAAM,qBAAqB,CAAC;AAAA,EACjC,MAAA,GAAS,4BAAA;AAAA,EACT,MAAA,GAAS,SAAA;AAAA,EACT,aAAA,GAAgB;AAClB,CAAA,KAA+B;AAC7B,EAAA,MAAM,MAAA,GAAS,UAAU,MAAM,CAAA;AAE/B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,kBAAA,EAAA,EAAmB,SAAA,EAAW,YAAA,EAAa,EAAG,kBAAkB,IAAA,EAAM,CAAA;AAAA,oBACvE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,aAAA,EAAe,IAAA,EAAK,IAAA,EAAK,CAAA;AAAA,sBAC1C,GAAA,CAAC,UAAM,QAAA,EAAA,aAAA,CAAc,EAAE,QAAQ,SAAA,EAAW,MAAA,CAAO,KAAA,EAAO,CAAA,EAAE;AAAA,KAAA,EAC5D;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"StackedChartNoData.js","sources":["../../../../src/components/StackedChartNoData/StackedChartNoData.tsx"],"sourcesContent":["import { GlobalCSSVariables } from '@grafana/design-tokens';\nimport { Icon } from '../Icon';\nimport { AlertTriangle } from '../Icons';\nimport { cssVariables, getStyles } from './StackedChartNoData.styles';\nimport { STACKED_CHART_DEFAULT_HEIGHT } from '../StackedChart/common';\n\nexport type StackedChartNoDataMessageFormatter = (args: {\n period: string;\n className: string;\n}) => React.ReactElement;\n\nexport interface StackedChartNoDataProps {\n /**\n * Height to render the stacked chart skeleton, in pixels\n */\n height?: number;\n\n /**\n * Period for which this chart has no data, as a preformatted string\n */\n period?: string;\n\n /**\n * Optional formatter for content message\n */\n formatMessage?: StackedChartNoDataMessageFormatter;\n}\n\n/**\n * The default content formatter assumes a percentage value, but you can create\n * your own formatter using the provided arguments of total and index. The\n * colorClassName allows you to set the colour of some text or an icon to the\n * same colour as the equivalent chart segment.\n */\nconst defaultContentFormatter: StackedChartNoDataMessageFormatter = ({ period, className }) => (\n <>\n No data for <span className={className}>{period}</span>\n </>\n);\n\nexport const StackedChartNoData = ({\n height = STACKED_CHART_DEFAULT_HEIGHT,\n period = 'current',\n formatMessage = defaultContentFormatter,\n}: StackedChartNoDataProps) => {\n const styles = getStyles(height);\n\n return (\n <>\n <GlobalCSSVariables variables={cssVariables()} defaultColorMode={null} />\n <div className={styles.container}>\n <Icon component={AlertTriangle} size=\"sm\" />\n <span>{formatMessage({ period, className: styles.label })}</span>\n </div>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,0BAA8D,CAAC,EAAE,MAAA,EAAQ,SAAA,uBAC7E,IAAA,CAAA,QAAA,EAAA,EAAE,QAAA,EAAA;AAAA,EAAA,cAAA;AAAA,kBACY,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAuB,QAAA,EAAA,MAAA,EAAO;AAAA,CAAA,EAClD,CAAA;AAGK,MAAM,qBAAqB,CAAC;AAAA,EACjC,MAAA,GAAS,4BAAA;AAAA,EACT,MAAA,GAAS,SAAA;AAAA,EACT,aAAA,GAAgB;AAClB,CAAA,KAA+B;AAC7B,EAAA,MAAM,MAAA,GAAS,UAAU,MAAM,CAAA;AAE/B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,kBAAA,EAAA,EAAmB,SAAA,EAAW,YAAA,EAAa,EAAG,kBAAkB,IAAA,EAAM,CAAA;AAAA,oBACvE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,aAAA,EAAe,IAAA,EAAK,IAAA,EAAK,CAAA;AAAA,sBAC1C,GAAA,CAAC,UAAM,QAAA,EAAA,aAAA,CAAc,EAAE,QAAQ,SAAA,EAAW,MAAA,CAAO,KAAA,EAAO,CAAA,EAAE;AAAA,KAAA,EAC5D;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}