@pitchfork-ui/react 0.2.0 → 0.7.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.
- package/dist/components/Accordion/Accordion.css +85 -0
- package/dist/components/Accordion/Accordion2.js +96 -0
- package/dist/components/Alert/Alert.css +29 -1
- package/dist/components/Alert/Alert2.js +4 -2
- package/dist/components/Avatar/Avatar.css +1 -1
- package/dist/components/BadgeGroup/BadgeGroup.css +4 -4
- package/dist/components/Button/Button.css +4 -4
- package/dist/components/ButtonGroup/ButtonGroup.css +2 -2
- package/dist/components/Carousel/Carousel.css +4 -2
- package/dist/components/Carousel/Carousel2.js +89 -76
- package/dist/components/CodeSnippet/CodeSnippet.css +2 -2
- package/dist/components/ContentDivider/ContentDivider.css +2 -2
- package/dist/components/DatePicker/DatePicker.css +1 -1
- package/dist/components/DatePicker/DatePicker2.js +3 -3
- package/dist/components/Dropdown/Dropdown.css +19 -2
- package/dist/components/Dropdown/Dropdown2.js +2 -3
- package/dist/components/GaugeChart/GaugeChart.css +18 -1
- package/dist/components/GaugeChart/GaugeChart2.js +5 -4
- package/dist/components/Heatmap/Heatmap.css +104 -0
- package/dist/components/Heatmap/Heatmap2.js +160 -0
- package/dist/components/InlineCTA/InlineCTA.css +58 -0
- package/dist/components/InlineCTA/InlineCTA2.js +14 -2
- package/dist/components/Modal/Modal.css +62 -0
- package/dist/components/Modal/Modal2.js +8 -6
- package/dist/components/MultiSelect/MultiSelect.css +19 -2
- package/dist/components/MultiSelect/MultiSelect2.js +3 -4
- package/dist/components/Notification/Notification.css +59 -4
- package/dist/components/Notification/Notification2.js +4 -2
- package/dist/components/Pagination/Pagination.css +5 -2
- package/dist/components/PieChart/PieChart.css +34 -0
- package/dist/components/PieChart/PieChart2.js +1 -1
- package/dist/components/ProgressIndicators/ProgressIndicators.css +20 -2
- package/dist/components/ProgressIndicators/ProgressIndicators2.js +4 -1
- package/dist/components/ProgressSteps/ProgressSteps.css +20 -3
- package/dist/components/RadarChart/RadarChart.css +22 -0
- package/dist/components/RadarChart/RadarChart2.js +19 -13
- package/dist/components/RichTextEditor/RichTextEditor.css +1 -1
- package/dist/components/Select/Select.css +21 -2
- package/dist/components/Select/Select2.js +3 -4
- package/dist/components/SidebarNavigation/SidebarNavigation.css +1 -1
- package/dist/components/SlideoutMenu/SlideoutMenu.css +2 -2
- package/dist/components/Sparkline/Sparkline.css +48 -0
- package/dist/components/Sparkline/Sparkline2.js +3 -2
- package/dist/components/Table/Table.css +4 -4
- package/dist/components/Tabs/Tabs.css +31 -5
- package/dist/components/Tabs/Tabs2.js +51 -4
- package/dist/components/Tag/Tag.css +1 -1
- package/dist/components/Tooltip/Tooltip.css +35 -0
- package/dist/components/Tooltip/Tooltip2.js +4 -4
- package/dist/components/TreeView/TreeView.css +2 -2
- package/dist/hooks/useExitAnimation.js +25 -0
- package/dist/hooks/usePresence.js +31 -0
- package/dist/index.cjs +834 -454
- package/dist/index.js +12 -8
- package/dist/src/components/Accordion/Accordion.d.ts +20 -0
- package/dist/src/components/Accordion/Accordion.test.d.ts +1 -0
- package/dist/src/components/Accordion/index.d.ts +1 -0
- package/dist/src/components/Heatmap/Heatmap.d.ts +28 -0
- package/dist/src/components/Heatmap/Heatmap.test.d.ts +1 -0
- package/dist/src/components/Heatmap/index.d.ts +1 -0
- package/dist/src/components/InlineCTA/InlineCTA.d.ts +2 -0
- package/dist/src/components/Sparkline/Sparkline.d.ts +2 -0
- package/dist/src/hooks/index.d.ts +2 -0
- package/dist/src/hooks/useExitAnimation.d.ts +18 -0
- package/dist/src/hooks/usePresence.d.ts +13 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/styles/theme.css +47 -13
- package/dist/styles.css +767 -66
- package/package.json +1 -1
- package/theme.starter.css +4 -3
package/dist/index.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import './styles/theme.css';/* empty css */
|
|
2
2
|
import { Keys, composeDescribedBy, getFocusableElements, isActivationKey } from "./a11y/index.js";
|
|
3
|
+
import { useAnchoredPosition } from "./hooks/useAnchoredPosition.js";
|
|
4
|
+
import { useComposedRefs } from "./hooks/useComposedRefs.js";
|
|
5
|
+
import { useControllableState } from "./hooks/useControllableState.js";
|
|
6
|
+
import { useDisclosure } from "./hooks/useDisclosure.js";
|
|
7
|
+
import { useExitAnimation } from "./hooks/useExitAnimation.js";
|
|
8
|
+
import { useFocusTrap } from "./hooks/useFocusTrap.js";
|
|
9
|
+
import { useListNavigation } from "./hooks/useListNavigation.js";
|
|
10
|
+
import { useOutsideInteraction } from "./hooks/useOutsideInteraction.js";
|
|
11
|
+
import { usePresence } from "./hooks/usePresence.js";
|
|
3
12
|
import { Icon, getAvailableIconNames, getCustomIconNames } from "./components/Icon/Icon2.js";
|
|
13
|
+
import { Accordion } from "./components/Accordion/Accordion2.js";
|
|
4
14
|
import { Alert } from "./components/Alert/Alert2.js";
|
|
5
15
|
import { Avatar } from "./components/Avatar/Avatar2.js";
|
|
6
16
|
import { Button } from "./components/Button/Button2.js";
|
|
@@ -12,13 +22,6 @@ import { Badge } from "./components/Badge/Badge2.js";
|
|
|
12
22
|
import { Card, CardContent, CardFooter, CardHeader } from "./components/Card/Card2.js";
|
|
13
23
|
import { CreditCard } from "./components/CreditCard/CreditCard2.js";
|
|
14
24
|
import { Checkbox } from "./components/Checkbox/Checkbox2.js";
|
|
15
|
-
import { useAnchoredPosition } from "./hooks/useAnchoredPosition.js";
|
|
16
|
-
import { useComposedRefs } from "./hooks/useComposedRefs.js";
|
|
17
|
-
import { useControllableState } from "./hooks/useControllableState.js";
|
|
18
|
-
import { useDisclosure } from "./hooks/useDisclosure.js";
|
|
19
|
-
import { useFocusTrap } from "./hooks/useFocusTrap.js";
|
|
20
|
-
import { useListNavigation } from "./hooks/useListNavigation.js";
|
|
21
|
-
import { useOutsideInteraction } from "./hooks/useOutsideInteraction.js";
|
|
22
25
|
import { Dropdown } from "./components/Dropdown/Dropdown2.js";
|
|
23
26
|
import { Calendar } from "./components/Calendar/Calendar2.js";
|
|
24
27
|
import { Carousel } from "./components/Carousel/Carousel2.js";
|
|
@@ -30,6 +33,7 @@ import { FileUploader } from "./components/FileUploader/FileUploader2.js";
|
|
|
30
33
|
import { HeaderNavigation } from "./components/HeaderNavigation/HeaderNavigation2.js";
|
|
31
34
|
import { InlineCTA } from "./components/InlineCTA/InlineCTA2.js";
|
|
32
35
|
import { GaugeChart } from "./components/GaugeChart/GaugeChart2.js";
|
|
36
|
+
import { Heatmap } from "./components/Heatmap/Heatmap2.js";
|
|
33
37
|
import { AreaChart, BarChart, LineChart } from "./components/LineBarCharts/LineBarChart2.js";
|
|
34
38
|
import { LoadingDots, LoadingSkeleton, LoadingSpinner } from "./components/LoadingIndicators/LoadingIndicators2.js";
|
|
35
39
|
import { MetricCard, MetricGrid } from "./components/Metrics/Metrics2.js";
|
|
@@ -62,4 +66,4 @@ import { Tooltip } from "./components/Tooltip/Tooltip2.js";
|
|
|
62
66
|
import { TreeView } from "./components/TreeView/TreeView2.js";
|
|
63
67
|
import { UtilityButton } from "./components/UtilityButton/UtilityButton2.js";
|
|
64
68
|
import { VideoPlayer } from "./components/VideoPlayer/VideoPlayer2.js";
|
|
65
|
-
export { Alert, AreaChart, Avatar, Badge, BadgeGroup, BarChart, Breadcrumbs, Button, ButtonGroup, Calendar, Card, CardContent, CardFooter, CardHeader, Carousel, Checkbox, CodeSnippet, ContentDivider, CreditCard, DatePicker, Dropdown, EmptyState, FileUploader, GaugeChart, HeaderNavigation, Icon, InlineCTA, Input, Keys, LineChart, LoadingDots, LoadingSkeleton, LoadingSpinner, MetricCard, MetricGrid, Modal, ModalBody, ModalFooter, ModalHeader, MultiSelect, Notification, NotificationStack, PageHeader, PageHeaderMeta, Pagination, PieChart, ProgressBar, ProgressCircle, ProgressSteps, RadarChart, RadioButton, RadioGroup, RatingBadge, RatingStars, RichTextEditor, SectionFooter, SectionHeader, Select, SidebarNavigation, SlideoutMenu, Slider, Sparkline, Switch, Table, Tabs, Tag, Textarea, Tooltip, TreeView, UtilityButton, VideoPlayer, composeDescribedBy, getAvailableIconNames, getCustomIconNames, getFocusableElements, isActivationKey, useAnchoredPosition, useComposedRefs, useControllableState, useDisclosure, useFocusTrap, useListNavigation, useOutsideInteraction };
|
|
69
|
+
export { Accordion, Alert, AreaChart, Avatar, Badge, BadgeGroup, BarChart, Breadcrumbs, Button, ButtonGroup, Calendar, Card, CardContent, CardFooter, CardHeader, Carousel, Checkbox, CodeSnippet, ContentDivider, CreditCard, DatePicker, Dropdown, EmptyState, FileUploader, GaugeChart, HeaderNavigation, Heatmap, Icon, InlineCTA, Input, Keys, LineChart, LoadingDots, LoadingSkeleton, LoadingSpinner, MetricCard, MetricGrid, Modal, ModalBody, ModalFooter, ModalHeader, MultiSelect, Notification, NotificationStack, PageHeader, PageHeaderMeta, Pagination, PieChart, ProgressBar, ProgressCircle, ProgressSteps, RadarChart, RadioButton, RadioGroup, RatingBadge, RatingStars, RichTextEditor, SectionFooter, SectionHeader, Select, SidebarNavigation, SlideoutMenu, Slider, Sparkline, Switch, Table, Tabs, Tag, Textarea, Tooltip, TreeView, UtilityButton, VideoPlayer, composeDescribedBy, getAvailableIconNames, getCustomIconNames, getFocusableElements, isActivationKey, useAnchoredPosition, useComposedRefs, useControllableState, useDisclosure, useExitAnimation, useFocusTrap, useListNavigation, useOutsideInteraction, usePresence };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type AccordionType = 'single' | 'multiple';
|
|
2
|
+
export interface AccordionItemData {
|
|
3
|
+
value: string;
|
|
4
|
+
title: React.ReactNode;
|
|
5
|
+
content: React.ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface AccordionProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
|
|
9
|
+
items: AccordionItemData[];
|
|
10
|
+
/** `single` collapses other panels when one opens; `multiple` allows many. Default `single`. */
|
|
11
|
+
type?: AccordionType;
|
|
12
|
+
/** Controlled list of expanded item values. */
|
|
13
|
+
value?: string[];
|
|
14
|
+
/** Initial expanded item values (uncontrolled). */
|
|
15
|
+
defaultValue?: string[];
|
|
16
|
+
onValueChange?: (value: string[]) => void;
|
|
17
|
+
/** Heading level for each item's header. Default 3. */
|
|
18
|
+
headingLevel?: 2 | 3 | 4 | 5 | 6;
|
|
19
|
+
}
|
|
20
|
+
export declare const Accordion: import('react').ForwardRefExoticComponent<AccordionProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Accordion';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface HeatmapDatum {
|
|
2
|
+
/** ISO date string, `YYYY-MM-DD` */
|
|
3
|
+
date: string;
|
|
4
|
+
value: number;
|
|
5
|
+
}
|
|
6
|
+
export interface HeatmapProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
data: HeatmapDatum[];
|
|
8
|
+
/** First day to render (ISO). Defaults to the earliest date in `data`. */
|
|
9
|
+
startDate?: string;
|
|
10
|
+
/** Last day to render (ISO). Defaults to the latest date in `data`. */
|
|
11
|
+
endDate?: string;
|
|
12
|
+
/** Number of color buckets including the empty level. Defaults to 5. */
|
|
13
|
+
levels?: number;
|
|
14
|
+
/** 0 = Sunday, 1 = Monday. Defaults to 0. */
|
|
15
|
+
weekStartsOn?: 0 | 1;
|
|
16
|
+
/** Cell edge length in pixels. Defaults to 12. */
|
|
17
|
+
cellSize?: number;
|
|
18
|
+
/** Gap between cells in pixels. Defaults to 3. */
|
|
19
|
+
cellGap?: number;
|
|
20
|
+
showWeekdayLabels?: boolean;
|
|
21
|
+
showMonthLabels?: boolean;
|
|
22
|
+
/** Formats the native tooltip on each cell. */
|
|
23
|
+
valueFormatter?: (value: number, date: string) => string;
|
|
24
|
+
/** Accessible summary. Defaults to a generated description. */
|
|
25
|
+
label?: string;
|
|
26
|
+
emptyLabel?: React.ReactNode;
|
|
27
|
+
}
|
|
28
|
+
export declare const Heatmap: import('react').ForwardRefExoticComponent<HeatmapProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Heatmap';
|
|
@@ -7,5 +7,7 @@ export interface InlineCTAProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
7
7
|
icon?: React.ReactNode;
|
|
8
8
|
iconName?: IconName;
|
|
9
9
|
tone?: InlineCTATone;
|
|
10
|
+
dismissible?: boolean;
|
|
11
|
+
onDismiss?: () => void;
|
|
10
12
|
}
|
|
11
13
|
export declare const InlineCTA: import('react').ForwardRefExoticComponent<InlineCTAProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -9,6 +9,8 @@ export interface SparklineProps extends React.HTMLAttributes<SVGSVGElement> {
|
|
|
9
9
|
color?: string;
|
|
10
10
|
/** Show a dot at the last data point */
|
|
11
11
|
endDot?: boolean;
|
|
12
|
+
/** Animate the line drawing in (and area fading in) on mount. Off by default. */
|
|
13
|
+
animate?: boolean;
|
|
12
14
|
/** Accessible label for screen readers */
|
|
13
15
|
label?: string;
|
|
14
16
|
}
|
|
@@ -2,6 +2,8 @@ export * from './useAnchoredPosition';
|
|
|
2
2
|
export * from './useComposedRefs';
|
|
3
3
|
export * from './useControllableState';
|
|
4
4
|
export * from './useDisclosure';
|
|
5
|
+
export * from './useExitAnimation';
|
|
5
6
|
export * from './useFocusTrap';
|
|
6
7
|
export * from './useListNavigation';
|
|
7
8
|
export * from './useOutsideInteraction';
|
|
9
|
+
export * from './usePresence';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface UseExitAnimationOptions {
|
|
2
|
+
/** Called once the exit animation has finished (or immediately if reduced motion). */
|
|
3
|
+
onExited?: () => void;
|
|
4
|
+
/** Exit animation duration in ms. Should match the CSS animation duration. Defaults to 220. */
|
|
5
|
+
duration?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface UseExitAnimation {
|
|
8
|
+
/** True while the exit animation is playing — apply your `--exiting` class. */
|
|
9
|
+
isExiting: boolean;
|
|
10
|
+
/** Trigger the exit: plays the animation, then calls `onExited`. */
|
|
11
|
+
startExit: () => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Plays an exit animation before signalling removal. Apply `isExiting` to a CSS
|
|
15
|
+
* class that runs the exit keyframes; `onExited` fires after `duration`. When the
|
|
16
|
+
* user prefers reduced motion, `onExited` fires immediately with no animation.
|
|
17
|
+
*/
|
|
18
|
+
export declare function useExitAnimation({ onExited, duration, }?: UseExitAnimationOptions): UseExitAnimation;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface UsePresence {
|
|
2
|
+
/** Whether the element should be rendered (true while open and while exiting). */
|
|
3
|
+
isMounted: boolean;
|
|
4
|
+
/** True while the exit animation is playing — apply your `--exiting` class. */
|
|
5
|
+
isExiting: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Keeps a conditionally-rendered element mounted long enough to play an exit
|
|
9
|
+
* animation. Drive it with the `present` prop (e.g. a Modal's `open`): when it
|
|
10
|
+
* flips to false, the element stays mounted with `isExiting` true for `duration`
|
|
11
|
+
* ms, then unmounts. Reduced motion unmounts immediately.
|
|
12
|
+
*/
|
|
13
|
+
export declare function usePresence(present: boolean, duration?: number): UsePresence;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './a11y';
|
|
2
|
+
export * from './components/Accordion';
|
|
2
3
|
export * from './components/Alert';
|
|
3
4
|
export * from './components/Avatar';
|
|
4
5
|
export * from './components/Button';
|
|
@@ -22,6 +23,7 @@ export * from './components/HeaderNavigation';
|
|
|
22
23
|
export * from './components/Icon';
|
|
23
24
|
export * from './components/InlineCTA';
|
|
24
25
|
export * from './components/GaugeChart';
|
|
26
|
+
export * from './components/Heatmap';
|
|
25
27
|
export * from './components/LineBarCharts';
|
|
26
28
|
export * from './components/LoadingIndicators';
|
|
27
29
|
export * from './components/Metrics';
|
package/dist/styles/theme.css
CHANGED
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
--color-gray-700: #334155;
|
|
16
16
|
--color-gray-800: #1e293b;
|
|
17
17
|
--color-gray-900: #0f172a;
|
|
18
|
-
--color-brand-50: #
|
|
19
|
-
--color-brand-100: #
|
|
20
|
-
--color-brand-200: #
|
|
21
|
-
--color-brand-300: #
|
|
22
|
-
--color-brand-400: #
|
|
23
|
-
--color-brand-500: #
|
|
24
|
-
--color-brand-600: #
|
|
25
|
-
--color-brand-700: #
|
|
26
|
-
--color-brand-800: #
|
|
27
|
-
--color-brand-900: #
|
|
18
|
+
--color-brand-50: #eef2ff;
|
|
19
|
+
--color-brand-100: #e0e7ff;
|
|
20
|
+
--color-brand-200: #c7d2fe;
|
|
21
|
+
--color-brand-300: #a5b4fc;
|
|
22
|
+
--color-brand-400: #818cf8;
|
|
23
|
+
--color-brand-500: #6366f1;
|
|
24
|
+
--color-brand-600: #4f46e5;
|
|
25
|
+
--color-brand-700: #4338ca;
|
|
26
|
+
--color-brand-800: #3730a3;
|
|
27
|
+
--color-brand-900: #312e81;
|
|
28
28
|
--color-success-50: #ecfdf3;
|
|
29
29
|
--color-success-100: #d1fadf;
|
|
30
30
|
--color-success-200: #a6f4c5;
|
|
@@ -55,6 +55,12 @@
|
|
|
55
55
|
--color-danger-700: #b42318;
|
|
56
56
|
--color-danger-800: #912018;
|
|
57
57
|
--color-danger-900: #7a271a;
|
|
58
|
+
--duration-fast: 120ms;
|
|
59
|
+
--duration-moderate: 180ms;
|
|
60
|
+
--duration-slow: 280ms;
|
|
61
|
+
--easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
|
|
62
|
+
--easing-decelerate: cubic-bezier(0, 0, 0.2, 1);
|
|
63
|
+
--easing-accelerate: cubic-bezier(0.4, 0, 1, 1);
|
|
58
64
|
--shadow-sm: 0 1px 2px rgb(15 23 42 / 0.08);
|
|
59
65
|
--shadow-md: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
60
66
|
--shadow-lg: 0 18px 48px rgb(15 23 42 / 0.16);
|
|
@@ -85,7 +91,7 @@
|
|
|
85
91
|
--size-icon-sm: 1rem;
|
|
86
92
|
--size-icon-md: 1.25rem;
|
|
87
93
|
--size-icon-lg: 1.5rem;
|
|
88
|
-
--font-family-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
94
|
+
--font-family-sans: Geist, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
89
95
|
--font-size-2xs: 0.6875rem;
|
|
90
96
|
--font-size-xs: 0.75rem;
|
|
91
97
|
--font-size-sm: 0.875rem;
|
|
@@ -148,8 +154,13 @@
|
|
|
148
154
|
--pf-focus-ring: 0 0 0 var(--pf-focus-ring-width)
|
|
149
155
|
color-mix(in srgb, var(--pf-focus-ring-color) 35%, transparent);
|
|
150
156
|
--pf-focus-outline: var(--pf-focus-ring-width) solid var(--pf-focus-ring-color);
|
|
151
|
-
--
|
|
152
|
-
--pf-transition-
|
|
157
|
+
/* Motion — durations and easings come from Style Dictionary (--duration-*, --easing-*) */
|
|
158
|
+
--pf-transition-fast: var(--duration-fast) var(--easing-standard);
|
|
159
|
+
--pf-transition-medium: var(--duration-moderate) var(--easing-standard);
|
|
160
|
+
--pf-transition-slow: var(--duration-slow) var(--easing-standard);
|
|
161
|
+
/* Directional easings for enter/exit animations */
|
|
162
|
+
--pf-transition-enter: var(--duration-moderate) var(--easing-decelerate);
|
|
163
|
+
--pf-transition-exit: var(--duration-fast) var(--easing-accelerate);
|
|
153
164
|
|
|
154
165
|
/* Control aliases */
|
|
155
166
|
--pf-control-height-sm: var(--size-control-sm, 36px);
|
|
@@ -361,6 +372,19 @@
|
|
|
361
372
|
--pf-utility-btn-danger-text: var(--color-semantic-status-danger-foreground);
|
|
362
373
|
--pf-utility-btn-danger-bg-hover: var(--color-danger-100);
|
|
363
374
|
|
|
375
|
+
/* Accordion aliases */
|
|
376
|
+
--pf-accordion-border: var(--color-semantic-border-default);
|
|
377
|
+
--pf-accordion-trigger-text: var(--color-semantic-text-default);
|
|
378
|
+
--pf-accordion-trigger-bg-hover: var(--color-semantic-background-subtle);
|
|
379
|
+
--pf-accordion-icon: var(--color-semantic-text-muted);
|
|
380
|
+
--pf-accordion-content-text: var(--color-semantic-text-muted);
|
|
381
|
+
|
|
382
|
+
/* Heatmap aliases */
|
|
383
|
+
--pf-heatmap-color: var(--color-semantic-action-primary);
|
|
384
|
+
--pf-heatmap-empty: var(--color-semantic-background-subtle);
|
|
385
|
+
--pf-heatmap-label-color: var(--color-semantic-text-muted);
|
|
386
|
+
--pf-heatmap-cell-radius: var(--radius-sm);
|
|
387
|
+
|
|
364
388
|
/* GaugeChart aliases */
|
|
365
389
|
--pf-gauge-color: var(--color-semantic-action-primary);
|
|
366
390
|
--pf-gauge-track-color: var(--color-semantic-background-subtle);
|
|
@@ -400,6 +424,9 @@
|
|
|
400
424
|
--pf-notification-text: var(--color-semantic-text-default);
|
|
401
425
|
--pf-notification-text-muted: var(--color-semantic-text-muted);
|
|
402
426
|
--pf-notification-bg-subtle: var(--color-semantic-background-subtle);
|
|
427
|
+
/* Surface the variant tints blend toward; white in light, a dark raised
|
|
428
|
+
surface in dark so cards stay dark and text keeps contrast. */
|
|
429
|
+
--pf-notification-mix-base: var(--color-base-white);
|
|
403
430
|
--pf-notification-info-bg: var(--color-brand-50);
|
|
404
431
|
--pf-notification-info-border: var(--color-brand-300);
|
|
405
432
|
--pf-notification-info-icon: var(--color-brand-700);
|
|
@@ -697,6 +724,7 @@
|
|
|
697
724
|
--color-semantic-status-danger-bright: var(--color-danger-400);
|
|
698
725
|
|
|
699
726
|
/* Info state overrides — light brand colors (brand-50/100/300) are invisible on dark surfaces */
|
|
727
|
+
--pf-notification-mix-base: var(--color-semantic-background-raised);
|
|
700
728
|
--pf-notification-info-bg: var(--color-brand-900);
|
|
701
729
|
--pf-notification-info-border: var(--color-brand-700);
|
|
702
730
|
--pf-notification-info-icon: var(--color-brand-300);
|
|
@@ -735,6 +763,12 @@
|
|
|
735
763
|
/* GaugeChart — track uses background-subtle (gray-700) which is 1.72:1 against gray-900 */
|
|
736
764
|
--pf-gauge-track-color: var(--color-semantic-border-strong);
|
|
737
765
|
|
|
766
|
+
/* ProgressSteps — semantic success bg shades flip in dark mode, so the marker
|
|
767
|
+
numbers need opposite text colors to keep ≥4.5:1.
|
|
768
|
+
complete: white on success-700 = 5.4:1; current: success-900 on success-300 = 6.4:1 */
|
|
769
|
+
--pf-progress-steps-complete-text: var(--color-base-white);
|
|
770
|
+
--pf-progress-steps-current-text: var(--color-success-900);
|
|
771
|
+
|
|
738
772
|
/* TreeView — border-default (gray-700) is 1.73:1 against gray-900, fails WCAG non-text contrast.
|
|
739
773
|
border-strong (gray-500) gives 3.75:1. */
|
|
740
774
|
--pf-treeview-border: var(--color-semantic-border-strong);
|