@pantheon-systems/pds-toolkit-react 2.0.0-alpha.8 → 2.0.0-alpha.80

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 (426) hide show
  1. package/bin/pds-codemod.cjs +58 -0
  2. package/codemods/v1-to-v2/css-token-renames.js +186 -0
  3. package/codemods/v1-to-v2/mappings.json +1787 -0
  4. package/codemods/v1-to-v2/transforms/__testfixtures__/component-renames/basic.input.tsx +33 -0
  5. package/codemods/v1-to-v2/transforms/__testfixtures__/component-renames/basic.output.tsx +33 -0
  6. package/codemods/v1-to-v2/transforms/__testfixtures__/component-renames/only.input.tsx +8 -0
  7. package/codemods/v1-to-v2/transforms/__testfixtures__/component-renames/only.output.tsx +8 -0
  8. package/codemods/v1-to-v2/transforms/__testfixtures__/css-class-removals/basic.input.tsx +55 -0
  9. package/codemods/v1-to-v2/transforms/__testfixtures__/css-class-removals/basic.output.tsx +55 -0
  10. package/codemods/v1-to-v2/transforms/__testfixtures__/css-class-renames/basic.input.tsx +60 -0
  11. package/codemods/v1-to-v2/transforms/__testfixtures__/css-class-renames/basic.output.tsx +60 -0
  12. package/codemods/v1-to-v2/transforms/__testfixtures__/icon-name-updates/basic.input.tsx +35 -0
  13. package/codemods/v1-to-v2/transforms/__testfixtures__/icon-name-updates/basic.output.tsx +35 -0
  14. package/codemods/v1-to-v2/transforms/__testfixtures__/icon-name-updates/only.input.tsx +8 -0
  15. package/codemods/v1-to-v2/transforms/__testfixtures__/icon-name-updates/only.output.tsx +8 -0
  16. package/codemods/v1-to-v2/transforms/__testfixtures__/prop-renames/basic.input.tsx +28 -0
  17. package/codemods/v1-to-v2/transforms/__testfixtures__/prop-renames/basic.output.tsx +28 -0
  18. package/codemods/v1-to-v2/transforms/__testfixtures__/prop-renames/only.input.tsx +8 -0
  19. package/codemods/v1-to-v2/transforms/__testfixtures__/prop-renames/only.output.tsx +8 -0
  20. package/codemods/v1-to-v2/transforms/__testfixtures__/prop-value-standardization/basic.input.tsx +37 -0
  21. package/codemods/v1-to-v2/transforms/__testfixtures__/prop-value-standardization/basic.output.tsx +37 -0
  22. package/codemods/v1-to-v2/transforms/__testfixtures__/prop-value-standardization/only.input.tsx +21 -0
  23. package/codemods/v1-to-v2/transforms/__testfixtures__/prop-value-standardization/only.output.tsx +21 -0
  24. package/codemods/v1-to-v2/transforms/__testfixtures__/removed-prop-values/basic.input.tsx +60 -0
  25. package/codemods/v1-to-v2/transforms/__testfixtures__/removed-prop-values/basic.output.tsx +51 -0
  26. package/codemods/v1-to-v2/transforms/__testfixtures__/removed-prop-values/only.input.tsx +8 -0
  27. package/codemods/v1-to-v2/transforms/__testfixtures__/removed-prop-values/only.output.tsx +8 -0
  28. package/codemods/v1-to-v2/transforms/__tests__/component-renames.test.js +15 -0
  29. package/codemods/v1-to-v2/transforms/__tests__/css-class-removals.test.js +6 -0
  30. package/codemods/v1-to-v2/transforms/__tests__/css-class-renames.test.js +6 -0
  31. package/codemods/v1-to-v2/transforms/__tests__/icon-name-updates.test.js +15 -0
  32. package/codemods/v1-to-v2/transforms/__tests__/prop-renames.test.js +15 -0
  33. package/codemods/v1-to-v2/transforms/__tests__/prop-value-standardization.test.js +16 -0
  34. package/codemods/v1-to-v2/transforms/__tests__/removed-prop-values.test.js +15 -0
  35. package/codemods/v1-to-v2/transforms/component-renames.js +166 -0
  36. package/codemods/v1-to-v2/transforms/css-class-removals.js +262 -0
  37. package/codemods/v1-to-v2/transforms/css-class-renames.js +178 -0
  38. package/codemods/v1-to-v2/transforms/icon-name-updates.js +124 -0
  39. package/codemods/v1-to-v2/transforms/prop-renames.js +109 -0
  40. package/codemods/v1-to-v2/transforms/prop-value-standardization.js +143 -0
  41. package/codemods/v1-to-v2/transforms/removed-prop-values.js +206 -0
  42. package/dist/components/Avatar/Avatar.d.ts +5 -1
  43. package/dist/components/Callout/Callout.d.ts +6 -2
  44. package/dist/components/CodeBlock/CodeBlock.d.ts +10 -5
  45. package/dist/components/CodeBlock/code-examples.d.ts +2 -1
  46. package/dist/components/CodeBlock/prism-setup.d.ts +2 -0
  47. package/dist/components/CodeBlock/themes/index.d.ts +1 -2
  48. package/dist/components/CodeBlock/themes/{pdsDark.d.ts → pds.d.ts} +1 -1
  49. package/dist/components/ComparisonList/ComparisonList.d.ts +6 -1
  50. package/dist/components/Dropdown/Dropdown.d.ts +257 -0
  51. package/dist/components/Dropdown/DropdownSelectedIcon.d.ts +7 -0
  52. package/dist/components/FileDiff/FileDiff.d.ts +2 -2
  53. package/dist/components/IdentityBlock/IdentityBlock.d.ts +37 -0
  54. package/dist/components/PantheonLogo/PantheonLogo.d.ts +5 -4
  55. package/dist/components/Popover/Popover.d.ts +5 -1
  56. package/dist/components/ResultCount/ResultCount.d.ts +53 -0
  57. package/dist/components/RowActionsMenu/RowActionsMenu.d.ts +46 -0
  58. package/dist/components/SiteFooter/SiteFooter.d.ts +45 -0
  59. package/dist/components/{navigation/DashboardSearch/DashboardSearch.d.ts → SiteSearch/SiteSearch.d.ts} +6 -11
  60. package/dist/components/SortableList/SortableList.d.ts +8 -0
  61. package/dist/components/SortableList/SortableListHeader.d.ts +7 -0
  62. package/dist/components/SortableList/SortableRow.d.ts +16 -0
  63. package/dist/components/SortableList/sortable-utils.d.ts +19 -0
  64. package/dist/components/SortableList/types.d.ts +142 -0
  65. package/dist/components/SortableList/useSortableTree.d.ts +18 -0
  66. package/dist/components/StatPanel/StatPanel.d.ts +70 -0
  67. package/dist/components/{RefreshChecker/RefreshChecker.d.ts → StatusChecker/StatusChecker.d.ts} +6 -19
  68. package/dist/components/StatusIndicator/StatusIndicator.d.ts +7 -4
  69. package/dist/components/Table/Table.d.ts +356 -17
  70. package/dist/components/TableOfContents/TableOfContents.d.ts +1 -5
  71. package/dist/components/Tag/Tag.d.ts +21 -3
  72. package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts +29 -8
  73. package/dist/components/Tooltip/Tooltip.d.ts +6 -2
  74. package/dist/components/UtilityBar/UtilityBar.d.ts +26 -0
  75. package/dist/components/badges/Badge/Badge.d.ts +10 -3
  76. package/dist/components/badges/StatusBadge/StatusBadge.d.ts +2 -1
  77. package/dist/components/buttons/Button/Button.d.ts +15 -0
  78. package/dist/components/buttons/ButtonLink/ButtonLink.d.ts +1 -3
  79. package/dist/components/buttons/ClipboardButton/ClipboardButton.d.ts +5 -1
  80. package/dist/components/buttons/CloseButton/CloseButton.d.ts +2 -2
  81. package/dist/components/buttons/FilterButton/FilterButton.d.ts +92 -0
  82. package/dist/components/buttons/IconButton/IconButton.d.ts +13 -1
  83. package/dist/components/buttons/MenuButton/MenuButton.d.ts +53 -19
  84. package/dist/components/buttons/SSOButton/SSOButton.d.ts +9 -1
  85. package/dist/components/buttons/SegmentedButton/SegmentedButton.d.ts +44 -8
  86. package/dist/components/buttons/SelectButton/SelectButton.d.ts +81 -0
  87. package/dist/components/buttons/SplitButton/SplitButton.d.ts +7 -1
  88. package/dist/components/cards/ActionCard/ActionCard.d.ts +64 -0
  89. package/dist/components/cards/Card/Card.d.ts +10 -4
  90. package/dist/components/cards/CardSelect/CardSelect.d.ts +100 -0
  91. package/dist/components/charts/BarChart/BarChart.d.ts +21 -0
  92. package/dist/components/charts/LineChart/LineChart.d.ts +22 -0
  93. package/dist/components/charts/PieChart/PieChart.d.ts +59 -0
  94. package/dist/components/charts/ProportionBar/ProportionBar.d.ts +57 -0
  95. package/dist/components/charts/shared/ChartAccessibleTable.d.ts +17 -0
  96. package/dist/components/charts/shared/ChartLegend.d.ts +31 -0
  97. package/dist/components/charts/shared/ChartSkeleton.d.ts +11 -0
  98. package/dist/components/charts/shared/chart-colors.d.ts +30 -0
  99. package/dist/components/charts/shared/chart-styles.d.ts +24 -0
  100. package/dist/components/charts/shared/formatters.d.ts +12 -0
  101. package/dist/components/charts/shared/types.d.ts +128 -0
  102. package/dist/components/empty-states/HorizontalEmptyState/HorizontalEmptyState.d.ts +13 -8
  103. package/dist/components/empty-states/VerticalEmptyState/VerticalEmptyState.d.ts +3 -2
  104. package/dist/components/icons/Icon/Icon.d.ts +2 -2
  105. package/dist/components/icons/Icon/custom-icons.d.ts +1 -1
  106. package/dist/components/icons/Icon/generated-icon-data.d.ts +226 -16
  107. package/dist/components/icons/PaymentIcon/PaymentIcon.d.ts +7 -3
  108. package/dist/components/icons/PlatformIcon/PlatformIcon.d.ts +6 -6
  109. package/dist/components/inputs/Checkbox/Checkbox.d.ts +3 -3
  110. package/dist/components/inputs/CheckboxFieldset/CheckboxFieldset.d.ts +9 -1
  111. package/dist/components/inputs/CheckboxGroup/CheckboxGroup.d.ts +9 -1
  112. package/dist/components/inputs/Combobox/Combobox.d.ts +17 -7
  113. package/dist/components/inputs/ComboboxMultiselect/ComboboxMultiselect.d.ts +10 -5
  114. package/dist/components/inputs/Datepicker/Datepicker.d.ts +217 -14
  115. package/dist/components/inputs/FileUpload/FileUpload.d.ts +6 -1
  116. package/dist/components/inputs/RadioGroup/RadioGroup.d.ts +10 -2
  117. package/dist/components/inputs/Select/Select.d.ts +11 -2
  118. package/dist/components/inputs/Switch/Switch.d.ts +5 -5
  119. package/dist/components/inputs/TagsInput/TagsInput.d.ts +6 -1
  120. package/dist/components/inputs/TextInput/TextInput.d.ts +4 -4
  121. package/dist/components/inputs/Textarea/Textarea.d.ts +2 -2
  122. package/dist/components/inputs/Timepicker/Timepicker.d.ts +94 -0
  123. package/dist/components/inputs/input-utilities.d.ts +12 -2
  124. package/dist/components/{CTALink → links/CTALink}/CTALink.d.ts +2 -2
  125. package/dist/components/{LinkNewWindow → links/LinkNewWindow}/LinkNewWindow.d.ts +1 -1
  126. package/dist/components/loading-indicators/Spinner/Spinner.d.ts +5 -4
  127. package/dist/components/navigation/ButtonNav/ButtonNav.d.ts +11 -5
  128. package/dist/components/navigation/DropdownMenu/DropdownMenu.d.ts +1 -0
  129. package/dist/components/navigation/Navbar/Navbar.d.ts +9 -21
  130. package/dist/components/navigation/SideNav/SideNav.d.ts +7 -1
  131. package/dist/components/navigation/SideNavGlobal/SideNavGlobal.d.ts +5 -15
  132. package/dist/components/navigation/SideNavGlobal/SideNavGlobalItem.d.ts +15 -1
  133. package/dist/components/navigation/SiteMenu/SiteMenu.d.ts +26 -0
  134. package/dist/components/navigation/SiteMenu/SiteMenuDropdown.d.ts +23 -0
  135. package/dist/components/navigation/TreeNav/TreeNav.d.ts +48 -0
  136. package/dist/components/navigation/UserMenu/UserMenu.d.ts +31 -5
  137. package/dist/components/navigation/WorkspaceSelector/WorkspaceSelector.d.ts +13 -16
  138. package/dist/components/navigation/navigation-utilities.d.ts +15 -2
  139. package/dist/components/notifications/SectionMessage/SectionMessage.d.ts +12 -4
  140. package/dist/components/notifications/Toaster/Toast.d.ts +12 -1
  141. package/dist/components/notifications/Toaster/Toaster.d.ts +16 -7
  142. package/dist/components/notifications/Toaster/useToast.d.ts +2 -0
  143. package/dist/components/overlays/BottomSheet/BottomSheet.d.ts +66 -0
  144. package/dist/components/overlays/BulkActionBar/BulkActionBar.d.ts +48 -0
  145. package/dist/components/overlays/Drawer/Drawer.d.ts +58 -0
  146. package/dist/components/overlays/FullScreenOverlay/FullScreenOverlay.d.ts +45 -0
  147. package/dist/components/{Modal → overlays/Modal}/Modal.d.ts +1 -1
  148. package/dist/components/{Pagination → pagination/Pagination}/Pagination.d.ts +7 -2
  149. package/dist/components/pagination/PaginationChapter/PaginationChapter.d.ts +55 -0
  150. package/dist/components/pagination/PaginationCompact/PaginationCompact.d.ts +67 -0
  151. package/dist/components/panels/ExpansionPanel/ExpansionPanel.d.ts +1 -2
  152. package/dist/components/panels/ExpansionPanelGroup/ExpansionPanelGroup.d.ts +1 -2
  153. package/dist/components/panels/FeaturePanel/FeaturePanel.d.ts +72 -0
  154. package/dist/components/panels/Panel/Panel.d.ts +4 -21
  155. package/dist/components/panels/PanelList/PanelList.d.ts +1 -1
  156. package/dist/components/panels/PanelStack/PanelStack.d.ts +19 -0
  157. package/dist/components/panels/WidgetPanel/WidgetPanel.d.ts +39 -0
  158. package/dist/components/progress-indicators/ProgressBar/ProgressBar.d.ts +4 -5
  159. package/dist/components/progress-indicators/ProgressRing/ProgressRing.d.ts +12 -4
  160. package/dist/components/{FlowSteps/FlowSteps.d.ts → steppers/StepList/StepList.d.ts} +7 -7
  161. package/dist/css/component-css/pds-action-card.css +1 -0
  162. package/dist/css/component-css/pds-avatar.css +1 -1
  163. package/dist/css/component-css/pds-badge.css +1 -1
  164. package/dist/css/component-css/pds-banner.css +1 -1
  165. package/dist/css/component-css/pds-bar-chart.css +1 -0
  166. package/dist/css/component-css/pds-bottom-sheet.css +1 -0
  167. package/dist/css/component-css/pds-branch-diff.css +1 -1
  168. package/dist/css/component-css/pds-breadcrumb.css +1 -1
  169. package/dist/css/component-css/pds-bulk-action-bar.css +1 -0
  170. package/dist/css/component-css/pds-button-link.css +1 -1
  171. package/dist/css/component-css/pds-button-nav.css +1 -1
  172. package/dist/css/component-css/pds-button.css +46 -14
  173. package/dist/css/component-css/pds-callout.css +1 -1
  174. package/dist/css/component-css/pds-card-select.css +2 -0
  175. package/dist/css/component-css/pds-card.css +1 -1
  176. package/dist/css/component-css/pds-chart-legend.css +1 -0
  177. package/dist/css/component-css/pds-chart-wrapper.css +1 -0
  178. package/dist/css/component-css/pds-checkbox-group.css +1 -1
  179. package/dist/css/component-css/pds-checkbox.css +1 -1
  180. package/dist/css/component-css/pds-close-button.css +1 -1
  181. package/dist/css/component-css/pds-code-block-legacy.css +1 -1
  182. package/dist/css/component-css/pds-code-block.css +1 -1
  183. package/dist/css/component-css/pds-combobox-multiselect.css +3 -2
  184. package/dist/css/component-css/pds-combobox.css +1 -1
  185. package/dist/css/component-css/pds-compact-empty-state.css +1 -1
  186. package/dist/css/component-css/pds-comparison-list.css +1 -1
  187. package/dist/css/component-css/pds-cta-link.css +1 -1
  188. package/dist/css/component-css/pds-datepicker.css +1 -3
  189. package/dist/css/component-css/pds-drawer.css +1 -0
  190. package/dist/css/component-css/pds-dropdown-menu.css +2 -2
  191. package/dist/css/component-css/pds-dropdown.css +3 -0
  192. package/dist/css/component-css/pds-expansion-panel-group.css +1 -1
  193. package/dist/css/component-css/pds-expansion-panel.css +2 -1
  194. package/dist/css/component-css/pds-feature-panel.css +15 -0
  195. package/dist/css/component-css/pds-file-diff.css +1 -1
  196. package/dist/css/component-css/pds-file-upload.css +3 -3
  197. package/dist/css/component-css/pds-filter-button.css +1 -0
  198. package/dist/css/component-css/pds-full-screen-overlay.css +1 -0
  199. package/dist/css/component-css/pds-horizontal-empty-state.css +1 -1
  200. package/dist/css/component-css/pds-icon-button.css +22 -14
  201. package/dist/css/component-css/pds-icon-story-only.css +1 -1
  202. package/dist/css/component-css/pds-icon.css +1 -1
  203. package/dist/css/component-css/pds-identity-block.css +1 -0
  204. package/dist/css/component-css/pds-index.css +187 -57
  205. package/dist/css/component-css/pds-inline-message.css +1 -1
  206. package/dist/css/component-css/pds-input-group.css +1 -1
  207. package/dist/css/component-css/pds-input-utilities.css +1 -1
  208. package/dist/css/component-css/pds-line-chart.css +1 -0
  209. package/dist/css/component-css/pds-link-new-window.css +1 -1
  210. package/dist/css/component-css/pds-menu-button.css +7 -1
  211. package/dist/css/component-css/pds-modal.css +1 -1
  212. package/dist/css/component-css/pds-nav-menu.css +1 -5
  213. package/dist/css/component-css/pds-navbar.css +4 -1
  214. package/dist/css/component-css/pds-pagination-chapter.css +3 -0
  215. package/dist/css/component-css/pds-pagination-compact.css +1 -0
  216. package/dist/css/component-css/pds-pagination.css +1 -1
  217. package/dist/css/component-css/pds-panel-list.css +1 -1
  218. package/dist/css/component-css/pds-panel-stack.css +1 -0
  219. package/dist/css/component-css/pds-panel.css +2 -1
  220. package/dist/css/component-css/pds-pantheon-logo.css +1 -1
  221. package/dist/css/component-css/pds-payment-icon.css +1 -1
  222. package/dist/css/component-css/pds-picture.css +1 -1
  223. package/dist/css/component-css/pds-pie-chart.css +1 -0
  224. package/dist/css/component-css/pds-platform-icon.css +1 -1
  225. package/dist/css/component-css/pds-popover.css +1 -1
  226. package/dist/css/component-css/pds-progress-bar.css +1 -1
  227. package/dist/css/component-css/pds-progress-ring.css +1 -1
  228. package/dist/css/component-css/pds-proportion-bar.css +1 -0
  229. package/dist/css/component-css/pds-radio-group.css +1 -1
  230. package/dist/css/component-css/pds-result-count.css +1 -0
  231. package/dist/css/component-css/pds-row-actions-menu.css +2 -0
  232. package/dist/css/component-css/pds-section-message.css +1 -1
  233. package/dist/css/component-css/pds-segmented-button.css +2 -1
  234. package/dist/css/component-css/pds-select-button.css +1 -0
  235. package/dist/css/component-css/pds-select.css +1 -1
  236. package/dist/css/component-css/pds-side-nav-global.css +3 -5
  237. package/dist/css/component-css/pds-side-nav.css +3 -1
  238. package/dist/css/component-css/pds-site-footer.css +1 -1
  239. package/dist/css/component-css/pds-site-search.css +1 -0
  240. package/dist/css/component-css/pds-skeleton.css +1 -1
  241. package/dist/css/component-css/pds-skiplink.css +1 -1
  242. package/dist/css/component-css/pds-sortable-list.css +8 -0
  243. package/dist/css/component-css/pds-spinner.css +1 -1
  244. package/dist/css/component-css/pds-split-button.css +1 -1
  245. package/dist/css/component-css/pds-sso-button.css +2 -2
  246. package/dist/css/component-css/pds-stat-panel.css +1 -0
  247. package/dist/css/component-css/pds-status-badge.css +1 -1
  248. package/dist/css/component-css/pds-status-checker.css +1 -0
  249. package/dist/css/component-css/pds-status-indicator.css +1 -1
  250. package/dist/css/component-css/pds-step-list.css +1 -0
  251. package/dist/css/component-css/pds-stepper.css +5 -1
  252. package/dist/css/component-css/pds-switch.css +6 -11
  253. package/dist/css/component-css/pds-tab-menu.css +2 -2
  254. package/dist/css/component-css/pds-table-of-contents.css +1 -1
  255. package/dist/css/component-css/pds-table.css +7 -1
  256. package/dist/css/component-css/pds-tabs.css +1 -1
  257. package/dist/css/component-css/pds-tag.css +1 -1
  258. package/dist/css/component-css/pds-tags-input.css +1 -1
  259. package/dist/css/component-css/pds-tally.css +1 -1
  260. package/dist/css/component-css/pds-text-input.css +1 -1
  261. package/dist/css/component-css/pds-textarea.css +1 -1
  262. package/dist/css/component-css/pds-theme-switcher.css +1 -1
  263. package/dist/css/component-css/pds-timepicker.css +1 -0
  264. package/dist/css/component-css/pds-toaster.css +1 -1
  265. package/dist/css/component-css/pds-tooltip.css +1 -1
  266. package/dist/css/component-css/pds-tree-nav.css +1 -0
  267. package/dist/css/component-css/pds-user-menu-story-only.css +1 -1
  268. package/dist/css/component-css/pds-user-menu.css +32 -1
  269. package/dist/css/component-css/pds-utility-bar.css +1 -0
  270. package/dist/css/component-css/pds-utility-button.css +3 -1
  271. package/dist/css/component-css/pds-vertical-empty-state.css +1 -1
  272. package/dist/css/component-css/pds-vertical-stepper.css +1 -1
  273. package/dist/css/component-css/pds-video-embed.css +1 -1
  274. package/dist/css/component-css/pds-widget-panel.css +1 -0
  275. package/dist/css/component-css/pds-workspace-selector.css +23 -1
  276. package/dist/css/design-tokens/variables.dark.css +371 -340
  277. package/dist/css/design-tokens/variables.global.css +10 -19
  278. package/dist/css/design-tokens/variables.light.css +367 -316
  279. package/dist/css/design-tokens/variables.typography.css +1 -2
  280. package/dist/css/layout-css/pds-app-layout.css +3 -2
  281. package/dist/css/layout-css/pds-docs-layout.css +1 -1
  282. package/dist/css/layout-css/pds-index.css +3 -9
  283. package/dist/css/layout-css/pds-sidebar-layout.css +13 -0
  284. package/dist/css/layout-css/pds-stat-panel-group.css +1 -0
  285. package/dist/css/layout-css/pds-stepper-layout.css +1 -1
  286. package/dist/css/layout-css/pds-three-item-layout.css +1 -1
  287. package/dist/css/layout-css/pds-two-item-layout.css +1 -1
  288. package/dist/css/pds-components.css +187 -57
  289. package/dist/css/pds-core.css +3 -2
  290. package/dist/css/pds-layouts.css +3 -9
  291. package/dist/index.css +5 -1
  292. package/dist/index.d.ts +103 -7
  293. package/dist/index.js +13227 -4807
  294. package/dist/index.js.map +1 -1
  295. package/dist/index.source.d.ts +53 -41
  296. package/dist/layouts/AppLayout/AppLayout.d.ts +85 -10
  297. package/dist/layouts/DocsLayout/DocsLayout.d.ts +9 -7
  298. package/dist/layouts/SidebarLayout/SidebarLayout.d.ts +36 -7
  299. package/dist/layouts/StatPanelGroup/StatPanelGroup.d.ts +32 -0
  300. package/dist/layouts/StepperLayout/StepperLayout.d.ts +13 -1
  301. package/dist/layouts/ThreeItemLayout/ThreeItemLayout.d.ts +3 -3
  302. package/dist/layouts/TwoItemLayout/TwoItemLayout.d.ts +3 -3
  303. package/dist/libs/components/NavAccordion/NavAccordion.d.ts +27 -0
  304. package/dist/libs/components/NestedOverlayContext.d.ts +14 -0
  305. package/dist/libs/components/StatusDot/StatusDot.d.ts +15 -0
  306. package/dist/libs/components/useOverlayZIndex.d.ts +16 -0
  307. package/dist/libs/components/utils.d.ts +1 -1
  308. package/dist/libs/types/custom-types.d.ts +11 -5
  309. package/dist/libs/types/layout-types.d.ts +5 -1
  310. package/dist/libs/types/navigation-types.d.ts +17 -1
  311. package/dist/svg/anglesDown.svg +3 -0
  312. package/dist/svg/anglesUp.svg +3 -0
  313. package/dist/svg/arrowDownWideShort.svg +3 -0
  314. package/dist/svg/arrowUpShortWide.svg +3 -0
  315. package/dist/svg/barsStaggered.svg +3 -0
  316. package/dist/svg/bookmark.svg +3 -0
  317. package/dist/svg/bookmarkSolid.svg +3 -0
  318. package/dist/svg/box.svg +3 -0
  319. package/dist/svg/circleExclamationSolid.svg +3 -0
  320. package/dist/svg/circleHalfStroke.svg +3 -0
  321. package/dist/svg/circleInfoSolid.svg +3 -0
  322. package/dist/svg/circleQuestionSolid.svg +3 -0
  323. package/dist/svg/claude.svg +3 -0
  324. package/dist/svg/clock.svg +3 -0
  325. package/dist/svg/collapseToCenter.svg +3 -0
  326. package/dist/svg/compress.svg +3 -0
  327. package/dist/svg/diagramVenn.svg +3 -0
  328. package/dist/svg/floppyDisk.svg +3 -0
  329. package/dist/svg/grid.svg +2 -2
  330. package/dist/svg/grid2.svg +3 -0
  331. package/dist/svg/landmark.svg +3 -0
  332. package/dist/svg/move.svg +3 -0
  333. package/dist/svg/octagonExclamation.svg +3 -0
  334. package/dist/svg/openai.svg +3 -0
  335. package/dist/svg/pause.svg +3 -0
  336. package/dist/svg/penPaintbrush.svg +3 -0
  337. package/dist/svg/sidebar.svg +3 -0
  338. package/dist/svg/slider.svg +3 -0
  339. package/dist/svg/squareDashed.svg +3 -0
  340. package/dist/svg/tableColumns.svg +3 -0
  341. package/dist/svg/userSolid.svg +3 -0
  342. package/dist/{layouts → utilities}/FlexContainer/FlexContainer.d.ts +6 -6
  343. package/dist/utilities/GlobalWrapper/GlobalWrapper.d.ts +35 -0
  344. package/dist/utilities/auto-grid/AutoGrid.d.ts +48 -0
  345. package/dist/utilities/context-providers/ThemeContext/ThemeContext.d.ts +113 -0
  346. package/dist/utilities/grid/Grid.d.ts +58 -0
  347. package/dist/utilities/grid/GridItem.d.ts +57 -0
  348. package/dist/utilities/hooks/useDropdown/index.d.ts +1 -0
  349. package/dist/utilities/hooks/useDropdown/useDropdown.d.ts +148 -0
  350. package/dist/utilities/hooks/useIsMobile/useIsMobile.d.ts +16 -0
  351. package/dist/utilities/hooks/useKeyPress/useKeyPress.d.ts +6 -0
  352. package/dist/utilities/hooks/useKeyboardShortcut/useKeyboardShortcut.d.ts +29 -0
  353. package/package.json +78 -46
  354. package/tailwind/README.md +9 -0
  355. package/tailwind/v3/preset.cjs +20 -0
  356. package/tailwind/v4/theme.css +19 -0
  357. package/dist/components/CTASlice/CTASlice.d.ts +0 -43
  358. package/dist/components/CodeBlock/themes/pdsLight.d.ts +0 -2
  359. package/dist/components/DashboardStat/DashboardStat.d.ts +0 -28
  360. package/dist/components/PullQuote/PullQuote.d.ts +0 -34
  361. package/dist/components/SiteDashboardHeading/SiteDashboardHeading.d.ts +0 -62
  362. package/dist/components/SocialLinks/SocialLinks.d.ts +0 -23
  363. package/dist/components/cards/CardHeading/CardHeading.d.ts +0 -31
  364. package/dist/components/cards/CardSelectGroup/CardSelectGroup.d.ts +0 -60
  365. package/dist/components/cards/EmptyStateCard/EmptyStateCard.d.ts +0 -36
  366. package/dist/components/cards/LinksCard/LinksCard.d.ts +0 -29
  367. package/dist/components/cards/LinksCard/links-card-sample-data.d.ts +0 -2
  368. package/dist/components/cards/NewSiteCard/NewSiteCard.d.ts +0 -61
  369. package/dist/components/cards/PaymentCard/PaymentCard.d.ts +0 -47
  370. package/dist/components/cards/PricingCard/PricingCard.d.ts +0 -95
  371. package/dist/components/cards/SiteCard/SiteCard.d.ts +0 -50
  372. package/dist/components/footer/FooterHeading/FooterHeading.d.ts +0 -22
  373. package/dist/components/footer/FooterLinks/FooterLinks.d.ts +0 -26
  374. package/dist/components/footer/SiteFooter/SiteFooter.d.ts +0 -34
  375. package/dist/components/footer/SiteFooter/footer-content.d.ts +0 -1
  376. package/dist/components/navigation/DashboardNav/DashboardNav.d.ts +0 -35
  377. package/dist/components/navigation/DashboardNav/DashboardNavItem.d.ts +0 -24
  378. package/dist/components/navigation/NavMenu/NavMenu.d.ts +0 -33
  379. package/dist/components/navigation/NavMenu/NavMenuDropdown.d.ts +0 -24
  380. package/dist/components/navigation/SideNavCompact/SideNavCompact.d.ts +0 -53
  381. package/dist/components/notifications/NotificationHubIcon/NotificationHubIcon.d.ts +0 -38
  382. package/dist/components/notifications/NotificationsPopover/NotificationsPopover.d.ts +0 -118
  383. package/dist/components/tiles/AvatarTileList/AvatarTileList.d.ts +0 -28
  384. package/dist/components/tiles/Tile/Tile.d.ts +0 -42
  385. package/dist/components/tiles/TileGrid/TileGrid.d.ts +0 -29
  386. package/dist/css/component-css/pds-avatar-tile-list.css +0 -1
  387. package/dist/css/component-css/pds-card-heading.css +0 -1
  388. package/dist/css/component-css/pds-card-select-group.css +0 -1
  389. package/dist/css/component-css/pds-cta-slice.css +0 -1
  390. package/dist/css/component-css/pds-dashboard-nav.css +0 -5
  391. package/dist/css/component-css/pds-dashboard-search.css +0 -1
  392. package/dist/css/component-css/pds-dashboard-stat.css +0 -1
  393. package/dist/css/component-css/pds-empty-state-card.css +0 -1
  394. package/dist/css/component-css/pds-flow-steps.css +0 -1
  395. package/dist/css/component-css/pds-footer-heading.css +0 -1
  396. package/dist/css/component-css/pds-footer-links.css +0 -1
  397. package/dist/css/component-css/pds-links-card.css +0 -1
  398. package/dist/css/component-css/pds-new-site-card.css +0 -1
  399. package/dist/css/component-css/pds-notification-hub-icon.css +0 -1
  400. package/dist/css/component-css/pds-notifications-popover.css +0 -1
  401. package/dist/css/component-css/pds-payment-card.css +0 -1
  402. package/dist/css/component-css/pds-pricing-card-local.css +0 -1
  403. package/dist/css/component-css/pds-pricing-card.css +0 -1
  404. package/dist/css/component-css/pds-pull-quote.css +0 -1
  405. package/dist/css/component-css/pds-refresh-checker.css +0 -1
  406. package/dist/css/component-css/pds-side-nav-compact.css +0 -1
  407. package/dist/css/component-css/pds-site-card.css +0 -1
  408. package/dist/css/component-css/pds-site-dashboard-heading.css +0 -1
  409. package/dist/css/component-css/pds-social-links.css +0 -1
  410. package/dist/css/component-css/pds-tile.css +0 -1
  411. package/dist/css/component-css/pds-tiles-common.css +0 -1
  412. package/dist/css/layout-css/pds-dashboard-global.css +0 -8
  413. package/dist/css/layout-css/pds-dashboard-inner.css +0 -1
  414. package/dist/css/layout-css/pds-flex-container.css +0 -1
  415. package/dist/layouts/DashboardGlobal/DashboardGlobal.d.ts +0 -57
  416. package/dist/layouts/DashboardInner/DashboardInner.d.ts +0 -30
  417. package/dist/layouts/GlobalWrapper/GlobalWrapper.d.ts +0 -19
  418. package/dist/utilities/context-providers/ResponsiveContext/ResponsiveContext.d.ts +0 -6
  419. /package/dist/components/{Skiplink → links/Skiplink}/Skiplink.d.ts +0 -0
  420. /package/dist/components/{Picture → media/Picture}/Picture.d.ts +0 -0
  421. /package/dist/components/{VideoEmbed → media/VideoEmbed}/VideoEmbed.d.ts +0 -0
  422. /package/dist/components/{Pagination → pagination/Pagination}/usePagination.d.ts +0 -0
  423. /package/dist/components/{FlowSteps → steppers/StepList}/example-steps.d.ts +0 -0
  424. /package/dist/svg/{linkSimple.svg → link.svg} +0 -0
  425. /package/dist/svg/{linkSimpleSlash.svg → unlink.svg} +0 -0
  426. /package/dist/{layouts → utilities}/Container/Container.d.ts +0 -0
