@pantheon-systems/pds-toolkit-react 2.0.0-alpha.53 → 2.0.0-alpha.55

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 (37) hide show
  1. package/codemods/v1-to-v2/mappings.json +25 -1
  2. package/dist/components/buttons/FilterButton/FilterButton.d.ts +15 -5
  3. package/dist/components/cards/ActionCard/ActionCard.d.ts +2 -2
  4. package/dist/components/cards/Card/Card.d.ts +1 -2
  5. package/dist/components/cards/CardSelect/CardSelect.d.ts +17 -5
  6. package/dist/components/charts/shared/ChartLegend.d.ts +7 -1
  7. package/dist/components/charts/shared/chart-styles.d.ts +1 -1
  8. package/dist/components/icons/Icon/generated-icon-data.d.ts +1 -1
  9. package/dist/components/inputs/TextInput/TextInput.d.ts +2 -2
  10. package/dist/components/inputs/TimeInput/TimeInput.d.ts +94 -0
  11. package/dist/css/component-css/pds-action-card.css +1 -1
  12. package/dist/css/component-css/pds-button.css +4 -4
  13. package/dist/css/component-css/pds-card-select.css +2 -2
  14. package/dist/css/component-css/pds-card.css +1 -1
  15. package/dist/css/component-css/pds-chart-legend.css +1 -1
  16. package/dist/css/component-css/pds-code-block.css +1 -1
  17. package/dist/css/component-css/pds-comparison-list.css +1 -1
  18. package/dist/css/component-css/pds-index.css +9 -9
  19. package/dist/css/component-css/pds-input-utilities.css +1 -1
  20. package/dist/css/component-css/pds-pie-chart.css +1 -1
  21. package/dist/css/component-css/pds-side-nav-global.css +1 -1
  22. package/dist/css/component-css/pds-time-input.css +1 -0
  23. package/dist/css/design-tokens/variables.dark.css +7 -6
  24. package/dist/css/design-tokens/variables.global.css +2 -2
  25. package/dist/css/design-tokens/variables.light.css +42 -41
  26. package/dist/css/layout-css/pds-app-layout.css +1 -1
  27. package/dist/css/layout-css/pds-index.css +1 -1
  28. package/dist/css/pds-components.css +9 -9
  29. package/dist/css/pds-core.css +1 -1
  30. package/dist/css/pds-layouts.css +1 -1
  31. package/dist/index.css +1 -1
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.js +1040 -906
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.source.d.ts +1 -0
  36. package/dist/libs/types/layout-types.d.ts +1 -0
  37. package/package.json +5 -2
@@ -324,6 +324,30 @@
324
324
  "description": "New padding prop controls each card's content padding: 'condensed' | 'standard' (default) | 'spacious', matching Card and ActionCard.",
325
325
  "usage": "Use padding='condensed' for denser card grids such as the site selection cards."
326
326
  },
327
+ {
328
+ "component": "Card",
329
+ "prop": "background",
330
+ "description": "background gained a 'secondary' option, alongside the existing 'default' and 'transparent'. It fills the card with the secondary surface token (--pds-color-surface-default-secondary).",
331
+ "usage": "Use background='secondary' to set a card apart from default-surface cards on the same page."
332
+ },
333
+ {
334
+ "component": "ActionCard",
335
+ "prop": "background",
336
+ "description": "background gained a 'secondary' option, alongside the existing 'default' and 'transparent'. It fills the card with the secondary surface token (--pds-color-surface-default-secondary).",
337
+ "usage": "Use background='secondary' to set a card apart from default-surface cards on the same page."
338
+ },
339
+ {
340
+ "component": "CardSelect",
341
+ "prop": "background",
342
+ "description": "New background prop ('default' | 'secondary' | 'transparent') sets each card's surface fill, matching Card and ActionCard.",
343
+ "usage": "Use background='secondary' or 'transparent' when the cards sit on a surface that needs contrast from the default card background."
344
+ },
345
+ {
346
+ "component": "CardSelect",
347
+ "prop": "showCardLabels",
348
+ "description": "New showCardLabels prop (boolean, default true) controls the per-card label text. When false, each card's label is visually hidden but stays in the DOM as the accessible name for its radio input (still required) — for cards that compose their own visible titles. labelDisplay now controls only the group legend.",
349
+ "usage": "Set showCardLabels={false} when each card provides its own visible title, as in the Site Selection Cards pattern."
350
+ },
327
351
  {
328
352
  "component": "Button",
329
353
  "prop": "isLoading",
@@ -649,7 +673,7 @@
649
673
  "yellow-gradient"
650
674
  ],
651
675
  "replacement": "No direct replacement. Remove the prop or use background='default'.",
652
- "reason": "Gradient background options removed from Card in v2. Only 'default' and 'transparent' are supported."
676
+ "reason": "Gradient background options removed from Card in v2. Only 'default', 'secondary', and 'transparent' are supported."
653
677
  },
