@pantheon-systems/pds-toolkit-react 2.0.0-alpha.19 → 2.0.0-alpha.20

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 (56) hide show
  1. package/dist/components/{RefreshChecker/RefreshChecker.d.ts → StatusChecker/StatusChecker.d.ts} +5 -19
  2. package/dist/components/buttons/MenuButton/MenuButton.d.ts +1 -7
  3. package/dist/components/charts/shared/chart-colors.d.ts +1 -1
  4. package/dist/components/charts/shared/types.d.ts +1 -1
  5. package/dist/components/icons/Icon/generated-icon-data.d.ts +1 -1
  6. package/dist/components/navigation/Navbar/Navbar.d.ts +1 -1
  7. package/dist/components/navigation/SiteMenu/SiteMenu.d.ts +1 -5
  8. package/dist/components/navigation/SiteMenu/SiteMenuDropdown.d.ts +6 -9
  9. package/dist/components/navigation/UserMenu/UserMenu.d.ts +1 -5
  10. package/dist/components/navigation/WorkspaceSelector/WorkspaceSelector.d.ts +1 -5
  11. package/dist/components/notifications/NotificationsPopover/NotificationsPopover.d.ts +2 -7
  12. package/dist/css/component-css/pds-button-nav.css +1 -1
  13. package/dist/css/component-css/pds-dashboard-search.css +1 -1
  14. package/dist/css/component-css/pds-horizontal-empty-state.css +1 -1
  15. package/dist/css/component-css/pds-index.css +69 -12
  16. package/dist/css/component-css/pds-menu-button.css +4 -1
  17. package/dist/css/component-css/pds-nav-menu.css +1 -1
  18. package/dist/css/component-css/pds-navbar.css +4 -1
  19. package/dist/css/component-css/pds-notification-hub-icon.css +1 -1
  20. package/dist/css/component-css/pds-notifications-popover.css +13 -1
  21. package/dist/css/component-css/pds-pantheon-logo.css +1 -1
  22. package/dist/css/component-css/pds-status-checker.css +1 -0
  23. package/dist/css/component-css/pds-stepper.css +1 -1
  24. package/dist/css/component-css/pds-tab-menu.css +2 -2
  25. package/dist/css/component-css/pds-user-menu.css +29 -1
  26. package/dist/css/component-css/pds-vertical-stepper.css +1 -1
  27. package/dist/css/component-css/pds-workspace-selector.css +16 -1
  28. package/dist/css/design-tokens/variables.dark.css +50 -56
  29. package/dist/css/design-tokens/variables.light.css +50 -56
  30. package/dist/css/layout-css/pds-docs-layout.css +1 -1
  31. package/dist/css/layout-css/pds-index.css +1 -8
  32. package/dist/css/layout-css/pds-sidebar-layout.css +5 -0
  33. package/dist/css/pds-components.css +69 -12
  34. package/dist/css/pds-core.css +2 -2
  35. package/dist/css/pds-layouts.css +1 -8
  36. package/dist/index.css +1 -1
  37. package/dist/index.d.ts +10 -2
  38. package/dist/index.js +6040 -5356
  39. package/dist/index.js.map +1 -1
  40. package/dist/index.source.d.ts +2 -7
  41. package/dist/layouts/DocsLayout/DocsLayout.d.ts +9 -7
  42. package/dist/layouts/SidebarLayout/SidebarLayout.d.ts +12 -3
  43. package/dist/libs/components/NavAccordion/NavAccordion.d.ts +27 -0
  44. package/dist/utilities/FlexContainer/FlexContainer.d.ts +1 -1
  45. package/dist/utilities/GlobalWrapper/GlobalWrapper.d.ts +21 -0
  46. package/package.json +35 -29
  47. package/dist/components/navigation/DashboardNav/DashboardNav.d.ts +0 -35
  48. package/dist/components/navigation/DashboardNav/DashboardNavItem.d.ts +0 -24
  49. package/dist/css/component-css/pds-dashboard-nav.css +0 -5
  50. package/dist/css/component-css/pds-refresh-checker.css +0 -1
  51. package/dist/css/layout-css/pds-dashboard-global.css +0 -8
  52. package/dist/css/layout-css/pds-dashboard-inner.css +0 -1
  53. package/dist/layouts/DashboardGlobal/DashboardGlobal.d.ts +0 -57
  54. package/dist/layouts/DashboardInner/DashboardInner.d.ts +0 -30
  55. package/dist/layouts/GlobalWrapper/GlobalWrapper.d.ts +0 -19
  56. package/dist/utilities/context-providers/ResponsiveContext/ResponsiveContext.d.ts +0 -6
@@ -67,8 +67,6 @@ export * from './components/media/VideoEmbed/VideoEmbed';
67
67
  export * from './components/Modal/Modal';
68
68
  export * from './components/navigation/Breadcrumb/Breadcrumb';
69
69
  export * from './components/navigation/ButtonNav/ButtonNav';
70
- export * from './components/navigation/DashboardNav/DashboardNav';
71
- export * from './components/navigation/DashboardNav/DashboardNavItem';
72
70
  export * from './components/navigation/DashboardSearch/DashboardSearch';
73
71
  export * from './components/navigation/DropdownMenu/DropdownMenu';
74
72
  export * from './components/navigation/Navbar/Navbar';