@@ -0,0 +1,57 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import './grid.css';
3
+ type GridSpanSm = 1 | 2 | 3 | 4;
4
+ type GridSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
5
+ type GridRowSpan = 1 | 2 | 3 | 4 | 5 | 6;
6
+ /**
7
+ * Prop types for GridItem
8
+ */
9
+ export interface GridItemProps extends ComponentPropsWithoutRef<'div'> {
10
+ /**
11
+ * Item content.
12
+ */
13
+ children?: ReactNode;
14
+ /**
15
+ * Additional class names
16
+ */
17
+ className?: string;
18
+ /**
19
+ * Rows to span at large viewports (1–6). Falls back to the medium value.
20
+ */
21
+ rowSpanLg?: GridRowSpan;
22
+ /**
23
+ * Rows to span at medium viewports (1–6). Falls back to a single row.
24
+ */
25
+ rowSpanMd?: GridRowSpan;
26
+ /**
27
+ * Rows to span at small viewports (1–6). Falls back to a single row.
28
+ */
29
+ rowSpanSm?: GridRowSpan;
30
+ /**
31
+ * Rows to span at extra-large viewports (1–6). Falls back to the large value.
32
+ */
33
+ rowSpanXl?: GridRowSpan;
34
+ /**
35
+ * Columns to span at large viewports (1–12). Falls back to the medium value.
36
+ */
37
+ spanLg?: GridSpan;
38
+ /**
39
+ * Columns to span at medium viewports (1–12). Falls back to full width.
40
+ */
41
+ spanMd?: GridSpan;
42
+ /**
43
+ * Columns to span at small viewports (1–4). Falls back to full width.
44
+ */
45
+ spanSm?: GridSpanSm;
46
+ /**
47
+ * Columns to span at extra-large viewports (1–12). Falls back to the large value.
48
+ */
49
+ spanXl?: GridSpan;
50
+ }
51
+ /**
52
+ * GridItem — a child of `Grid`. Sets the column span per breakpoint via the
53
+ * `pds-grid-item--{breakpoint}-{span}` utility classes. Missing breakpoints
54
+ * fall back to the full column width for that viewport.
55
+ */
56
+ export declare const GridItem: ({ children, className, rowSpanLg, rowSpanMd, rowSpanSm, rowSpanXl, spanLg, spanMd, spanSm, spanXl, ...props }: GridItemProps) => import("react/jsx-runtime").JSX.Element;
57
+ export {};
@@ -0,0 +1 @@
1
+ export * from './useDropdown';
@@ -0,0 +1,148 @@
1
+ import type { Placement } from '@floating-ui/react';
2
+ import { useFloating, useFloatingNodeId, useInteractions } from '@floating-ui/react';
3
+ export type DropdownRole = 'menu' | 'listbox' | 'dialog';
4
+ export type DropdownVariant = 'default' | 'input';
5
+ export interface UseDropdownOptions {
6
+ /**
7
+ * Allow keyboard navigation to escape the list (move past first/last item).
8
+ * Useful for combobox inputs where focus should return to the input.
9
+ */
10
+ allowEscape?: boolean;
11
+ /**
12
+ * Enable click-to-toggle interaction via useClick.
13
+ * Set to false for combobox-type inputs where open/close is managed
14
+ * by input events (typing, focus) rather than a click toggle.
15
+ */
16
+ enableClick?: boolean;
17
+ /**
18
+ * Enable keyboard list navigation via useListNavigation.
19
+ * Set to false if keyboard nav is managed externally.
20
+ */
21
+ enableListNavigation?: boolean;
22
+ /**
23
+ * Enable shift middleware to keep the dropdown within viewport bounds.
24
+ * Set to false for inputs where the dropdown should align flush with the trigger.
25
+ */
26
+ enableShift?: boolean;
27
+ /**
28
+ * Enable transition animations on the dropdown panel.
29
+ */
30
+ enableTransition?: boolean;
31
+ /**
32
+ * Enable typeahead character search via useTypeahead.
33
+ */
34
+ enableTypeahead?: boolean;
35
+ /**
36
+ * Set the floating panel's width to exactly match the reference
37
+ * (trigger) element's width, applied via inline style. Needed any time
38
+ * the panel is rendered through a `FloatingPortal` — once portaled, a
39
+ * CSS `width: 100%` on the panel resolves against the viewport instead
40
+ * of the trigger, since the panel is no longer nested inside it. Implied
41
+ * (and overridden to `minWidth` instead of `width`) by `variant: 'input'`.
42
+ */
43
+ matchReferenceWidth?: boolean;
44
+ /**
45
+ * Offset distance in pixels between the trigger and the dropdown panel.
46
+ * Ignored when variant is 'input' (uses dynamic offset based on placement).
47
+ */
48
+ offsetValue?: number;
49
+ /**
50
+ * Open the dropdown on hover (desktop navigation menus).
51
+ * Enables useHover with safePolygon.
52
+ */
53
+ openOnHover?: boolean;
54
+ /**
55
+ * Preferred placement of the dropdown panel relative to the trigger.
56
+ */
57
+ placement?: Placement;
58
+ /**
59
+ * ARIA role for the dropdown container.
60
+ */
61
+ role?: DropdownRole;
62
+ /**
63
+ * Index of the currently selected item. Used by typeahead to maintain
64
+ * selection context. Only needed for selection-style dropdowns (Select).
65
+ */
66
+ selectedIndex?: number | null;
67
+ /**
68
+ * Minimum clearance (px) shift maintains from the viewport edge — the
69
+ * "safe zone" a trigger closer than this is still nudged away from, even
70
+ * if the panel itself wouldn't actually overflow. Defaults to 24. Lower
71
+ * to 0 so shift only intervenes on genuine overflow, when a trigger
72
+ * sitting close to the edge (but not overflowing) needs to stay flush.
73
+ */
74
+ shiftPadding?: number;
75
+ /**
76
+ * Dropdown variant. 'input' applies input-specific positioning: dynamic
77
+ * offset based on placement direction and size constraints with min/max height.
78
+ * Use for Select, Combobox, and other input-attached dropdowns.
79
+ */
80
+ variant?: DropdownVariant;
81
+ /**
82
+ * Use virtual focus (aria-activedescendant) instead of roving tabindex.
83
+ * Appropriate for combobox-type inputs where focus must stay on the input.
84
+ */
85
+ virtual?: boolean;
86
+ }
87
+ export interface UseDropdownReturn {
88
+ /**
89
+ * Index of the currently active/focused item in the list.
90
+ */
91
+ activeIndex: number | null;
92
+ /**
93
+ * Styles to apply to the floating panel element.
94
+ */
95
+ floatingStyles: ReturnType<typeof useFloating>['floatingStyles'];
96
+ /**
97
+ * Props to spread on the floating panel element.
98
+ */
99
+ getFloatingProps: ReturnType<typeof useInteractions>['getFloatingProps'];
100
+ /**
101
+ * Props to spread on each item element.
102
+ */
103
+ getItemProps: ReturnType<typeof useInteractions>['getItemProps'];
104
+ /**
105
+ * Props to spread on the trigger/reference element.
106
+ */
107
+ getReferenceProps: ReturnType<typeof useInteractions>['getReferenceProps'];
108
+ /**
109
+ * Whether the floating panel should be mounted in the DOM
110
+ * (accounts for transition animations).
111
+ */
112
+ isMounted: boolean;
113
+ /**
114
+ * Whether the dropdown is currently open.
115
+ */
116
+ isOpen: boolean;
117
+ /**
118
+ * Ref array for list item DOM nodes (used by useListNavigation).
119
+ */
120
+ listRef: React.MutableRefObject<any[]>;
121
+ /**
122
+ * This instance's Floating UI tree node ID (`null` when not part of a
123
+ * `<FloatingTree>`). Consumers that can be nested inside another floating
124
+ * panel (e.g. MenuButton, Dropdown) wrap their rendered floating panel in
125
+ * a `<FloatingNode id={nodeId}>` so outside-click/Escape resolve to the
126
+ * correct (innermost) panel when nested. See each consumer's own
127
+ * `useFloatingParentNodeId()` check for whether it also needs to provide
128
+ * its own `<FloatingTree>` (root case) or can join an ancestor's.
129
+ */
130
+ nodeId: ReturnType<typeof useFloatingNodeId>;
131
+ /**
132
+ * Floating UI refs for the reference and floating elements.
133
+ */
134
+ refs: ReturnType<typeof useFloating>['refs'];
135
+ /**
136
+ * Set the active/focused item index.
137
+ */
138
+ setActiveIndex: React.Dispatch<React.SetStateAction<number | null>>;
139
+ /**
140
+ * Set the open state of the dropdown.
141
+ */
142
+ setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
143
+ /**
144
+ * Transition styles to apply to the floating panel element.
145
+ */
146
+ transitionStyles: React.CSSProperties;
147
+ }
148
+ export declare const useDropdown: ({ allowEscape, enableClick, enableListNavigation, enableShift, enableTransition, enableTypeahead, matchReferenceWidth, offsetValue, openOnHover, placement, role, selectedIndex, shiftPadding, variant, virtual, }?: UseDropdownOptions) => UseDropdownReturn;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Returns whether the layout is currently in its mobile presentation, tracking
3
+ * the `data-pds-mobile` attribute that `GlobalWrapper` sets on the document
4
+ * root. Reactive: updates when the breakpoint is crossed.
5
+ *
6
+ * Use this to render only the active responsive variant of a component, rather
7
+ * than mounting both a mobile and a desktop tree and toggling them with CSS —
8
+ * mounting both duplicates any ids in the slotted content (invalid HTML) and
9
+ * makes `getElementById`/`htmlFor`/`aria-controls` resolve to the hidden copy.
10
+ *
11
+ * SSR-safe: resolves to `false` (desktop) on the server and on the first client
12
+ * render, then updates after `GlobalWrapper` applies the attribute.
13
+ *
14
+ * @returns {boolean} `true` when the mobile presentation is active.
15
+ */
16
+ export declare const useIsMobile: () => boolean;
@@ -20,4 +20,10 @@ export interface UseKeyPressOptions {
20
20
  */
21
21
  shiftKey?: boolean;
22
22
  }
