@cloudscape-design/chart-components 1.0.17 → 1.0.19
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.
- package/core/chart-api/index.d.ts +1 -0
- package/core/chart-api/index.js +7 -0
- package/core/chart-api/index.js.map +1 -1
- package/core/components/core-legend.d.ts +2 -1
- package/core/components/core-legend.js +2 -2
- package/core/components/core-legend.js.map +1 -1
- package/core/components/core-tooltip.js +25 -6
- package/core/components/core-tooltip.js.map +1 -1
- package/core/interfaces.d.ts +9 -0
- package/core/interfaces.js.map +1 -1
- package/internal/components/chart-legend/index.d.ts +3 -1
- package/internal/components/chart-legend/index.js +6 -2
- package/internal/components/chart-legend/index.js.map +1 -1
- package/internal/components/chart-legend/styles.css.js +23 -17
- package/internal/components/chart-legend/styles.scoped.css +44 -26
- package/internal/components/chart-legend/styles.selectors.js +23 -17
- package/internal/environment.js +1 -1
- package/internal/environment.json +1 -1
- package/internal/generated/styles/tokens.d.ts +2 -0
- package/internal/generated/styles/tokens.js +2 -0
- package/internal/generated/theming/index.cjs +45 -0
- package/internal/generated/theming/index.cjs.d.ts +9 -0
- package/internal/generated/theming/index.d.ts +9 -0
- package/internal/generated/theming/index.js +45 -0
- package/internal/manifest.json +1 -1
- package/internal-do-not-use/core-legend/index.d.ts +1 -1
- package/internal-do-not-use/core-legend/index.js +2 -2
- package/internal-do-not-use/core-legend/index.js.map +1 -1
- package/package.json +1 -1
- package/pie-chart/chart-pie-internal.js +1 -1
- package/pie-chart/chart-pie-internal.js.map +1 -1
|
@@ -12,7 +12,7 @@ import testClasses from "./test-classes/styles.css.js";
|
|
|
12
12
|
const TOOLTIP_BLUR_DELAY = 50;
|
|
13
13
|
const HIGHLIGHT_LOST_DELAY = 50;
|
|
14
14
|
const SCROLL_DELAY = 100;
|
|
15
|
-
export const ChartLegend = ({ items, legendTitle, ariaLabel, actions, position, onItemVisibilityChange, onItemHighlightEnter, onItemHighlightExit, getTooltipContent, }) => {
|
|
15
|
+
export const ChartLegend = ({ items, legendTitle, ariaLabel, actions, position, onItemVisibilityChange, onItemHighlightEnter, onItemHighlightExit, getTooltipContent, horizontalAlignment, }) => {
|
|
16
16
|
var _a;
|
|
17
17
|
const containerRef = useRef(null);
|
|
18
18
|
const elementsByIndexRef = useRef([]);
|
|
@@ -178,10 +178,13 @@ export const ChartLegend = ({ items, legendTitle, ariaLabel, actions, position,
|
|
|
178
178
|
const tooltipPosition = position === "bottom" ? "bottom" : "left";
|
|
179
179
|
return (_jsx(SingleTabStopNavigationProvider, { ref: navigationAPI, navigationActive: true, getNextFocusTarget: () => getNextFocusTarget(), onUnregisterActive: (element) => onUnregisterActive(element, navigationAPI), children: _jsxs("div", { ref: containerRef, role: "toolbar", "aria-label": legendTitle || ariaLabel, className: clsx(testClasses.root, styles.root, {
|
|
180
180
|
[styles["root-side"]]: position === "side",
|
|
181
|
-
}), onMouseEnter: () => (isMouseInContainer.current = true), onMouseLeave: () => (isMouseInContainer.current = false), children: [legendTitle && (_jsx(Box, { fontWeight: "bold", className: testClasses.title,
|
|
181
|
+
}), onMouseEnter: () => (isMouseInContainer.current = true), onMouseLeave: () => (isMouseInContainer.current = false), children: [legendTitle && (_jsx(Box, { fontWeight: "bold", className: clsx(testClasses.title, {
|
|
182
|
+
[styles[`legend-title-${horizontalAlignment}`]]: position === "bottom",
|
|
183
|
+
}), children: legendTitle })), _jsxs("div", {
|
|
182
184
|
// The list element is not focusable. However, the focus lands on it regardless, when testing in Firefox.
|
|
183
185
|
// Setting the tab index to -1 does fix the problem.
|
|
184
186
|
tabIndex: -1, className: clsx(styles.list, {
|
|
187
|
+
[styles[`list-bottom-${horizontalAlignment}`]]: position === "bottom",
|
|
185
188
|
[styles["list-bottom"]]: position === "bottom",
|
|
186
189
|
[styles["list-side"]]: position === "side",
|
|
187
190
|
}), children: [actions && (_jsx(_Fragment, { children: _jsxs("div", { className: clsx(testClasses.actions, styles.actions, {
|
|
@@ -191,6 +194,7 @@ export const ChartLegend = ({ items, legendTitle, ariaLabel, actions, position,
|
|
|
191
194
|
[styles["actions-divider-bottom"]]: position === "bottom",
|
|
192
195
|
[styles["actions-divider-side"]]: position === "side",
|
|
193
196
|
}) })] }) })), _jsx("div", { className: clsx({
|
|
197
|
+
[styles[`legend-bottom-${horizontalAlignment}`]]: position === "bottom",
|
|
194
198
|
[styles["legend-bottom"]]: position === "bottom",
|
|
195
199
|
[styles["legend-side"]]: position === "side",
|
|
196
200
|
}), children: items.map((item, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { forwardRef, Ref, useEffect, useMemo, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport {\n circleIndex,\n handleKey,\n KeyCode,\n SingleTabStopNavigationAPI,\n SingleTabStopNavigationProvider,\n useMergeRefs,\n useSingleTabStopNavigation,\n} from \"@cloudscape-design/component-toolkit/internal\";\nimport Box from \"@cloudscape-design/components/box\";\nimport { InternalChartTooltip } from \"@cloudscape-design/components/internal/do-not-use/chart-tooltip\";\n\nimport { DebouncedCall } from \"../../utils/utils\";\nimport { GetLegendTooltipContentProps, LegendItem, LegendTooltipContent } from \"../interfaces\";\n\nimport styles from \"./styles.css.js\";\nimport testClasses from \"./test-classes/styles.css.js\";\n\nconst TOOLTIP_BLUR_DELAY = 50;\nconst HIGHLIGHT_LOST_DELAY = 50;\nconst SCROLL_DELAY = 100;\n\nexport interface ChartLegendProps {\n items: readonly LegendItem[];\n legendTitle?: string;\n ariaLabel?: string;\n actions?: React.ReactNode;\n position: \"bottom\" | \"side\";\n onItemHighlightEnter: (item: LegendItem) => void;\n onItemHighlightExit: () => void;\n onItemVisibilityChange: (hiddenItems: string[]) => void;\n getTooltipContent: (props: GetLegendTooltipContentProps) => null | LegendTooltipContent;\n}\n\nexport const ChartLegend = ({\n items,\n legendTitle,\n ariaLabel,\n actions,\n position,\n onItemVisibilityChange,\n onItemHighlightEnter,\n onItemHighlightExit,\n getTooltipContent,\n}: ChartLegendProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const elementsByIndexRef = useRef<Record<number, HTMLElement>>([]);\n const elementsByIdRef = useRef<Record<string, HTMLElement>>({});\n const tooltipRef = useRef<HTMLElement>(null);\n const highlightControl = useMemo(() => new DebouncedCall(), []);\n const scrollIntoViewControl = useMemo(() => new DebouncedCall(), []);\n const [selectedIndex, setSelectedIndex] = useState<number>(0);\n const [tooltipItemId, setTooltipItemId] = useState<string | null>(null);\n const { showTooltip, hideTooltip } = useMemo(() => {\n const control = new DebouncedCall();\n return {\n showTooltip(itemId: string) {\n control.call(() => setTooltipItemId(itemId));\n },\n hideTooltip(lock = false) {\n control.call(() => setTooltipItemId(null), TOOLTIP_BLUR_DELAY);\n if (lock) {\n control.lock(TOOLTIP_BLUR_DELAY);\n }\n },\n };\n }, []);\n\n useEffect(() => {\n if (!tooltipItemId) {\n return;\n }\n const onDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n hideTooltip(true);\n elementsByIdRef.current[tooltipItemId]?.focus();\n }\n };\n document.addEventListener(\"keydown\", onDocumentKeyDown, true);\n return () => {\n document.removeEventListener(\"keydown\", onDocumentKeyDown, true);\n };\n }, [items, tooltipItemId, hideTooltip]);\n const isMouseInContainer = useRef<boolean>(false);\n\n // Scrolling to the highlighted legend item.\n useEffect(() => {\n const highlightedIndex = items.findIndex((item) => item.highlighted);\n if (highlightedIndex === -1) {\n return;\n }\n scrollIntoViewControl.call(() => {\n if (isMouseInContainer.current) {\n return;\n }\n const container = containerRef.current;\n const element = elementsByIndexRef.current?.[highlightedIndex];\n if (!container || !element) {\n return;\n }\n const elementRect = element.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n const isVisible = elementRect.top >= containerRect.top && elementRect.bottom <= containerRect.bottom;\n if (!isVisible) {\n const elementCenter = elementRect.top + elementRect.height / 2;\n const containerCenter = containerRect.top + containerRect.height / 2;\n const top = container.scrollTop + (elementCenter - containerCenter);\n container.scrollTo({ top, behavior: \"smooth\" });\n }\n }, SCROLL_DELAY);\n }, [items, scrollIntoViewControl]);\n\n const showHighlight = (itemId: string) => {\n const item = items.find((item) => item.id === itemId);\n if (item?.visible) {\n highlightControl.cancelPrevious();\n onItemHighlightEnter(item);\n }\n };\n const clearHighlight = () => {\n highlightControl.call(onItemHighlightExit, HIGHLIGHT_LOST_DELAY);\n };\n\n const navigationAPI = useRef<SingleTabStopNavigationAPI>(null);\n\n function onFocus(index: number, itemId: string) {\n setSelectedIndex(index);\n navigationAPI.current!.updateFocusTarget();\n showHighlight(itemId);\n showTooltip(itemId);\n }\n\n function onBlur(event: React.FocusEvent) {\n navigationAPI.current!.updateFocusTarget();\n\n // Hide tooltip and clear highlight unless focus moves inside tooltip;\n if (tooltipRef.current && event.relatedTarget && !tooltipRef.current.contains(event.relatedTarget)) {\n clearHighlight();\n hideTooltip();\n }\n }\n\n function focusElement(index: number) {\n elementsByIndexRef.current[index]?.focus();\n }\n\n function onKeyDown(event: React.KeyboardEvent<HTMLElement>) {\n if (\n event.keyCode === KeyCode.right ||\n event.keyCode === KeyCode.left ||\n event.keyCode === KeyCode.up ||\n event.keyCode === KeyCode.down ||\n event.keyCode === KeyCode.home ||\n event.keyCode === KeyCode.end ||\n event.keyCode === KeyCode.escape\n ) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n const range = [0, items.length - 1] as [number, number];\n\n handleKey(event, {\n onInlineStart: () => focusElement(circleIndex(selectedIndex - 1, range)),\n onInlineEnd: () => focusElement(circleIndex(selectedIndex + 1, range)),\n onBlockStart: () => focusElement(circleIndex(selectedIndex - 1, range)),\n onBlockEnd: () => focusElement(circleIndex(selectedIndex + 1, range)),\n onHome: () => focusElement(0),\n onEnd: () => focusElement(items.length - 1),\n onEscape: () => onItemHighlightExit(),\n });\n }\n }\n\n function getNextFocusTarget(): null | HTMLElement {\n if (containerRef.current) {\n const buttons: HTMLButtonElement[] = Array.from(containerRef.current.querySelectorAll(`.${styles.item}`));\n return buttons[selectedIndex] ?? null;\n }\n return null;\n }\n\n function onUnregisterActive(\n focusableElement: HTMLElement,\n navigationAPI: React.RefObject<{ getFocusTarget: () => HTMLElement | null }>,\n ) {\n const target = navigationAPI.current?.getFocusTarget();\n\n if (target && target.dataset.itemid !== focusableElement.dataset.itemid) {\n target.focus();\n }\n }\n\n useEffect(() => {\n navigationAPI.current!.updateFocusTarget();\n });\n\n const toggleItem = (itemId: string) => {\n const visibleItems = items.filter((i) => i.visible).map((i) => i.id);\n if (visibleItems.includes(itemId)) {\n onItemVisibilityChange(visibleItems.filter((visibleItemId) => visibleItemId !== itemId));\n } else {\n onItemVisibilityChange([...visibleItems, itemId]);\n }\n // Needed for touch devices.\n onItemHighlightExit();\n };\n\n const selectItem = (itemId: string) => {\n const visibleItems = items.filter((i) => i.visible).map((i) => i.id);\n if (visibleItems.length === 1 && visibleItems[0] === itemId) {\n onItemVisibilityChange(items.map((i) => i.id));\n } else {\n onItemVisibilityChange([itemId]);\n }\n // Needed for touch devices.\n onItemHighlightExit();\n };\n\n const tooltipTrack = useRef<null | HTMLElement>(null);\n const tooltipTarget = items.find((item) => item.id === tooltipItemId) ?? null;\n tooltipTrack.current = tooltipItemId ? elementsByIdRef.current[tooltipItemId] : null;\n const tooltipContent = tooltipTarget && getTooltipContent({ legendItem: tooltipTarget });\n const tooltipPosition = position === \"bottom\" ? \"bottom\" : \"left\";\n\n return (\n <SingleTabStopNavigationProvider\n ref={navigationAPI}\n navigationActive={true}\n getNextFocusTarget={() => getNextFocusTarget()}\n onUnregisterActive={(element: HTMLElement) => onUnregisterActive(element, navigationAPI)}\n >\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || ariaLabel}\n className={clsx(testClasses.root, styles.root, {\n [styles[\"root-side\"]]: position === \"side\",\n })}\n onMouseEnter={() => (isMouseInContainer.current = true)}\n onMouseLeave={() => (isMouseInContainer.current = false)}\n >\n {legendTitle && (\n <Box fontWeight=\"bold\" className={testClasses.title}>\n {legendTitle}\n </Box>\n )}\n\n <div\n // The list element is not focusable. However, the focus lands on it regardless, when testing in Firefox.\n // Setting the tab index to -1 does fix the problem.\n tabIndex={-1}\n className={clsx(styles.list, {\n [styles[\"list-bottom\"]]: position === \"bottom\",\n [styles[\"list-side\"]]: position === \"side\",\n })}\n >\n {actions && (\n <>\n <div\n className={clsx(testClasses.actions, styles.actions, {\n [styles[\"actions-bottom\"]]: position === \"bottom\",\n [styles[\"actions-side\"]]: position === \"side\",\n })}\n >\n {actions}\n <div\n className={clsx(styles[\"actions-divider\"], {\n [styles[\"actions-divider-bottom\"]]: position === \"bottom\",\n [styles[\"actions-divider-side\"]]: position === \"side\",\n })}\n />\n </div>\n </>\n )}\n <div\n className={clsx({\n [styles[\"legend-bottom\"]]: position === \"bottom\",\n [styles[\"legend-side\"]]: position === \"side\",\n })}\n >\n {items.map((item, index) => {\n const handlers = {\n onMouseEnter: () => {\n showHighlight(item.id);\n showTooltip(item.id);\n },\n onMouseLeave: () => {\n clearHighlight();\n hideTooltip();\n },\n onFocus: () => {\n onFocus(index, item.id);\n },\n onBlur: (event: React.FocusEvent) => {\n onBlur(event);\n },\n onKeyDown,\n };\n const thisTriggerRef = (elem: null | HTMLElement) => {\n if (elem) {\n elementsByIndexRef.current[index] = elem;\n elementsByIdRef.current[item.id] = elem;\n } else {\n delete elementsByIndexRef.current[index];\n delete elementsByIdRef.current[index];\n }\n };\n return (\n <LegendItemTrigger\n key={index}\n {...handlers}\n ref={thisTriggerRef}\n onClick={(event) => {\n if (event.metaKey || event.ctrlKey) {\n toggleItem(item.id);\n } else {\n selectItem(item.id);\n }\n }}\n isHighlighted={item.highlighted}\n someHighlighted={items.some((item) => item.highlighted)}\n itemId={item.id}\n label={item.name}\n visible={item.visible}\n marker={item.marker}\n />\n );\n })}\n </div>\n </div>\n {tooltipContent && (\n <InternalChartTooltip\n trackRef={tooltipTrack}\n trackKey={tooltipTarget.id}\n container={null}\n dismissButton={false}\n onDismiss={() => {}}\n position={tooltipPosition}\n title={tooltipContent.header}\n onMouseEnter={() => showTooltip(tooltipTarget.id)}\n onMouseLeave={() => hideTooltip()}\n onBlur={() => hideTooltip()}\n footer={\n tooltipContent.footer && (\n <>\n <hr aria-hidden={true} />\n {tooltipContent.footer}\n </>\n )\n }\n >\n {tooltipContent.body}\n </InternalChartTooltip>\n )}\n </div>\n </SingleTabStopNavigationProvider>\n );\n};\n\nconst LegendItemTrigger = forwardRef(\n (\n {\n isHighlighted,\n someHighlighted,\n itemId,\n label,\n marker,\n visible,\n onClick,\n triggerRef,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n onKeyDown,\n }: {\n isHighlighted?: boolean;\n someHighlighted?: boolean;\n itemId: string;\n label: string;\n marker?: React.ReactNode;\n visible: boolean;\n onClick: (event: React.MouseEvent) => void;\n onMarkerClick?: () => void;\n triggerRef?: Ref<HTMLElement>;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n onFocus?: () => void;\n onBlur?: (event: React.FocusEvent) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n },\n ref: Ref<HTMLButtonElement>,\n ) => {\n const refObject = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(ref, triggerRef, refObject);\n const { tabIndex } = useSingleTabStopNavigation(refObject);\n return (\n <button\n data-itemid={itemId}\n aria-pressed={visible}\n aria-current={isHighlighted}\n className={clsx(testClasses.item, styles.item, {\n [styles[\"item--inactive\"]]: !visible,\n [testClasses[\"hidden-item\"]]: !visible,\n [styles[\"item--dimmed\"]]: someHighlighted && !isHighlighted,\n [testClasses[\"dimmed-item\"]]: someHighlighted && !isHighlighted,\n })}\n ref={mergedRef}\n tabIndex={tabIndex}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n >\n {marker}\n <span className={styles[\"item-label\"]}>{label}</span>\n </button>\n );\n },\n);\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { forwardRef, Ref, useEffect, useMemo, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport {\n circleIndex,\n handleKey,\n KeyCode,\n SingleTabStopNavigationAPI,\n SingleTabStopNavigationProvider,\n useMergeRefs,\n useSingleTabStopNavigation,\n} from \"@cloudscape-design/component-toolkit/internal\";\nimport Box from \"@cloudscape-design/components/box\";\nimport { InternalChartTooltip } from \"@cloudscape-design/components/internal/do-not-use/chart-tooltip\";\n\nimport { CoreChartProps } from \"../../../core/interfaces\";\nimport { DebouncedCall } from \"../../utils/utils\";\nimport { GetLegendTooltipContentProps, LegendItem, LegendTooltipContent } from \"../interfaces\";\n\nimport styles from \"./styles.css.js\";\nimport testClasses from \"./test-classes/styles.css.js\";\n\nconst TOOLTIP_BLUR_DELAY = 50;\nconst HIGHLIGHT_LOST_DELAY = 50;\nconst SCROLL_DELAY = 100;\n\nexport interface ChartLegendProps {\n items: readonly LegendItem[];\n legendTitle?: string;\n ariaLabel?: string;\n actions?: React.ReactNode;\n position: \"bottom\" | \"side\";\n horizontalAlignment: CoreChartProps.LegendOptionsHorizontalAlignment;\n onItemHighlightEnter: (item: LegendItem) => void;\n onItemHighlightExit: () => void;\n onItemVisibilityChange: (hiddenItems: string[]) => void;\n getTooltipContent: (props: GetLegendTooltipContentProps) => null | LegendTooltipContent;\n}\n\nexport const ChartLegend = ({\n items,\n legendTitle,\n ariaLabel,\n actions,\n position,\n onItemVisibilityChange,\n onItemHighlightEnter,\n onItemHighlightExit,\n getTooltipContent,\n horizontalAlignment,\n}: ChartLegendProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const elementsByIndexRef = useRef<Record<number, HTMLElement>>([]);\n const elementsByIdRef = useRef<Record<string, HTMLElement>>({});\n const tooltipRef = useRef<HTMLElement>(null);\n const highlightControl = useMemo(() => new DebouncedCall(), []);\n const scrollIntoViewControl = useMemo(() => new DebouncedCall(), []);\n const [selectedIndex, setSelectedIndex] = useState<number>(0);\n const [tooltipItemId, setTooltipItemId] = useState<string | null>(null);\n const { showTooltip, hideTooltip } = useMemo(() => {\n const control = new DebouncedCall();\n return {\n showTooltip(itemId: string) {\n control.call(() => setTooltipItemId(itemId));\n },\n hideTooltip(lock = false) {\n control.call(() => setTooltipItemId(null), TOOLTIP_BLUR_DELAY);\n if (lock) {\n control.lock(TOOLTIP_BLUR_DELAY);\n }\n },\n };\n }, []);\n\n useEffect(() => {\n if (!tooltipItemId) {\n return;\n }\n const onDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n hideTooltip(true);\n elementsByIdRef.current[tooltipItemId]?.focus();\n }\n };\n document.addEventListener(\"keydown\", onDocumentKeyDown, true);\n return () => {\n document.removeEventListener(\"keydown\", onDocumentKeyDown, true);\n };\n }, [items, tooltipItemId, hideTooltip]);\n const isMouseInContainer = useRef<boolean>(false);\n\n // Scrolling to the highlighted legend item.\n useEffect(() => {\n const highlightedIndex = items.findIndex((item) => item.highlighted);\n if (highlightedIndex === -1) {\n return;\n }\n scrollIntoViewControl.call(() => {\n if (isMouseInContainer.current) {\n return;\n }\n const container = containerRef.current;\n const element = elementsByIndexRef.current?.[highlightedIndex];\n if (!container || !element) {\n return;\n }\n const elementRect = element.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n const isVisible = elementRect.top >= containerRect.top && elementRect.bottom <= containerRect.bottom;\n if (!isVisible) {\n const elementCenter = elementRect.top + elementRect.height / 2;\n const containerCenter = containerRect.top + containerRect.height / 2;\n const top = container.scrollTop + (elementCenter - containerCenter);\n container.scrollTo({ top, behavior: \"smooth\" });\n }\n }, SCROLL_DELAY);\n }, [items, scrollIntoViewControl]);\n\n const showHighlight = (itemId: string) => {\n const item = items.find((item) => item.id === itemId);\n if (item?.visible) {\n highlightControl.cancelPrevious();\n onItemHighlightEnter(item);\n }\n };\n const clearHighlight = () => {\n highlightControl.call(onItemHighlightExit, HIGHLIGHT_LOST_DELAY);\n };\n\n const navigationAPI = useRef<SingleTabStopNavigationAPI>(null);\n\n function onFocus(index: number, itemId: string) {\n setSelectedIndex(index);\n navigationAPI.current!.updateFocusTarget();\n showHighlight(itemId);\n showTooltip(itemId);\n }\n\n function onBlur(event: React.FocusEvent) {\n navigationAPI.current!.updateFocusTarget();\n\n // Hide tooltip and clear highlight unless focus moves inside tooltip;\n if (tooltipRef.current && event.relatedTarget && !tooltipRef.current.contains(event.relatedTarget)) {\n clearHighlight();\n hideTooltip();\n }\n }\n\n function focusElement(index: number) {\n elementsByIndexRef.current[index]?.focus();\n }\n\n function onKeyDown(event: React.KeyboardEvent<HTMLElement>) {\n if (\n event.keyCode === KeyCode.right ||\n event.keyCode === KeyCode.left ||\n event.keyCode === KeyCode.up ||\n event.keyCode === KeyCode.down ||\n event.keyCode === KeyCode.home ||\n event.keyCode === KeyCode.end ||\n event.keyCode === KeyCode.escape\n ) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n const range = [0, items.length - 1] as [number, number];\n\n handleKey(event, {\n onInlineStart: () => focusElement(circleIndex(selectedIndex - 1, range)),\n onInlineEnd: () => focusElement(circleIndex(selectedIndex + 1, range)),\n onBlockStart: () => focusElement(circleIndex(selectedIndex - 1, range)),\n onBlockEnd: () => focusElement(circleIndex(selectedIndex + 1, range)),\n onHome: () => focusElement(0),\n onEnd: () => focusElement(items.length - 1),\n onEscape: () => onItemHighlightExit(),\n });\n }\n }\n\n function getNextFocusTarget(): null | HTMLElement {\n if (containerRef.current) {\n const buttons: HTMLButtonElement[] = Array.from(containerRef.current.querySelectorAll(`.${styles.item}`));\n return buttons[selectedIndex] ?? null;\n }\n return null;\n }\n\n function onUnregisterActive(\n focusableElement: HTMLElement,\n navigationAPI: React.RefObject<{ getFocusTarget: () => HTMLElement | null }>,\n ) {\n const target = navigationAPI.current?.getFocusTarget();\n\n if (target && target.dataset.itemid !== focusableElement.dataset.itemid) {\n target.focus();\n }\n }\n\n useEffect(() => {\n navigationAPI.current!.updateFocusTarget();\n });\n\n const toggleItem = (itemId: string) => {\n const visibleItems = items.filter((i) => i.visible).map((i) => i.id);\n if (visibleItems.includes(itemId)) {\n onItemVisibilityChange(visibleItems.filter((visibleItemId) => visibleItemId !== itemId));\n } else {\n onItemVisibilityChange([...visibleItems, itemId]);\n }\n // Needed for touch devices.\n onItemHighlightExit();\n };\n\n const selectItem = (itemId: string) => {\n const visibleItems = items.filter((i) => i.visible).map((i) => i.id);\n if (visibleItems.length === 1 && visibleItems[0] === itemId) {\n onItemVisibilityChange(items.map((i) => i.id));\n } else {\n onItemVisibilityChange([itemId]);\n }\n // Needed for touch devices.\n onItemHighlightExit();\n };\n\n const tooltipTrack = useRef<null | HTMLElement>(null);\n const tooltipTarget = items.find((item) => item.id === tooltipItemId) ?? null;\n tooltipTrack.current = tooltipItemId ? elementsByIdRef.current[tooltipItemId] : null;\n const tooltipContent = tooltipTarget && getTooltipContent({ legendItem: tooltipTarget });\n const tooltipPosition = position === \"bottom\" ? \"bottom\" : \"left\";\n\n return (\n <SingleTabStopNavigationProvider\n ref={navigationAPI}\n navigationActive={true}\n getNextFocusTarget={() => getNextFocusTarget()}\n onUnregisterActive={(element: HTMLElement) => onUnregisterActive(element, navigationAPI)}\n >\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || ariaLabel}\n className={clsx(testClasses.root, styles.root, {\n [styles[\"root-side\"]]: position === \"side\",\n })}\n onMouseEnter={() => (isMouseInContainer.current = true)}\n onMouseLeave={() => (isMouseInContainer.current = false)}\n >\n {legendTitle && (\n <Box\n fontWeight=\"bold\"\n className={clsx(testClasses.title, {\n [styles[`legend-title-${horizontalAlignment}`]]: position === \"bottom\",\n })}\n >\n {legendTitle}\n </Box>\n )}\n\n <div\n // The list element is not focusable. However, the focus lands on it regardless, when testing in Firefox.\n // Setting the tab index to -1 does fix the problem.\n tabIndex={-1}\n className={clsx(styles.list, {\n [styles[`list-bottom-${horizontalAlignment}`]]: position === \"bottom\",\n [styles[\"list-bottom\"]]: position === \"bottom\",\n [styles[\"list-side\"]]: position === \"side\",\n })}\n >\n {actions && (\n <>\n <div\n className={clsx(testClasses.actions, styles.actions, {\n [styles[\"actions-bottom\"]]: position === \"bottom\",\n [styles[\"actions-side\"]]: position === \"side\",\n })}\n >\n {actions}\n <div\n className={clsx(styles[\"actions-divider\"], {\n [styles[\"actions-divider-bottom\"]]: position === \"bottom\",\n [styles[\"actions-divider-side\"]]: position === \"side\",\n })}\n />\n </div>\n </>\n )}\n <div\n className={clsx({\n [styles[`legend-bottom-${horizontalAlignment}`]]: position === \"bottom\",\n [styles[\"legend-bottom\"]]: position === \"bottom\",\n [styles[\"legend-side\"]]: position === \"side\",\n })}\n >\n {items.map((item, index) => {\n const handlers = {\n onMouseEnter: () => {\n showHighlight(item.id);\n showTooltip(item.id);\n },\n onMouseLeave: () => {\n clearHighlight();\n hideTooltip();\n },\n onFocus: () => {\n onFocus(index, item.id);\n },\n onBlur: (event: React.FocusEvent) => {\n onBlur(event);\n },\n onKeyDown,\n };\n const thisTriggerRef = (elem: null | HTMLElement) => {\n if (elem) {\n elementsByIndexRef.current[index] = elem;\n elementsByIdRef.current[item.id] = elem;\n } else {\n delete elementsByIndexRef.current[index];\n delete elementsByIdRef.current[index];\n }\n };\n return (\n <LegendItemTrigger\n key={index}\n {...handlers}\n ref={thisTriggerRef}\n onClick={(event) => {\n if (event.metaKey || event.ctrlKey) {\n toggleItem(item.id);\n } else {\n selectItem(item.id);\n }\n }}\n isHighlighted={item.highlighted}\n someHighlighted={items.some((item) => item.highlighted)}\n itemId={item.id}\n label={item.name}\n visible={item.visible}\n marker={item.marker}\n />\n );\n })}\n </div>\n </div>\n {tooltipContent && (\n <InternalChartTooltip\n trackRef={tooltipTrack}\n trackKey={tooltipTarget.id}\n container={null}\n dismissButton={false}\n onDismiss={() => {}}\n position={tooltipPosition}\n title={tooltipContent.header}\n onMouseEnter={() => showTooltip(tooltipTarget.id)}\n onMouseLeave={() => hideTooltip()}\n onBlur={() => hideTooltip()}\n footer={\n tooltipContent.footer && (\n <>\n <hr aria-hidden={true} />\n {tooltipContent.footer}\n </>\n )\n }\n >\n {tooltipContent.body}\n </InternalChartTooltip>\n )}\n </div>\n </SingleTabStopNavigationProvider>\n );\n};\n\nconst LegendItemTrigger = forwardRef(\n (\n {\n isHighlighted,\n someHighlighted,\n itemId,\n label,\n marker,\n visible,\n onClick,\n triggerRef,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n onKeyDown,\n }: {\n isHighlighted?: boolean;\n someHighlighted?: boolean;\n itemId: string;\n label: string;\n marker?: React.ReactNode;\n visible: boolean;\n onClick: (event: React.MouseEvent) => void;\n onMarkerClick?: () => void;\n triggerRef?: Ref<HTMLElement>;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n onFocus?: () => void;\n onBlur?: (event: React.FocusEvent) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n },\n ref: Ref<HTMLButtonElement>,\n ) => {\n const refObject = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(ref, triggerRef, refObject);\n const { tabIndex } = useSingleTabStopNavigation(refObject);\n return (\n <button\n data-itemid={itemId}\n aria-pressed={visible}\n aria-current={isHighlighted}\n className={clsx(testClasses.item, styles.item, {\n [styles[\"item--inactive\"]]: !visible,\n [testClasses[\"hidden-item\"]]: !visible,\n [styles[\"item--dimmed\"]]: someHighlighted && !isHighlighted,\n [testClasses[\"dimmed-item\"]]: someHighlighted && !isHighlighted,\n })}\n ref={mergedRef}\n tabIndex={tabIndex}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n >\n {marker}\n <span className={styles[\"item-label\"]}>{label}</span>\n </button>\n );\n },\n);\n"]}
|
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"focus-outline": "awsui_focus-
|
|
5
|
-
"item": "
|
|
6
|
-
"root": "
|
|
7
|
-
"root-side": "awsui_root-
|
|
8
|
-
"list": "
|
|
9
|
-
"list-bottom": "awsui_list-
|
|
10
|
-
"list-
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
4
|
+
"focus-outline": "awsui_focus-outline_1kjc7_oede3_15",
|
|
5
|
+
"item": "awsui_item_1kjc7_oede3_27",
|
|
6
|
+
"root": "awsui_root_1kjc7_oede3_41",
|
|
7
|
+
"root-side": "awsui_root-side_1kjc7_oede3_81",
|
|
8
|
+
"list": "awsui_list_1kjc7_oede3_86",
|
|
9
|
+
"list-bottom": "awsui_list-bottom_1kjc7_oede3_96",
|
|
10
|
+
"list-bottom-start": "awsui_list-bottom-start_1kjc7_oede3_99",
|
|
11
|
+
"list-bottom-center": "awsui_list-bottom-center_1kjc7_oede3_102",
|
|
12
|
+
"list-side": "awsui_list-side_1kjc7_oede3_106",
|
|
13
|
+
"legend-bottom": "awsui_legend-bottom_1kjc7_oede3_111",
|
|
14
|
+
"legend-bottom-start": "awsui_legend-bottom-start_1kjc7_oede3_118",
|
|
15
|
+
"legend-bottom-center": "awsui_legend-bottom-center_1kjc7_oede3_121",
|
|
16
|
+
"legend-title-start": "awsui_legend-title-start_1kjc7_oede3_125",
|
|
17
|
+
"legend-title-center": "awsui_legend-title-center_1kjc7_oede3_129",
|
|
18
|
+
"legend-side": "awsui_legend-side_1kjc7_oede3_133",
|
|
19
|
+
"item--inactive": "awsui_item--inactive_1kjc7_oede3_204",
|
|
20
|
+
"item--dimmed": "awsui_item--dimmed_1kjc7_oede3_210",
|
|
21
|
+
"item-label": "awsui_item-label_1kjc7_oede3_214",
|
|
22
|
+
"actions": "awsui_actions_1kjc7_oede3_224",
|
|
23
|
+
"actions-bottom": "awsui_actions-bottom_1kjc7_oede3_229",
|
|
24
|
+
"actions-side": "awsui_actions-side_1kjc7_oede3_233",
|
|
25
|
+
"actions-divider-bottom": "awsui_actions-divider-bottom_1kjc7_oede3_238",
|
|
26
|
+
"actions-divider-side": "awsui_actions-divider-side_1kjc7_oede3_245"
|
|
21
27
|
};
|
|
22
28
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
/* stylelint-disable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
|
|
14
14
|
/* stylelint-enable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
|
|
15
|
-
body[data-awsui-focus-visible=true] .awsui_focus-
|
|
15
|
+
body[data-awsui-focus-visible=true] .awsui_focus-outline_1kjc7_oede3_15:not(#\9) {
|
|
16
16
|
stroke: var(--color-border-item-focused-uk47pl, #006ce0);
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -24,21 +24,21 @@ body[data-awsui-focus-visible=true] .awsui_focus-outline_1kjc7_ordh1_15:not(#\9)
|
|
|
24
24
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
25
25
|
SPDX-License-Identifier: Apache-2.0
|
|
26
26
|
*/
|
|
27
|
-
.
|
|
27
|
+
.awsui_item_1kjc7_oede3_27:not(#\9) {
|
|
28
28
|
transition: opacity 90ms linear;
|
|
29
29
|
}
|
|
30
30
|
@media (prefers-reduced-motion: reduce) {
|
|
31
|
-
.
|
|
31
|
+
.awsui_item_1kjc7_oede3_27:not(#\9) {
|
|
32
32
|
animation: none;
|
|
33
33
|
transition: none;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
.awsui-motion-disabled .
|
|
36
|
+
.awsui-motion-disabled .awsui_item_1kjc7_oede3_27:not(#\9), .awsui-mode-entering .awsui_item_1kjc7_oede3_27:not(#\9) {
|
|
37
37
|
animation: none;
|
|
38
38
|
transition: none;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
.
|
|
41
|
+
.awsui_root_1kjc7_oede3_41:not(#\9) {
|
|
42
42
|
border-collapse: separate;
|
|
43
43
|
border-spacing: 0;
|
|
44
44
|
box-sizing: border-box;
|
|
@@ -74,16 +74,16 @@ body[data-awsui-focus-visible=true] .awsui_focus-outline_1kjc7_ordh1_15:not(#\9)
|
|
|
74
74
|
overflow: auto;
|
|
75
75
|
max-height: inherit;
|
|
76
76
|
}
|
|
77
|
-
.
|
|
77
|
+
.awsui_root_1kjc7_oede3_41:not(#\9):focus {
|
|
78
78
|
outline: none;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
.awsui_root-
|
|
81
|
+
.awsui_root-side_1kjc7_oede3_81:not(#\9) {
|
|
82
82
|
display: flex;
|
|
83
83
|
flex-direction: column;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
.
|
|
86
|
+
.awsui_list_1kjc7_oede3_86:not(#\9) {
|
|
87
87
|
display: flex;
|
|
88
88
|
list-style: none;
|
|
89
89
|
margin-block: 0;
|
|
@@ -93,33 +93,51 @@ body[data-awsui-focus-visible=true] .awsui_focus-outline_1kjc7_ordh1_15:not(#\9)
|
|
|
93
93
|
padding-block-start: var(--space-scaled-xs-xwoogq, 8px);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
.awsui_list-
|
|
96
|
+
.awsui_list-bottom_1kjc7_oede3_96:not(#\9) {
|
|
97
97
|
flex-wrap: wrap;
|
|
98
|
-
|
|
98
|
+
}
|
|
99
|
+
.awsui_list-bottom_1kjc7_oede3_96.awsui_list-bottom-start_1kjc7_oede3_99:not(#\9) {
|
|
100
|
+
justify-content: start;
|
|
101
|
+
}
|
|
102
|
+
.awsui_list-bottom_1kjc7_oede3_96.awsui_list-bottom-center_1kjc7_oede3_102:not(#\9) {
|
|
103
|
+
justify-content: center;
|
|
99
104
|
}
|
|
100
105
|
|
|
101
|
-
.awsui_list-
|
|
106
|
+
.awsui_list-side_1kjc7_oede3_106:not(#\9) {
|
|
102
107
|
flex-wrap: nowrap;
|
|
103
108
|
flex-direction: column;
|
|
104
109
|
}
|
|
105
110
|
|
|
106
|
-
.awsui_legend-
|
|
107
|
-
flex: 1;
|
|
111
|
+
.awsui_legend-bottom_1kjc7_oede3_111:not(#\9) {
|
|
108
112
|
display: flex;
|
|
109
113
|
flex-wrap: wrap;
|
|
110
114
|
flex-direction: row;
|
|
111
115
|
max-inline-size: 100%;
|
|
112
116
|
gap: var(--space-scaled-xxs-pfm1nx, 4px) var(--space-static-m-m6qboo, 16px);
|
|
113
117
|
}
|
|
118
|
+
.awsui_legend-bottom_1kjc7_oede3_111.awsui_legend-bottom-start_1kjc7_oede3_118:not(#\9) {
|
|
119
|
+
justify-content: start;
|
|
120
|
+
}
|
|
121
|
+
.awsui_legend-bottom_1kjc7_oede3_111.awsui_legend-bottom-center_1kjc7_oede3_121:not(#\9) {
|
|
122
|
+
justify-content: center;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.awsui_legend-title-start_1kjc7_oede3_125:not(#\9) {
|
|
126
|
+
text-align: start;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.awsui_legend-title-center_1kjc7_oede3_129:not(#\9) {
|
|
130
|
+
text-align: center;
|
|
131
|
+
}
|
|
114
132
|
|
|
115
|
-
.awsui_legend-
|
|
133
|
+
.awsui_legend-side_1kjc7_oede3_133:not(#\9) {
|
|
116
134
|
display: flex;
|
|
117
135
|
flex-wrap: wrap;
|
|
118
136
|
flex-direction: column;
|
|
119
137
|
gap: var(--space-scaled-xxs-pfm1nx, 4px) var(--space-static-m-m6qboo, 16px);
|
|
120
138
|
}
|
|
121
139
|
|
|
122
|
-
.
|
|
140
|
+
.awsui_item_1kjc7_oede3_27:not(#\9) {
|
|
123
141
|
border-collapse: separate;
|
|
124
142
|
border-spacing: 0;
|
|
125
143
|
box-sizing: border-box;
|
|
@@ -162,16 +180,16 @@ body[data-awsui-focus-visible=true] .awsui_focus-outline_1kjc7_ordh1_15:not(#\9)
|
|
|
162
180
|
opacity: 1;
|
|
163
181
|
max-inline-size: 100%;
|
|
164
182
|
}
|
|
165
|
-
.
|
|
183
|
+
.awsui_item_1kjc7_oede3_27:not(#\9):focus {
|
|
166
184
|
outline: none;
|
|
167
185
|
}
|
|
168
|
-
body[data-awsui-focus-visible=true] .
|
|
186
|
+
body[data-awsui-focus-visible=true] .awsui_item_1kjc7_oede3_27:not(#\9):focus {
|
|
169
187
|
position: relative;
|
|
170
188
|
box-sizing: border-box;
|
|
171
189
|
outline: 2px dotted transparent;
|
|
172
190
|
outline-offset: 1px;
|
|
173
191
|
}
|
|
174
|
-
body[data-awsui-focus-visible=true] .
|
|
192
|
+
body[data-awsui-focus-visible=true] .awsui_item_1kjc7_oede3_27:not(#\9):focus::before {
|
|
175
193
|
content: " ";
|
|
176
194
|
display: block;
|
|
177
195
|
position: absolute;
|
|
@@ -183,17 +201,17 @@ body[data-awsui-focus-visible=true] .awsui_item_1kjc7_ordh1_27:not(#\9):focus::b
|
|
|
183
201
|
border-radius: var(--border-radius-control-default-focus-ring-1uabki, 4px);
|
|
184
202
|
border: 2px solid var(--color-border-item-focused-uk47pl, #006ce0);
|
|
185
203
|
}
|
|
186
|
-
.
|
|
204
|
+
.awsui_item_1kjc7_oede3_27.awsui_item--inactive_1kjc7_oede3_204:not(#\9) {
|
|
187
205
|
color: var(--color-text-interactive-default-ugh9wp, #424650);
|
|
188
206
|
text-decoration: line-through;
|
|
189
207
|
text-decoration-thickness: 2px;
|
|
190
208
|
text-decoration-color: var(--color-text-interactive-default-ugh9wp, #424650);
|
|
191
209
|
}
|
|
192
|
-
.
|
|
210
|
+
.awsui_item_1kjc7_oede3_27.awsui_item--dimmed_1kjc7_oede3_210:not(#\9) {
|
|
193
211
|
opacity: 0.35;
|
|
194
212
|
}
|
|
195
213
|
|
|
196
|
-
.awsui_item-
|
|
214
|
+
.awsui_item-label_1kjc7_oede3_214:not(#\9) {
|
|
197
215
|
overflow: hidden;
|
|
198
216
|
white-space: nowrap;
|
|
199
217
|
text-overflow: ellipsis;
|
|
@@ -203,28 +221,28 @@ body[data-awsui-focus-visible=true] .awsui_item_1kjc7_ordh1_27:not(#\9):focus::b
|
|
|
203
221
|
-webkit-box-orient: vertical;
|
|
204
222
|
}
|
|
205
223
|
|
|
206
|
-
.
|
|
224
|
+
.awsui_actions_1kjc7_oede3_224:not(#\9) {
|
|
207
225
|
display: flex;
|
|
208
226
|
align-items: center;
|
|
209
227
|
}
|
|
210
228
|
|
|
211
|
-
.awsui_actions-
|
|
229
|
+
.awsui_actions-bottom_1kjc7_oede3_229:not(#\9) {
|
|
212
230
|
flex-direction: row;
|
|
213
231
|
}
|
|
214
232
|
|
|
215
|
-
.awsui_actions-
|
|
233
|
+
.awsui_actions-side_1kjc7_oede3_233:not(#\9) {
|
|
216
234
|
flex-direction: column;
|
|
217
235
|
align-items: flex-start;
|
|
218
236
|
}
|
|
219
237
|
|
|
220
|
-
.awsui_actions-divider-
|
|
238
|
+
.awsui_actions-divider-bottom_1kjc7_oede3_238:not(#\9) {
|
|
221
239
|
inline-size: 1px;
|
|
222
240
|
block-size: 80%;
|
|
223
241
|
margin-inline: var(--space-scaled-xs-xwoogq, 8px);
|
|
224
242
|
background: var(--color-border-divider-default-nr68jt, #c6c6cd);
|
|
225
243
|
}
|
|
226
244
|
|
|
227
|
-
.awsui_actions-divider-
|
|
245
|
+
.awsui_actions-divider-side_1kjc7_oede3_245:not(#\9) {
|
|
228
246
|
inline-size: 80%;
|
|
229
247
|
block-size: 1px;
|
|
230
248
|
margin-block-end: var(--space-scaled-xs-xwoogq, 8px);
|
|
@@ -2,22 +2,28 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"focus-outline": "awsui_focus-
|
|
6
|
-
"item": "
|
|
7
|
-
"root": "
|
|
8
|
-
"root-side": "awsui_root-
|
|
9
|
-
"list": "
|
|
10
|
-
"list-bottom": "awsui_list-
|
|
11
|
-
"list-
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
5
|
+
"focus-outline": "awsui_focus-outline_1kjc7_oede3_15",
|
|
6
|
+
"item": "awsui_item_1kjc7_oede3_27",
|
|
7
|
+
"root": "awsui_root_1kjc7_oede3_41",
|
|
8
|
+
"root-side": "awsui_root-side_1kjc7_oede3_81",
|
|
9
|
+
"list": "awsui_list_1kjc7_oede3_86",
|
|
10
|
+
"list-bottom": "awsui_list-bottom_1kjc7_oede3_96",
|
|
11
|
+
"list-bottom-start": "awsui_list-bottom-start_1kjc7_oede3_99",
|
|
12
|
+
"list-bottom-center": "awsui_list-bottom-center_1kjc7_oede3_102",
|
|
13
|
+
"list-side": "awsui_list-side_1kjc7_oede3_106",
|
|
14
|
+
"legend-bottom": "awsui_legend-bottom_1kjc7_oede3_111",
|
|
15
|
+
"legend-bottom-start": "awsui_legend-bottom-start_1kjc7_oede3_118",
|
|
16
|
+
"legend-bottom-center": "awsui_legend-bottom-center_1kjc7_oede3_121",
|
|
17
|
+
"legend-title-start": "awsui_legend-title-start_1kjc7_oede3_125",
|
|
18
|
+
"legend-title-center": "awsui_legend-title-center_1kjc7_oede3_129",
|
|
19
|
+
"legend-side": "awsui_legend-side_1kjc7_oede3_133",
|
|
20
|
+
"item--inactive": "awsui_item--inactive_1kjc7_oede3_204",
|
|
21
|
+
"item--dimmed": "awsui_item--dimmed_1kjc7_oede3_210",
|
|
22
|
+
"item-label": "awsui_item-label_1kjc7_oede3_214",
|
|
23
|
+
"actions": "awsui_actions_1kjc7_oede3_224",
|
|
24
|
+
"actions-bottom": "awsui_actions-bottom_1kjc7_oede3_229",
|
|
25
|
+
"actions-side": "awsui_actions-side_1kjc7_oede3_233",
|
|
26
|
+
"actions-divider-bottom": "awsui_actions-divider-bottom_1kjc7_oede3_238",
|
|
27
|
+
"actions-divider-side": "awsui_actions-divider-side_1kjc7_oede3_245"
|
|
22
28
|
};
|
|
23
29
|
|
package/internal/environment.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export var PACKAGE_SOURCE = "chart-components";
|
|
2
|
-
export var PACKAGE_VERSION = "1.0.0 (
|
|
2
|
+
export var PACKAGE_VERSION = "1.0.0 (0e235d07)";
|
|
3
3
|
export var THEME = "open-source-visual-refresh";
|
|
4
4
|
export var ALWAYS_VISUAL_REFRESH = true;
|
|
5
5
|
export var SYSTEM = "console";
|
|
@@ -545,6 +545,7 @@ export const colorDropzoneTextHover: string;
|
|
|
545
545
|
export const colorDropzoneBorderDefault: string;
|
|
546
546
|
export const colorDropzoneBorderHover: string;
|
|
547
547
|
export const colorGapGlobalDrawer: string;
|
|
548
|
+
export const colorTreeViewConnectorLine: string;
|
|
548
549
|
export const fontBoxValueLargeWeight: string;
|
|
549
550
|
export const fontButtonLetterSpacing: string;
|
|
550
551
|
export const fontChartDetailSize: string;
|
|
@@ -746,6 +747,7 @@ export const spaceTableHeaderHorizontal: string;
|
|
|
746
747
|
export const spaceTableHeaderToolsBottom: string;
|
|
747
748
|
export const spaceTableHeaderToolsFullPageBottom: string;
|
|
748
749
|
export const spaceTableHorizontal: string;
|
|
750
|
+
export const spaceTreeViewIndentation: string;
|
|
749
751
|
export const spaceTileGutter: string;
|
|
750
752
|
export const spaceScaled2xNone: string;
|
|
751
753
|
export const spaceScaled2xXxxs: string;
|
|
@@ -545,6 +545,7 @@ export var colorDropzoneTextHover = "var(--color-dropzone-text-hover-asw3rt, #42
|
|
|
545
545
|
export var colorDropzoneBorderDefault = "var(--color-dropzone-border-default-k648ha, #8c8c94)";
|
|
546
546
|
export var colorDropzoneBorderHover = "var(--color-dropzone-border-hover-otpag5, #002b66)";
|
|
547
547
|
export var colorGapGlobalDrawer = "var(--color-gap-global-drawer-nh699a, #ebebf0)";
|
|
548
|
+
export var colorTreeViewConnectorLine = "var(--color-tree-view-connector-line-1usxvn, #8c8c94)";
|
|
548
549
|
export var fontBoxValueLargeWeight = "var(--font-box-value-large-weight-wr00sw, 700)";
|
|
549
550
|
export var fontButtonLetterSpacing = "var(--font-button-letter-spacing-ufowe3, 0.005em)";
|
|
550
551
|
export var fontChartDetailSize = "var(--font-chart-detail-size-9qr25q, 12px)";
|
|
@@ -746,6 +747,7 @@ export var spaceTableHeaderHorizontal = "var(--space-table-header-horizontal-kb5
|
|
|
746
747
|
export var spaceTableHeaderToolsBottom = "var(--space-table-header-tools-bottom-d9u5kf, 0px)";
|
|
747
748
|
export var spaceTableHeaderToolsFullPageBottom = "var(--space-table-header-tools-full-page-bottom-9m47g6, 4px)";
|
|
748
749
|
export var spaceTableHorizontal = "var(--space-table-horizontal-suurzj, 20px)";
|
|
750
|
+
export var spaceTreeViewIndentation = "var(--space-tree-view-indentation-gmy1k3, 20px)";
|
|
749
751
|
export var spaceTileGutter = "var(--space-tile-gutter-bi2bdv, 24px)";
|
|
750
752
|
export var spaceScaled2xNone = "var(--space-scaled-2x-none-987dp7, 0px)";
|
|
751
753
|
export var spaceScaled2xXxxs = "var(--space-scaled-2x-xxxs-reumxj, 2px)";
|