@@ -101,10 +99,10 @@ export * from './components/Popover/Popover';
101
99
  export * from './components/progress-indicators/ProgressBar/ProgressBar';
102
100
  export * from './components/progress-indicators/ProgressRing/ProgressRing';
103
101
  export * from './components/PullQuote/PullQuote';
104
- export * from './components/RefreshChecker/RefreshChecker';
105
102
  export * from './components/SiteDashboardHeading/SiteDashboardHeading';
106
103
  export * from './components/Skiplink/Skiplink';
107
104
  export * from './components/SocialLinks/SocialLinks';
105
+ export * from './components/StatusChecker/StatusChecker';
108
106
  export * from './components/StatusIndicator/StatusIndicator';
109
107
  export * from './components/steppers/Stepper/Stepper';
110
108
  export * from './components/steppers/VerticalStepper/VerticalStepper';
@@ -119,21 +117,18 @@ export * from './components/tiles/TileGrid/TileGrid';
119
117
  export * from './components/Tooltip/Tooltip';
120
118
  export * from './libs/components/SiteOptionDisplay/SiteOptionDisplay';
121
119
  export * from './layouts/AppLayout/AppLayout';
122
- export * from './layouts/DashboardGlobal/DashboardGlobal';
123
- export * from './layouts/DashboardInner/DashboardInner';
124
120
  export * from './layouts/DocsLayout/DocsLayout';
125
- export * from './layouts/GlobalWrapper/GlobalWrapper';
126
121
  export * from './layouts/SidebarLayout/SidebarLayout';
127
122
  export * from './layouts/StepperLayout/StepperLayout';
128
123
  export * from './layouts/ThreeItemLayout/ThreeItemLayout';
129
124
  export * from './layouts/TwoItemLayout/TwoItemLayout';
130
125
  export * from './utilities/Container/Container';
131
126
  export * from './utilities/FlexContainer/FlexContainer';
127
+ export * from './utilities/GlobalWrapper/GlobalWrapper';
132
128
  export * from './libs/types/custom-types';
133
129
  export * from './libs/types/input-types';
134
130
  export * from './libs/types/layout-types';
135
131
  export * from './libs/types/navigation-types';
136
- export * from './utilities/context-providers/ResponsiveContext/ResponsiveContext';
137
132
  export * from './utilities/hooks/useBreakpoint/useBreakpoint';
138
133
  export * from './utilities/hooks/useClipboard/useClipboard';
139
134
  export * from './utilities/hooks/useDropdown';
@@ -13,18 +13,20 @@ interface DocsLayoutProps extends ComponentPropsWithoutRef<'div'> {
13
13
  */
14
14
  className?: string;
15
15
  /**
16
- * Minimum width of the sidebar when expanded in rems.
17
- * This is also the min-width of the sidebar when it is not collapsable (hasSidebarToggle is false).
16
+ * Width of the sidebar as a percentage.
18
17
  */
19
- sidebarMinWidth?: number;
18
+ sidebarWidth?: string;
20
19
  /**
21
- * Width of the sidebar when expanded as a percentage.
22
- * This is also the width of the sidebar when it is not collapsable (hasSidebarToggle is false).
20
+ * Maximum width of the sidebar in rems. Prevents the sidebar from growing too wide on large screens.
23
21
  */
24
- sidebarWidth?: string;
22
+ sidebarWidthMax?: number;
23
+ /**
24
+ * Minimum width of the sidebar in rems. Ensures the sidebar remains usable on medium-sized screens.
25
+ */
26
+ sidebarWidthMin?: number;
25
27
  }
26
28
  /**
27
29
  * DocsLayout UI component
28
30
  */
29
- export declare const DocsLayout: ({ children, className, sidebarMinWidth, sidebarWidth, ...props }: DocsLayoutProps) => import("react/jsx-runtime").JSX.Element;
31
+ export declare const DocsLayout: ({ children, className, sidebarWidth, sidebarWidthMax, sidebarWidthMin, style, ...props }: DocsLayoutProps) => import("react/jsx-runtime").JSX.Element;
30
32
  export {};
@@ -1,5 +1,6 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import { GridGapOptions } from '../../libs/types/layout-types';
3
+ import './sidebar-layout.css';
3
4
  /**
4
5
  * Prop types for SidebarLayout
5
6
  */
@@ -26,12 +27,20 @@ interface SidebarLayoutProps extends ComponentPropsWithoutRef<'div'> {
26
27
  */
27
28
  sidebarMobileLocation?: 'before' | 'after';
28
29
  /**
29
- * Sidebar width.
30
+ * Width of the sidebar as a percentage (e.g. `'33%'`).
30
31
  */
31
- sidebarWidth?: 'narrow' | 'standard' | 'wide';
32
+ sidebarWidth?: string;
33
+ /**
34
+ * Maximum width of the sidebar in rems. Prevents the sidebar from growing too wide on large screens.
35
+ */
36
+ sidebarWidthMax?: number;
37
+ /**
38
+ * Minimum width of the sidebar in rems. Ensures the sidebar remains usable on medium-sized screens.
39
+ */
40
+ sidebarWidthMin?: number;
32
41
  }
33
42
  /**
34
43
  * SidebarLayout UI component
35
44
  */