23
+ /**
24
+ * @deprecated Use `useKeyboardShortcut` instead. `useKeyPress` fires even while
25
+ * the user is typing in a form field and requires callers to manually disable
26
+ * shortcuts when an overlay is open; `useKeyboardShortcut` handles both by
27
+ * default. This hook will be removed before the v2 stable release.
28
+ */
23
29
  export declare const useKeyPress: (targetKey: string, callback?: (event: KeyboardEvent) => void, options?: UseKeyPressOptions) => boolean;
@@ -0,0 +1,29 @@
1
+ import { HotkeyCallback, Keys, Options } from 'react-hotkeys-hook';
2
+ export type UseKeyboardShortcutOptions = Options;
3
+ /**
4
+ * Registers a keyboard shortcut, applying the PDS defaults on top of
5
+ * `react-hotkeys-hook`:
6
+ *
7
+ * - **Ignores form fields by default.** Shortcuts do not fire while focus is in
8
+ * an `input`, `textarea`, `select`, or `contentEditable` element, so typing a
9
+ * shortcut character (e.g. `/`) into a field never hijacks it. Opt in per
10
+ * shortcut with `enableOnFormTags` / `enableOnContentEditable` when a shortcut
11
+ * genuinely needs to fire inside a field.
12
+ * - **Overlay-aware.** Shortcuts auto-suppress while any PDS overlay (modal,
13
+ * drawer, mobile menu, etc.) is open, so callers never have to thread
14
+ * `hasOpenOverlay` through their own `enabled` flag.
15
+ *
16
+ * The full `react-hotkeys-hook` option surface (scopes, key sequences,
17
+ * `description`, cross-platform `mod`, etc.) is available via `options`.
18
+ *
19
+ * @param keys - The key or combination to listen for, e.g. `'/'`, `'mod+k'`,
20
+ * `'shift+['`. Uses `react-hotkeys-hook` key syntax.
21
+ * @param callback - Invoked when the shortcut fires. Receives the
22
+ * `KeyboardEvent` and the parsed hotkey event.
23
+ * @param options - `react-hotkeys-hook` options. `enabled` is combined with the
24
+ * overlay state so a shortcut is active only when enabled *and* no overlay is
25
+ * open.
26
+ * @param dependencies - Optional dependency array for the callback, forwarded to
27
+ * `react-hotkeys-hook`.
28
+ */
29
+ export declare const useKeyboardShortcut: (keys: Keys, callback: HotkeyCallback, options?: UseKeyboardShortcutOptions, dependencies?: unknown[]) => (instance: HTMLElement) => void;
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.8",
4
+ "version": "2.0.0-alpha.80",
5
5
  "description": "PDS toolkit built using the React framework",
