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

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
@@ -1,27 +1,366 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import { PaginationCompactProps } from '../pagination/PaginationCompact/PaginationCompact';
2
3
  import './table.css';
3
- /**
4
- * Prop types for Table
5
- */
6
- interface TableProps extends ComponentPropsWithoutRef<'table'> {
4
+ export type SortOrder = 'asc' | 'desc';
5
+ export type DetailPanelContext = {
7
6
  /**
8
- * Additional class names
7
+ * 1-based position of the inspected row among `totalCount`. Reflects the
8
+ * sorted (but not paginated) row order — the same set Prev/Next step
9
+ * through, which continues across page boundaries rather than stopping
10
+ * at the current page.
9
11
  */
12
+ currentIndex: number;
13
+ /**
14
+ * Whether calling `onNext` would go anywhere. Prev/Next loop — Next from
15
+ * the last row wraps to the first — so this is only false when there's a
16
+ * single row (nowhere to navigate to at all).
17
+ */
18
+ hasNext: boolean;
19
+ /**
20
+ * Whether calling `onPrev` would go anywhere. Prev/Next loop — Prev from
21
+ * the first row wraps to the last — so this is only false when there's a
22
+ * single row (nowhere to navigate to at all).
23
+ */
24
+ hasPrev: boolean;
25
+ /** Close the detail panel. */
26
+ onClose: () => void;
27
+ /** Navigate to the next row, looping from the last back to the first. */
28
+ onNext: () => void;
29
+ /** Navigate to the previous row, looping from the first back to the last. */
30
+ onPrev: () => void;
31
+ /** Stable ID of the currently inspected row. */
32
+ rowId: string;
33
+ /**
34
+ * Total number of rows `currentIndex` counts among — the same sorted,
35
+ * unpaginated set Prev/Next step through.
36
+ */
37
+ totalCount: number;
38
+ };
39
+ export interface TableColumn {
40
+ /**
41
+ * When true, this column's cell content is shown on the compact card
42
+ * rendered at mobile widths, in addition to the full detail view. The
43
+ * first card-visible column reads as the card's title; any further ones
44
+ * render as a secondary line. Columns without this flag are omitted from
45
+ * the card front but still appear in the full detail view (the row's
46
+ * `renderDetailPanel` content, or the auto-generated one — see
47
+ * `hasMobileDetailSheet`). Has no effect above the mobile breakpoint.
48
+ */
49
+ cardVisible?: boolean;
50
+ /** Content to display in the header cell. */
51
+ header: ReactNode;
52
+ /** Stable identifier used for rendering cell content from rowData. */
53
+ id: string;
54
+ /** When true, renders a sort button next to the header label. */
55
+ sortable?: boolean;
56
+ /**
57
+ * Key to use for sorting instead of `id`. Use when the cell renders a
58
+ * ReactNode but a separate plain-text field in rowData should drive the sort.
59
+ */
60
+ sortKey?: string;
61
+ }
62
+ export interface TableProps extends ComponentPropsWithoutRef<'table'> {
63
+ /** Additional class names */
10
64
  className?: string;
11
65
  /**
12
- * Table headers
66
+ * Accessible label for the detail panel close button.
67
+ * Defaults to `'Close detail panel'`. Override for translation.
68
+ */
69
+ closeDetailPanelLabel?: string;
70
+ /** Column definitions. Each column requires a stable `id`. */
71
+ columns: TableColumn[];
72
+ /**
73
+ * Current page number (1-based). Providing this alongside `onPageChange`
74
+ * enables controlled pagination mode.
75
+ */
76
+ currentPage?: number;
77
+ /**
78
+ * Column id to sort by on initial render. Only applies in uncontrolled sort mode.
79
+ * Like `defaultValue` in HTML inputs, this is mount-only — changing it after mount
80
+ * has no effect. Use `sortKey` + `onSort` for controlled sort.
81
+ */
82
+ defaultSortKey?: string;
83
+ /**
84
+ * Initial sort direction when `defaultSortKey` is set. Defaults to `'asc'`.
85
+ * Only applies in uncontrolled sort mode.
86
+ */
87
+ defaultSortOrder?: SortOrder;
88
+ /**
89
+ * When `true` (default), renders built-in prev/next navigation buttons in
90
+ * the detail panel footer. Set to `false` to hide the footer entirely.
91
+ * Has no effect when `renderDetailPanelFooter` is provided — the custom
92
+ * footer always takes precedence.
93
+ */
94
+ detailPanelNav?: boolean;
95
+ /**
96
+ * Optional title displayed in the detail panel header, to the left of the
97
+ * close button. Also titles the mobile detail sheet — including when it's
98
+ * showing the auto-generated column list (no `renderDetailPanel`
99
+ * provided), a case with no desktop panel of its own to title.
100
+ */
101
+ detailPanelTitle?: ReactNode;
102
+ /**
103
+ * Custom width for the detail panel. Accepts any valid CSS value (e.g. `'20rem'`, `'400px'`).
104
+ * Defaults to `'20rem'`.
105
+ */
106
+ detailPanelWidth?: string;
107
+ /**
108
+ * Custom empty state rendered when `rowData` is empty and `isLoading` is false.
109
+ * When provided, takes precedence over `emptyStateHeading` and `emptyStateMessage`.
110
+ */
111
+ emptyState?: ReactNode;
112
+ /**
113
+ * Heading text for the default empty state. Defaults to `"No results found."`
114
+ * Override for translation or context-specific messaging.
115
+ */
116
+ emptyStateHeading?: string;
117
+ /**
118
+ * Optional message displayed below the heading in the default empty state.
119
+ */
120
+ emptyStateMessage?: string;
121
+ /**
122
+ * Optional content rendered below the table, outside the scroll area.
123
+ * Use for status bars, custom controls, or other table-level UI. Renders
124
+ * independently of and below the pagination footer when both are present.
125
+ */
126
+ footer?: ReactNode;
127
+ /**
128
+ * Returns the position counter text shown between the Prev/Next buttons
129
+ * in the built-in detail panel/mobile sheet footer. Defaults to
130
+ * `(current, total) => \`${current} of ${total}\``. Override for
131
+ * translation. Has no effect when `renderDetailPanelFooter` is provided —
132
+ * use the context's `currentIndex`/`totalCount` there instead.
133
+ */
134
+ getDetailPanelPositionLabel?: (current: number, total: number) => string;
135
+ /**
136
+ * Returns the accessible label for each option in the rows-per-page selector.
137
+ * Defaults to `(size) => \`Show ${size} rows per page\``.
138
+ * Override for translation.
139
+ */
140
+ getPageSizeLabel?: (size: number) => string;
141
+ /**
142
+ * Returns an additional CSS class name to apply to a row's `<tr>` element.
143
+ * Use for per-row status coloring or other conditional styling.
144
+ * Receives the row data object and its stable row ID (from `getRowId`).
145
+ */
146
+ getRowClassName?: (row: Record<string, ReactNode>, rowId: string) => string | null | undefined;
147
+ /**
148
+ * Derives a stable string ID from a row object for selection tracking.
149
+ * Defaults to the row's array index. Provide this when using pagination
150
+ * to preserve selection across page changes.
151
+ */
152
+ getRowId?: (row: Record<string, ReactNode>) => string;
153
+ /**
154
+ * Returns the reason a row's selection checkbox is disabled. Only called for
155
+ * rows where `isRowSelectable` returns `false`. The reason is appended to the
156
+ * checkbox's accessible label — so screen readers announce *why* it can't be
157
+ * selected — and set as a native `title` tooltip for pointer users. A disabled
158
+ * checkbox is not focusable, so a focus/hover-only tooltip would be missed by
159
+ * keyboard and screen reader users; embedding the reason in the accessible name
160
+ * ensures it is conveyed. Defaults to no reason.
161
+ */
162
+ getRowSelectDisabledReason?: (row: Record<string, ReactNode>, rowId: string) => string;
163
+ /**
164
+ * Returns the visually hidden accessible label for each row's checkbox.
165
+ * Receives the row object and its 1-based display index.
166
+ * Defaults to `(_row, index) => \`Select row ${index}\``.
167
+ * Override to include a meaningful identifier (e.g. the site name) for
168
+ * screen reader users who navigate through checkboxes.
169
+ */
170
+ getSelectRowLabel?: (row: Record<string, ReactNode>, index: number) => string;
171
+ /**
172
+ * Returns the accessible label for a column's sort button.
173
+ * Defaults to `(columnHeader) => \`Sort by ${columnHeader}\``.
174
+ * Override for translation.
175
+ */
176
+ getSortLabel?: (columnHeader: string) => string;
177
+ /**
178
+ * When `true`, the table renders as a list of tappable cards at the
179
+ * mobile breakpoint instead of a `<table>`. Defaults to `false` — an
180
+ * existing table keeps its desktop `<table>` layout (horizontally
181
+ * scrollable) at every breakpoint until explicitly opted in, so
182
+ * upgrading the package never silently changes how a table already in
183
+ * use looks or behaves. Opt in per table, tuning `cardVisible` on its
184
+ * columns as you go. When `false` (or unset), none of the
185
+ * mobile-specific behavior applies: `cardVisible` has no effect, and row
186
+ * detail (if any) still uses the desktop side panel, not a sheet.
187
+ */
188
+ hasMobileCards?: boolean;
189
+ /**
190
+ * When `true` (default), tapping a card at the mobile breakpoint opens a
191
+ * bottom sheet with that row's detail — `renderDetailPanel`'s content when
192
+ * provided, or an auto-generated label/value list of every column when
193
+ * not (so data omitted from the compact card, via `cardVisible`, is never
194
+ * completely inaccessible). Set to `false` to suppress the mobile sheet
195
+ * entirely — appropriate for a table with too few columns to make one
196
+ * useful. Has no effect when a row is inspectable only via `onRowInspect`
197
+ * with no `renderDetailPanel` — that case already has nothing to show in
198
+ * a sheet and keeps calling `onRowInspect` directly, matching desktop.
199
+ */
200
+ hasMobileDetailSheet?: boolean;
201
+ /**
202
+ * ID of the currently inspected row. When provided, that row receives a
203
+ * highlighted background. Use the same ID space as `getRowId`. Only
204
+ * meaningful when `onRowInspect` or `renderDetailPanel` is also provided.
205
+ */
206
+ inspectedRowId?: string;
207
+ /**
208
+ * When true, renders skeleton rows instead of data. Use while data is loading.
209
+ */
210
+ isLoading?: boolean;
211
+ /**
212
+ * Predicate that returns `false` to disable selection for a specific row.
213
+ * When omitted, all rows are selectable. Non-selectable rows render a disabled
214
+ * checkbox and are excluded from the select-all checkbox's checked/indeterminate
215
+ * state and its toggle. Only meaningful when `onRowSelectionChange` is provided.
216
+ * Pair with `getRowSelectDisabledReason` to explain why a row is locked.
217
+ */
218
+ isRowSelectable?: (row: Record<string, ReactNode>, rowId: string) => boolean;
219
+ /**
220
+ * Number of items per page. Required to enable pagination.
221
+ * In uncontrolled pagination mode the Table slices `rowData` internally.
222
+ * In controlled mode the consumer passes the current page slice as `rowData`.
223
+ */
224
+ itemsPerPage?: number;
225
+ /**
226
+ * Number of skeleton rows to render when `isLoading` is true. Defaults to 5.
227
+ */
228
+ loadingRowCount?: number;
229
+ /**
230
+ * Sets a max-height on the scrollable table area. Accepts any valid CSS
231
+ * value (e.g. `'30rem'`, `'70vh'`). Enables vertical scrolling once content
232
+ * exceeds it. Undefined by default — the table grows to fit its content.
233
+ */
234
+ maxHeight?: string;
235
+ /**
236
+ * Sets a min-height on the scrollable table area. Accepts any valid CSS
237
+ * value. Use alongside `maxHeight` to keep a table with very few rows (or
238
+ * the empty state) from collapsing to an awkwardly small height. Undefined
239
+ * by default.
240
+ */
241
+ minHeight?: string;
242
+ /**
243
+ * Accessible label for the detail panel "next row" button.
244
+ * Defaults to `'Next row'`. Override for translation.
245
+ */
246
+ nextDetailPanelRowLabel?: string;
247
+ /**
248
+ * Called after the detail panel navigates to the next row. Use for side
249
+ * effects (fetching data, analytics) — the built-in navigation still runs.
250
+ */
251
+ onDetailPanelNext?: (row: Record<string, ReactNode>, rowId: string) => void;
252
+ /**
253
+ * Called after the detail panel navigates to the previous row. Use for side
254
+ * effects (fetching data, analytics) — the built-in navigation still runs.
255
+ */
256
+ onDetailPanelPrev?: (row: Record<string, ReactNode>, rowId: string) => void;
257
+ /**
258
+ * Callback fired when the user navigates to a new page. Receives the new
259
+ * 1-based page number. Providing this prop enables controlled pagination mode.
260
+ */
261
+ onPageChange?: (page: number) => void;
262
+ /**
263
+ * Callback fired when the user changes the rows-per-page value.
264
+ * When provided alongside `pageSizeOptions`, enables controlled page size mode.
265
+ * In uncontrolled mode the Table manages page size internally.
266
+ */
267
+ onPageSizeChange?: (size: number) => void;
268
+ /**
269
+ * Callback fired when a row is clicked for inspection. Providing this prop
270
+ * makes rows clickable and enables the row detail drawer pattern.
271
+ * Receives the row data object and its stable row ID (from `getRowId`).
272
+ */
273
+ onRowInspect?: (row: Record<string, ReactNode>, rowId: string) => void;
274
+ /**
275
+ * Callback fired when row selection changes. Providing this prop enables
276
+ * the checkbox column. Receives the full array of currently selected row IDs.
277
+ * Note: in uncontrolled selection mode, IDs of rows removed from `rowData`
278
+ * (e.g. after filtering) remain in the internal selection set. Clear selection
279
+ * explicitly when filtering if stale IDs are a concern.
280
+ */
281
+ onRowSelectionChange?: (ids: string[]) => void;
282
+ /**
283
+ * Callback fired when a sortable header is clicked. Providing this prop
284
+ * enables controlled sort mode — the component will not sort `rowData`
285
+ * internally and expects the parent to pass pre-sorted data.
286
+ */
287
+ onSort?: (key: string, order: SortOrder) => void;
288
+ /**
289
+ * Render prop for the detail panel content. When provided, clicking a row
290
+ * slides in an inline detail panel alongside the table. Receives the row
291
+ * data and a context object with navigation callbacks and state.
292
+ * See the [Row detail panel](/docs/components-table--row-detail-panel) story.
293
+ */
294
+ /**
295
+ * Available page size options rendered in the rows-per-page selector.
296
+ * When provided, the selector is shown to the left of the pagination controls.
297
+ */
298
+ pageSizeOptions?: number[];
299
+ /**
300
+ * Accessible label for the rows-per-page selector. Defaults to
301
+ * `'Rows per page'`. Override for translation.
302
+ */
303
+ pageSizeSelectLabel?: string;
304
+ /**
305
+ * Translatable labels for the built-in pagination controls: the previous/next
306
+ * buttons, the page selector, and the page-count separator (`of`). When omitted,
307
+ * English defaults are used. Override for translation.
308
+ */
309
+ paginationLabels?: PaginationCompactProps['labelStrings'];
310
+ /**
311
+ * When true, renders the table inside a Panel with no padding. Automatically
312
+ * applies first-column spacing and removes the last row's bottom border so
313
+ * it doesn't double up against the footer border. Has no effect at the
314
+ * mobile breakpoint (see `hasMobileCards`) — cards sit flush against the
315
+ * page background instead of inside a Panel.
316
+ */
317
+ panel?: boolean;
318
+ /**
319
+ * Accessible label for the detail panel "previous row" button.
320
+ * Defaults to `'Previous row'`. Override for translation.
321
+ */
322
+ prevDetailPanelRowLabel?: string;
323
+ /**
324
+ * Render prop for the detail panel content. When provided, clicking a row
325
+ * slides in an inline detail panel alongside the table. Receives the row
326
+ * data and a context object with navigation callbacks and state.
327
+ * See the [Row detail panel](/docs/components-table--row-detail-panel) story.
328
+ */
329
+ renderDetailPanel?: (row: Record<string, ReactNode>, context: DetailPanelContext) => ReactNode;
330
+ /**
331
+ * Optional content rendered at the bottom of the detail panel, outside the
332
+ * scrollable content area. Use for navigation controls, action buttons, or
333
+ * other panel-level UI. The consumer is responsible for all styling including
334
+ * any separator between content and footer.
335
+ */
336
+ renderDetailPanelFooter?: (row: Record<string, ReactNode>, context: DetailPanelContext) => ReactNode;
337
+ /**
338
+ * Row data as an array of records keyed by column id.
339
+ * In controlled pagination mode, pass only the current page's rows.
340
+ */
341
+ rowData: Array<Record<string, ReactNode>>;
342
+ /**
343
+ * Visually hidden accessible label for the select-all header checkbox.
344
+ * Defaults to `'Select all rows'`. Override for translation.
345
+ */
346
+ selectAllLabel?: string;
347
+ /**
348
+ * Controlled selected row IDs. When provided alongside `onRowSelectionChange`,
349
+ * enables controlled selection mode.
350
+ */
351
+ selectedRows?: string[];
352
+ /**
353
+ * Controlled sort column id. Only used when `onSort` is provided.
354
+ */
355
+ sortKey?: string;
356
+ /**
357
+ * Controlled sort direction. Only used when `onSort` is provided.
13
358
  */
14
- headers?: Array<{
15
- sortable?: boolean;
16
- title: ReactNode;
17
- }>;
359
+ sortOrder?: SortOrder;
18
360
  /**
19
- * Table row data - array of rows, where each row is an array of cell values
361
+ * Total number of items across all pages. Required in controlled pagination
362
+ * mode so the Pagination component can compute the page count.
20
363
  */
21
- rowData?: Array<Array<string | ReactNode>>;
364
+ totalItemCount?: number;
22
365
  }
23
- /**
24
- * Table UI component
25
- */
26
- export declare const Table: ({ className, headers, rowData, ...props }: TableProps) => import("react/jsx-runtime").JSX.Element;
27
- export {};
366
+ export declare const Table: ({ className, closeDetailPanelLabel, columns, currentPage, defaultSortKey, defaultSortOrder, detailPanelNav, detailPanelTitle, detailPanelWidth, emptyState, emptyStateHeading, emptyStateMessage, footer, getDetailPanelPositionLabel, getPageSizeLabel, getRowClassName, getRowId, getRowSelectDisabledReason, getSelectRowLabel, getSortLabel, hasMobileCards, hasMobileDetailSheet, inspectedRowId, isLoading, isRowSelectable, itemsPerPage, loadingRowCount, maxHeight, minHeight, nextDetailPanelRowLabel, onDetailPanelNext, onDetailPanelPrev, onPageChange, onPageSizeChange, onRowInspect, onRowSelectionChange, onSort, pageSizeOptions, pageSizeSelectLabel, paginationLabels, panel, prevDetailPanelRowLabel, renderDetailPanel, renderDetailPanelFooter, rowData, selectAllLabel, selectedRows, sortKey, sortOrder, totalItemCount, ...props }: TableProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,7 @@
1
1
  import { ComponentPropsWithoutRef } from 'react';
2
2
  import { HeadingLevelCommon } from '../../libs/types/custom-types';
3
3
  import './table-of-contents.css';
4
- /**
5
- * Prop types for TableOfContents
6
- */
7
- interface TableOfContentsProps extends ComponentPropsWithoutRef<'nav'> {
4
+ export interface TableOfContentsProps extends ComponentPropsWithoutRef<'nav'> {
8
5
  /**
9
6
  * Whether to append the id to the URL when a link is clicked.
10
7
  */
@@ -42,4 +39,3 @@ interface TableOfContentsProps extends ComponentPropsWithoutRef<'nav'> {
42
39
  * TableOfContents UI component
43
40
  */
44
41
  export declare const TableOfContents: ({ appendIds, ariaLabel, className, headingLevel, headingText, ignoreClass, showHeading, sourceID, ...props }: TableOfContentsProps) => import("react/jsx-runtime").JSX.Element;
45
- export {};
@@ -1,7 +1,15 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import './tag.css';
3
- export declare const tagColors: string[];
4
- type TagColor = (typeof tagColors)[number];
3
+ export declare const tagColors: readonly ["orange", "stone", "gold", "lime", "mint", "teal", "sky", "slate", "indigo", "purple", "magenta", "rose", "red"];
4
+ type TagMutedColor = (typeof tagColors)[number];
5
+ export declare const tagSolidHueColors: readonly ["orange-solid", "teal-solid", "indigo-solid", "magenta-solid", "rose-solid", "gold-solid", "lime-solid", "sky-solid", "slate-solid"];
6
+ type TagSolidHueColor = (typeof tagSolidHueColors)[number];
7
+ export declare const tagSolidStatusColors: readonly ["success-solid", "warning-solid", "critical-solid", "info-solid", "discovery-solid"];
8
+ type TagSolidStatusColor = (typeof tagSolidStatusColors)[number];
9
+ export declare const tagSolidColors: readonly ["orange-solid", "teal-solid", "indigo-solid", "magenta-solid", "rose-solid", "gold-solid", "lime-solid", "sky-solid", "slate-solid", "success-solid", "warning-solid", "critical-solid", "info-solid", "discovery-solid"];
10
+ type TagSolidColor = TagSolidHueColor | TagSolidStatusColor;
11
+ export type TagColor = TagMutedColor | TagSolidColor;
12
+ export type TagSize = 'xs' | 's' | 'm';
5
13
  interface TagProps extends ComponentPropsWithoutRef<'div'> {
6
14
  /**
7
15
  * Additional class names
@@ -23,6 +31,10 @@ interface TagProps extends ComponentPropsWithoutRef<'div'> {
23
31
  * Label for the remove button. Tag text will be appended to this label.
24
32
  */
25
33
  removeLabel?: string;
34
+ /**
35
+ * Size of the tag.
36
+ */
37
+ size?: TagSize;
26
38
  /**
27
39
  * Tag color. Will use random color if not selected.
28
40
  */
@@ -31,9 +43,15 @@ interface TagProps extends ComponentPropsWithoutRef<'div'> {
31
43
  * Tag text
32
44
  */
33
45
  tagLabel: string;
46
+ /**
47
+ * Maximum number of characters before truncation. Set to 0 to disable
48
+ * truncation entirely. Defaults to 20. Most use cases should keep the
49
+ * default, especially in multi-tag contexts.
50
+ */
51
+ truncationLength?: number;
34
52
  }
35
53
  /**
36
54
  * Tag UI component
37
55
  */
38
- export declare const Tag: ({ className, isRemovable, linkContent, onRemove, removeLabel, tagColor, tagLabel, ...props }: TagProps) => import("react/jsx-runtime").JSX.Element;
56
+ export declare const Tag: ({ className, isRemovable, linkContent, onRemove, removeLabel, size, tagColor, tagLabel, truncationLength, ...props }: TagProps) => import("react/jsx-runtime").JSX.Element;
39
57
  export {};
@@ -1,5 +1,8 @@
1
1
  import { ComponentPropsWithoutRef } from 'react';
2
+ import { SegmentedButtonSize } from '../buttons/SegmentedButton/SegmentedButton';
2
3
  import './theme-switcher.css';
4
+ type Theme = 'light' | 'dark' | 'system';
5
+ type ThemeSwitcherVariant = 'dropdown' | 'toggle';
3
6
  /**
4
7
  * Prop types for ThemeSwitcher
5
8
  */
@@ -9,24 +12,42 @@ export interface ThemeSwitcherProps extends Omit<ComponentPropsWithoutRef<'div'>
9
12
  */
10
13
  className?: string;
11
14
  /**
12
- * Callback triggered when the theme changes
13
- */
14
- onChange?: (theme: 'light' | 'dark' | 'system') => void;
15
- /**
16
- * The current theme
15
+ * ID for the menu button. Must be unique if multiple ThemeSwitchers are rendered.
17
16
  */
18
- theme?: 'light' | 'dark' | 'system';
17
+ id?: string;
19
18
  /**
20
19
  * Translation strings for theme options
21
20
  */
22
- translations?: {
21
+ labelStrings?: {
23
22
  dark: string;
24
23
  light: string;
25
24
  system: string;
26
25
  tooltip?: string;
27
26
  };
27
+ /**
28
+ * Callback triggered when the theme changes
29
+ */
30
+ onChange?: (theme: Theme) => void;
31
+ /**
32
+ * Size of the control. Only applies to the `'toggle'` variant, where it is
33
+ * passed through to the underlying SegmentedButton. Defaults to `'m'`.
34
+ */
35
+ size?: SegmentedButtonSize;
36
+ /**
37
+ * The current theme
38
+ */
39
+ theme?: Theme;
40
+ /**
41
+ * Presentation of the switcher. `'toggle'` (default) renders an icon-only
42
+ * segmented control — best for authenticated apps where the choice persists
43
+ * (for example, nested in the user menu). `'dropdown'` renders an icon-only
44
+ * menu button with a tooltip — best for global navigation and anonymous
45
+ * users who can't persist a preference.
46
+ */
47
+ variant?: ThemeSwitcherVariant;
28
48
  }
29
49
  /**
30
50
  * ThemeSwitcher UI component
31
51
  */
32
- export declare const ThemeSwitcher: ({ className, onChange, theme, translations, ...props }: ThemeSwitcherProps) => import("react/jsx-runtime").JSX.Element;
52
+ export declare const ThemeSwitcher: ({ className, id, labelStrings, onChange, size, theme, variant, ...props }: ThemeSwitcherProps) => import("react/jsx-runtime").JSX.Element;
53
+ export {};
@@ -15,6 +15,10 @@ interface TooltipProps extends ComponentPropsWithoutRef<'div'> {
15
15
  * String or HTML content to use as the trigger instead of an icon. Leave null to use the icon.
16
16
  */
17
17
  customTrigger?: ReactNode;
18
+ /**
19
+ * When true, the tooltip will not show on focus — only on hover.
20
+ */
21
+ disableFocusTrigger?: boolean;
18
22
  /**
19
23
  * The spacing between the trigger and the tooltip in pixels. Use the default value (in most cases) when using an icon trigger.
20
24
  */
@@ -30,7 +34,7 @@ interface TooltipProps extends ComponentPropsWithoutRef<'div'> {
30
34
  /**
31
35
  * Icon to trigger tooltip
32
36
  */
33
- triggerIcon?: 'circleInfo' | 'circleQuestion' | 'circleExclamation';
37
+ triggerIcon?: 'circleExclamation' | 'circleExclamationSolid' | 'circleInfo' | 'circleInfoSolid' | 'circleQuestion' | 'circleQuestionSolid';
34
38
  /**
35
39
  * Color of the trigger icon. Uses PDS default text color options.
36
40
  */
@@ -47,5 +51,5 @@ interface TooltipProps extends ComponentPropsWithoutRef<'div'> {
47
51
  /**
48
52
  * Tooltip UI component
49
53
  */
50
- export declare const Tooltip: ({ className, content, customTrigger, offsetValue, preferredPlacement, triggerAccessibleText, triggerIcon, triggerIconColor, triggerIconSize, zIndex, ...props }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
54
+ export declare const Tooltip: ({ className, content, customTrigger, disableFocusTrigger, offsetValue, preferredPlacement, triggerAccessibleText, triggerIcon, triggerIconColor, triggerIconSize, zIndex, ...props }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
51
55
  export {};
@@ -0,0 +1,26 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import { PaddingScale } from '../../libs/types/layout-types';
3
+ import './utility-bar.css';
4
+ type UtilityBarBackground = 'default' | 'default-secondary' | 'transparent';
5
+ export interface UtilityBarProps extends ComponentPropsWithoutRef<'div'> {
6
+ /**
7
+ * Background color of the utility bar.
8
+ */
9
+ backgroundColor?: UtilityBarBackground;
10
+ /**
11
+ * Child elements assigned to named slots.
12
+ * - `items-left` — left-side content (e.g. search input)
13
+ * - `items-right` — right-side controls (e.g. icon buttons)
14
+ */
15
+ children: ReactNode;
16
+ /**
17
+ * Additional class names.
18
+ */
19
+ className?: string;
20
+ /**
21
+ * Internal padding. Defaults to 'none'.
22
+ */
23
+ padding?: PaddingScale;
24
+ }
25
+ export declare const UtilityBar: ({ backgroundColor, children, className, padding, ...props }: UtilityBarProps) => import("react/jsx-runtime").JSX.Element;
26
+ export {};
@@ -1,6 +1,8 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import { PDSIcon } from '../../icons/Icon/Icon';
2
3
  import './badge.css';
3
- export type BadgeColor = 'aether' | 'aether-secondary' | 'amber' | 'amber-secondary' | 'apollo' | 'apollo-secondary' | 'critical' | 'critical-secondary' | 'discovery' | 'discovery-secondary' | 'gaia' | 'gaia-secondary' | 'hypnos' | 'hypnos-secondary' | 'indigo' | 'indigo-secondary' | 'info' | 'info-secondary' | 'iris' | 'iris-secondary' | 'lime' | 'lime-secondary' | 'mint' | 'mint-secondary' | 'orange' | 'orange-secondary' | 'rose' | 'rose-secondary' | 'sand' | 'sand-secondary' | 'silver' | 'silver-secondary' | 'sky' | 'sky-secondary' | 'slate' | 'slate-secondary' | 'stone' | 'stone-secondary' | 'success' | 'success-secondary' | 'teal' | 'teal-secondary' | 'warning' | 'warning-secondary' | 'feature';
4
+ export type BadgeColor = 'brand' | 'brand-muted' | 'critical' | 'critical-muted' | 'discovery' | 'discovery-muted' | 'gold' | 'gold-muted' | 'indigo' | 'indigo-muted' | 'info' | 'info-muted' | 'ink' | 'ink-muted' | 'lime' | 'lime-muted' | 'orange' | 'orange-muted' | 'rose' | 'rose-muted' | 'silver' | 'silver-muted' | 'sky' | 'sky-muted' | 'slate' | 'slate-muted' | 'stone' | 'stone-muted' | 'success' | 'success-muted' | 'warning' | 'warning-muted';
5
+ export type BadgeSize = 'xs' | 's' | 'm';
4
6
  /**
5
7
  * Badge component props
6
8
  */
@@ -13,6 +15,11 @@ export interface BadgeProps extends ComponentPropsWithoutRef<'span'> {
13
15
  * Badge color
14
16
  */
15
17
  color: BadgeColor;
18
+ /**
19
+ * Optional leading icon. Sized to fit the badge's `size` and always
20
+ * colored to match the badge's foreground color.
21
+ */
22
+ iconName?: PDSIcon;
16
23
  /**
17
24
  * Badge text or content.
18
25
  */
@@ -20,9 +27,9 @@ export interface BadgeProps extends ComponentPropsWithoutRef<'span'> {
20
27
  /**
21
28
  * Badge size
22
29
  */
23
- size?: 'xs' | 's' | 'm';
30
+ size?: BadgeSize;
24
31
  }
25
32
  /**
26
33
  * Badge UI component
27
34
  */
28
- export declare const Badge: ({ className, color, label, size, ...props }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
35
+ export declare const Badge: ({ className, color, iconName, label, size, ...props }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
@@ -27,8 +27,9 @@ export interface StatusBadgeProps extends ComponentPropsWithoutRef<'div'> {
27
27
  statusIndicatorText?: string;
28
28
  /**
29
29
  * Status type for badge. Only renders if `hasStatusIndicator` is true.
30
+ * Use `'working'` to show a spinner in place of the status dot.
30
31
  */
31
- statusType?: StatusType | 'frozen' | 'disabled';
32
+ statusType?: StatusType | 'frozen' | 'disabled' | 'working';
32
33
  }
33
34
  /**
34
35
  * StatusBadge UI component
@@ -1,5 +1,7 @@
1
1
  import React, { ComponentPropsWithoutRef, MouseEvent, ReactNode } from 'react';
2
+ import { StatusDotType } from '../../../libs/components/StatusDot/StatusDot';
2
3
  import { ButtonDisplayType, ButtonSize, ButtonType, ButtonVariant } from '../../../libs/types/custom-types';
4
+ import { TallyProps } from '../../badges/Tally/Tally';
3
5
  import { PDSIcon } from '../../icons/Icon/Icon';
4
6
  import './button.css';
5
7
  interface ButtonProps extends ComponentPropsWithoutRef<'button'> {
@@ -56,6 +58,19 @@ interface ButtonProps extends ComponentPropsWithoutRef<'button'> {
56
58
  * @default 's'
57
59
  */
58
60
  size?: ButtonSize;
61
+ /**
62
+ * A status dot displayed in the left icon slot. Mutually exclusive with `iconName` when `displayType` is `icon-start`.
63
+ * Only valid on `primary`, `secondary`, and `subtle` variants.
64
+ */
65
+ statusDot?: StatusDotType;
66
+ /**
67
+ * A tally badge displayed in the right icon slot. Mutually exclusive with `iconName` when `displayType` is `icon-end`.
68
+ * Only valid on `primary`, `secondary`, `subtle`, and `highlight` variants.
69
+ */
70
+ tally?: {
71
+ label: TallyProps['label'];
72
+ type: TallyProps['type'];
73
+ };
59
74
  /**
60
75
  * Text for an optional tooltip to be displayed when the button is `disabled`, `isLoading`, or `isWorking`.
61
76
  */
@@ -3,7 +3,6 @@ import { ButtonDisplayType, ButtonSize, ButtonVariant } from '../../../libs/type
3
3
  import { PDSIcon } from '../../icons/Icon/Icon';
4
4
  import '../Button/button.css';
5
5
  import './button-link.css';
6
- type ButtonLinkVariant = Exclude<ButtonVariant, 'navbar' | 'inline'>;
7
6
  /**
8
7
  * Prop types for ButtonLink
9
8
  */
@@ -39,10 +38,9 @@ export interface ButtonLinkProps extends ComponentPropsWithoutRef<'span'> {
39
38
  /**
40
39
  * Variant of the button.
41
40
  */
42
- variant?: ButtonLinkVariant;
41
+ variant?: ButtonVariant;
43
42
  }
44
43
  /**
45
44
  * ButtonLink UI component
46
45
  */
47
46
  export declare const ButtonLink: ({ className, disabled, displayType, iconName, linkContent, size, tooltipText, variant, ...props }: ButtonLinkProps) => import("react/jsx-runtime").JSX.Element;
48
- export {};