36
- export declare const SidebarLayout: ({ children, className, gridGap, sidebarLocation, sidebarMobileLocation, sidebarWidth, ...props }: SidebarLayoutProps) => import("react/jsx-runtime").JSX.Element;
45
+ export declare const SidebarLayout: ({ children, className, gridGap, sidebarLocation, sidebarMobileLocation, sidebarWidth, sidebarWidthMax, sidebarWidthMin, ...props }: SidebarLayoutProps) => import("react/jsx-runtime").JSX.Element;
37
46
  export {};
@@ -0,0 +1,27 @@
1
+ import { ReactNode } from 'react';
2
+ import './nav-accordion.css';
3
+ interface NavAccordionProps {
4
+ /**
5
+ * Expandable content shown when open.
6
+ */
7
+ children: ReactNode;
8
+ /**
9
+ * Additional class names.
10
+ */
11
+ className?: string;
12
+ /**
13
+ * Disables the toggle button.
14
+ */
15
+ disabled?: boolean;
16
+ /**
17
+ * Content of the toggle button — any ReactNode.
18
+ */
19
+ label: ReactNode;
20
+ }
21
+ /**
22
+ * Internal accordion component for the mobile navbar panel.
23
+ * Renders a toggle button with a rotating chevron and expandable content.
24
+ * Used by MenuButton, UserMenu, WorkspaceSelector, and NotificationsPopover.
25
+ */
26
+ export declare const NavAccordion: ({ children, className, disabled, label, }: NavAccordionProps) => import("react/jsx-runtime").JSX.Element;
27
+ export {};
@@ -68,5 +68,5 @@ interface FlexContainerProps extends ComponentPropsWithoutRef<'div'> {
68
68
  /**
69
69
  * Flex Container UI component
70
70
  */
71
- export declare const FlexContainer: ({ alignContent, alignItems, children, className, flexDirection, flexWrap, gap, justifyContent, mobileAlignContent, mobileAlignItems, mobileFlexDirection, mobileFlexWrap, mobileGap, mobileJustifyContent, ...props }: FlexContainerProps) => import("react/jsx-runtime").JSX.Element;
71
+ export declare const FlexContainer: ({ alignContent, alignItems, children, className, flexDirection, flexWrap, gap, justifyContent, mobileAlignContent, mobileAlignItems, mobileFlexDirection, mobileFlexWrap, mobileGap, mobileJustifyContent, style, ...props }: FlexContainerProps) => import("react/jsx-runtime").JSX.Element;
72
72
  export {};
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Prop types for GlobalWrapper
4
+ */
5
+ interface GlobalWrapperProps {
6
+ /**
7
+ * Child components
8
+ */
9
+ children: ReactNode;
10
+ /**
11
+ * Maximum viewport width in pixels at which mobile nav mode is active.
12
+ * Sets the `data-pds-mobile` attribute on `:root` for CSS to react to.
13
+ * Defaults to 767 to align with `--pds-bp-s-only` (`max-width: 767px`).
14
+ */
15
+ mobileMaxWidth?: number;
16
+ }
17
+ /**
18
+ * GlobalWrapper wrapper component.
19
+ */
20
+ export declare const GlobalWrapper: ({ children, mobileMaxWidth, }: GlobalWrapperProps) => import("react/jsx-runtime").JSX.Element;
21
+ export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pantheon-systems/pds-toolkit-react",
3
3
  "technology": "React",
4
- "version": "2.0.0-alpha.19",
4
+ "version": "2.0.0-alpha.20",
5
5
  "description": "PDS toolkit built using the React framework",
6
6
  "publishConfig": {
7
7
  "access": "public",
@@ -95,61 +95,61 @@
95
95
  },
96
96
  "devDependencies": {
97
97
  "@arethetypeswrong/cli": "^0.15.3",
98
- "@axe-core/playwright": "^4.11.0",
99
- "@babel/preset-env": "^7.21.5",
98
+ "@axe-core/playwright": "^4.11.3",
99
+ "@babel/preset-env": "^7.29.5",
100
100
  "@babel/preset-react": "^7.18.6",
101
101
  "@babel/preset-typescript": "^7.28.5",
102
102
  "@csstools/postcss-design-tokens": "^2.0.4",
103
103
  "@csstools/postcss-global-data": "^1.0.3",
104
- "@playwright/test": "^1.36.2",
105
- "@storybook/addon-a11y": "^10.3.0",
106
- "@storybook/addon-docs": "^10.3.0",
107
- "@storybook/addon-links": "^10.3.0",
108
- "@storybook/addon-mcp": "^0.5.0",
109
- "@storybook/addon-webpack5-compiler-swc": "^4.0.2",
110
- "@storybook/react-vite": "^10.3.0",
111
- "@storybook/react-webpack5": "^10.3.0",
112
- "@types/prismjs": "^1.26.5",
113
- "@types/react": "^19.2.2",
114
- "@typescript-eslint/eslint-plugin": "^8.47.0",
115
- "@typescript-eslint/parser": "^8.47.0",
104
+ "@playwright/test": "1.56.1",
105
+ "@storybook/addon-a11y": "^10.4.0",
106
+ "@storybook/addon-docs": "^10.4.0",
107
+ "@storybook/addon-links": "^10.4.0",
108
+ "@storybook/addon-mcp": "^0.6.0",
109
+ "@storybook/addon-webpack5-compiler-swc": "^4.0.3",
110
+ "@storybook/react-vite": "^10.4.0",
111
+ "@storybook/react-webpack5": "^10.4.0",
112
+ "@types/prismjs": "^1.26.6",
113
+ "@types/react": "^19.2.14",
114
+ "@typescript-eslint/eslint-plugin": "^8.59.3",
115
+ "@typescript-eslint/parser": "^8.59.3",
116
116
  "@vitejs/plugin-react": "^4.3.0",
117
117
  "@vueless/storybook-dark-mode": "^9.0.9",
118
118
  "axe-html-reporter": "^2.2.3",
119
119
  "chromatic": "^13.3.4",
120
120
  "concurrently": "^8.0.1",
121
121
  "cssnano": "^6.0.1",
122
- "eslint": "^9.26.0",
122
+ "eslint": "^9.39.4",
123
123
  "eslint-config-prettier": "^9.1.0",
124
124
  "eslint-import-resolver-typescript": "^4.4.4",
125
125
  "eslint-plugin-import": "^2.32.0",
126
- "eslint-plugin-prettier": "^5.1.3",
126
+ "eslint-plugin-prettier": "^5.5.5",
127
127
  "eslint-plugin-react": "^7.32.2",
128
128
  "eslint-plugin-simple-import-sort": "^12.1.1",
129
129
  "eslint-plugin-sort-destructure-keys": "^2.0.0",
130
- "eslint-plugin-storybook": "^10.3.0",
130
+ "eslint-plugin-storybook": "^10.4.0",
131
131
  "eslint-plugin-typescript-sort-keys": "^3.3.0",
132
132
  "fast-glob": "^3.3.2",
133
133
  "husky": "^8.0.3",
134
134
  "lint-staged": "^13.2.3",
135
135
  "pino-pretty": "^13.1.3",
136
136
  "plop": "^3.1.2",
137
- "postcss": "^8.4.38",
137
+ "postcss": "^8.5.14",
138
138
  "postcss-cli": "^10.1.0",
139
139
  "postcss-custom-media": "^9.1.3",
140
140
  "postcss-import": "^15.1.0",
141
141
  "postcss-insert": "^1.0.0",
142
- "postcss-loader": "^8.1.1",
142
+ "postcss-loader": "^8.2.1",
143
143
  "postcss-nested": "^6.0.1",
144
- "prettier": "3.2.5",
145
- "prettier-plugin-css-order": "^2.1.2",
144
+ "prettier": "^3.8.3",
145
+ "prettier-plugin-css-order": "^2.2.0",
146
146
  "react": "^18.2.0",
147
147
  "react-dom": "^18.2.0",
148
148
  "react-router-dom": "^6.13.0",
149
- "storybook": "^10.3.0",
150
- "tsc-alias": "^1.8.16",
149
+ "storybook": "^10.4.0",
150
+ "tsc-alias": "^1.8.17",
151
151
  "typescript": "^5.4.5",
152
- "vite": "^7.2.2",
152
+ "vite": "^7.3.3",
153
153
  "vite-plugin-lib-inject-css": "^2.1.1",
154
154
  "vite-tsconfig-paths": "^4.3.2"
155
155
  },
@@ -160,12 +160,12 @@
160
160
  "dependencies": {
161
161
  "@floating-ui/react": "^0.24.3",
162
162
  "@floating-ui/react-dom": "~1.3.0",
163
- "@pantheon-systems/pds-design-tokens": "^2.0.0-alpha.37",
163
+ "@pantheon-systems/pds-design-tokens": "^2.0.0-alpha.38",
164
164
  "@reactuses/core": "^5.0.15",
165
165
  "date-fns": "^4.1.0",
166
- "downshift": "^9.0.8",
167
- "express": "^4.22.1",
168
- "express-rate-limit": "^8.2.1",
166
+ "downshift": "^9.3.2",
167
+ "express": "^4.22.2",
168
+ "express-rate-limit": "^8.5.2",
169
169
  "focus-trap-react": "^10.2.1",
170
170
  "hash-sum": "^2.0.0",
171
171
  "modern-normalize": "^3.0.1",
@@ -185,6 +185,12 @@
185
185
  "@fortawesome/pro-regular-svg-icons": "^7.2.0",
186
186
  "@fortawesome/pro-solid-svg-icons": "^7.2.0"
187
187
  },
188
+ "overrides": {
189
+ "@babel/plugin-transform-modules-systemjs": "^7.29.4",
190
+ "fast-uri": "^3.1.2",
191
+ "hono": "^4.12.18",
192
+ "ip-address": "^10.1.1"
193
+ },
188
194
  "lint-staged": {
189
195
  "*": "prettier --write --ignore-unknown",
190
196
  "src/**/*.{js,jsx,ts,tsx}": "npm run eslint -- --fix"
@@ -1,35 +0,0 @@
1
- import { ComponentPropsWithoutRef } from 'react';
2
- import { DashboardNavItemProps } from './DashboardNavItem';
3
- import './dashboard-nav.css';
4
- /**
5
- * Prop types for DashboardNav
6
- */
7
- export interface DashboardNavProps extends ComponentPropsWithoutRef<'nav'> {
8
- /**
9
- * Aria label for the navigation.
10
- */
11
- ariaLabel: string;
12
- /**
13
- * Additional class names
14
- */
15
- className?: string;
16
- /**
17
- * Labels for translatable strings.
18
- */
19
- labels?: {
20
- submenu: string;
21
- toggle: string;
22
- };
23
- /**
24
- * Menu items to render.
25
- */
26
- menuItems: DashboardNavItemProps[];
27
- /**
28
- * Text to display in the mobile menu trigger button when no active link is found.
29
- */
30
- mobileMenuSelectTextFallback?: string;
31
- }
32
- /**
33
- * DashboardNav UI component
34
- */
35
- export declare const DashboardNav: ({ ariaLabel, className, labels, menuItems, mobileMenuSelectTextFallback, ...props }: DashboardNavProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,24 +0,0 @@
1
- import { NavigationItem } from '../../../libs/types/navigation-types';
2
- import { PDSIcon } from '../../icons/Icon/Icon';
3
- import './dashboard-nav.css';
4
- export interface DashboardNavItemProps extends NavigationItem {
5
- /**
6
- * Icon to display next to the link content.
7
- */
8
- icon?: PDSIcon;
9
- /**
10
- * Flag indicating whether the sidebar is expanded.
11
- */
12
- isSidebarExpanded?: boolean;
13
- /**
14
- * Labels for translatable strings.
15
- */
16
- labels?: {
17
- submenu: string;
18
- toggle: string;
19
- };
20
- }
21
- /**
22
- * DashboardNavItem UI component
23
- */
24
- export declare const DashboardNavItem: ({ icon, isActive, isSidebarExpanded, labels, linkContent, links, }: DashboardNavItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +0,0 @@
1
- .pds-dashboard-nav{--dashboard-nav-icon-width:var(--pds-spacing-xl);--dashboard-nav-space-after-icon:var(--pds-spacing-s);--dashboard-nav-foreground-color:var(
2
- --pds-color-dashboard-nav-item-foreground-default
3
- );--dashboard-nav-outline-color:var(--pds-color-interactive-focus);font-family:var(--pds-typography-ff-default)}.pds-dashboard-nav,.pds-dashboard-nav a{color:var(--dashboard-nav-foreground-color)}.pds-dashboard-nav a{text-decoration:none}.pds-dashboard-nav a:focus{box-shadow:none;outline:none}.pds-dashboard-nav a:hover{color:var(--dashboard-nav-foreground-color)}.pds-dashboard-nav a:focus-visible,.pds-dashboard-nav button:focus-visible{border-radius:var(--pds-border-radius-container);outline:var(--pds-border-width-outline) solid var(--dashboard-nav-outline-color);outline-offset:-1px}.pds-dashboard-nav .pds-icon{pointer-events:none}.pds-dashboard-nav__logo{box-sizing:content-box;margin-block-end:var(--pds-spacing-xl);margin-block-start:var(--pds-spacing-4xs);padding-inline:calc(var(--pds-spacing-dashboard-nav-item-padding) + .1875rem)}.pds-dashboard-nav__menu{display:flex;flex-direction:column;list-style-type:none;margin:0;padding:0;row-gap:var(--pds-spacing-s)}.pds-dashboard-nav__menu.pds-dashboard-nav__menu--top-level{row-gap:var(--pds-spacing-m)}.pds-dashboard-nav__item{list-style-type:none;margin-bottom:0}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--active .pds-dashboard-nav__item-wrapper{--dashboard-nav-foreground-color:var(
4
- --pds-color-dashboard-nav-item-foreground-active
5
- );--dashboard-nav-outline-color:var(--pds-color-brand-primary-default);background-color:var(--pds-color-dashboard-nav-item-background-active)}.pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--active .pds-dashboard-nav__item-wrapper:hover{background-color:var(--pds-color-dashboard-nav-item-background-active)}.pds-dashboard-nav__item--top-level .pds-dashboard-nav__item-wrapper{align-items:center;border-radius:var(--pds-border-radius-container);display:flex;height:var(--pds-spacing-dashboard-nav-item-height);justify-content:space-between;width:100%}.pds-dashboard-nav__item--top-level .pds-dashboard-nav__item-wrapper:hover{background-color:var(--pds-color-dashboard-nav-item-background-hover);transition:var(--pds-animation-transition-button)}.pds-dashboard-nav__item--top-level .pds-dashboard-nav__item-wrapper a{border-radius:var(--pds-border-radius-container);padding-inline:var(--pds-spacing-dashboard-nav-item-padding);width:100%}.pds-dashboard-nav__item--top-level .pds-dashboard-nav__item-inner,.pds-dashboard-nav__link-icon{align-items:center;display:flex}.pds-dashboard-nav__link-icon{flex-grow:0;flex-shrink:0;height:var(--pds-spacing-dashboard-nav-item-height);justify-content:center;margin-inline-end:var(--dashboard-nav-space-after-icon);width:var(--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__menu--second-level{color:var(--pds-color-dashboard-nav-item-foreground-default);display:none;margin-block-start:var(--pds-spacing-s);padding-inline-start:calc(var(--pds-spacing-dashboard-nav-item-padding) + var(--dashboard-nav-icon-width) + var(--dashboard-nav-space-after-icon))}.pds-dashboard-nav__menu--second-level.pds-dashboard-nav__menu--expanded{display:flex;row-gap:var(--pds-spacing-s)}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level{font-size:var(--pds-typography-size-s)}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level.pds-dashboard-nav__item--active a{color:var(--pds-color-nav-item-default-foreground-hover);font-weight:var(--pds-typography-fw-semibold)}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level a:hover{color:var(--pds-color-nav-item-default-foreground-hover)}.pds-dashboard-nav__item.pds-dashboard-nav__item--second-level a:focus-visible{border-radius:var(--pds-border-radius-container);outline:var(--pds-border-width-outline) solid var(--pds-color-interactive-focus);transition:var(--pds-animation-transition-focus)}.pds-dashboard-nav__toggle{align-items:center;background-color:transparent;border:none;border-radius:var(--pds-border-radius-container);color:var(--dashboard-nav-foreground-color);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{padding-inline:.125rem;transform:rotate(0deg);transition:var(--pds-animation-transition-rotation)}.pds-dashboard-nav__toggle--expanded .pds-icon{transform:rotate(180deg);transition:var(--pds-animation-transition-rotation)}.pds-dashboard-nav__link-label{opacity:1;transition:opacity .1s ease-in-out}.pds-dashboard-nav--collapsed .pds-dashboard-nav__logo svg{width:1.25rem}.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__item--top-level.pds-dashboard-nav__item--collapsed .pds-dashboard-nav__item-wrapper a{width:2.875rem}.pds-dashboard-nav__flyout{background-color:var(--pds-color-dropdown-background);border-radius:var(--pds-border-radius-container);box-shadow:var(--pds-elevation-overlay);max-width:30rem;padding:var(--pds-spacing-s);width:max-content;z-index:var(--pds-z-index-dropdown)}.pds-dashboard-nav__flyout-heading{color:var(--pds-color-dropdown-heading);font-family:var(--pds-typography-ff-default);font-size:var(--pds-typography-size-s);font-weight:var(--pds-typography-fw-regular);line-height:var(--pds-typography-lh-s);padding:var(--pds-spacing-s) var(--pds-spacing-s)}.pds-dashboard-nav__menu--second-level-flyout{row-gap:0}.pds-dashboard-nav__item--second-level-flyout{background-color:var(--pds-color-dropdown-background);color:var(--pds-color-dropdown-foreground);font-size:var(--pds-typography-size-m);line-height:var(--pds-typography-lh-s);margin:0}.pds-dashboard-nav__item--second-level-flyout a{border-radius:var(--pds-border-radius-container);cursor:pointer;display:block;padding:var(--pds-spacing-s) var(--pds-spacing-s)}.pds-dashboard-nav__item--second-level-flyout a:hover{background-color:var(--pds-color-dropdown-item-background-hover)}.pds-dashboard-nav__item--second-level-flyout.pds-dashboard-nav__item--active a{color:var(--pds-color-nav-item-default-foreground-active);font-weight:var(--pds-typography-fw-semibold)}.pds-dashboard-nav__item--second-level-flyout a:focus-visible{border-radius:var(--pds-border-radius-container);outline:var(--pds-border-width-outline) solid var(--pds-color-interactive-focus);transition:var(--pds-animation-transition-focus)}.pds-dashboard-nav .pds-tooltip__container{padding:var(--pds-spacing-3xs) var(--pds-spacing-xs)}.pds-dashboard-nav .pds-dropdown-menu .pds-dashboard-nav__item-inner{align-items:center;display:flex}.pds-dashboard-nav .pds-dropdown-menu__trigger{padding-inline:calc(var(--pds-spacing-dashboard-nav-item-padding) - .25rem)}.pds-dashboard-nav .pds-dropdown-menu__item a{padding-block:var(--pds-spacing-2xs);padding-inline:var(--pds-spacing-dashboard-nav-item-padding);width:100%}.pds-dashboard-nav .pds-dropdown-menu__item--second-level{padding-block:var(--pds-spacing-3xs);padding-inline-start:calc(var(--dashboard-nav-icon-width) + var(--dashboard-nav-space-after-icon) + .0625rem)}
@@ -1 +0,0 @@
1
- .pds-refresh-checker{display:flex}.pds-refresh-checker__button{align-items:center;background-color:transparent;border:0;color:var(--pds-color-fg-default-secondary);cursor:pointer;display:flex;font-family:var(--pds-typography-ff-default);font-size:var(--pds-typography-size-s);font-weight:var(--pds-typography-fw-regular);gap:var(--pds-spacing-xs);height:var(--pds-spacing-button-height-m)}.pds-refresh-checker__button:hover .pds-refresh-checker__icon,.pds-refresh-checker__button:hover .pds-refresh-checker__label{color:var(--pds-color-interactive-link-hover)}.pds-refresh-checker__button .pds-refresh-checker__icon{color:var(--pds-color-fg-default)}.pds-refresh-checker__button .pds-tooltip .pds-refresh-checker__tooltip-icon{align-items:center;display:flex}.pds-refresh-checker__button--spinning{cursor:not-allowed}.pds-refresh-checker__icon--spinning{animation:pds-refresh-checker__icon--spin 1s linear infinite}@keyframes pds-refresh-checker__icon--spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pds-refresh-checker--left{justify-content:flex-start}.pds-refresh-checker--left .pds-tooltip{padding-inline-end:var(--pds-spacing-4xs)}.pds-refresh-checker--right{justify-content:flex-end}.pds-refresh-checker--right .pds-tooltip{padding-inline-start:var(--pds-spacing-4xs)}
@@ -1,8 +0,0 @@
1
- .pds-dashboard-global{--dashboard-toggle-icon-size:1.5rem;--dashboard-toggle-trigger-size:3rem;--dashboard-toggle-top-position:5rem;--dashboard-navbar-inline-padding:var(--pds-spacing-2xl);display:flex;min-height:100vh;overflow:hidden;position:relative}@media (min-width:768px){.pds-dashboard-global .pds-workspace-selector{margin-inline-start:-1.25rem}}.pds-dashboard-global .pds-pantheon-logo:not(.pds-pantheon-logo--icon){width:10rem}.pds-dashboard-global--notMobile{background-color:var(--pds-color-dashboard-nav-background)}.pds-dashboard-global--notMobile .pds-dashboard-global__header{max-width:calc(var(--pds-container-dashboard-navbar-max-width) + var(--dashboard-navbar-inline-padding)*2)}.pds-dashboard-global--notMobile .pds-dashboard-global__sidebar-toggle-button{background-color:transparent;border:none;height:calc(100% - var(--dashboard-toggle-top-position));position:absolute;right:calc(var(--dashboard-toggle-trigger-size)*-.5);top:var(--dashboard-toggle-top-position);width:var(--dashboard-toggle-trigger-size);z-index:2}.pds-dashboard-global--notMobile .pds-dashboard-global__sidebar-toggle-button:focus-visible{outline:none}.pds-dashboard-global--notMobile .pds-dashboard-global__sidebar-toggle-button:focus-visible>.pds-dashboard-global__sidebar-toggle-icon{opacity:1;outline:var(--pds-border-width-default) solid var(--pds-color-interactive-focus);outline-offset:2px}.pds-dashboard-global--notMobile .pds-dashboard-global__sidebar-toggle-button:hover>.pds-dashboard-global__sidebar-toggle-icon{opacity:1;transition:opacity .1s ease-in-out;transition-delay:.1s}.pds-dashboard-global--notMobile .pds-dashboard-global__sidebar-toggle-icon{align-items:center;background-color:var(--pds-color-dashboard-toggle-button-background);border:none;border-radius:50%;color:var(--pds-color-dashboard-toggle-button-foreground);display:flex;height:var(--dashboard-toggle-icon-size);justify-content:center;opacity:0;position:absolute;right:25%;top:2rem;transition:var(--pds-animation-transition-rotation);width:var(--dashboard-toggle-icon-size);z-index:2}.pds-dashboard-global--notMobile .pds-dashboard-global__sidebar-toggle-button[aria-expanded=false]
2
- .pds-dashboard-global__sidebar-toggle-icon{transform:rotate(180deg);transition:var(--pds-animation-transition-rotation)}.pds-dashboard-global--notMobile .pds-dashboard-global__sidebar{box-sizing:content-box;padding-block-end:var(--pds-spacing-m);padding-block-start:.75rem;padding-inline-end:var(--pds-spacing-xl);padding-inline-start:calc(var(--pds-spacing-xl) + var(--pds-spacing-dashboard-nav-item-padding));position:relative}.pds-dashboard-global--notMobile .pds-dashboard-global__sidebar-inner{height:100%;margin-inline-start:-.75rem;overflow-x:hidden}.pds-dashboard-global--notMobile .pds-dashboard-global__right{display:flex;flex-direction:column}.pds-dashboard-global--notMobile .pds-navbar__inner{padding-inline-end:var(--pds-spacing-2xl)}.pds-dashboard-global--notMobile .pds-dashboard-global__inner{background-color:var(--pds-color-bg-default);border-top-left-radius:1.25rem;box-shadow:var(--pds-elevation-dashboard);display:flex;flex:1;flex-direction:column;position:relative}.pds-dashboard-global--notMobile .pds-dashboard-global__main{flex:1;padding-block:var(--pds-spacing-2xl);padding-inline:var(--pds-spacing-2xl) calc(var(--pds-spacing-2xl) + .25rem)}.pds-dashboard-global--notMobile .pds-site-footer .pds-container{padding-inline:var(--pds-spacing-2xl)}.pds-dashboard-global__sidebar--collapsed
3
- .pds-dashboard-global__sidebar-toggle{opacity:1}.pds-dashboard-global--isMobile{display:flex;flex-direction:column}.pds-dashboard-global--isMobile .pds-dashboard-global__sidebar{padding-block:var(--pds-spacing-2xl);padding-inline:var(--pds-spacing-xl)}.pds-dashboard-global--isMobile .pds-dashboard-global__main{padding-block:var(--pds-spacing-s);padding-inline:var(--pds-spacing-xl)}.pds-dashboard-global--isMobile .pds-site-footer{padding-inline:var(--pds-spacing-3xs)}.pds-dashboard-global--isAdmin{--pds-color-dashboard-nav-background:var(
4
- --pds-color-dashboard-nav-background-admin
5
- )}.pds-dashboard-global--isAdmin .pds-dashboard-nav__item--top-level .pds-dashboard-nav__item-wrapper:hover,.pds-dashboard-global--isAdmin button.pds-icon-button:hover:enabled{background-color:var(
6
- --pds-color-dashboard-nav-item-background-hover-admin
7
- )}.pds-dashboard-global--isAdmin .pds-dashboard-nav__item--top-level.pds-dashboard-nav__item--active
8
- .pds-dashboard-nav__item-wrapper:hover{background-color:var(--pds-color-dashboard-nav-item-background-active)}
@@ -1 +0,0 @@
1
- .pds-dashboard-inner{max-width:var(--pds-container-dashboard-navbar-max-width)}.pds-dashboard-inner__header{column-gap:var(--pds-spacing-2xl);display:flex;flex-wrap:wrap;justify-content:space-between;margin-block-end:var(--pds-spacing-xl);row-gap:var(--pds-spacing-xl)}.pds-dashboard-inner__content-wrapper{display:flex;flex-direction:column;row-gap:var(--pds-spacing-2xl);width:100%}.pds-dashboard-inner__content--with-spacing>:nth-last-child(2){margin-block-end:var(--pds-spacing-2xl)}
@@ -1,57 +0,0 @@
1
- import React, { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- export declare const DashboardContext: React.Context<any>;
3
- import './dashboard-global.css';
4
- /**
5
- * Prop types for DashboardGlobal
6
- */
7
- interface DashboardGlobalProps extends ComponentPropsWithoutRef<'div'> {
8
- /**
9
- * Child elements to be assigned to named slots.
10
- */
11
- children: ReactNode;
12
- /**
13
- * Additional class names. Will be merged with existing component root classes.
14
- */
15
- className?: string;
16
- /**
17
- * Whether to include a sidebar toggle button.
18
- */
19
- hasSidebarToggle?: boolean;
20
- /**
21
- * Is the dashboard in admin mode?
22
- */
23
- isAdmin?: boolean;
24
- /**
25
- * Is the sidebar expanded?
26
- */
27
- isSidebarExpanded?: boolean;
28
- /**
29
- * A fully-formed link element using the router of your choice. The link text will be used as the aria-label. If the logo should not be a link, set to `null`.
30
- */
31
- logoLinkContent?: ReactNode;
32
- /**
33
- * Function to set the sidebar expanded state.
34
- */
35
- setIsSidebarExpanded?: (isOpen: boolean) => void;
36
- /**
37
- * Width of the sidebar when collapsed in rems. This should not need to be modified.
38
- */
39
- sidebarCollapsedWidth?: number;
40
- /**
41
- * Width of the sidebar when expanded in rems. This should not need to be modified, unless slightly to accommodate longer top-level navigation items.
42
- */
43
- sidebarExpandedWidth?: number;
44
- /**
45
- * Translatable string for sidebar toggle button.
46
- */
47
- sidebarToggleLabel?: string;
48
- /**
49
- * Translatable string for skiplink.
50
- */
51
- skiplinkText?: string;
52
- }
53
- /**
54
- * DashboardGlobal UI component
55
- */
56
- export declare const DashboardGlobal: ({ children, className, hasSidebarToggle, isAdmin, isSidebarExpanded, logoLinkContent, setIsSidebarExpanded, sidebarCollapsedWidth, sidebarExpandedWidth, sidebarToggleLabel, skiplinkText, ...props }: DashboardGlobalProps) => import("react/jsx-runtime").JSX.Element;
57
- export {};
@@ -1,30 +0,0 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- import './dashboard-inner.css';
3
- /**
4
- * Prop types for DashboardInner
5
- */
6
- interface DashboardInnerProps extends ComponentPropsWithoutRef<'div'> {
7
- /**
8
- * Child elements. Main content can be passed without a slot attribute (unslotted).
9
- * Optional named slots: `header-left`, `header-right`, `content` (for backwards compatibility).
10
- */
11
- children: ReactNode;
12
- /**
13
- * Additional class names
14
- */
15
- className?: string;
16
- /**
17
- * Whether to apply bottom spacing to the second-to-last content child.
18
- * This prop provides flexibility for different dashboard layouts:
19
- * - When true: Adds consistent spacing between content sections while preventing
20
- * unnecessary spacing after the last element
21
- * - When false: Removes all content spacing for layouts that require custom spacing
22
- * @default false
23
- */
24
- hasContentSpacing?: boolean;
25
- }
26
- /**
27
- * DashboardInner UI component
28
- */
29
- export declare const DashboardInner: ({ children, className, hasContentSpacing, ...props }: DashboardInnerProps) => import("react/jsx-runtime").JSX.Element;
30
- export {};
@@ -1,19 +0,0 @@
1
- import { ReactNode } from 'react';
2
- /**
3
- * Prop types for GlobalWrapper
4
- */
5
- interface GlobalWrapperProps {
6
- /**
7
- * Child components
8
- */
9
- children: ReactNode;
10
- /**
11
- * Mobile menu will be enabled when viewport is at or below this number in pixels.
12
- */
13
- mobileMenuMaxWidth?: number;
14
- }
15
- /**
16
- * GlobalWrapper wrapper component.
17
- */
18
- export declare const GlobalWrapper: ({ children, mobileMenuMaxWidth, }: GlobalWrapperProps) => import("react/jsx-runtime").JSX.Element;
19
- export {};
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export declare const ResponsiveContext: React.Context<any>;
3
- export declare const ResponsiveContextProvider: ({ children, mobileMenuMaxWidth, }: {
4
- children: any;
5
- mobileMenuMaxWidth?: number;
6
- }) => import("react/jsx-runtime").JSX.Element;