6
6
  "publishConfig": {
7
7
  "access": "public",
@@ -20,6 +20,9 @@
20
20
  "url": "https://github.com/pantheon-systems/pds-toolkit-react/issues"
21
21
  },
22
22
  "homepage": "https://github.com/pantheon-systems/pds-toolkit-react#readme",
23
+ "bin": {
24
+ "pds-codemod": "./bin/pds-codemod.cjs"
25
+ },
23
26
  "module": "dist/index.js",
24
27
  "types": "dist/index.d.ts",
25
28
  "exports": {
@@ -32,6 +35,10 @@
32
35
  "./*": "./dist/*"
33
36
  },
34
37
  "files": [
38
+ "bin",
39
+ "codemods/v1-to-v2/transforms",
40
+ "codemods/v1-to-v2/mappings.json",
41
+ "codemods/v1-to-v2/css-token-renames.js",
35
42
  "dist",
36
43
  "tailwind"
37
44
  ],
@@ -44,17 +51,17 @@
44
51
  "build:lib": "vite build && npm run build:types",
45
52
  "build:types": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
46
53
  "postbuild:lib": "npm run build:css && npm run build:css:components && npm run build:css:layouts && npm run build:css:packageExtraCss && npm run generate:svg-icons",
47
- "build:css": "postcss src/core.css -o dist/css/pds-core.css",
48
- "build:css:components": "postcss src/components/index.css -o dist/css/pds-components.css",
49
- "build:css:layouts": "postcss src/layouts/index.css -o dist/css/pds-layouts.css",
50
- "build:css:packageExtraCss": "node scripts/package-extra-css.js",
54
+ "build:css": "PDS_CSS_LAYER=pds-v2 postcss src/core.css -o dist/css/pds-core.css",
55
+ "build:css:components": "PDS_CSS_LAYER=pds-v2 postcss src/components/index.css -o dist/css/pds-components.css",
56
+ "build:css:layouts": "PDS_CSS_LAYER=pds-v2 postcss src/layouts/index.css -o dist/css/pds-layouts.css",
57
+ "build:css:packageExtraCss": "PDS_CSS_LAYER=pds-v2 node scripts/package-extra-css.js",
51
58
  "build:css:watch": "npm run build:css -- -w",
