@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
@@ -19,6 +19,10 @@ export interface ClipboardButtonProps extends ComponentPropsWithoutRef<'button'>
19
19
  * Is the button disabled?
20
20
  */
21
21
  disabled?: boolean;
22
+ /**
23
+ * Show a visible border around the button.
24
+ */
25
+ hasBorder?: boolean;
22
26
  /**
23
27
  * Which variant of button to render.
24
28
  */
@@ -27,4 +31,4 @@ export interface ClipboardButtonProps extends ComponentPropsWithoutRef<'button'>
27
31
  /**
28
32
  * ClipboardButton UI component
29
33
  */
30
- export declare const ClipboardButton: ({ ariaLabel, className, clipboardText, disabled, variant, ...props }: ClipboardButtonProps) => import("react/jsx-runtime").JSX.Element;
34
+ export declare const ClipboardButton: ({ ariaLabel, className, clipboardText, disabled, hasBorder, variant, ...props }: ClipboardButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -17,9 +17,9 @@ export interface CloseButtonProps extends ComponentPropsWithoutRef<'button'> {
17
17
  */
18
18
  onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
19
19
  /**
20
- * Size of the icon.
20
+ * Size of the button.
21
21
  */
22
- size?: 'm' | 'l' | 'xl';
22
+ size?: 's' | 'm' | 'l';
23
23
  }
24
24
  /**
25
25
  * CloseButton UI component
@@ -0,0 +1,92 @@
1
+ import './filter-button.css';
2
+ /**
3
+ * A single option the FilterButton can filter by.
4
+ */
5
+ export interface FilterButtonOption {
6
+ /**
7
+ * Whether this option is disabled.
8
+ */
9
+ disabled?: boolean;
10
+ /**
11
+ * Visible label for the option.
12
+ */
13
+ label: string;
14
+ /**
15
+ * Unique value used for selection.
16
+ */
17
+ value: string;
18
+ }
19
+ /**
20
+ * Prop types for FilterButton
21
+ */
22
+ export interface FilterButtonProps {
23
+ /**
24
+ * Additional class names.
25
+ */
26
+ className?: string;
27
+ /**
28
+ * Text for the clear action in the panel footer.
29
+ */
30
+ clearLabel?: string;
31
+ /**
32
+ * Disable the entire control.
33
+ */
34
+ disabled?: boolean;
35
+ /**
36
+ * The filter key/dimension name shown in the trigger (e.g. "Status").
37
+ */
38
+ filterKey: string;
39
+ /**
40
+ * id applied to the trigger button.
41
+ */
42
+ id?: string;
43
+ /**
44
+ * Show the in-menu search input once the number of options reaches this
45
+ * threshold. Defaults to `8`. Set to `0` to always show it.
46
+ */
47
+ minFilterItems?: number;
48
+ /**
49
+ * Text shown when the search finds no matching options.
50
+ */
51
+ noResultsText?: string;
52
+ /**
53
+ * Called with the next selected values whenever the selection changes.
54
+ */
55
+ onSelectionChange: (values: string[]) => void;
56
+ /**
57
+ * Options the user can filter by.
58
+ */
59
+ options: FilterButtonOption[];
60
+ /**
61
+ * Accessible label for the search input.
62
+ */
63
+ searchLabel?: string;
64
+ /**
65
+ * Placeholder for the search input.
66
+ */
67
+ searchPlaceholder?: string;
68
+ /**
69
+ * Currently selected option values (controlled).
70
+ */
71
+ selectedValues: string[];
72
+ /**
73
+ * Restrict the filter to one option at a time. Choosing an option replaces
74
+ * the current selection and closes the panel; choosing the selected option
75
+ * again clears it.
76
+ */
77
+ singleSelect?: boolean;
78
+ }
79
+ /**
80
+ * FilterButton — a filter control with a stateful trigger, designed to sit in a
81
+ * UtilityBar above a Table. Composes the Dropdown compound component (a search
82
+ * row + a Clear footer behind a trigger) with three trigger states: default,
83
+ * single selection, and multiple selections (with a count).
84
+ *
85
+ * Multiselect by default: options are checkbox items and any number can be
86
+ * active at once. Set `singleSelect` to restrict the filter to one option at a
87
+ * time — options then render as radio items with a check mark.
88
+ *
89
+ * Selection is controlled: pass `selectedValues` and handle `onSelectionChange`.
90
+ * The consuming app owns filtering the data with those values.
91
+ */
92
+ export declare const FilterButton: ({ className, clearLabel, disabled, filterKey, id, minFilterItems, noResultsText, onSelectionChange, options, searchLabel, searchPlaceholder, selectedValues, singleSelect, }: FilterButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@ import React, { ComponentPropsWithoutRef, MouseEvent } from 'react';
2
2
  import { ButtonType } from '../../../libs/types/custom-types';
3
3
  import { PDSIcon } from '../../icons/Icon/Icon';
4
4
  import './icon-button.css';
5
- type IconButtonSize = 's' | 'm';
5
+ type IconButtonSize = 'xs' | 's' | 'm';
6
6
  interface IconButtonProps extends ComponentPropsWithoutRef<'button'> {
7
7
  /**
8
8
  * Aria-label attribute.
@@ -20,6 +20,10 @@ interface IconButtonProps extends ComponentPropsWithoutRef<'button'> {
20
20
  * Is the button disabled?
21
21
  */
22
22
  disabled?: boolean;
23
+ /**
24
+ * Show a visible border around the button.
25
+ */
26
+ hasBorder?: boolean;
23
27
  /**
24
28
  * Show tooltip on hover. If false, the title attribute will be used.
25
29
  */
@@ -32,10 +36,18 @@ interface IconButtonProps extends ComponentPropsWithoutRef<'button'> {
32
36
  * Which icon to render.
33
37
  */
34
38
  iconName: PDSIcon;
39
+ /**
40
+ * Whether the button is in a pressed/active toggle state. Maps to aria-pressed.
41
+ */
42
+ isPressed?: boolean;
35
43
  /**
36
44
  * Click event handler callback.
37
45
  */
38
46
  onClick?: (e: MouseEvent<HTMLElement>) => void;
47
+ /**
48
+ * Icon to display when isPressed is true. When not set, iconName is used in both states.
49
+ */
50
+ pressedIconName?: PDSIcon;
39
51
  /**
40
52
  * Which size of button to render.
41
53
  */
@@ -1,8 +1,11 @@
1
1
  import { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import { StatusDotType } from '../../../libs/components/StatusDot/StatusDot';
2
3
  import { ButtonVariant, HeadingItemType, LinkItemType, MenuItemType, NodeItemType, SeparatorItemType } from '../../../libs/types/custom-types';
4
+ import { TallyProps } from '../../badges/Tally/Tally';
3
5
  import { PDSIcon } from '../../icons/Icon/Icon';
6
+ import '@components/Dropdown/dropdown.css';
4
7
  import './menu-button.css';
5
- type MenuButtonSize = 's' | 'm';
8
+ type MenuButtonSize = 'xs' | 's' | 'm';
6
9
  /**
7
10
  * Prop types for MenuButton
8
11
  */
@@ -16,17 +19,28 @@ export interface MenuButtonProps extends ComponentPropsWithRef<'span'> {
16
19
  */
17
20
  disabled?: boolean;
18
21
  /**
19
- * How the button is displayed.
22
+ * Icon name for icon-only mode.
20
23
  */
21
- displayType?: 'icon-end' | 'icon-only';
24
+ iconName?: PDSIcon;
22
25
  /**
23
- * Icon name for icon-only buttons.
26
+ * Render as an icon-only button (no label, no angle-down). Not compatible with `tally` or `statusDot`.
24
27
  */
25
- iconName?: PDSIcon;
28
+ iconOnly?: boolean;
26
29
  /**
27
30
  * ID value for this component.
28
31
  */
29
32
  id: string;
33
+ /**
34
+ * Opt in to swapping the trigger + floating dropdown panel for an inline
35
+ * accordion at the mobile breakpoint. Defaults to `false` — MenuButton
36
+ * always renders its normal trigger + dropdown otherwise, regardless of
37
+ * viewport. Set this explicitly when placing MenuButton inside a mobile
38
+ * nav menu that provides the accordion's expected layout (e.g. `Navbar`'s
39
+ * own mobile menu) — typically `isMobileAccordion={useIsMobile()}`, using
40
+ * the `useIsMobile` hook, so the swap only takes effect at the mobile
41
+ * breakpoint.
42
+ */
43
+ isMobileAccordion?: boolean;
30
44
  /**
31
45
  * Will this be used for a split button?
32
46
  */
@@ -39,18 +53,33 @@ export interface MenuButtonProps extends ComponentPropsWithRef<'span'> {
39
53
  * Array of menu items
40
54
  */
41
55
  menuItems: Array<HeadingItemType | LinkItemType | MenuItemType | NodeItemType | SeparatorItemType>;
42
- /**
43
- * Horizontal position of the menu relative to the button. Applies to breakpoints `md` and up.
44
- */
45
- menuPosition?: 'start' | 'end';
46
56
  /**
47
57
  * Optional callback function for when the button is clicked or activated by the keyboard.
48
58
  */
49
59
  onClick?: () => void;
60
+ /**
61
+ * Optional callback fired whenever the menu's open state changes. Use
62
+ * this to manage focus deliberately when this MenuButton is nested
63
+ * inside another floating panel — e.g. return focus to the row that
64
+ * owns this menu when it closes, rather than leaving it to Floating UI's
65
+ * default (which can otherwise leave focus on an ancestor panel).
66
+ */
67
+ onOpenChange?: (isOpen: boolean) => void;
50
68
  /**
51
69
  * Which size of button to render.
52
70
  */
53
71
  size?: MenuButtonSize;
72
+ /**
73
+ * A status dot displayed in the left icon slot. Not available in `iconOnly` mode.
74
+ */
75
+ statusDot?: StatusDotType;
76
+ /**
77
+ * A tally badge displayed between the label and the angle-down icon. Not available in `iconOnly` mode.
78
+ */
79
+ tally?: {
80
+ label: TallyProps['label'];
81
+ type: TallyProps['type'];
82
+ };
54
83
  /**
55
84
  * Optional `data-testid` value for this component.
56
85
  */
@@ -60,18 +89,23 @@ export interface MenuButtonProps extends ComponentPropsWithRef<'span'> {
60
89
  */
61
90
  undefinedLabel?: string;
62
91
  /**
63
- * Which variant of button to render only valid for icon-end (default) display type.
64
- */
65
- variant?: Extract<ButtonVariant, 'primary' | 'secondary' | 'navbar'>;
66
- /**
67
- * Is this button located with the Navbar component?
68
- * This will adjust the styling and position of the dropdown.
69
- * Omit this prop for the Dashboard application. It only applies to the standard Navbar component with a bottom border.
92
+ * Which variant of button to render. Not available in `iconOnly` mode.
93
+ * `navbar` is visually identical to `subtle` except it has no background
94
+ * at rest only on hover/expanded — for triggers that sit directly on a
95
+ * nav/toolbar surface rather than a plain page background. `reverse-secondary`
96
+ * is for triggers on a dark/reverse surface — passed straight through to
97
+ * the underlying `Button`, which already supports it.
70
98
  */
71
- withinNavbar?: boolean;
99
+ variant?: Extract<ButtonVariant, 'primary' | 'secondary' | 'subtle' | 'reverse-secondary'> | 'navbar';
72
100
  }
73
101
  /**
74
- * MenuButton UI component
102
+ * MenuButton UI component.
103
+ *
104
+ * Wraps the actual implementation in a Floating UI tree boundary: when
105
+ * nested inside another floating panel (e.g. a `Dropdown`'s panel), it joins
106
+ * that panel's tree so outside-clicks and Escape inside this menu resolve to
107
+ * this (innermost) menu without wrongly dismissing the parent. When not
108
+ * nested, it provides its own single-node tree — no consumer opt-in needed.
75
109
  */
76
- export declare const MenuButton: ({ className, disabled, displayType, iconName, id, isSplitButton, label, menuItems, menuPosition, onClick, size, testId, undefinedLabel, variant, withinNavbar, ...props }: MenuButtonProps) => import("react/jsx-runtime").JSX.Element;
110
+ export declare const MenuButton: (props: MenuButtonProps) => import("react/jsx-runtime").JSX.Element;
77
111
  export {};
@@ -16,6 +16,10 @@ interface SSOButtonProps extends ComponentPropsWithoutRef<'button'> {
16
16
  * Is the button disabled?
17
17
  */
18
18
  disabled?: boolean;
19
+ /**
20
+ * Is the button in a working state?
21
+ */
22
+ isWorking?: boolean;
19
23
  /**
20
24
  * The text of the button
21
25
  */
@@ -33,9 +37,13 @@ interface SSOButtonProps extends ComponentPropsWithoutRef<'button'> {
33
37
  * @default 'm'
34
38
  */
35
39
  size?: SSOButtonSize;
40
+ /**
41
+ * Text for an optional tooltip to be displayed when the button is `disabled` or `isWorking`.
42
+ */
43
+ tooltipText?: string;
36
44
  }
37
45
  /**
38
46
  * A Component used to render an SSO Button
39
47
  */
40
- export declare const SSOButton: ({ buttonType, className, disabled, label, onClick, platform, size, ...props }: SSOButtonProps) => import("react/jsx-runtime").JSX.Element;
48
+ export declare const SSOButton: ({ buttonType, className, disabled, isWorking, label, onClick, platform, size, tooltipText, ...props }: SSOButtonProps) => import("react/jsx-runtime").JSX.Element;
41
49
  export {};
@@ -1,17 +1,40 @@
1
1
  import { PDSIcon } from '../../icons/Icon/Icon';
2
2
  import './segmented-button.css';
3
+ export type SegmentedButtonSize = 's' | 'm' | 'l';
3
4
  /**
4
5
  * Structure for each option in the SegmentedButton component.
5
6
  */
6
7
  interface OptionType {
8
+ /**
9
+ * Disables this individual option.
10
+ */
7
11
  disabled?: boolean;
12
+ /**
13
+ * Optional icon rendered before the label.
14
+ */
8
15
  iconName?: PDSIcon;
16
+ /**
17
+ * Optional unique ID for the option. Falls back to a generated ID.
18
+ */
9
19
  id?: string;
20
+ /**
21
+ * Shows a spinner before the label to indicate the option is loading.
22
+ */
23
+ isLoading?: boolean;
24
+ /**
25
+ * Visible text for the option.
26
+ */
10
27
  label: string;
28
+ /**
29
+ * Optional tally badge rendered after the label.
30
+ */
11
31
  tally?: {
12
32
  label: string | number;
13
33
  type: 'neutral' | 'critical' | 'warning' | 'info' | 'success';
14
34
  };
35
+ /**
36
+ * Value submitted when this option is selected.
37
+ */
15
38
  value: string;
16
39
  }
17
40
  /**
@@ -19,7 +42,11 @@ interface OptionType {
19
42
  */
20
43
  export interface SegmentedButtonProps {
21
44
  /**
22
- * Additional class names
45
+ * Renders a border around the track. Off by default.
46
+ */
47
+ border?: boolean;
48
+ /**
49
+ * Additional class names.
23
50
  */
24
51
  className?: string;
25
52
  /**
@@ -27,9 +54,16 @@ export interface SegmentedButtonProps {
27
54
  */
28
55
  defaultValue?: string;
29
56
  /**
30
- * Is the SegmentedButton disabled?
57
+ * Disables all options in the SegmentedButton.
31
58
  */
32
59
  disabled?: boolean;
60
+ /**
61
+ * Renders each option as an icon-only, square segment with a circular
62
+ * selected pill. Each option's `iconName` is required and its `label` is
63
+ * used as the accessible name (visually hidden) and shown in a tooltip on
64
+ * hover. Works at any size; the icon and pill scale with the size.
65
+ */
66
+ iconOnly?: boolean;
33
67
  /**
34
68
  * Unique ID for the SegmentedButton.
35
69
  */
@@ -39,24 +73,26 @@ export interface SegmentedButtonProps {
39
73
  */
40
74
  label: string;
41
75
  /**
42
- * Callback function that will return the updated value from the instance when it changes.
76
+ * Callback fired when the selected option changes.
43
77
  */
44
78
  onChange?: (value: string) => void;
45
79
  /**
46
- * Array of button options — must be between 2 and 6 options.
80
+ * Array of button options — must be between 2 and 6 options. Each option may
81
+ * include an optional icon or spinner before the label and a tally after it.
47
82
  */
48
83
  options: OptionType[];
49
84
  /**
50
- * Size of the SegmentedButton.
85
+ * Size of the segmented button: `'s'` (20px), `'m'` (24px, default), or
86
+ * `'l'` (32px). The icon scales with the size.
51
87
  */
52
- size?: 's' | 'm';
88
+ size?: SegmentedButtonSize;
53
89
  /**
54
- * Value of the Segmented Button. Used to set the value of the field when controlled. Cannot be used in conjunction with the `defaultValue` prop.
90
+ * Controlled value. Cannot be used together with `defaultValue`.
55
91
  */
56
92
  value?: string;
57
93
  }
58
94
  /**
59
95
  * SegmentedButton UI component
60
96
  */
61
- export declare const SegmentedButton: ({ className, defaultValue, disabled, id, label, onChange, options, size, value, ...props }: SegmentedButtonProps) => import("react/jsx-runtime").JSX.Element;
97
+ export declare const SegmentedButton: ({ border, className, defaultValue, disabled, iconOnly, id, label, onChange, options, size, value, ...props }: SegmentedButtonProps) => import("react/jsx-runtime").JSX.Element;
62
98
  export {};
@@ -0,0 +1,81 @@
1
+ import './select-button.css';
2
+ /**
3
+ * A single option the SelectButton can choose between.
4
+ */
5
+ export interface SelectButtonOption {
6
+ /**
7
+ * Whether this option is disabled.
8
+ */
9
+ disabled?: boolean;
10
+ /**
11
+ * Visible label for the option.
12
+ */
13
+ label: string;
14
+ /**
15
+ * Unique value used for selection.
16
+ */
17
+ value: string;
18
+ }
19
+ /**
20
+ * Prop types for SelectButton
21
+ */
22
+ export interface SelectButtonProps {
23
+ /**
24
+ * Additional class names.
25
+ */
26
+ className?: string;
27
+ /**
28
+ * Disable the entire control.
29
+ */
30
+ disabled?: boolean;
31
+ /**
32
+ * id applied to the trigger button.
33
+ */
34
+ id?: string;
35
+ /**
36
+ * The dimension name shown in the trigger (e.g. "Sort").
37
+ */
38
+ keyLabel: string;
39
+ /**
40
+ * Show the in-menu search input once the number of options reaches this
41
+ * threshold. Defaults to `8`. Set to `0` to always show it.
42
+ */
43
+ minFilterItems?: number;
44
+ /**
45
+ * Text shown when the search finds no matching options.
46
+ */
47
+ noResultsText?: string;
48
+ /**
49
+ * Called with the next value whenever the selection changes.
50
+ */
51
+ onChange: (value: string) => void;
52
+ /**
53
+ * Options the user can choose between.
54
+ */
55
+ options: SelectButtonOption[];
56
+ /**
57
+ * Accessible label for the search input.
58
+ */
59
+ searchLabel?: string;
60
+ /**
61
+ * Placeholder for the search input.
62
+ */
63
+ searchPlaceholder?: string;
64
+ /**
65
+ * The currently selected value (controlled). Exactly one option is always
66
+ * selected — there is no "cleared" state.
67
+ */
68
+ value: string;
69
+ }
70
+ /**
71
+ * SelectButton — a trigger + menu for choosing exactly one value out of a
72
+ * small fixed set, for controls where a value is always active (e.g. sort
73
+ * field, group-by, time range, page size). Composes the same `Dropdown` +
74
+ * radio-item-with-checkmark pattern as `FilterButton`, but without
75
+ * `FilterButton`'s optional/clearable semantics — there is no empty state and
76
+ * no clear affordance, because unlike a filter, this kind of control can
77
+ * never have "nothing" selected.
78
+ *
79
+ * Selection is controlled: pass `value` and handle `onChange`.
80
+ */
81
+ export declare const SelectButton: ({ className, disabled, id, keyLabel, minFilterItems, noResultsText, onChange, options, searchLabel, searchPlaceholder, value, }: SelectButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { ComponentPropsWithoutRef } from 'react';
2
2
  import { ButtonVariant, LinkItemType, MenuItemType } from '../../../libs/types/custom-types';
3
+ import { PDSIcon } from '../../icons/Icon/Icon';
3
4
  import './split-button.css';
4
5
  type SplitButtonSize = 's' | 'm';
5
6
  /**
@@ -18,6 +19,11 @@ interface SplitButtonProps extends ComponentPropsWithoutRef<'span'> {
18
19
  * Is the button disabled?
19
20
  */
20
21
  disabled?: boolean;
22
+ /**
23
+ * Icon shown at the start of the primary action, e.g. `'plus'`. Only
24
+ * applies to the primary action — there's no equivalent for menu items.
25
+ */
26
+ iconName?: PDSIcon;
21
27
  /**
22
28
  * ID value for this component.
23
29
  */
@@ -38,5 +44,5 @@ interface SplitButtonProps extends ComponentPropsWithoutRef<'span'> {
38
44
  /**
39
45
  * A component used to render a button with a primary action and a menu of additional options
40
46
  */
41
- export declare const SplitButton: ({ actionItems, className, disabled, id, moreActionsLabel, size, variant, ...props }: SplitButtonProps) => import("react/jsx-runtime").JSX.Element;
47
+ export declare const SplitButton: ({ actionItems, className, disabled, iconName, id, moreActionsLabel, size, variant, ...props }: SplitButtonProps) => import("react/jsx-runtime").JSX.Element;
42
48
  export {};
@@ -0,0 +1,64 @@
1
+ import { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react';
2
+ import { CardBackground, CardPaddingScale } from '../../../libs/types/layout-types';
3
+ import { CardImageVariant } from '../../cards/Card/Card';
4
+ import './action-card.css';
5
+ export interface ActionCardPrimaryAction {
6
+ /**
7
+ * Accessible label for the card-level action. Required — read by screen readers
8
+ * as the name of the interactive element that covers the card.
9
+ */
10
+ label: string;
11
+ /**
12
+ * For link-based actions: pass a native `<a>` or framework link element (e.g.
13
+ * React Router `<Link>`). The component clones the element and injects the
14
+ * required class and aria-label. Mutually exclusive with `onClick`.
15
+ */
16
+ linkContent?: ReactElement;
17
+ /**
18
+ * For button-based actions: callback fired when the card is activated.
19
+ * Mutually exclusive with `linkContent`.
20
+ */
21
+ onClick?: () => void;
22
+ }
23
+ /**
24
+ * Prop types for ActionCard
25
+ */
26
+ export interface ActionCardProps extends ComponentPropsWithoutRef<'div'> {
27
+ /**
28
+ * Background color of the card.
29
+ */
30
+ background?: CardBackground;
31
+ /**
32
+ * Card content. Supports `image`, `main`, and `footer` named slots.
33
+ * Any interactive elements placed inside children (secondary actions) are
34
+ * naturally positioned above the card-level primary action.
35
+ */
36
+ children?: ReactNode;
37
+ /**
38
+ * Additional class names
39
+ */
40
+ className?: string;
41
+ /**
42
+ * Controls how the image slot is presented.
43
+ * - `bleed` (default): image extends to card edges, top corners rounded only.
44
+ * - `inset`: image has padding on all sides, all corners rounded.
45
+ */
46
+ imageVariant?: CardImageVariant;
47
+ /**
48
+ * Relative padding for the `main` and `footer` slots.
49
+ */
50
+ padding?: CardPaddingScale;
51
+ /**
52
+ * The card-level primary action. Provide either `linkContent` (for links) or
53
+ * `onClick` (for button actions), plus a required accessible `label`.
54
+ */
55
+ primaryAction: ActionCardPrimaryAction;
56
+ }
57
+ /**
58
+ * ActionCard UI component
59
+ *
60
+ * A fully-clickable card where the entire surface activates a primary action.
61
+ * Supports both link and button actions. Secondary interactive elements can be
62
+ * placed inside children and remain independently clickable above the card action.
63
+ */
64
+ export declare const ActionCard: ({ background, children, className, imageVariant, padding, primaryAction, ...props }: ActionCardProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- import { GridGapOptions } from '../../../libs/types/layout-types';
2
+ import { CardBackground, CardPaddingScale, ImageDisplayVariant } from '../../../libs/types/layout-types';
3
3
  import './card.css';
4
- export type CardBackground = 'default' | 'transparent';
4
+ export type CardImageVariant = ImageDisplayVariant;
5
5
  /**
6
6
  * Prop types for Card
7
7
  */
@@ -18,12 +18,18 @@ export interface CardProps extends ComponentPropsWithoutRef<'div'> {
18
18
  * Additional class names
19
19
  */
20
20
  className?: string;
21
+ /**
22
+ * Controls how the image fills the card top.
23
+ * - `bleed` (default): image extends to the card edges, top corners rounded only.
24
+ * - `inset`: image has padding on all sides, all corners rounded.
25
+ */
26
+ imageVariant?: CardImageVariant;
21
27
  /**
22
28
  * Relative padding for the `main` slot.
23
29
  */
24
- padding?: GridGapOptions;
30
+ padding?: CardPaddingScale;
25
31
  }
26
32
  /**
27
33
  * Card UI component
28
34
  */
29
- export declare const Card: ({ background, children, className, padding, ...props }: CardProps) => import("react/jsx-runtime").JSX.Element;
35
+ export declare const Card: ({ background, children, className, imageVariant, padding, ...props }: CardProps) => import("react/jsx-runtime").JSX.Element;