@pantheon-systems/pds-toolkit-react 1.0.0-dev.147 → 1.0.0-dev.148

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.
@@ -1,4 +1,4 @@
1
- import React, { ReactNode, ComponentPropsWithoutRef } from 'react';
1
+ import React, { ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import './cta-link.css';
3
3
  export interface CTALinkProps extends ComponentPropsWithoutRef<'div'> {
4
4
  /**
@@ -1,6 +1,6 @@
1
- import React from 'react';
1
+ import React, { ComponentPropsWithoutRef } from 'react';
2
2
  import './callout.css';
3
- interface CalloutProps {
3
+ export interface CalloutProps extends ComponentPropsWithoutRef<'div'> {
4
4
  /**
5
5
  * Callout main content.
6
6
  */
@@ -22,4 +22,3 @@ interface CalloutProps {
22
22
  * Callout UI component
23
23
  */
24
24
  export declare const Callout: ({ children, title, type, className, ...props }: CalloutProps) => React.JSX.Element;
25
- export {};
@@ -1,4 +1,4 @@
1
- import React, { ReactNode, ComponentPropsWithoutRef } from 'react';
1
+ import React, { ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import './comparison-list.css';
3
3
  interface TypeLabels {
4
4
  included: string;
@@ -33,7 +33,7 @@ export interface ComparisonListProps extends ComponentPropsWithoutRef<'div'> {
33
33
  /**
34
34
  * Additional class names
35
35
  */
36
- className: string;
36
+ className?: string;
37
37
  }
38
38
  /**
39
39
  * ComparisonList UI component
@@ -1,25 +1,40 @@
1
- export function Modal({ ariaLabel, children, hasCloseButton, modalIsOpen, setModalIsOpen, size, title, className, ...props }: {
2
- [x: string]: any;
3
- ariaLabel: any;
4
- children: any;
1
+ import React, { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import './modal.css';
3
+ export interface ModalProps extends ComponentPropsWithoutRef<'div'> {
4
+ /**
5
+ * Aria label that describes the modal. Will default to the title if not provided.
6
+ */
7
+ ariaLabel?: string;
8
+ /**
9
+ * Main content for modal.
10
+ */
11
+ children?: ReactNode;
12
+ /**
13
+ * Indicates if the built-in close button will be shown.
14
+ */
5
15
  hasCloseButton?: boolean;
16
+ /**
17
+ * Is the modal open?
18
+ */
6
19
  modalIsOpen?: boolean;
7
- setModalIsOpen?: () => void;
8
- size?: string;
9
- title: any;
10
- className: any;
11
- }): React.JSX.Element;
12
- export namespace Modal {
13
- namespace propTypes {
14
- let ariaLabel: PropTypes.Requireable<string>;
15
- let children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
16
- let hasCloseButton: PropTypes.Requireable<boolean>;
17
- let modalIsOpen: PropTypes.Requireable<boolean>;
18
- let setModalIsOpen: PropTypes.Requireable<(...args: any[]) => any>;
19
- let size: PropTypes.Requireable<string>;
20
- let title: PropTypes.Validator<string>;
21
- let className: PropTypes.Requireable<string>;
22
- }
20
+ /**
21
+ * Function to set the modal open state.
22
+ */
23
+ setModalIsOpen?: (isOpen: boolean) => void;
24
+ /**
25
+ * The width of the modal.
26
+ */
27
+ size?: 'sm' | 'md' | 'lg';
28
+ /**
29
+ * Text for modal title
30
+ */
31
+ title: string;
32
+ /**
33
+ * Additional class names
34
+ */
35
+ className?: string;
23
36
  }
24
- import React from 'react';
25
- import PropTypes from 'prop-types';
37
+ /**
38
+ * Modal UI component
39
+ */
40
+ export declare const Modal: ({ ariaLabel, children, hasCloseButton, modalIsOpen, setModalIsOpen, size, title, className, ...props }: ModalProps) => React.JSX.Element;
@@ -1,15 +1,30 @@
1
- export function Panel({ children, variant, className, ...props }: {
2
- [x: string]: any;
3
- children: any;
4
- variant?: string;
5
- className: any;
6
- }): React.JSX.Element;
7
- export namespace Panel {
8
- namespace propTypes {
9
- let children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
10
- let variant: PropTypes.Requireable<string>;
11
- let className: PropTypes.Requireable<string>;
12
- }
1
+ import React, { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import './panel.css';
3
+ type StatusType = 'info' | 'success' | 'warning' | 'critical';
4
+ export interface PanelProps extends ComponentPropsWithoutRef<'div'> {
5
+ /**
6
+ * Panel content.
7
+ */
8
+ children: ReactNode;
9
+ /**
10
+ * Should the panel show a status indicator.
11
+ */
12
+ hasStatusIndicator?: boolean;
13
+ /**
14
+ * Status type for panel. Only renders if `hasStatusIndicator` is true.
15
+ */
16
+ statusType: StatusType;
17
+ /**
18
+ * Which variant of panel to render
19
+ */
20
+ variant?: 'default' | 'sunken' | 'raised' | 'overlay' | 'critical';
21
+ /**
22
+ * Additional class names
23
+ */
24
+ className?: string;
13
25
  }
14
- import React from 'react';
15
- import PropTypes from 'prop-types';
26
+ /**
27
+ * Panel UI component
28
+ */
29
+ export declare const Panel: ({ children, hasStatusIndicator, statusType, variant, className, ...props }: PanelProps) => React.JSX.Element;
30
+ export {};
@@ -1,33 +1,57 @@
1
- export function Popover({ content, customTrigger, hasCloseButton, offsetValue, onClose, placement, title, triggerIcon, triggerAccessibleText, popoverIsOpen, setPopoverIsOpen, className, ...props }: {
2
- [x: string]: any;
3
- content: any;
4
- customTrigger?: boolean;
1
+ import React, { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import './popover.css';
3
+ interface PopoverProps extends Omit<ComponentPropsWithoutRef<'div'>, 'content'> {
4
+ /**
5
+ * Content to display in the popover.
6
+ */
7
+ content?: ReactNode;
8
+ /**
9
+ * Text or HTML content to use as the trigger instead of an icon. Leave null to use the icon. This allows passing HTML content to customize the trigger appearance or functionality.
10
+ */
11
+ customTrigger?: ReactNode;
12
+ /**
13
+ * Indicates if close button will be shown.
14
+ */
5
15
  hasCloseButton?: boolean;
16
+ /**
17
+ * Additional spacing between the trigger and the popover. Only applies to popovers with a custom trigger. Icon triggers have a fixed spacing.
18
+ */
6
19
  offsetValue?: number;
20
+ /**
21
+ * Callback function that triggers when closing Popover.
22
+ */
7
23
  onClose?: () => void;
8
- placement?: string;
9
- title: any;
10
- triggerIcon?: string;
24
+ /**
25
+ * Preferred placement of the popover in relation to the trigger. Will be modified if there is not enough space.
26
+ */
27
+ placement?: 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end';
28
+ /**
29
+ * Text for popover title
30
+ */
31
+ title?: string;
32
+ /**
33
+ * The accessible text for the trigger. Only necessary when the trigger is an icon.
34
+ */
11
35
  triggerAccessibleText?: string;
36
+ /**
37
+ * Icon to trigger Popover.
38
+ */
39
+ triggerIcon?: 'circleInfo' | 'circleQuestion';
40
+ /**
41
+ * Is the Popover open?
42
+ */
12
43
  popoverIsOpen?: boolean;
13
- setPopoverIsOpen?: () => void;
14
- className: any;
15
- }): React.JSX.Element;
16
- export namespace Popover {
17
- namespace propTypes {
18
- let content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
- let customTrigger: PropTypes.Requireable<PropTypes.ReactNodeLike>;
20
- let hasCloseButton: PropTypes.Requireable<boolean>;
21
- let offsetValue: PropTypes.Requireable<number>;
22
- let onClose: PropTypes.Requireable<(...args: any[]) => any>;
23
- let placement: PropTypes.Requireable<string>;
24
- let title: PropTypes.Requireable<string>;
25
- let triggerAccessibleText: PropTypes.Requireable<string>;
26
- let triggerIcon: PropTypes.Requireable<string>;
27
- let popoverIsOpen: PropTypes.Requireable<boolean>;
28
- let setPopoverIsOpen: PropTypes.Requireable<(...args: any[]) => any>;
29
- let className: PropTypes.Requireable<string>;
30
- }
44
+ /**
45
+ * Function to set Popover open state
46
+ */
47
+ setPopoverIsOpen?: (isOpen: boolean) => void;
48
+ /**
49
+ * Additional class names.
50
+ */
51
+ className?: string;
31
52
  }
32
- import React from 'react';
33
- import PropTypes from 'prop-types';
53
+ /**
54
+ * Popover UI component
55
+ */
56
+ export declare const Popover: ({ content, customTrigger, hasCloseButton, offsetValue, onClose, placement, title, triggerIcon, triggerAccessibleText, popoverIsOpen, setPopoverIsOpen, className, ...props }: PopoverProps) => React.JSX.Element;
57
+ export {};
@@ -1,15 +1,21 @@
1
- export function Skiplink({ destination, text, className, ...props }: {
2
- [x: string]: any;
3
- destination?: string;
4
- text?: string;
5
- className: any;
6
- }): React.JSX.Element;
7
- export namespace Skiplink {
8
- namespace propTypes {
9
- let destination: PropTypes.Requireable<string>;
10
- let text: PropTypes.Requireable<string>;
11
- let className: PropTypes.Requireable<string>;
12
- }
1
+ import React, { ComponentPropsWithoutRef } from 'react';
2
+ import './skiplink.css';
3
+ interface SkiplinkProps extends ComponentPropsWithoutRef<'a'> {
4
+ /**
5
+ * The ID of the element to skip to.
6
+ */
7
+ destination: string;
8
+ /**
9
+ * The text of the skip link.
10
+ */
11
+ text: string;
12
+ /**
13
+ * Additional class names
14
+ */
15
+ className?: string;
13
16
  }
14
- import React from 'react';
15
- import PropTypes from 'prop-types';
17
+ /**
18
+ * Skiplink UI component
19
+ */
20
+ export declare const Skiplink: ({ destination, text, className, ...props }: SkiplinkProps) => React.JSX.Element;
21
+ export {};
@@ -1,23 +1,39 @@
1
- export function Tag({ linkContent, isRemovable, onRemove, removeLabel, tagColor, tagLabel, className, ...props }: {
2
- [x: string]: any;
3
- linkContent: any;
4
- isRemovable: any;
5
- onRemove: any;
1
+ import React, { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import './tag.css';
3
+ export declare let tagColors: string[];
4
+ type TagColor = (typeof tagColors)[number];
5
+ interface TagProps extends ComponentPropsWithoutRef<'div'> {
6
+ /**
7
+ * Should the tag be a link? If yes, provide a link element.
8
+ */
9
+ linkContent?: ReactNode;
10
+ /**
11
+ * Should the tag be removable?
12
+ */
13
+ isRemovable?: boolean;
14
+ /**
15
+ * Function to execute when the tag is removed.
16
+ */
17
+ onRemove?: () => void;
18
+ /**
19
+ * Label for the remove button. Tag text will be appended to this label.
20
+ */
6
21
  removeLabel?: string;
7
- tagColor: any;
8
- tagLabel: any;
9
- className: any;
10
- }): React.JSX.Element;
11
- export namespace Tag {
12
- namespace propTypes {
13
- let linkContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
14
- let isRemovable: PropTypes.Requireable<boolean>;
15
- let onRemove: PropTypes.Requireable<(...args: any[]) => any>;
16
- let removeLabel: PropTypes.Requireable<string>;
17
- let tagColor: PropTypes.Requireable<string>;
18
- let tagLabel: PropTypes.Validator<string>;
19
- let className: PropTypes.Requireable<string>;
20
- }
22
+ /**
23
+ * Tag color. Will use random color if not selected.
24
+ */
25
+ tagColor?: TagColor;
26
+ /**
27
+ * Tag text
28
+ */
29
+ tagLabel: string;
30
+ /**
31
+ * Additional class names
32
+ */
33
+ className?: string;
21
34
  }
22
- import React from 'react';
23
- import PropTypes from 'prop-types';
35
+ /**
36
+ * Tag UI component
37
+ */
38
+ export declare const Tag: ({ linkContent, isRemovable, onRemove, removeLabel, tagColor, tagLabel, className, ...props }: TagProps) => React.JSX.Element;
39
+ export {};
@@ -1,9 +1,9 @@
1
- import React from 'react';
1
+ import React, { ComponentPropsWithoutRef } from 'react';
2
2
  import './indicator-badge.css';
3
3
  /**
4
4
  * IndicatorBadge component props
5
5
  */
6
- interface IndicatorBadgeProps {
6
+ export interface IndicatorBadgeProps extends ComponentPropsWithoutRef<'span'> {
7
7
  /**
8
8
  * Badge color
9
9
  */
@@ -25,4 +25,3 @@ interface IndicatorBadgeProps {
25
25
  * IndicatorBadge UI component
26
26
  */
27
27
  export declare const IndicatorBadge: ({ label, size, color, className, ...props }: IndicatorBadgeProps) => React.JSX.Element;
28
- export {};
@@ -1,9 +1,9 @@
1
- import React from 'react';
1
+ import React, { ComponentPropsWithoutRef } from 'react';
2
2
  import './status-badge.css';
3
3
  /**
4
4
  * StatusBadge component props
5
5
  */
6
- interface StatusBadgeProps {
6
+ export interface StatusBadgeProps extends ComponentPropsWithoutRef<'div'> {
7
7
  /**
8
8
  * Background color for badge
9
9
  */
@@ -33,4 +33,3 @@ interface StatusBadgeProps {
33
33
  * StatusBadge UI component
34
34
  */
35
35
  export declare const StatusBadge: ({ color, hasStatusIndicator, label, statusIndicatorText, statusType, className, ...props }: StatusBadgeProps) => React.JSX.Element;
36
- export {};
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { ComponentPropsWithoutRef } from 'react';
2
2
  import './tally.css';
3
3
  interface TypeLabels {
4
4
  info?: string;
@@ -10,7 +10,7 @@ interface TypeLabels {
10
10
  /**
11
11
  * Prop types for Tally
12
12
  */
13
- interface TallyProps {
13
+ export interface TallyProps extends ComponentPropsWithoutRef<'div'> {
14
14
  /**
15
15
  * Label text
16
16
  */
@@ -25,7 +25,7 @@ interface TallyProps {
25
25
  typeLabels?: TypeLabels;
26
26
  /**
27
27
  * Additional class names
28
- */
28
+ */
29
29
  className?: string;
30
30
  }
31
31
  /**
@@ -4,7 +4,7 @@ import './segmented-button.css';
4
4
  /**
5
5
  * Prop types for SegmentedButton
6
6
  */
7
- interface SegmentedButtonProps {
7
+ export interface SegmentedButtonProps {
8
8
  /**
9
9
  * Is the ToggleButton disabled?
10
10
  */
@@ -43,4 +43,3 @@ interface SegmentedButtonProps {
43
43
  * SegmentedButton UI component
44
44
  */
45
45
  export declare const SegmentedButton: ({ disabled, id, initialSelection, label, onChange, options, className, ...props }: SegmentedButtonProps) => React.JSX.Element;
46
- export {};
@@ -1,4 +1,4 @@
1
- import React, { ReactNode, ComponentPropsWithoutRef } from 'react';
1
+ import React, { ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import './inline-message.css';
3
3
  /**
4
4
  * The type of message to display.
@@ -1,4 +1,4 @@
1
- import React, { ReactNode, MouseEvent, ComponentPropsWithoutRef } from 'react';
1
+ import React, { ComponentPropsWithoutRef, MouseEvent, ReactNode } from 'react';
2
2
  import './section-message.css';
3
3
  type MessageType = 'info' | 'success' | 'warning' | 'critical' | 'discovery';
4
4
  type TypeLabels = Record<MessageType, string>;
@@ -38,7 +38,7 @@ export interface SectionMessageProps extends ComponentPropsWithoutRef<'div'> {
38
38
  /**
39
39
  * Additional class names.
40
40
  */
41
- className: string;
41
+ className?: string;
42
42
  }
43
43
  /**
44
44
  * SectionMessage UI component
@@ -1,21 +1,33 @@
1
- export function Spinner({ colorType, isInline, label, showLabel, size, className, ...props }: {
2
- [x: string]: any;
3
- colorType?: string;
1
+ import React, { ComponentPropsWithoutRef } from 'react';
2
+ import './spinner.css';
3
+ interface SpinnerProps extends ComponentPropsWithoutRef<'span'> {
4
+ /**
5
+ * Spinner color
6
+ */
7
+ colorType?: 'full-color' | 'monochromatic' | 'monochromatic-reverse';
8
+ /**
9
+ * Should the spinner be an inline element? If true, it will be displayed inline-block without a visible label.
10
+ */
4
11
  isInline?: boolean;
12
+ /**
13
+ * Spinner label. Will be displayed below the Spinner if `showLabel` is true.
14
+ */
5
15
  label?: string;
16
+ /**
17
+ * Should the label be visible? If false, it will render for screen readers only.
18
+ */
6
19
  showLabel?: boolean;
7
- size?: string;
20
+ /**
21
+ * Spinner size
22
+ */
23
+ size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl';
24
+ /**
25
+ * Additional class names
26
+ */
8
27
  className?: string;
9
- }): React.JSX.Element;
10
- export namespace Spinner {
11
- namespace propTypes {
12
- let colorType: PropTypes.Requireable<string>;
13
- let isInline: PropTypes.Requireable<boolean>;
14
- let label: PropTypes.Validator<string>;
15
- let showLabel: PropTypes.Requireable<boolean>;
16
- let size: PropTypes.Requireable<string>;
17
- let className: PropTypes.Requireable<string>;
18
- }
19
28
  }
20
- import React from 'react';
21
- import PropTypes from 'prop-types';
29
+ /**
30
+ * Spinner UI component
31
+ */
32
+ export declare const Spinner: ({ colorType, isInline, label, showLabel, size, className, ...props }: SpinnerProps) => React.JSX.Element;
33
+ export {};
@@ -1,2 +1,2 @@
1
- .pds-dashboard-nav{--pds-dashboard-nav-icon-width:1.563rem;--pds-dashboard-nav-space-after-icon:0.64rem;color:var(--pds-color-text-default);font-family:Poppins,sans-serif}.pds-dashboard-nav a{color:var(--pds-color-text-default);text-decoration:none}.pds-dashboard-nav .pds-icon{pointer-events:none}.pds-dashboard-nav__logo{margin-block-end:1.563rem;padding-inline:calc(var(--pds-spacing-dashboard-nav-item-padding) + .1875rem)}.pds-dashboard-nav__menu{list-style-type:none;margin:0;padding:0}.pds-dashboard-nav__item{list-style-type:none}.pds-dashboard-nav__menu--top-level{display:flex;flex-direction:column;row-gap:1rem}.pds-dashboard-nav__link-icon{align-items:center;display:flex;flex-grow:0;flex-shrink:0;justify-content:center;margin-block-start:-.0625rem;margin-inline-end:var(--pds-dashboard-nav-space-after-icon);width:var(--pds-dashboard-nav-icon-width)}.pds-dashboard-nav__link-icon .pds-icon--house,.pds-dashboard-nav__link-icon .pds-icon--robot{margin-block-start:-.125rem}.pds-dashboard-nav__item--top-level:not(.pds-dashboard-nav__item--has-children) a{align-items:center;border-radius:.375rem;box-sizing:border-box;color:var(--pds-color-dashboard-nav-item-foreground-default);display:flex;height:var(--pds-spacing-dashboard-nav-item-height);padding-inline:var(--pds-spacing-dashboard-nav-item-padding)}.pds-dashboard-nav__item--top-level:not(.pds-dashboard-nav__item--has-children) a:hover{background-color:var(--pds-color-dashboard-nav-item-background-hover)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__item-inner{align-items:center;border-radius:.375rem;display:flex;height:var(--pds-spacing-dashboard-nav-item-height)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__item-inner:hover{background-color:var(--pds-color-dashboard-nav-item-background-hover)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__item-inner:hover .pds-icon,.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__item-inner:hover a{color:var(--pds-color-dashboard-nav-item-foreground-hover)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__link{align-items:center;display:flex;height:var(--pds-spacing-dashboard-nav-item-height);padding-inline:var(--pds-spacing-dashboard-nav-item-padding);width:100%}.pds-dashboard-nav__link:focus-visible{border-radius:.375rem;outline:.0625rem solid var(--pds-color-interactive-focus);outline-offset:-1px;transition:outline .2s ease-in-out 0s}.pds-dashboard-nav__item--active.pds-dashboard-nav__item--has-children:hover>.pds-dashboard-nav__item-inner,.pds-dashboard-nav__item--active:hover>.pds-dashboard-nav__item-inner,.pds-dashboard-nav__item--active:hover>a.pds-dashboard-nav__link,.pds-dashboard-nav__item--active>.pds-dashboard-nav__item-inner,.pds-dashboard-nav__item--active>a.pds-dashboard-nav__link{background-color:var(--pds-color-dashboard-nav-item-background-active);color:var(--pds-color-dashboard-nav-item-foreground-active)}.pds-dashboard-nav__item--active.pds-dashboard-nav__item--has-children:hover>.pds-dashboard-nav__item-inner .pds-icon,.pds-dashboard-nav__item--active.pds-dashboard-nav__item--has-children:hover>.pds-dashboard-nav__item-inner a,.pds-dashboard-nav__item--active:hover>.pds-dashboard-nav__item-inner .pds-icon,.pds-dashboard-nav__item--active:hover>.pds-dashboard-nav__item-inner a,.pds-dashboard-nav__item--active:hover>a.pds-dashboard-nav__link .pds-icon,.pds-dashboard-nav__item--active:hover>a.pds-dashboard-nav__link a,.pds-dashboard-nav__item--active>.pds-dashboard-nav__item-inner .pds-icon,.pds-dashboard-nav__item--active>.pds-dashboard-nav__item-inner a,.pds-dashboard-nav__item--active>a.pds-dashboard-nav__link .pds-icon,.pds-dashboard-nav__item--active>a.pds-dashboard-nav__link a{color:var(--pds-color-dashboard-nav-item-foreground-active)}.pds-dashboard-nav__item--active
2
- .pds-dashboard-nav__toggle--expanded:focus-visible,.pds-dashboard-nav__item--active a:focus-visible{outline-color:var(--pds-color-brand-primary-default)}.pds-dashboard-nav__menu--second-level{color:var(--pds-color-dashboard-nav-item-foreground-default);display:none;font-size:.833rem;margin-block-start:.8rem;padding-inline-start:calc(var(--pds-spacing-dashboard-nav-item-padding) + var(--pds-dashboard-nav-icon-width) + var(--pds-dashboard-nav-space-after-icon))}.pds-dashboard-nav__menu--second-level.pds-dashboard-nav__menu--expanded{display:flex;flex-direction:column;row-gap:.64rem}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level a{display:inline-block;height:unset}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level a:hover,.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level.pds-dashboard-nav__item--active a{color:var(--pds-color-link-hover)}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level a:focus-visible{border-radius:.1875rem;outline:.0625rem solid var(--pds-color-interactive-focus);outline-offset:4px;transition:outline .2s ease-in-out 0s}.pds-dashboard-nav__toggle{align-items:center;background-color:transparent;border:none;border-radius:.375rem;cursor:pointer;display:flex;height:var(--pds-spacing-dashboard-nav-item-height);justify-content:flex-end;padding-inline:var(--pds-spacing-dashboard-nav-item-padding)}.pds-dashboard-nav__toggle .pds-icon{margin-block-start:.0625rem;padding-inline:.125rem;transform:rotate(0deg);transition:all .2s ease-in-out 0s}.pds-dashboard-nav__toggle--expanded .pds-icon{margin-block-start:.0625rem;transform:rotate(180deg);transition:all .2s ease-in-out 0s}.pds-dashboard-nav__toggle:hover{background-color:var(--pds-dashboard-active-background-color)}.pds-dashboard-nav__toggle:hover,.pds-dashboard-nav__toggle:hover .pds-icon{color:var(--pds-dashboard-active-foreground-color)}.pds-dashboard-nav__toggle:focus-visible{outline:.0625rem solid var(--pds-color-interactive-focus);outline-offset:-1px;transition:outline .2s ease-in-out 0s}.pds-dashboard-nav__link-label{opacity:1;transition:opacity .1s ease-in-out}.pds-dashboard-nav--collapsed .pds-dashboard-nav__link-label{opacity:0;transition:opacity .1s ease-in-out}.pds-dashboard-nav--collapsed .pds-dashboard-nav__menu--second-level.pds-dashboard-nav__menu--expanded{display:none}.pds-dashboard-nav .pds-dropdown-menu__item--second-level a{color:var(--pds-color-text-default-secondary);padding-inline-start:3.25rem}
1
+ .pds-dashboard-nav{--pds-dashboard-nav-icon-width:1.563rem;--pds-dashboard-nav-space-after-icon:0.64rem;color:var(--pds-color-text-default);font-family:Poppins,sans-serif}.pds-dashboard-nav a{color:var(--pds-color-text-default);text-decoration:none}.pds-dashboard-nav .pds-icon{pointer-events:none}.pds-dashboard-nav__logo{box-sizing:content-box;margin-block-end:1.563rem;padding-inline:calc(var(--pds-spacing-dashboard-nav-item-padding) + .1875rem)}.pds-dashboard-nav__menu{list-style-type:none;margin:0;padding:0}.pds-dashboard-nav__item{list-style-type:none}.pds-dashboard-nav__menu--top-level{display:flex;flex-direction:column;row-gap:1rem}.pds-dashboard-nav__link-icon{align-items:center;display:flex;flex-grow:0;flex-shrink:0;justify-content:center;margin-block-start:-.0625rem;margin-inline-end:var(--pds-dashboard-nav-space-after-icon);width:var(--pds-dashboard-nav-icon-width)}.pds-dashboard-nav__link-icon .pds-icon--house,.pds-dashboard-nav__link-icon .pds-icon--robot{margin-block-start:-.125rem}.pds-dashboard-nav__item--top-level .pds-dashboard-nav__link,.pds-dashboard-nav__item--top-level a{box-shadow:none;outline:none}.pds-dashboard-nav__item--top-level:not(.pds-dashboard-nav__item--has-children) a{align-items:center;border-radius:.375rem;box-sizing:border-box;color:var(--pds-color-dashboard-nav-item-foreground-default);display:flex;height:var(--pds-spacing-dashboard-nav-item-height);padding-inline:var(--pds-spacing-dashboard-nav-item-padding)}.pds-dashboard-nav__item--top-level:not(.pds-dashboard-nav__item--has-children) a:hover{background-color:var(--pds-color-dashboard-nav-item-background-hover)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__item-inner{align-items:center;border-radius:.375rem;display:flex;height:var(--pds-spacing-dashboard-nav-item-height)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__item-inner:hover{background-color:var(--pds-color-dashboard-nav-item-background-hover)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__item-inner:hover .pds-icon,.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__item-inner:hover a{color:var(--pds-color-dashboard-nav-item-foreground-hover)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--has-children .pds-dashboard-nav__link{align-items:center;display:flex;height:var(--pds-spacing-dashboard-nav-item-height);padding-inline:var(--pds-spacing-dashboard-nav-item-padding);width:100%}.pds-dashboard-nav__link:focus-visible{border-radius:.375rem;outline:.0625rem solid var(--pds-color-interactive-focus);outline-offset:-1px;transition:outline .2s ease-in-out 0s}.pds-dashboard-nav__item--active.pds-dashboard-nav__item--has-children:hover>.pds-dashboard-nav__item-inner,.pds-dashboard-nav__item--active:hover>.pds-dashboard-nav__item-inner,.pds-dashboard-nav__item--active:hover>a.pds-dashboard-nav__link,.pds-dashboard-nav__item--active>.pds-dashboard-nav__item-inner,.pds-dashboard-nav__item--active>a.pds-dashboard-nav__link{background-color:var(--pds-color-dashboard-nav-item-background-active);color:var(--pds-color-dashboard-nav-item-foreground-active)}.pds-dashboard-nav__item--active.pds-dashboard-nav__item--has-children:hover>.pds-dashboard-nav__item-inner .pds-icon,.pds-dashboard-nav__item--active.pds-dashboard-nav__item--has-children:hover>.pds-dashboard-nav__item-inner a,.pds-dashboard-nav__item--active:hover>.pds-dashboard-nav__item-inner .pds-icon,.pds-dashboard-nav__item--active:hover>.pds-dashboard-nav__item-inner a,.pds-dashboard-nav__item--active:hover>a.pds-dashboard-nav__link .pds-icon,.pds-dashboard-nav__item--active:hover>a.pds-dashboard-nav__link a,.pds-dashboard-nav__item--active>.pds-dashboard-nav__item-inner .pds-icon,.pds-dashboard-nav__item--active>.pds-dashboard-nav__item-inner a,.pds-dashboard-nav__item--active>a.pds-dashboard-nav__link .pds-icon,.pds-dashboard-nav__item--active>a.pds-dashboard-nav__link a{color:var(--pds-color-dashboard-nav-item-foreground-active)}.pds-dashboard-nav__item--active
2
+ .pds-dashboard-nav__toggle--expanded:focus-visible,.pds-dashboard-nav__item--active a:focus-visible{outline-color:var(--pds-color-brand-primary-default)}.pds-dashboard-nav__menu--second-level{color:var(--pds-color-dashboard-nav-item-foreground-default);display:none;font-size:.833rem;margin-block-start:.8rem;padding-inline-start:calc(var(--pds-spacing-dashboard-nav-item-padding) + var(--pds-dashboard-nav-icon-width) + var(--pds-dashboard-nav-space-after-icon))}.pds-dashboard-nav__menu--second-level.pds-dashboard-nav__menu--expanded{display:flex;flex-direction:column;row-gap:.64rem}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level a{box-shadow:none;display:inline-block;height:unset;outline:none}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level a:hover,.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level.pds-dashboard-nav__item--active a{color:var(--pds-color-link-hover)}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level a:focus-visible{border-radius:.1875rem;outline:.0625rem solid var(--pds-color-interactive-focus);outline-offset:4px;transition:outline .2s ease-in-out 0s}.pds-dashboard-nav__toggle{align-items:center;background-color:transparent;border:none;border-radius:.375rem;cursor:pointer;display:flex;height:var(--pds-spacing-dashboard-nav-item-height);justify-content:flex-end;padding-inline:var(--pds-spacing-dashboard-nav-item-padding)}.pds-dashboard-nav__toggle .pds-icon{margin-block-start:.0625rem;padding-inline:.125rem;transform:rotate(0deg);transition:all .2s ease-in-out 0s}.pds-dashboard-nav__toggle--expanded .pds-icon{margin-block-start:.0625rem;transform:rotate(180deg);transition:all .2s ease-in-out 0s}.pds-dashboard-nav__toggle:hover{background-color:var(--pds-dashboard-active-background-color)}.pds-dashboard-nav__toggle:hover,.pds-dashboard-nav__toggle:hover .pds-icon{color:var(--pds-dashboard-active-foreground-color)}.pds-dashboard-nav__toggle:focus-visible{outline:.0625rem solid var(--pds-color-interactive-focus);outline-offset:-1px;transition:outline .2s ease-in-out 0s}.pds-dashboard-nav__link-label{opacity:1;transition:opacity .1s ease-in-out}.pds-dashboard-nav--collapsed .pds-dashboard-nav__link-label{opacity:0;transition:opacity .1s ease-in-out}.pds-dashboard-nav--collapsed .pds-dashboard-nav__menu--second-level.pds-dashboard-nav__menu--expanded{display:none}.pds-dashboard-nav .pds-dropdown-menu__item--second-level a{color:var(--pds-color-text-default-secondary);padding-inline-start:3.25rem}