52
59
  "prestorybook": "node scripts/filter-exports-by-tags.js && npm run build:css && npm run build:css:components && npm run build:css:layouts && npm run generate:ux-writing-search-index && npm run generate:ux-writing-guide",
53
- "storybook": "storybook dev -p 6006",
60
+ "storybook": "PDS_CSS_LAYER=pds-v2 storybook dev -p 6006",
54
61
  "prebuild": "npm run build:css && npm run build:css:components && npm run build:css:layouts && npm run build:css:packageExtraCss && npm run generate:ux-writing-search-index && npm run generate:ux-writing-guide",
55
- "build": "NODE_ENV=production storybook build",
62
+ "build": "NODE_OPTIONS=--max-old-space-size=4096 NODE_ENV=production storybook build",
56
63
  "build-storybook": "NODE_ENV=production storybook build",
57
- "postbuild": "node scripts/copy-mcp-assets.js && node scripts/build-starter-template.js && node scripts/generate-html-docs.js && node scripts/verify-mcp-build.js",
64
+ "postbuild": "node scripts/generate-html-docs.js && node scripts/build-starter-template.js && node scripts/copy-mcp-assets.js && node scripts/verify-mcp-build.js",
58
65
  "verify:mcp": "node scripts/verify-mcp-build.js",