654
678
  {
655
679
  "component": "Button",
@@ -69,14 +69,24 @@ export interface FilterButtonProps {
69
69
  * Currently selected option values (controlled).
70
70
  */
71
71
  selectedValues: string[];
72
+ /**
73
+ * Restrict the filter to one option at a time. Choosing an option replaces
74
+ * the current selection and closes the panel; choosing the selected option
75
+ * again clears it.
76
+ */
77
+ singleSelect?: boolean;
72
78
  }
73
79
  /**
74
- * FilterButton — a multiselect filter with a stateful trigger, designed to sit
75
- * in a UtilityBar above a Table. Composes the Dropdown compound component
76
- * (checkbox items + a search row + a Clear footer) behind a trigger with three
77
- * states: default, single selection, and multiple selections (with a count).
80
+ * FilterButton — a filter control with a stateful trigger, designed to sit in a
81
+ * UtilityBar above a Table. Composes the Dropdown compound component (a search
82
+ * row + a Clear footer behind a trigger) with three trigger states: default,
83
+ * single selection, and multiple selections (with a count).
84
+ *
85
+ * Multiselect by default: options are checkbox items and any number can be
86
+ * active at once. Set `singleSelect` to restrict the filter to one option at a
87
+ * time — options then render as radio items with a check mark.
78
88
  *
79
89
  * Selection is controlled: pass `selectedValues` and handle `onSelectionChange`.
80
90
  * The consuming app owns filtering the data with those values.
81
91
  */
82
- export declare const FilterButton: ({ className, clearLabel, disabled, filterKey, id, minFilterItems, noResultsText, onSelectionChange, options, searchLabel, searchPlaceholder, selectedValues, }: FilterButtonProps) => import("react/jsx-runtime").JSX.Element;
92
+ export declare const FilterButton: ({ className, clearLabel, disabled, filterKey, id, minFilterItems, noResultsText, onSelectionChange, options, searchLabel, searchPlaceholder, selectedValues, singleSelect, }: FilterButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react';
2
- import { CardPaddingScale } from '../../../libs/types/layout-types';
3
- import { CardBackground, CardImageVariant } from '../../cards/Card/Card';
2
+ import { CardBackground, CardPaddingScale } from '../../../libs/types/layout-types';
3
+ import { CardImageVariant } from '../../cards/Card/Card';
4
4
  import './action-card.css';
5
5
  export interface ActionCardPrimaryAction {
6
6
  /**
@@ -1,7 +1,6 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- import { CardPaddingScale } from '../../../libs/types/layout-types';
2
+ import { CardBackground, CardPaddingScale } from '../../../libs/types/layout-types';
3
3
  import './card.css';
4
- export type CardBackground = 'default' | 'transparent';
5
4
  export type CardImageVariant = 'bleed' | 'inset';
6
5
  /**
7
6
  * Prop types for Card
@@ -1,5 +1,5 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- import { CardPaddingScale } from '../../../libs/types/layout-types';
2
+ import { CardBackground, CardPaddingScale } from '../../../libs/types/layout-types';
3
3
  import './card-select.css';
4
4
  export interface CardOption {
5
5
  /**
@@ -25,6 +25,11 @@ export interface CardOption {
25
25
  export type CardSelectSize = 'm' | 'l';
26
26
  export type CardSelectImageVariant = 'bleed' | 'inset';
27
27
  export interface CardSelectProps extends Omit<ComponentPropsWithoutRef<'fieldset'>, 'onChange'> {
28
+ /**
29
+ * Background fill for each card. `default` uses the card surface, `secondary`
30
+ * the secondary surface, and `transparent` removes the fill.
31
+ */
32
+ background?: CardBackground;
28
33
  /**
29
34
  * Additional class names
30
35
  */
@@ -48,9 +53,9 @@ export interface CardSelectProps extends Omit<ComponentPropsWithoutRef<'fieldset
48
53
  */
49
54
  label: string;
50
55
  /**
51
- * Display of the group legend and per-card labels. `hidden` visually hides them
52
- * (legend and each card's label text) but keeps them accessible to screen
53
- * readers — use it when the cards compose their own visible titles.
56
+ * Display of the group legend (the `label`). `hidden` visually hides the legend
57
+ * but keeps it accessible to screen readers. Does not affect the per-card
58
+ * labels — use `showCardLabels` for those.
54
59
  */
55
60
  labelDisplay?: 'left' | 'center' | 'hidden';
56
61
  /**
@@ -70,6 +75,13 @@ export interface CardSelectProps extends Omit<ComponentPropsWithoutRef<'fieldset
70
75
  * Relative padding for each card's content area.
71
76
  */
72
77
  padding?: CardPaddingScale;
78
+ /**
79
+ * Show each card's own label text. When `false`, every card's `label` is
80
+ * visually hidden but stays in the DOM as the accessible name for its radio
81
+ * input (still required) — use it when the cards compose their own visible
82
+ * titles. Defaults to `true`.
83
+ */
84
+ showCardLabels?: boolean;
73
85
  /**
74
86
  * Show the radio-style selection indicator (the circle / check dot) on each
75
87
  * card. When `false`, the indicator is hidden and the selected card is shown
@@ -85,4 +97,4 @@ export interface CardSelectProps extends Omit<ComponentPropsWithoutRef<'fieldset
85
97
  /**
86
98
  * CardSelect UI component
87
99
  */
88
- export declare const CardSelect: ({ className, defaultValue, id, imageVariant, label, labelDisplay, layout, onChange, options, padding, showIndicator, size, ...props }: CardSelectProps) => import("react/jsx-runtime").JSX.Element;
100
+ export declare const CardSelect: ({ background, className, defaultValue, id, imageVariant, label, labelDisplay, layout, onChange, options, padding, showCardLabels, showIndicator, size, ...props }: CardSelectProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,6 +2,12 @@ import type { ChartDataPoint, SeriesConfig } from './types';
2
2
  import './chart-legend.css';
3
3
  export type LegendVariant = 'inline' | 'table';
4
4
  interface ChartLegendProps {
5
+ /**
6
+ * Hides the legend table from assistive technology. Set this when an
7
+ * accessible data table already discloses the same data, making the
8
+ * visible legend table purely a sighted-user convenience.
9
+ */
10
+ ariaHidden?: boolean;
5
11
  /** Chart data — used to calculate totals for table variant */
6
12
  data?: ChartDataPoint[];
7
13
  /** Series definitions */
@@ -21,5 +27,5 @@ interface ChartLegendProps {
21
27
  * Renders a chart legend in either inline (horizontal list) or
22
28
  * table (rows with totals) format.
23
29
  */
24
- export declare const ChartLegend: ({ data, series, seriesColors, tableHeader, valueFormatter, variant, }: ChartLegendProps) => import("react/jsx-runtime").JSX.Element;
30
+ export declare const ChartLegend: ({ ariaHidden, data, series, seriesColors, tableHeader, valueFormatter, variant, }: ChartLegendProps) => import("react/jsx-runtime").JSX.Element;
25
31
  export {};
@@ -21,4 +21,4 @@ export declare const gridStroke = "var(--pds-color-border-default)";
21
21
  * rather than a border — see the dataviz "surface gap" spec.
22
22
  */
23
23
  export declare const stackedSegmentGapStroke = "var(--pds-color-surface-default)";
24
- export declare const stackedSegmentGapWidth = 2;
24
+ export declare const stackedSegmentGapWidth = 1;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generated by: npm run generate:icon-data
5
5
  * Source: icon-registry.ts + Font Awesome packages + custom-icons.tsx
6
- * Generated: 2026-07-28T15:46:28.032Z
6
+ * Generated: 2026-07-30T19:27:34.322Z
7
7
  */
8
8
  import { customIcons } from './custom-icons';
9
9
  export { customIcons };
@@ -9,7 +9,7 @@ type LabelStrings = {
9
9
  visibilityToggleHide: string;
10
10
  visibilityToggleShow: string;
11
11
  };
12
- type HtmlInputTypes = 'text' | 'number' | 'email' | 'password' | 'tel' | 'url' | 'search';
12
+ type HtmlInputTypes = 'text' | 'number' | 'email' | 'password' | 'tel' | 'time' | 'url' | 'search';
13
13
  /**
14
14
  * Prop types for TextInput
15
15
  */
@@ -120,7 +120,7 @@ export interface TextInputProps extends ComponentPropsWithoutRef<'div'> {
120
120
  */
121
121
  translationStrings?: LabelStrings;
122
122
  /**
123
- * Type of input field to use.
123
+ * Type of input field to use. For `time`, prefer the TimeInput component when possible — it offers segmented entry, 12/24-hour display, and timezone support. Use TextInput's native `time` type only as a lightweight fallback where that complexity isn't warranted; note it renders with browser-native time picker UI that isn't fully styleable to match PDS.
124
124
  */
125
125
  type?: HtmlInputTypes;
126
126
  /**
@@ -0,0 +1,94 @@
1
+ import { ReactNode } from 'react';
2
+ import { CalendarDate } from '@internationalized/date';
3
+ import { ValidationStatus } from '../../../libs/types/input-types';
4
+ import './time-input.css';
5
+ export type TimeInputSize = 's' | 'm';
6
+ /**
7
+ * Prop types for TimeInput
8
+ */
9
+ export interface TimeInputProps {
10
+ /**
11
+ * Anchor calendar date used for DST-safe conversion math when `timeZone` changes. Defaults to today (in the previous timezone) if omitted — correct for the vast majority of scheduling UIs. Pass a real date (e.g. from Datepicker's selection) for full precision on/near DST transition dates.
12
+ */
13
+ anchorDate?: CalendarDate;
14
+ /**
15
+ * Additional class names
16
+ */
17
+ className?: string;
18
+ /**
19
+ * Optional default value for the field, as a 24-hour "HH:MM" string (e.g. "14:30"). Setting this prop automatically makes the input uncontrolled. Cannot be used in conjunction with the `value` prop.
20
+ */
21
+ defaultValue?: string;
22
+ /**
23
+ * Is the field disabled?
24
+ */
25
+ disabled?: boolean;
26
+ /**
27
+ * Hour format. `12` displays hour + AM/PM (e.g. "12:30 PM"); `24` displays a 24-hour hour segment with no AM/PM (e.g. "13:30").
28
+ */
29
+ hourCycle?: 12 | 24;
30
+ /**
31
+ * Input ID.
32
+ */
33
+ id: string;
34
+ /**
35
+ * Width of the input field in pixels. When omitted, the input fills its container.
36
+ */
37
+ inputWidth?: number;
38
+ /**
39
+ * Input label.
40
+ */
41
+ label: string;
42
+ /**
43
+ * Input message. Used to provide supplemental text. Will be displayed below the input field.
44
+ */
45
+ message?: string | ReactNode;
46
+ /**
47
+ * onBlur event handler. Fires when focus leaves the field entirely (not when it moves between segments).
48
+ */
49
+ onBlur?: () => void;
50
+ /**
51
+ * onChange event handler, called with a 24-hour "HH:MM" string whenever a complete time is entered. Controlled inputs should use this to manage the input value.
52
+ */
53
+ onChange?: (value: string) => void;
54
+ /**
55
+ * onFocus event handler. Fires when focus enters the field.
56
+ */
57
+ onFocus?: () => void;
58
+ /**
59
+ * Is this field required?
60
+ */
61
+ required?: boolean;
62
+ /**
63
+ * Should the label be visible? If false, it will render for screen readers only.
64
+ */
65
+ showLabel?: boolean;
66
+ /**
67
+ * Input size.
68
+ */
69
+ size?: TimeInputSize;
70
+ /**
71
+ * IANA timezone identifier (e.g. "America/Los_Angeles", "UTC"). Drives the auto-derived display label (e.g. "PDT") and, when this prop changes, converts the current value into the new zone using `@internationalized/date` — a real, DST-safe conversion, not just a relabel.
72
+ */
73
+ timeZone?: string;
74
+ /**
75
+ * Optional tooltip text to display additional information.
76
+ */
77
+ tooltipText?: string | null;
78
+ /**
79
+ * Validation message for the input field based on the validation status.
80
+ */
81
+ validationMessage?: string;
82
+ /**
83
+ * Validation status of the input field.
84
+ */
85
+ validationStatus?: ValidationStatus;
86
+ /**
87
+ * Value of the input field, as a 24-hour "HH:MM" string (e.g. "14:30"). Used to set the value of the input field when controlled. Cannot be used in conjunction with the `defaultValue` prop.
88
+ */
89
+ value?: string;
90
+ }
91
+ /**
92
+ * TimeInput UI component
93
+ */
94
+ export declare const TimeInput: ({ anchorDate, className, defaultValue, disabled, hourCycle, id, inputWidth, label, message, onBlur, onChange, onFocus, required, showLabel, size, timeZone, tooltipText, validationMessage, validationStatus, value, }: TimeInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- @layer pds-v1, pds-v2;@layer pds-v2{.pds-action-card{background-color:var(--pds-color-card-background);border-radius:var(--pds-border-radius-card);box-shadow:var(--pds-elevation-raised);color:var(--pds-color-foreground-default);cursor:pointer;display:flex;flex-direction:column;height:100%;position:relative}.pds-action-card:hover{box-shadow:var(--pds-elevation-overlay)}.pds-action-card__primary{background:transparent;border:none;border-radius:inherit;font:inherit;inset:0;padding:0;position:absolute;z-index:0}.pds-action-card__primary:focus-visible{outline:none}.pds-action-card__primary:focus-visible~.pds-action-card__inner:after{border:var(--pds-border-width-outline) solid var(--pds-color-interactive-focus);border-radius:var(--pds-border-radius-card);content:"";inset:0;pointer-events:none;position:absolute;transition:var(--pds-animation-transition-button)}.pds-action-card__inner{display:flex;flex-direction:column;flex-grow:1;pointer-events:none;position:relative;z-index:1}.pds-action-card__inner [role=button],.pds-action-card__inner [tabindex],.pds-action-card__inner a,.pds-action-card__inner button,.pds-action-card__inner input,.pds-action-card__inner select,.pds-action-card__inner textarea{pointer-events:auto}.pds-action-card__image{border-radius:var(--pds-border-radius-card) var(--pds-border-radius-card) 0 0;display:block;overflow:hidden}.pds-action-card__image img{display:block;object-fit:cover;object-position:top;width:100%}.pds-action-card__main{flex-grow:1;padding:var(--pds-spacing-l) var(--pds-spacing-xl)}.pds-action-card__footer{padding:0 var(--pds-spacing-xl) var(--pds-spacing-l)}.pds-action-card--transparent{background-color:transparent}.pds-action-card--image-inset .pds-action-card__image{border-radius:var(--pds-border-radius-card);margin:var(--pds-spacing-m) var(--pds-spacing-m) 0;overflow:hidden;width:auto}.pds-action-card--pad-condensed .pds-action-card__main{padding:var(--pds-spacing-m)}.pds-action-card--pad-condensed .pds-action-card__footer{padding:0 var(--pds-spacing-m) var(--pds-spacing-m)}.pds-action-card--pad-spacious .pds-action-card__main{padding:var(--pds-spacing-xl) var(--pds-spacing-2xl)}.pds-action-card--pad-spacious .pds-action-card__footer{padding:0 var(--pds-spacing-2xl) var(--pds-spacing-xl)}}
1
+ @layer pds-v1, pds-v2;@layer pds-v2{.pds-action-card{background-color:var(--pds-color-card-background);border-radius:var(--pds-border-radius-card);box-shadow:var(--pds-elevation-raised);color:var(--pds-color-foreground-default);cursor:pointer;display:flex;flex-direction:column;height:100%;position:relative}.pds-action-card:hover{box-shadow:var(--pds-elevation-overlay)}.pds-action-card__primary{background:transparent;border:none;border-radius:inherit;font:inherit;inset:0;padding:0;position:absolute;z-index:0}.pds-action-card__primary:focus-visible{outline:none}.pds-action-card__primary:focus-visible~.pds-action-card__inner:after{border:var(--pds-border-width-outline) solid var(--pds-color-interactive-focus);border-radius:var(--pds-border-radius-card);content:"";inset:0;pointer-events:none;position:absolute;transition:var(--pds-animation-transition-button)}.pds-action-card__inner{display:flex;flex-direction:column;flex-grow:1;pointer-events:none;position:relative;z-index:1}.pds-action-card__inner [role=button],.pds-action-card__inner [tabindex],.pds-action-card__inner a,.pds-action-card__inner button,.pds-action-card__inner input,.pds-action-card__inner select,.pds-action-card__inner textarea{pointer-events:auto}.pds-action-card__image{border-radius:var(--pds-border-radius-card) var(--pds-border-radius-card) 0 0;display:block;overflow:hidden}.pds-action-card__image img{display:block;object-fit:cover;object-position:top;width:100%}.pds-action-card__main{flex-grow:1;padding:var(--pds-spacing-l) var(--pds-spacing-xl)}.pds-action-card__footer{padding:0 var(--pds-spacing-xl) var(--pds-spacing-l)}.pds-action-card--secondary{background-color:var(--pds-color-surface-default-secondary)}.pds-action-card--transparent{background-color:transparent}.pds-action-card--image-inset .pds-action-card__image{border-radius:var(--pds-border-radius-card);margin:var(--pds-spacing-m) var(--pds-spacing-m) 0;overflow:hidden;width:auto}.pds-action-card--pad-condensed .pds-action-card__main{padding:var(--pds-spacing-m)}.pds-action-card--pad-condensed .pds-action-card__footer{padding:0 var(--pds-spacing-m) var(--pds-spacing-m)}.pds-action-card--pad-spacious .pds-action-card__main{padding:var(--pds-spacing-xl) var(--pds-spacing-2xl)}.pds-action-card--pad-spacious .pds-action-card__footer{padding:0 var(--pds-spacing-2xl) var(--pds-spacing-xl)}}
@@ -46,13 +46,13 @@
46
46
  --pds-color-button-brand-background-hover
47
47
  );--button-background-color-active:var(
48
48
  --pds-color-button-brand-background-active
49
- );--button-box-shadow-active:var(--pds-elevation-button-brand-active);--button-foreground-color:var(--pds-color-button-brand-foreground);--button-border-color:var(--pds-color-button-brand-background-default);--button-border-color-hover:var(--pds-color-button-brand-background-hover);--button-border-color-active:var(--button-background-color-active)}.pds-button--highlight{--button-background-color:var(--pds-color-interactive-background-current);--button-background-color-hover:var(
49
+ );--button-box-shadow-active:var(--pds-elevation-button-brand-active);--button-foreground-color:var(--pds-color-button-brand-foreground);--button-border-color:var(--pds-color-button-brand-background-default);--button-border-color-hover:var(--pds-color-button-brand-background-hover);--button-border-color-active:var(--button-background-color-active)}.pds-button--highlight{--button-background-color:var(
50
+ --pds-color-button-highlight-background-default
51
+ );--button-background-color-hover:var(
50
52
  --pds-color-button-highlight-background-hover
51
53
  );--button-background-color-active:var(
52
54
  --pds-color-button-highlight-background-active
53
- );--button-box-shadow-active:var(--pds-elevation-button-highlight-active);--button-foreground-color:var(
54
- --pds-color-interactive-background-current-foreground
55
- );--button-border-color:var(--pds-color-interactive-background-current);--button-border-color-hover:var(
55
+ );--button-box-shadow-active:var(--pds-elevation-button-highlight-active);--button-foreground-color:var(--pds-color-button-highlight-foreground);--button-border-color:var(--pds-color-button-highlight-background-default);--button-border-color-hover:var(
56
56
  --pds-color-button-highlight-background-hover
57
57
  );--button-border-color-active:var(--button-background-color-active)}.pds-button--highlight .pds-button__working-indicator{--spinner-color-1:var(--button-foreground-color);--spinner-color-2:color-mix(in oklch,var(--button-foreground-color) 50%,transparent);--spinner-color-3:transparent}.pds-button--reverse{--button-background-color:var(--pds-color-button-reverse-background-default);--button-background-color-hover:var(
58
58
  --pds-color-button-reverse-background-hover
@@ -1,2 +1,2 @@
1
- @layer pds-v1, pds-v2;@layer pds-v2{.pds-card-select{--label-font-size:var(--pds-typography-size-m);--indicator-size:1.25rem;border:none;color:var(--pds-color-foreground-default);display:flex;flex-direction:column;font-family:var(--pds-typography-ff-default);margin-inline:0;padding:0}.pds-card-select--l{--label-font-size:var(--pds-typography-size-l);--indicator-size:1.375rem}.pds-card-select__legend{display:block;font-size:var(--pds-typography-size-m);font-weight:var(--pds-typography-fw-semibold);margin-block-end:0;text-align:left}.pds-card-select__legend--center{text-align:center}.pds-card-select__option input[type=radio]{appearance:none;margin:0;position:absolute}.pds-card-select__option-label{background-color:var(--pds-color-card-background);border-radius:var(--pds-border-radius-card);box-shadow:var(--pds-elevation-raised);display:flex;flex-direction:column;height:100%;margin-block-end:0;overflow:hidden;width:100%}.pds-card-select__option-label:hover{box-shadow:var(--pds-elevation-overlay);cursor:pointer}.pds-card-select__option
2
- input[type=radio]:focus-visible+.pds-card-select__option-label{outline:var(--pds-border-width-outline) solid var(--pds-color-interactive-focus);outline-offset:2px}.pds-card-select__option-image{border-radius:var(--pds-border-radius-card) var(--pds-border-radius-card) 0 0;display:block;overflow:hidden}.pds-card-select__option-image img{display:block;object-fit:cover;object-position:top;width:100%}.pds-card-select--image-inset .pds-card-select__option-image{border-radius:var(--pds-border-radius-card);margin:var(--pds-spacing-m) var(--pds-spacing-m) 0;overflow:hidden;width:auto}.pds-card-select__option-content{align-items:flex-start;column-gap:var(--pds-spacing-xs);display:flex;flex-grow:1;padding:var(--pds-spacing-l) var(--pds-spacing-xl)}.pds-card-select--pad-condensed .pds-card-select__option-content{padding:var(--pds-spacing-m)}.pds-card-select--pad-spacious .pds-card-select__option-content{padding:var(--pds-spacing-xl) var(--pds-spacing-2xl)}.pds-card-select__option-label-indicator{flex-shrink:0}.pds-card-select__option-label-indicator .pds-icon{height:var(--indicator-size);width:var(--indicator-size)}.pds-card-select__option-icon{color:var(--pds-color-border-input)}.pds-card-select__option-icon--selected{color:var(--pds-color-status-success-fill)}.pds-card-select__option-body{flex-grow:1}.pds-card-select__option-label-text{display:block;font-size:var(--label-font-size);font-weight:var(--pds-typography-fw-semibold)}.pds-card-select__option-main{color:var(--pds-color-foreground-default-secondary);font-size:var(--pds-typography-size-s);font-weight:var(--pds-typography-fw-regular);line-height:var(--pds-typography-lh-m);margin-block-start:var(--pds-spacing-2xs)}.pds-card-select--no-indicator .pds-card-select__option-label--selected{box-shadow:0 0 0 var(--pds-border-width-outline) var(--pds-color-interactive-focus),var(--pds-elevation-overlay)}}
1
+ @layer pds-v1, pds-v2;@layer pds-v2{.pds-card-select{--label-font-size:var(--pds-typography-size-m);--indicator-size:1.25rem;border:none;color:var(--pds-color-foreground-default);display:flex;flex-direction:column;font-family:var(--pds-typography-ff-default);margin-inline:0;padding:0}.pds-card-select--l{--label-font-size:var(--pds-typography-size-l);--indicator-size:1.375rem}.pds-card-select__legend{display:block;font-size:var(--pds-typography-size-m);font-weight:var(--pds-typography-fw-semibold);margin-block-end:var(--pds-spacing-s);text-align:left}.pds-card-select__legend--center{text-align:center}.pds-card-select__option input[type=radio]{appearance:none;margin:0;position:absolute}.pds-card-select__option-label{background-color:var(--pds-color-card-background);border-radius:var(--pds-border-radius-card);box-shadow:var(--pds-elevation-raised);display:flex;flex-direction:column;height:100%;margin-block-end:0;overflow:hidden;width:100%}.pds-card-select__option-label:hover{box-shadow:var(--pds-elevation-overlay);cursor:pointer}.pds-card-select--secondary .pds-card-select__option-label{background-color:var(--pds-color-surface-default-secondary)}.pds-card-select--transparent .pds-card-select__option-label{background-color:transparent}.pds-card-select__option
2
+ input[type=radio]:focus-visible+.pds-card-select__option-label{outline:var(--pds-border-width-outline) solid var(--pds-color-interactive-focus);outline-offset:2px}.pds-card-select__option-image{border-radius:var(--pds-border-radius-card) var(--pds-border-radius-card) 0 0;display:block;overflow:hidden}.pds-card-select__option-image img{display:block;object-fit:cover;object-position:top;width:100%}.pds-card-select--image-inset .pds-card-select__option-image{border-radius:var(--pds-border-radius-card);margin:var(--pds-spacing-m) var(--pds-spacing-m) 0;overflow:hidden;width:auto}.pds-card-select__option-content{align-items:flex-start;column-gap:var(--pds-spacing-xs);display:flex;flex-grow:1;padding:var(--pds-spacing-l) var(--pds-spacing-xl)}.pds-card-select--pad-condensed .pds-card-select__option-content{padding:var(--pds-spacing-m)}.pds-card-select--pad-spacious .pds-card-select__option-content{padding:var(--pds-spacing-xl) var(--pds-spacing-2xl)}.pds-card-select__option-label-indicator{flex-shrink:0}.pds-card-select__option-label-indicator .pds-icon{height:var(--indicator-size);width:var(--indicator-size)}.pds-card-select__option-icon{color:var(--pds-color-border-input)}.pds-card-select__option-icon--selected{color:var(--pds-color-status-success-fill)}.pds-card-select__option-body{flex-grow:1}.pds-card-select__option-label-text{display:block;font-size:var(--label-font-size);font-weight:var(--pds-typography-fw-semibold)}.pds-card-select__option-main{color:var(--pds-color-foreground-default-secondary);font-size:var(--pds-typography-size-s);font-weight:var(--pds-typography-fw-regular);line-height:var(--pds-typography-lh-m);margin-block-start:var(--pds-spacing-2xs)}.pds-card-select--no-card-labels .pds-card-select__option-main{margin-block-start:0}.pds-card-select--no-card-labels .pds-card-select__option-label-indicator{align-items:center;block-size:1lh;display:flex;font-size:var(--pds-typography-size-s);line-height:var(--pds-typography-lh-m)}.pds-card-select--no-indicator .pds-card-select__option-label--selected{box-shadow:0 0 0 var(--pds-border-width-outline) var(--pds-color-interactive-focus),var(--pds-elevation-overlay)}}
@@ -1 +1 @@
1
- @layer pds-v1, pds-v2;@layer pds-v2{.pds-card{background-color:var(--pds-color-card-background);border-radius:var(--pds-border-radius-card);box-shadow:var(--pds-elevation-raised);color:var(--pds-color-foreground-default);display:flex;flex-direction:column;height:100%;min-height:8rem}.pds-card__image{border-radius:var(--pds-border-radius-card) var(--pds-border-radius-card) 0 0;display:block;overflow:hidden}.pds-card__image img{display:block;object-fit:cover;object-position:top;width:100%}.pds-card__main{flex-grow:1;padding:var(--pds-spacing-l) var(--pds-spacing-xl)}.pds-card__footer{padding:0 var(--pds-spacing-xl) var(--pds-spacing-l)}.pds-card--transparent{background-color:transparent}.pds-card--image-inset .pds-card__image{border-radius:var(--pds-border-radius-card);margin:var(--pds-spacing-m) var(--pds-spacing-m) 0;overflow:hidden;width:auto}.pds-card--pad-condensed .pds-card__main{padding:var(--pds-spacing-m)}.pds-card--pad-condensed .pds-card__footer{padding:0 var(--pds-spacing-m) var(--pds-spacing-m)}.pds-card--pad-spacious .pds-card__main{padding:var(--pds-spacing-xl) var(--pds-spacing-2xl)}.pds-card--pad-spacious .pds-card__footer{padding:0 var(--pds-spacing-2xl) var(--pds-spacing-xl)}}
1
+ @layer pds-v1, pds-v2;@layer pds-v2{.pds-card{background-color:var(--pds-color-card-background);border-radius:var(--pds-border-radius-card);box-shadow:var(--pds-elevation-raised);color:var(--pds-color-foreground-default);display:flex;flex-direction:column;height:100%;min-height:8rem}.pds-card__image{border-radius:var(--pds-border-radius-card) var(--pds-border-radius-card) 0 0;display:block;overflow:hidden}.pds-card__image img{display:block;object-fit:cover;object-position:top;width:100%}.pds-card__main{flex-grow:1;padding:var(--pds-spacing-l) var(--pds-spacing-xl)}.pds-card__footer{padding:0 var(--pds-spacing-xl) var(--pds-spacing-l)}.pds-card--secondary{background-color:var(--pds-color-surface-default-secondary)}.pds-card--transparent{background-color:transparent}.pds-card--image-inset .pds-card__image{border-radius:var(--pds-border-radius-card);margin:var(--pds-spacing-m) var(--pds-spacing-m) 0;overflow:hidden;width:auto}.pds-card--pad-condensed .pds-card__main{padding:var(--pds-spacing-m)}.pds-card--pad-condensed .pds-card__footer{padding:0 var(--pds-spacing-m) var(--pds-spacing-m)}.pds-card--pad-spacious .pds-card__main{padding:var(--pds-spacing-xl) var(--pds-spacing-2xl)}.pds-card--pad-spacious .pds-card__footer{padding:0 var(--pds-spacing-2xl) var(--pds-spacing-xl)}}
@@ -1 +1 @@
1
- @layer pds-v1, pds-v2;@layer pds-v2{.pds-chart-legend{font-family:var(--pds-typography-ff-default);font-size:var(--pds-typography-size-s);margin-block-start:var(--pds-spacing-l)}.pds-chart-legend--inline{align-items:center;display:flex;flex-wrap:wrap;gap:var(--pds-spacing-xl);justify-content:center;margin-inline-start:3.625rem}.pds-chart-legend__item{align-items:center;color:var(--pds-color-foreground-default);display:flex;gap:var(--pds-spacing-3xs)}.pds-chart-legend__swatch{border-radius:2px;display:inline-block;flex-shrink:0;height:10px;width:10px}.pds-chart-legend--table{border:var(--pds-border-width-default) solid var(--pds-color-border-default);border-radius:var(--pds-border-radius-container);margin-inline-start:3.625rem}.pds-chart-legend__table-header{border-block-end:var(--pds-border-width-default) solid var(--pds-color-border-default);color:var(--pds-color-foreground-default-secondary);font-size:var(--pds-typography-size-xs);letter-spacing:var(--pds-typography-ls-m);line-height:1;padding:.75rem var(--pds-spacing-s) .625rem;text-transform:uppercase}.pds-chart-legend__table-header,.pds-chart-legend__table-row{align-items:center;display:flex;justify-content:space-between}.pds-chart-legend__table-row{padding:var(--pds-spacing-xs) var(--pds-spacing-s)}.pds-chart-legend__table-row:not(:last-child){border-block-end:var(--pds-border-width-default) solid var(--pds-color-border-default)}.pds-chart-legend__table-row-label{align-items:center;color:var(--pds-color-foreground-default);display:flex;font-weight:var(--pds-typography-fw-medium);gap:var(--pds-spacing-xs)}.pds-chart-legend__table-row-value{color:var(--pds-color-foreground-default);font-weight:var(--pds-typography-fw-semibold)}}
1
+ @layer pds-v1, pds-v2;@layer pds-v2{.pds-chart-legend{font-family:var(--pds-typography-ff-default);font-size:var(--pds-typography-size-s);margin-block-start:var(--pds-spacing-l)}.pds-chart-legend--inline{align-items:center;display:flex;flex-wrap:wrap;gap:var(--pds-spacing-xl);justify-content:center;margin-inline-start:3.625rem}.pds-chart-legend__item{align-items:center;color:var(--pds-color-foreground-default);display:flex;gap:var(--pds-spacing-3xs)}.pds-chart-legend__swatch{border-radius:2px;display:inline-block;flex-shrink:0;height:10px;width:10px}.pds-chart-legend--table{background-color:var(--pds-color-surface-default);border:var(--pds-border-width-default) solid var(--pds-color-border-default);border-radius:var(--pds-border-radius-container);margin-inline-start:3.625rem}.pds-chart-legend__table-header{border-block-end:var(--pds-border-width-default) solid var(--pds-color-border-default);color:var(--pds-color-foreground-default-secondary);font-size:var(--pds-typography-size-xs);letter-spacing:var(--pds-typography-ls-m);line-height:1;padding:.75rem var(--pds-spacing-s) .625rem;text-transform:uppercase}.pds-chart-legend__table-header,.pds-chart-legend__table-row{align-items:center;display:flex;justify-content:space-between}.pds-chart-legend__table-row{padding:var(--pds-spacing-xs) var(--pds-spacing-s)}.pds-chart-legend__table-row:not(:last-child){border-block-end:var(--pds-border-width-default) solid var(--pds-color-border-default)}.pds-chart-legend__table-row-label{align-items:center;color:var(--pds-color-foreground-default);display:flex;font-weight:var(--pds-typography-fw-medium);gap:var(--pds-spacing-xs)}.pds-chart-legend__table-row-value{color:var(--pds-color-foreground-default);font-weight:var(--pds-typography-fw-semibold)}}
@@ -1 +1 @@
1
- @layer pds-v1, pds-v2;@layer pds-v2{.pds-code-block{--code-block-padding:var(--pds-spacing-l);--code-block-background:var(--pds-color-code-block-background);--code-block-foreground:var(--pds-color-code-block-foreground);--code-block-line-prefix:var(--pds-color-code-block-line-prefix);--code-block-focus-color:var(--pds-color-interactive-reverse-focus);--pulse-regular-base-color:#c3c5c9;--pulse-bold-base-color:#6a6e7a;display:flex;font-family:var(--pds-typography-font-code);font-size:var(--pds-typography-size-s);font-weight:var(--pds-typography-fw-regular);line-height:var(--pds-typography-lh-l);position:relative}.pds-code-block,div.pds-code-block__code,pre.pds-code-block__code{background-color:var(--code-block-background);border-radius:var(--pds-border-radius-container)}div.pds-code-block__code,pre.pds-code-block__code{flex-grow:1;margin:0;overflow:auto;padding:var(--pds-spacing-l) var(--pds-spacing-xl)}div.pds-code-block__code:focus-visible,pre.pds-code-block__code:focus-visible{outline:var(--pds-border-width-default) solid var(--code-block-focus-color)}div.pds-code-block__code .pds-code-block__content,div.pds-code-block__code .pds-code-block__line-content,div.pds-code-block__code .token.plain,pre.pds-code-block__code .pds-code-block__content,pre.pds-code-block__code .pds-code-block__line-content,pre.pds-code-block__code .token.plain{color:var(--code-block-foreground)}div.pds-code-block__code{padding-block:var(--pds-spacing-xl)}.pds-code-block__line{column-gap:var(--pds-spacing-s);display:table-row}.pds-code-block__line-wrapped{overflow-x:hidden;text-wrap:wrap}.pds-code-block__number,.pds-code-block__prompt{color:var(--code-block-line-prefix);display:table-cell;padding-inline-end:var(--pds-spacing-m);text-align:right}.pds-code-block__copy{padding:var(--pds-spacing-s) var(--pds-spacing-s)}button.pds-clipboard-button{background-color:var(--code-block-background);color:var(--code-block-foreground)}[data-theme=dark] .pds-code-block button.pds-clipboard-button:hover{background-color:hsla(0,0%,100%,.12);color:var(--code-block-foreground)}}
1
+ @layer pds-v1, pds-v2;@layer pds-v2{.pds-code-block{--code-block-padding:var(--pds-spacing-l);--code-block-background:var(--pds-color-code-block-background);--code-block-foreground:var(--pds-color-code-block-foreground);--code-block-line-prefix:var(--pds-color-code-block-line-prefix);--code-block-focus-color:var(--pds-color-code-block-focus);--pulse-regular-base-color:#c3c5c9;--pulse-bold-base-color:#6a6e7a;display:flex;font-family:var(--pds-typography-font-code);font-size:var(--pds-typography-size-s);font-weight:var(--pds-typography-fw-regular);line-height:var(--pds-typography-lh-l);position:relative}.pds-code-block,div.pds-code-block__code,pre.pds-code-block__code{background-color:var(--code-block-background);border-radius:var(--pds-border-radius-container)}div.pds-code-block__code,pre.pds-code-block__code{flex-grow:1;margin:0;overflow:auto;padding:var(--pds-spacing-l) var(--pds-spacing-xl)}div.pds-code-block__code:focus-visible,pre.pds-code-block__code:focus-visible{outline:var(--pds-border-width-default) solid var(--code-block-focus-color)}div.pds-code-block__code .pds-code-block__content,div.pds-code-block__code .pds-code-block__line-content,div.pds-code-block__code .token.plain,pre.pds-code-block__code .pds-code-block__content,pre.pds-code-block__code .pds-code-block__line-content,pre.pds-code-block__code .token.plain{color:var(--code-block-foreground)}div.pds-code-block__code{padding-block:var(--pds-spacing-xl)}.pds-code-block__line{column-gap:var(--pds-spacing-s);display:table-row}.pds-code-block__line-wrapped{overflow-x:hidden;text-wrap:wrap}.pds-code-block__number,.pds-code-block__prompt{color:var(--code-block-line-prefix);display:table-cell;padding-inline-end:var(--pds-spacing-m);text-align:right}.pds-code-block__copy{padding:var(--pds-spacing-s) var(--pds-spacing-s)}button.pds-clipboard-button{background-color:var(--code-block-background);color:var(--code-block-foreground)}[data-theme=dark] .pds-code-block button.pds-clipboard-button:hover{background-color:hsla(0,0%,100%,.12);color:var(--code-block-foreground)}}
@@ -1 +1 @@
1
- @layer pds-v1, pds-v2;@layer pds-v2{.pds-comparison-list{--list-col-gap:var(--pds-spacing-xs);--list-font-size:var(--pds-typography-size-s);--list-icon-col-width:var(--pds-typography-size-s);--list-padding-block-end:var(--pds-spacing-xs);--list-row-gap:var(--pds-spacing-s);color:var(--pds-color-foreground-default);font-family:var(--pds-typography-ff-default)}.pds-comparison-list--m{--list-col-gap:var(--pds-spacing-s);--list-font-size:var(--pds-typography-size-m);--list-icon-col-width:var(--pds-typography-size-m);--list-padding-block-end:var(--pds-spacing-s);--list-row-gap:var(--pds-spacing-m)}.pds-comparison-list__intro{font-size:var(--list-font-size);font-weight:var(--pds-typography-fw-bold);margin-block-end:var(--pds-spacing-xl)}.pds-comparison-list__list{all:unset;display:flex;flex-direction:column;list-style-type:none;row-gap:var(--list-row-gap)}.pds-comparison-list__list-item{border-bottom:var(--pds-border-width-default) solid var(--pds-color-border-default);column-gap:var(--list-col-gap);display:grid;font-family:var(--pds-typography-ff-default);font-size:var(--list-font-size);grid-template-columns:var(--list-icon-col-width) auto;padding-block-end:var(--list-padding-block-end)}.pds-comparison-list__list-item--notIncluded{color:var(--pds-color-foreground-default-secondary)}.pds-comparison-list__item-icon-wrapper{position:relative}.pds-comparison-list__item-icon{position:absolute;top:1px}.pds-comparison-list__more-link{font-size:var(--list-font-size);margin-block-start:var(--pds-spacing-l)}.pds-comparison-list--no-border .pds-comparison-list__list-item{border-bottom:none}}
1
+ @layer pds-v1, pds-v2;@layer pds-v2{.pds-comparison-list{--list-col-gap:var(--pds-spacing-xs);--list-font-size:var(--pds-typography-size-s);--list-icon-size:1.125em;--list-icon-col-width:var(--list-icon-size);--list-line-height:var(--pds-typography-lh-s);--list-padding-block-end:var(--pds-spacing-xs);--list-row-gap:var(--pds-spacing-s);color:var(--pds-color-foreground-default);font-family:var(--pds-typography-ff-default)}.pds-comparison-list--m{--list-col-gap:var(--pds-spacing-s);--list-font-size:var(--pds-typography-size-m);--list-line-height:var(--pds-typography-lh-m);--list-padding-block-end:var(--pds-spacing-s);--list-row-gap:var(--pds-spacing-m)}.pds-comparison-list__intro{font-size:var(--list-font-size);font-weight:var(--pds-typography-fw-bold);margin-block-end:var(--pds-spacing-xl)}.pds-comparison-list__list{all:unset;display:flex;flex-direction:column;list-style-type:none;row-gap:var(--list-row-gap)}.pds-comparison-list__list-item{align-items:start;border-bottom:var(--pds-border-width-default) solid var(--pds-color-border-default);column-gap:var(--list-col-gap);display:grid;font-family:var(--pds-typography-ff-default);font-size:var(--list-font-size);grid-template-columns:var(--list-icon-col-width) auto;line-height:var(--list-line-height);padding-block-end:var(--list-padding-block-end)}.pds-comparison-list__list-item--notIncluded{color:var(--pds-color-foreground-default-secondary)}.pds-comparison-list__item-icon-wrapper{align-items:center;block-size:1lh;display:flex;justify-content:center}.pds-comparison-list__item-icon-wrapper .pds-comparison-list__item-icon{block-size:var(--list-icon-size);inline-size:var(--list-icon-size)}.pds-comparison-list__more-link{font-size:var(--list-font-size);margin-block-start:var(--pds-spacing-l)}.pds-comparison-list--no-border .pds-comparison-list__list-item{border-bottom:none}}