59
66
  "start": "node index.js",
60
67
  "develop": "npm run storybook",
@@ -88,84 +95,99 @@
88
95
  "generate:ux-writing-search-index": "node scripts/generate-search-index.js",
89
96
  "generate:ux-writing-guide": "node scripts/generate-ux-writing-guide.js",
90
97
  "generate:html-docs": "node scripts/generate-html-docs.js",
98
+ "test:codemods": "jest --testPathPatterns=codemods/",
91
99
  "test:version-switcher": "bash scripts/test-version-switcher.sh",
92
100
  "pack:local": "bash scripts/pack-local.sh",
93
101
  "prepare": "husky install",
94
102
  "chromatic": "npx chromatic --project-token=chpt_8f57e9785118676"
95
103
  },
104
+ "jest": {
105
+ "testMatch": [
106
+ "**/codemods/**/__tests__/**/*.test.js"
107
+ ],
108
+ "testEnvironment": "node"
109
+ },
96
110
  "devDependencies": {
97
111
  "@arethetypeswrong/cli": "^0.15.3",
98
- "@axe-core/playwright": "^4.11.0",
99
- "@babel/preset-env": "^7.21.5",
112
+ "@axe-core/playwright": "^4.11.3",
113
+ "@babel/preset-env": "^7.29.5",
100
114
  "@babel/preset-react": "^7.18.6",
101
115
  "@babel/preset-typescript": "^7.28.5",
102
116
  "@csstools/postcss-design-tokens": "^2.0.4",
103
117
  "@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",
116
- "@vitejs/plugin-react": "^4.3.0",
118
+ "@fortawesome/free-brands-svg-icons": "7.2.0",
119
+ "@fortawesome/pro-regular-svg-icons": "7.2.0",
120
+ "@fortawesome/pro-solid-svg-icons": "7.2.0",
121
+ "@playwright/test": "^1.60.0",
122
+ "@storybook/addon-a11y": "^10.4.0",
123
+ "@storybook/addon-docs": "^10.4.0",
124
+ "@storybook/addon-links": "^10.4.0",
125
+ "@storybook/addon-mcp": "^0.6.0",
126
+ "@storybook/addon-webpack5-compiler-swc": "^4.0.3",
127
+ "@storybook/react-vite": "^10.4.0",
128
+ "@storybook/react-webpack5": "^10.4.0",
129
+ "@types/prismjs": "^1.26.6",
130
+ "@types/react": "^19.2.14",
131
+ "@typescript-eslint/eslint-plugin": "^8.59.3",
132
+ "@typescript-eslint/parser": "^8.59.3",
133
+ "@vitejs/plugin-react": "^6.0.2",
117
134
  "@vueless/storybook-dark-mode": "^9.0.9",
118
135
  "axe-html-reporter": "^2.2.3",
119
136
  "chromatic": "^13.3.4",
120
137
  "concurrently": "^8.0.1",
121
138
  "cssnano": "^6.0.1",
122
- "eslint": "^9.26.0",
139
+ "eslint": "^9.39.4",
123
140
  "eslint-config-prettier": "^9.1.0",
124
141
  "eslint-import-resolver-typescript": "^4.4.4",
125
142
  "eslint-plugin-import": "^2.32.0",
126
- "eslint-plugin-prettier": "^5.1.3",
143
+ "eslint-plugin-prettier": "^5.5.5",
127
144
  "eslint-plugin-react": "^7.32.2",
128
145
  "eslint-plugin-simple-import-sort": "^12.1.1",
129
146
  "eslint-plugin-sort-destructure-keys": "^2.0.0",
130
- "eslint-plugin-storybook": "^10.3.0",
147
+ "eslint-plugin-storybook": "^10.4.0",
131
148
  "eslint-plugin-typescript-sort-keys": "^3.3.0",
132
149
  "fast-glob": "^3.3.2",
133
150
  "husky": "^8.0.3",
151
+ "jest": "^30.4.2",
152
+ "jscodeshift": "^17.3.0",
134
153
  "lint-staged": "^13.2.3",
135
154
  "pino-pretty": "^13.1.3",
136
155
  "plop": "^3.1.2",
137
- "postcss": "^8.4.38",
156
+ "postcss": "^8.5.14",
138
157
  "postcss-cli": "^10.1.0",
139
158
  "postcss-custom-media": "^9.1.3",
140
159
  "postcss-import": "^15.1.0",
141
160
  "postcss-insert": "^1.0.0",
142
- "postcss-loader": "^8.1.1",
161
+ "postcss-loader": "^8.2.1",
143
162
  "postcss-nested": "^6.0.1",
144
- "prettier": "3.2.5",
145
- "prettier-plugin-css-order": "^2.1.2",
163
+ "prettier": "^3.8.3",
164
+ "prettier-plugin-css-order": "^2.2.0",
146
165
  "react": "^18.2.0",
147
166
  "react-dom": "^18.2.0",
148
- "react-router-dom": "^6.13.0",
149
- "storybook": "^10.3.0",
150
- "tsc-alias": "^1.8.16",
167
+ "storybook": "^10.4.0",
168
+ "tsc-alias": "^1.8.17",
151
169
  "typescript": "^5.4.5",
152
- "vite": "^7.2.2",
170
+ "vite": "^8.0.16",
153
171
  "vite-plugin-lib-inject-css": "^2.1.1",
154
172
  "vite-tsconfig-paths": "^4.3.2"
155
173
  },
156
174
  "peerDependencies": {
157
- "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
158
- "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
175
+ "react": "^18.0.0 || ^19.0.0",
176
+ "react-dom": "^18.0.0 || ^19.0.0"
159
177
  },
160
178
  "dependencies": {
179
+ "@dnd-kit/core": "^6.3.1",
180
+ "@dnd-kit/sortable": "^10.0.0",
181
+ "@dnd-kit/utilities": "^3.2.2",
161
182
  "@floating-ui/react": "^0.24.3",
162
183
  "@floating-ui/react-dom": "~1.3.0",
163
- "@pantheon-systems/pds-design-tokens": "^2.0.0-alpha.33",
184
+ "@internationalized/date": "^3.12.2",
185
+ "@pantheon-systems/pds-design-tokens": "^2.0.0-alpha.70",
164
186
  "@reactuses/core": "^5.0.15",
165
187
  "date-fns": "^4.1.0",
166
- "downshift": "^9.0.8",
167
- "express": "^4.22.1",
168
- "express-rate-limit": "^8.2.1",
188
+ "downshift": "^9.3.2",
189
+ "express": "^5.0.0",
190
+ "express-rate-limit": "^8.5.2",
169
191
  "focus-trap-react": "^10.2.1",
170
192
  "hash-sum": "^2.0.0",
171
193
  "modern-normalize": "^3.0.1",
@@ -173,16 +195,26 @@
173
195
  "pino-http": "^11.0.0",
174
196
  "prism-react-renderer": "^2.4.1",
175
197
  "prismjs": "^1.29.0",
198
+ "react-aria": "^3.50.0",
176
199
  "react-code-block": "^1.1.1",
177
- "react-day-picker": "^9.11.1",
178
200
  "react-device-detect": "^2.2.3",
179
201
  "react-hotkeys-hook": "^4.5.1",
180
- "react-toastify": "^9.0.3"
202
+ "react-stately": "^3.48.0",
203
+ "react-toastify": "^11.1.0",
204
+ "recharts": "^3.8.1"
181
205
  },
182
- "optionalDependencies": {
183
- "@fortawesome/free-brands-svg-icons": "^7.2.0",
184
- "@fortawesome/pro-regular-svg-icons": "^7.2.0",
185
- "@fortawesome/pro-solid-svg-icons": "^7.2.0"
206
+ "overrides": {
207
+ "@babel/plugin-transform-modules-systemjs": "^7.29.4",
208
+ "fast-uri": "^3.1.5",
209
+ "hono": "^4.12.18",
210
+ "ip-address": "^10.1.1",
211
+ "micromatch": "^4.0.8",
212
+ "minimatch": "^10.0.0",
213
+ "postcss-insert": {
214
+ "postcss": "^8.4.31"
215
+ },
216
+ "valibot": "^1.4.2",
217
+ "yaml": "^2.8.3"
186
218
  },
187
219
  "lint-staged": {
188
220
  "*": "prettier --write --ignore-unknown",
@@ -178,6 +178,15 @@ Keys: `narrow` (1024px), `standard` (1200px), `wide` (1440px), `x-wide` (1600px)
178
178
 
179
179
  ## Important caveats
180
180
 
181
+ ### Borders require an explicit border-style
182
+
183
+ The PDS preset resets `border-style` to `none` on all elements so that borders are fully opt-in. This prevents phantom borders on elements that pick up a non-zero `border-width` from PDS components, inheritance, or browser defaults. When adding borders with Tailwind, always include a border-style class (`border-solid`, `border-dashed`, or `border-dotted`):
184
+
185
+ ```html
186
+ <div class="border border-solid border-border-default">...</div>
187
+ <div class="border-b border-solid border-border-separator">Divider</div>
188
+ ```
189
+
181
190
  ### Opacity modifiers are not supported
182
191
 
183
192
  Tailwind's opacity modifier syntax (`bg-bg-default/50`) does not work with CSS variable color references. This is a known Tailwind limitation — the compiler cannot decompose a CSS variable into RGB channels. Avoid using opacity modifiers with PDS colors.
@@ -17,6 +17,8 @@
17
17
  * };
18
18
  */
19
19
 
20
+ const plugin = require('tailwindcss/plugin');
21
+
20
22
  /** @type {import('tailwindcss').Config} */
21
23
  module.exports = {
22
24
  corePlugins: {
@@ -24,6 +26,22 @@ module.exports = {
24
26
  // Enabling preflight alongside PDS will cause style conflicts.
25
27
  preflight: false,
26
28
  },
29
+ plugins: [
30
+ // Reset border-style to none so borders are fully opt-in.
31
+ // Without this, any element that picks up a non-zero border-width
32
+ // (from PDS components, inheritance, or browser defaults) gets a
33
+ // visible border even without explicit border classes.
34
+ // Always include border-solid (or border-dashed, etc.) when adding borders.
35
+ plugin(function ({ addBase }) {
36
+ addBase({
37
+ '*, ::before, ::after': {
38
+ borderWidth: '0',
39
+ borderStyle: 'none',
40
+ borderColor: 'var(--pds-color-border-default)',
41
+ },
42
+ });
43
+ }),
44
+ ],
27
45
  theme: {
28
46
  // ─── Colors ──────────────────────────────────────────────────────────────
29
47
  // All values reference PDS CSS custom properties so dark mode and token
@@ -199,11 +217,13 @@ module.exports = {
199
217
 
200
218
  // ─── Border ──────────────────────────────────────────────────────────────
201
219
  borderRadius: {
220
+ none: '0px',
202
221
  DEFAULT: 'var(--pds-border-radius-default)',
203
222
  button: 'var(--pds-border-radius-button)',
204
223
  input: 'var(--pds-border-radius-input)',
205
224
  container: 'var(--pds-border-radius-container)',
206
225
  bar: 'var(--pds-border-radius-bar)',
226
+ full: '9999px',
207
227
  },
208
228
  borderWidth: {
209
229
  0: '0px',
@@ -18,6 +18,23 @@
18
18
  * import '@pantheon-systems/pds-toolkit-react/css/pds-core.css';
19
19
  */
20
20
 
21
+ /*
22
+ * Reset border-style to none so borders are fully opt-in.
23
+ * Without this, any element that picks up a non-zero border-width
24
+ * (from PDS components, inheritance, or browser defaults) gets a
25
+ * visible border even without explicit border classes.
26
+ * Always include border-solid (or border-dashed, etc.) when adding borders.
27
+ */
28
+ @layer base {
29
+ *,
30
+ ::before,
31
+ ::after {
32
+ border-color: var(--pds-color-border-default);
33
+ border-style: none;
34
+ border-width: 0;
35
+ }
36
+ }
37
+
21
38
  @theme {
22
39
  /* ── Reset Tailwind defaults we are replacing ──────────────────────────── */
23
40
  --color-*: initial;
@@ -186,11 +203,13 @@
186
203
  --tracking-xl: var(--pds-typography-ls-xl);
187
204
 
188
205
  /* ── Border ────────────────────────────────────────────────────────────── */
206
+ --radius-none: 0px;
189
207
  --radius-DEFAULT: var(--pds-border-radius-default);
190
208
  --radius-button: var(--pds-border-radius-button);
191
209
  --radius-input: var(--pds-border-radius-input);
192
210
  --radius-container: var(--pds-border-radius-container);
193
211
  --radius-bar: var(--pds-border-radius-bar);
212
+ --radius-full: 9999px;
194
213
 
195
214
  --border-DEFAULT: var(--pds-border-width-default);
196
215
  --border-thicker: var(--pds-border-width-thicker);
@@ -1,43 +0,0 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- import { ContainerWidth, HeadingLevel } from '../../libs/types/custom-types';
3
- import './../buttons/Button/button.css';
4
- import './cta-slice.css';
5
- interface CTASliceProps extends ComponentPropsWithoutRef<'div'> {
6
- /**
7
- * Background color of slice
8
- */
9
- backgroundColor?: 'default' | 'secondary';
10
- /**
11
- * Additional class names
12
- */
13
- className?: string;
14
- /**
15
- * PDS container width.
16
- */
17
- containerWidth?: ContainerWidth;
18
- /**
19
- * Heading level
20
- */
21
- headingLevel?: HeadingLevel;
22
- /**
23
- * Heading text
24
- */
25
- headingText: string;
26
- /**
27
- * Further explain block
28
- */
29
- leadText?: string;
30
- /**
31
- * Primary link content
32
- */
33
- primaryLinkContent: ReactNode;
34
- /**
35
- * Optional secondary link content
36
- */
37
- secondaryLinkContent?: ReactNode;
38
- }
39
- /**
40
- * CTA Slice UI component
41
- */
42
- export declare const CTASlice: ({ backgroundColor, className, containerWidth, headingLevel, headingText, leadText, primaryLinkContent, secondaryLinkContent, ...props }: CTASliceProps) => import("react/jsx-runtime").JSX.Element;
43
- export {};
@@ -1,2 +0,0 @@
1
- import type { PrismTheme } from 'prism-react-renderer';
2
- export declare const pdsLight: PrismTheme;