@workday/canvas-kit-docs 15.0.0-alpha.1303-next.0 → 15.0.0

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 (681) hide show
  1. package/README.md +6 -6
  2. package/dist/es6/docgen/createTraversals.d.ts +0 -3
  3. package/dist/es6/docgen/createTraversals.d.ts.map +1 -1
  4. package/dist/es6/docgen/docParser.d.ts +1 -1
  5. package/dist/es6/docgen/docParser.d.ts.map +1 -1
  6. package/dist/es6/docgen/docParser.js +14 -4
  7. package/dist/es6/docgen/plugins/componentParser.d.ts +1 -1
  8. package/dist/es6/docgen/plugins/componentParser.d.ts.map +1 -1
  9. package/dist/es6/docgen/plugins/componentParser.js +1 -1
  10. package/dist/es6/docgen/plugins/customTypes.d.ts +1 -1
  11. package/dist/es6/docgen/plugins/customTypes.d.ts.map +1 -1
  12. package/dist/es6/docgen/plugins/enhancedComponentParser.d.ts +1 -1
  13. package/dist/es6/docgen/plugins/enhancedComponentParser.d.ts.map +1 -1
  14. package/dist/es6/docgen/plugins/enhancedComponentParser.js +2 -1
  15. package/dist/es6/docgen/plugins/modelParser.d.ts.map +1 -1
  16. package/dist/es6/docgen/plugins/modelParser.js +4 -4
  17. package/dist/es6/docgen/traverse.d.ts.map +1 -1
  18. package/dist/es6/docgen/traverse.js +1 -1
  19. package/dist/es6/lib/DescriptionTooltip.d.ts +2 -5
  20. package/dist/es6/lib/DescriptionTooltip.d.ts.map +1 -1
  21. package/dist/es6/lib/DescriptionTooltip.js +11 -10
  22. package/dist/es6/lib/DownloadLLMFile.js +11 -11
  23. package/dist/es6/lib/ExampleCodeBlock.d.ts.map +1 -1
  24. package/dist/es6/lib/ExampleCodeBlock.js +37 -28
  25. package/dist/es6/lib/MDXElements.d.ts +1 -1
  26. package/dist/es6/lib/MDXElements.d.ts.map +1 -1
  27. package/dist/es6/lib/MDXElements.js +5 -5
  28. package/dist/es6/lib/MoreTooltip.d.ts.map +1 -1
  29. package/dist/es6/lib/MoreTooltip.js +1 -1
  30. package/dist/es6/lib/Specifications.d.ts +3 -1
  31. package/dist/es6/lib/Specifications.d.ts.map +1 -1
  32. package/dist/es6/lib/Specifications.js +20 -10
  33. package/dist/es6/lib/StorybookStatusIndicator.d.ts +2 -2
  34. package/dist/es6/lib/StorybookStatusIndicator.d.ts.map +1 -1
  35. package/dist/es6/lib/StorybookStatusIndicator.js +23 -21
  36. package/dist/es6/lib/StylePropsTable.d.ts.map +1 -1
  37. package/dist/es6/lib/StylePropsTable.js +1 -1
  38. package/dist/es6/lib/SymbolDoc.d.ts +1 -1
  39. package/dist/es6/lib/SymbolDoc.d.ts.map +1 -1
  40. package/dist/es6/lib/SymbolDoc.js +1 -1
  41. package/dist/es6/lib/Table.d.ts.map +1 -1
  42. package/dist/es6/lib/Table.js +33 -10
  43. package/dist/es6/lib/Value.d.ts.map +1 -1
  44. package/dist/es6/lib/Value.js +14 -11
  45. package/dist/es6/lib/docs.d.ts.map +1 -1
  46. package/dist/es6/lib/docs.js +204588 -183032
  47. package/dist/es6/lib/specs.js +6142 -1
  48. package/dist/es6/lib/stackblitzFiles/App.d.ts.map +1 -1
  49. package/dist/es6/lib/stackblitzFiles/App.js +5 -11
  50. package/dist/es6/lib/stackblitzFiles/App.tsx +7 -21
  51. package/dist/es6/lib/stackblitzFiles/main.d.ts +1 -0
  52. package/dist/es6/lib/stackblitzFiles/main.d.ts.map +1 -1
  53. package/dist/es6/lib/stackblitzFiles/main.js +4 -3
  54. package/dist/es6/lib/stackblitzFiles/main.tsx +6 -4
  55. package/dist/es6/lib/stackblitzFiles/packageJSONFile.d.ts.map +1 -1
  56. package/dist/es6/lib/stackblitzFiles/packageJSONFile.js +8 -7
  57. package/dist/es6/lib/stackblitzFiles/packageJSONFile.ts +9 -7
  58. package/dist/es6/lib/stackblitzFiles/vite.config.d.ts +1 -1
  59. package/dist/es6/lib/stackblitzFiles/vite.config.d.ts.map +1 -1
  60. package/dist/es6/lib/stackblitzFiles/vite.config.js +1 -1
  61. package/dist/es6/lib/stackblitzFiles/vite.config.ts +1 -3
  62. package/dist/es6/lib/widgetUtils.d.ts.map +1 -1
  63. package/dist/es6/lib/widgetUtils.js +39 -39
  64. package/dist/es6/lib/widgets/array.js +1 -1
  65. package/dist/es6/lib/widgets/callExpression.js +1 -1
  66. package/dist/es6/lib/widgets/canvasColor.js +3 -2
  67. package/dist/es6/lib/widgets/conditional.js +1 -1
  68. package/dist/es6/lib/widgets/enhancedComponent.js +2 -1
  69. package/dist/es6/lib/widgets/external.js +1 -1
  70. package/dist/es6/lib/widgets/function.js +2 -2
  71. package/dist/es6/lib/widgets/index.d.ts +1 -1
  72. package/dist/es6/lib/widgets/index.d.ts.map +1 -1
  73. package/dist/es6/lib/widgets/index.js +1 -1
  74. package/dist/es6/lib/widgets/intersection.js +1 -1
  75. package/dist/es6/lib/widgets/model.js +1 -1
  76. package/dist/es6/lib/widgets/parenthesis.js +1 -1
  77. package/dist/es6/lib/widgets/primitives.js +2 -2
  78. package/dist/es6/lib/widgets/qualifiedName.js +1 -1
  79. package/dist/es6/lib/widgets/tuple.js +1 -1
  80. package/dist/es6/lib/widgets/typeParameter.js +1 -1
  81. package/dist/es6/lib/widgets/union.js +1 -1
  82. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/CommentBoxWithCharLimit.d.ts +2 -0
  83. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/CommentBoxWithCharLimit.d.ts.map +1 -0
  84. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/CommentBoxWithCharLimit.js +31 -0
  85. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/FilterListWithLiveStatus.js +9 -9
  86. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/HiddenLiveRegion.js +2 -2
  87. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/IconButtonsWithLiveBadges.d.ts.map +1 -1
  88. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/IconButtonsWithLiveBadges.js +4 -4
  89. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/TextInputWithLiveError.d.ts.map +1 -1
  90. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/TextInputWithLiveError.js +3 -3
  91. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/VisibleLiveRegion.d.ts.map +1 -1
  92. package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/VisibleLiveRegion.js +8 -9
  93. package/dist/es6/mdx/accessibility/examples/GlobalHeader.js +21 -21
  94. package/dist/es6/mdx/accessibility/examples/PageStructure/BreadcrumbNavRegion.js +2 -2
  95. package/dist/es6/mdx/accessibility/examples/PageStructure/FullPageDemo.d.ts.map +1 -1
  96. package/dist/es6/mdx/accessibility/examples/PageStructure/FullPageDemo.js +16 -10
  97. package/dist/es6/mdx/accessibility/examples/PageStructure/LandmarkRegions.d.ts +1 -1
  98. package/dist/es6/mdx/accessibility/examples/PageStructure/LandmarkRegions.d.ts.map +1 -1
  99. package/dist/es6/mdx/accessibility/examples/PageStructure/LandmarkRegions.js +15 -9
  100. package/dist/es6/mdx/accessibility/examples/Popups/InlinePopupNoPortal.d.ts +2 -0
  101. package/dist/es6/mdx/accessibility/examples/Popups/InlinePopupNoPortal.d.ts.map +1 -0
  102. package/dist/es6/mdx/accessibility/examples/Popups/InlinePopupNoPortal.js +62 -0
  103. package/dist/es6/mdx/accessibility/examples/Popups/InlinePortalPopup.d.ts +7 -0
  104. package/dist/es6/mdx/accessibility/examples/Popups/InlinePortalPopup.d.ts.map +1 -0
  105. package/dist/es6/mdx/accessibility/examples/Popups/InlinePortalPopup.js +65 -0
  106. package/dist/es6/mdx/accessibility/examples/Popups/PopupAriaOwns.d.ts +7 -0
  107. package/dist/es6/mdx/accessibility/examples/Popups/PopupAriaOwns.d.ts.map +1 -0
  108. package/dist/es6/mdx/accessibility/examples/Popups/PopupAriaOwns.js +46 -0
  109. package/dist/es6/mdx/accessibility/examples/SidePanelWithNavigation.d.ts.map +1 -1
  110. package/dist/es6/mdx/accessibility/examples/SidePanelWithNavigation.js +16 -16
  111. package/dist/es6/mdx/accessibility/examples/SidePanelWithOverlay.d.ts.map +1 -1
  112. package/dist/es6/mdx/accessibility/examples/SidePanelWithOverlay.js +4 -5
  113. package/dist/es6/mdx/accessibility/examples/Table/WithColumnHeaderFilters.js +8 -8
  114. package/dist/es6/mdx/accessibility/examples/Table/WithExpandableRows.d.ts.map +1 -1
  115. package/dist/es6/mdx/accessibility/examples/Table/WithExpandableRows.js +6 -6
  116. package/dist/es6/mdx/accessibility/examples/Table/WithFormFields.d.ts.map +1 -1
  117. package/dist/es6/mdx/accessibility/examples/Table/WithFormFields.js +10 -10
  118. package/dist/es6/mdx/accessibility/examples/Table/WithSelectableRows.js +4 -4
  119. package/dist/es6/mdx/accessibility/examples/Table/WithSortableColumnHeaders.js +7 -7
  120. package/dist/es6/mdx/installBlock.d.ts.map +1 -1
  121. package/dist/es6/mdx/installBlock.js +18 -6
  122. package/dist/es6/mdx/tokens/StorybookInformationHighlight/index.d.ts.map +1 -1
  123. package/dist/es6/mdx/tokens/StorybookInformationHighlight/index.js +2 -3
  124. package/dist/es6/mdx/versionsTable.d.ts.map +1 -1
  125. package/dist/es6/mdx/versionsTable.js +4 -3
  126. package/dist/es6/mdx/welcomePage.d.ts.map +1 -1
  127. package/dist/es6/mdx/welcomePage.js +24 -20
  128. package/dist/es6/utils/parseSpecFile.d.ts +24 -0
  129. package/dist/es6/utils/parseSpecFile.d.ts.map +1 -0
  130. package/dist/es6/utils/parseSpecFile.js +82 -0
  131. package/dist/mdx/10.0-UPGRADE-GUIDE.mdx +3 -3
  132. package/dist/mdx/13.0-UPGRADE-GUIDE.mdx +24 -18
  133. package/dist/mdx/14.0-UPGRADE-GUIDE.mdx +61 -14
  134. package/dist/mdx/14.0-VISUAL-CHANGES.mdx +19 -19
  135. package/dist/mdx/15.0-UPGRADE-GUIDE.mdx +1097 -0
  136. package/dist/mdx/15.0-VISUAL-CHANGES.mdx +151 -0
  137. package/dist/mdx/5.0-UPGRADE-GUIDE.mdx +3 -3
  138. package/dist/mdx/7.0-UPGRADE-GUIDE.mdx +4 -4
  139. package/dist/mdx/8.0-UPGRADE-GUIDE.mdx +5 -5
  140. package/dist/mdx/9.0-UPGRADE-GUIDE.mdx +2 -2
  141. package/dist/mdx/CODEMODS.mdx +2 -2
  142. package/dist/mdx/CONTRIBUTING.mdx +4 -4
  143. package/dist/mdx/CREATING_COMPOUND_COMPONENTS.mdx +1 -1
  144. package/dist/mdx/DOCUMENTATION_GUIDELINES.mdx +2 -2
  145. package/dist/mdx/GETTING_STARTED.mdx +1 -2
  146. package/dist/mdx/accessibility/AriaLiveRegions.mdx +14 -15
  147. package/dist/mdx/accessibility/InlinePortals.mdx +20 -0
  148. package/dist/mdx/accessibility/PageStructure.mdx +3 -2
  149. package/dist/mdx/accessibility/Popups.mdx +71 -0
  150. package/dist/mdx/accessibility/WindowsHighContrastThemes.mdx +12 -11
  151. package/dist/mdx/changelog.mdx +1 -2
  152. package/dist/mdx/labs-react/ai-ingress-button/examples/Inverse.tsx +2 -2
  153. package/dist/mdx/preview-react/_examples/mdx/examples/TextInputWithReactHookForm.tsx +11 -12
  154. package/dist/mdx/preview-react/divider/examples/Basic.tsx +6 -7
  155. package/dist/mdx/preview-react/divider/examples/CustomSpace.tsx +4 -3
  156. package/dist/mdx/preview-react/loading-sparkles/LoadingSparkles.mdx +2 -2
  157. package/dist/mdx/preview-react/loading-sparkles/examples/Basic.tsx +3 -2
  158. package/dist/mdx/preview-react/loading-sparkles/examples/RTL.tsx +3 -7
  159. package/dist/mdx/preview-react/multi-select/MultiSelect.mdx +3 -4
  160. package/dist/mdx/preview-react/multi-select/examples/Basic.tsx +1 -1
  161. package/dist/mdx/preview-react/multi-select/examples/Complex.tsx +3 -5
  162. package/dist/mdx/preview-react/multi-select/examples/Controlled.tsx +2 -3
  163. package/dist/mdx/preview-react/multi-select/examples/Disabled.tsx +1 -1
  164. package/dist/mdx/preview-react/multi-select/examples/Error.tsx +5 -5
  165. package/dist/mdx/preview-react/multi-select/examples/Icons.tsx +8 -9
  166. package/dist/mdx/preview-react/multi-select/examples/InitialSelectedItems.tsx +6 -8
  167. package/dist/mdx/preview-react/multi-select/examples/Searching.tsx +6 -8
  168. package/dist/mdx/preview-react/radio/examples/Basic.tsx +2 -1
  169. package/dist/mdx/preview-react/radio/examples/Caution.tsx +2 -1
  170. package/dist/mdx/preview-react/radio/examples/Custom.tsx +2 -1
  171. package/dist/mdx/preview-react/radio/examples/Disabled.tsx +2 -1
  172. package/dist/mdx/preview-react/radio/examples/Error.tsx +2 -1
  173. package/dist/mdx/preview-react/radio/examples/Inverse.tsx +5 -4
  174. package/dist/mdx/preview-react/radio/examples/LabelPosition.tsx +2 -1
  175. package/dist/mdx/preview-react/radio/examples/NoValue.tsx +2 -1
  176. package/dist/mdx/preview-react/radio/examples/RefForwarding.tsx +2 -1
  177. package/dist/mdx/preview-react/radio/examples/Required.tsx +2 -1
  178. package/dist/mdx/preview-react/radio/examples/StandaloneRadio.tsx +2 -1
  179. package/dist/mdx/preview-react/side-panel/SidePanel.mdx +20 -8
  180. package/dist/mdx/preview-react/side-panel/examples/AlwaysOpen.tsx +5 -7
  181. package/dist/mdx/preview-react/side-panel/examples/Basic.tsx +10 -15
  182. package/dist/mdx/preview-react/side-panel/examples/ExternalControl.tsx +5 -5
  183. package/dist/mdx/preview-react/side-panel/examples/HiddenName.tsx +2 -1
  184. package/dist/mdx/preview-react/side-panel/examples/OnExpandedChange.tsx +3 -2
  185. package/dist/mdx/preview-react/side-panel/examples/OnStateTransition.tsx +3 -2
  186. package/dist/mdx/preview-react/side-panel/examples/RightOrigin.tsx +4 -7
  187. package/dist/mdx/preview-react/side-panel/examples/Variant.tsx +4 -6
  188. package/dist/mdx/preview-react/side-panel/examples/useDirection.ts +1 -0
  189. package/dist/mdx/preview-react/status-indicator/StatusIndicator.mdx +9 -2
  190. package/dist/mdx/preview-react/status-indicator/examples/Custom.tsx +22 -0
  191. package/dist/mdx/preview-react/status-indicator/examples/Emphasis.tsx +4 -6
  192. package/dist/mdx/preview-react/status-indicator/examples/Icon.tsx +4 -6
  193. package/dist/mdx/preview-react/status-indicator/examples/Overflow.tsx +5 -7
  194. package/dist/mdx/preview-react/status-indicator/examples/Variants.tsx +15 -17
  195. package/dist/mdx/preview-react/switch/Switch.mdx +84 -0
  196. package/dist/mdx/preview-react/switch/examples/Basic.tsx +21 -0
  197. package/dist/mdx/preview-react/switch/examples/Caution.tsx +22 -0
  198. package/dist/mdx/preview-react/switch/examples/Disabled.tsx +21 -0
  199. package/dist/mdx/preview-react/switch/examples/Error.tsx +22 -0
  200. package/dist/mdx/preview-react/switch/examples/LabelPosition.tsx +21 -0
  201. package/dist/mdx/preview-react/switch/examples/RTL.tsx +24 -0
  202. package/dist/mdx/preview-react/switch/examples/RefForwarding.tsx +30 -0
  203. package/dist/mdx/react/_examples/mdx/ContextualHelp.mdx +36 -0
  204. package/dist/mdx/react/_examples/mdx/examples/ContextualHelp/ContextualHelpDialogFocusRedirect.tsx +79 -0
  205. package/dist/mdx/react/_examples/mdx/examples/ContextualHelp/ContextualHelpDialogFocusTrap.tsx +79 -0
  206. package/dist/mdx/react/_examples/mdx/examples/ContextualHelp/ContextualHelpTooltip.tsx +43 -0
  207. package/dist/mdx/react/_examples/mdx/examples/CookieBanner.tsx +2 -2
  208. package/dist/mdx/react/_examples/mdx/examples/Density.tsx +43 -42
  209. package/dist/mdx/react/_examples/mdx/examples/MediaModal.tsx +4 -3
  210. package/dist/mdx/react/_examples/mdx/examples/PageHeader.tsx +22 -19
  211. package/dist/mdx/react/_examples/mdx/examples/SelectWithFormik.tsx +8 -12
  212. package/dist/mdx/react/_examples/mdx/examples/compoundComponent/CustomCard.tsx +10 -12
  213. package/dist/mdx/react/_examples/mdx/examples/layout/AreaColumnPositioning.tsx +1 -1
  214. package/dist/mdx/react/_examples/mdx/examples/layout/CustomColumnPositioning.tsx +1 -1
  215. package/dist/mdx/react/_examples/mdx/examples/layout/CustomColumnWidth.tsx +1 -1
  216. package/dist/mdx/react/_examples/mdx/examples/layout/FullWidthWith3Columns.tsx +50 -12
  217. package/dist/mdx/react/_examples/mdx/examples/layout/FullWidthWith3Columns2Rows.tsx +1 -1
  218. package/dist/mdx/react/_examples/mdx/examples/layout/Masonry.tsx +3 -2
  219. package/dist/mdx/react/_examples/mdx/examples/layout/ResponsiveColumns.tsx +2 -2
  220. package/dist/mdx/react/_examples/mdx/examples/layout/Tiled2and3Columns.tsx +1 -1
  221. package/dist/mdx/react/_examples/mdx/examples/layout/Tiled4and2Columns.tsx +1 -1
  222. package/dist/mdx/react/action-bar/ActionBar.mdx +4 -4
  223. package/dist/mdx/react/action-bar/examples/Icons.tsx +1 -1
  224. package/dist/mdx/react/action-bar/examples/OverflowActionBar.tsx +5 -3
  225. package/dist/mdx/react/action-bar/examples/OverflowActionBarCustomButtonCount.tsx +1 -0
  226. package/dist/mdx/{preview-react → react}/avatar/Avatar.mdx +23 -13
  227. package/dist/mdx/react/avatar/examples/Basic.tsx +5 -0
  228. package/dist/mdx/{preview-react → react}/avatar/examples/Custom.tsx +1 -1
  229. package/dist/mdx/{preview-react → react}/avatar/examples/Decorative.tsx +7 -5
  230. package/dist/mdx/{preview-react → react}/avatar/examples/Image.tsx +1 -1
  231. package/dist/mdx/{preview-react → react}/avatar/examples/Size.tsx +2 -2
  232. package/dist/mdx/{preview-react → react}/avatar/examples/Variant.tsx +2 -2
  233. package/dist/mdx/react/avatar/examples/nicholas-avatar.jpg +0 -0
  234. package/dist/mdx/react/badge/CountBadge.mdx +1 -1
  235. package/dist/mdx/react/badge/examples/Basic.tsx +2 -2
  236. package/dist/mdx/react/badge/examples/CustomLimit.tsx +8 -8
  237. package/dist/mdx/react/badge/examples/Emphasis.tsx +4 -4
  238. package/dist/mdx/react/badge/examples/Inverse.tsx +7 -6
  239. package/dist/mdx/react/badge/examples/NotificationBadge.tsx +8 -7
  240. package/dist/mdx/react/banner/Banner.mdx +2 -2
  241. package/dist/mdx/react/banner/examples/IconBanner.tsx +1 -1
  242. package/dist/mdx/react/banner/examples/RefForwarding.tsx +1 -1
  243. package/dist/mdx/react/banner/examples/Sticky.tsx +1 -1
  244. package/dist/mdx/react/banner/examples/StickyAnimation.tsx +7 -7
  245. package/dist/mdx/react/banner/examples/StickyRTL.tsx +3 -14
  246. package/dist/mdx/react/banner/examples/ThemedAlert.tsx +4 -5
  247. package/dist/mdx/react/banner/examples/ThemedError.tsx +5 -6
  248. package/dist/mdx/react/breadcrumbs/Breadcrumbs.mdx +6 -5
  249. package/dist/mdx/react/breadcrumbs/examples/CurrentItemTruncation.tsx +1 -0
  250. package/dist/mdx/react/breadcrumbs/examples/LinkTruncation.tsx +1 -0
  251. package/dist/mdx/react/breadcrumbs/examples/Overflow.tsx +6 -3
  252. package/dist/mdx/react/breadcrumbs/examples/RTL.tsx +6 -10
  253. package/dist/mdx/react/button/button/Button.mdx +11 -12
  254. package/dist/mdx/react/button/button/Hyperlink.mdx +11 -5
  255. package/dist/mdx/react/button/button/examples/CustomStyles.tsx +43 -43
  256. package/dist/mdx/react/button/button/examples/Delete.tsx +4 -4
  257. package/dist/mdx/react/button/button/examples/ExternalHyperlinkInverse.tsx +3 -3
  258. package/dist/mdx/react/button/button/examples/ExternalHyperlinkRTL.tsx +10 -0
  259. package/dist/mdx/react/button/button/examples/HyperlinkInverse.tsx +3 -3
  260. package/dist/mdx/react/button/button/examples/Primary.tsx +5 -5
  261. package/dist/mdx/react/button/button/examples/PrimaryInverse.tsx +6 -6
  262. package/dist/mdx/react/button/button/examples/Secondary.tsx +5 -5
  263. package/dist/mdx/react/button/button/examples/SecondaryInverse.tsx +6 -6
  264. package/dist/mdx/react/button/button/examples/StandaloneHyperlink.tsx +2 -2
  265. package/dist/mdx/react/button/button/examples/Tertiary.tsx +5 -5
  266. package/dist/mdx/react/button/button/examples/TertiaryInverse.tsx +6 -6
  267. package/dist/mdx/react/button/button/examples/ThemeOverrides.tsx +6 -6
  268. package/dist/mdx/react/card/card.mdx +5 -5
  269. package/dist/mdx/react/card/examples/Basic.tsx +1 -0
  270. package/dist/mdx/react/card/examples/Borderless.tsx +2 -3
  271. package/dist/mdx/react/card/examples/CustomStyles.tsx +1 -3
  272. package/dist/mdx/react/card/examples/Stencils.tsx +9 -10
  273. package/dist/mdx/react/card/examples/{Filled.tsx → Tonal.tsx} +2 -1
  274. package/dist/mdx/react/checkbox/Checkbox.mdx +11 -12
  275. package/dist/mdx/react/checkbox/examples/Basic.tsx +1 -0
  276. package/dist/mdx/react/checkbox/examples/Caution.tsx +1 -0
  277. package/dist/mdx/react/checkbox/examples/Disabled.tsx +1 -0
  278. package/dist/mdx/react/checkbox/examples/Error.tsx +1 -0
  279. package/dist/mdx/react/checkbox/examples/Indeterminate.tsx +3 -2
  280. package/dist/mdx/react/checkbox/examples/Inverse.tsx +3 -2
  281. package/dist/mdx/react/checkbox/examples/LabelPosition.tsx +1 -0
  282. package/dist/mdx/react/checkbox/examples/RefForwarding.tsx +3 -2
  283. package/dist/mdx/react/checkbox/examples/Required.tsx +1 -0
  284. package/dist/mdx/react/collection/mdx/examples/BasicGrid.tsx +3 -3
  285. package/dist/mdx/react/collection/mdx/examples/DataLoader.tsx +4 -4
  286. package/dist/mdx/react/collection/mdx/examples/MultiSelection.tsx +3 -3
  287. package/dist/mdx/react/collection/mdx/examples/OverflowVerticalList.tsx +3 -2
  288. package/dist/mdx/react/collection/mdx/examples/RovingFocus.tsx +2 -2
  289. package/dist/mdx/react/collection/mdx/examples/Selection.tsx +3 -3
  290. package/dist/mdx/react/collection/mdx/examples/StringChildren.tsx +1 -1
  291. package/dist/mdx/react/collection/mdx/examples/WrappingGrid.tsx +3 -3
  292. package/dist/mdx/react/color-picker/color-input/ColorInput.mdx +7 -8
  293. package/dist/mdx/react/color-picker/color-input/examples/Basic.tsx +2 -1
  294. package/dist/mdx/react/color-picker/color-input/examples/Caution.tsx +2 -1
  295. package/dist/mdx/react/color-picker/color-input/examples/Checked.tsx +2 -1
  296. package/dist/mdx/react/color-picker/color-input/examples/Disabled.tsx +2 -1
  297. package/dist/mdx/react/color-picker/color-input/examples/Error.tsx +2 -1
  298. package/dist/mdx/react/color-picker/color-input/examples/Grow.tsx +2 -1
  299. package/dist/mdx/react/color-picker/color-input/examples/LabelPosition.tsx +2 -1
  300. package/dist/mdx/react/color-picker/color-input/examples/RefForwarding.tsx +2 -1
  301. package/dist/mdx/react/color-picker/color-input/examples/Required.tsx +2 -1
  302. package/dist/mdx/react/color-picker/color-input/examples/ValidColorChange.tsx +4 -3
  303. package/dist/mdx/react/color-picker/color-preview/ColorPreview.mdx +3 -3
  304. package/dist/mdx/react/color-picker/color-preview/examples/LabelPosition.tsx +2 -1
  305. package/dist/mdx/react/color-picker/color-preview/examples/RefForwarding.tsx +4 -3
  306. package/dist/mdx/react/combobox/examples/Autocomplete.tsx +11 -9
  307. package/dist/mdx/react/common/mdx/CompoundComponentUtilities.mdx +1 -1
  308. package/dist/mdx/react/common/mdx/Theming.mdx +166 -129
  309. package/dist/mdx/react/common/mdx/examples/CreateComponent.tsx +10 -4
  310. package/dist/mdx/react/common/mdx/examples/CreateContainer.tsx +1 -0
  311. package/dist/mdx/react/common/mdx/examples/CreateElemPropsHook.tsx +3 -2
  312. package/dist/mdx/react/common/mdx/examples/CreateModelHook.tsx +1 -0
  313. package/dist/mdx/react/common/mdx/examples/CreateSubcomponent.tsx +2 -1
  314. package/dist/mdx/react/common/mdx/examples/RTL.tsx +4 -5
  315. package/dist/mdx/react/common/mdx/examples/ResponsiveStyles.tsx +4 -3
  316. package/dist/mdx/react/common/mdx/examples/ResponsiveViewport.tsx +4 -3
  317. package/dist/mdx/react/common/mdx/examples/Theming.tsx +40 -22
  318. package/dist/mdx/react/dialog/Dialog.mdx +51 -20
  319. package/dist/mdx/react/dialog/examples/Basic.tsx +4 -3
  320. package/dist/mdx/react/dialog/examples/DialogWithFallbackPlacements.tsx +20 -12
  321. package/dist/mdx/react/dialog/examples/Focus.tsx +3 -3
  322. package/dist/mdx/react/expandable/Expandable.mdx +54 -2
  323. package/dist/mdx/react/expandable/examples/Avatar.tsx +1 -0
  324. package/dist/mdx/react/expandable/examples/Depth.tsx +10 -1
  325. package/dist/mdx/react/expandable/examples/HoistedModel.tsx +26 -21
  326. package/dist/mdx/react/expandable/examples/LongTitle.tsx +1 -0
  327. package/dist/mdx/react/expandable/examples/RTL.tsx +2 -7
  328. package/dist/mdx/react/form-field/FormField.mdx +97 -45
  329. package/dist/mdx/react/form-field/examples/AllFields.tsx +10 -11
  330. package/dist/mdx/react/form-field/examples/Basic.tsx +1 -0
  331. package/dist/mdx/react/form-field/examples/Caution.tsx +8 -5
  332. package/dist/mdx/react/form-field/examples/Custom.tsx +3 -2
  333. package/dist/mdx/react/form-field/examples/CustomId.tsx +1 -0
  334. package/dist/mdx/react/form-field/examples/Disabled.tsx +2 -2
  335. package/dist/mdx/react/form-field/examples/Error.tsx +3 -3
  336. package/dist/mdx/react/form-field/examples/GroupedInputs.tsx +14 -14
  337. package/dist/mdx/react/form-field/examples/Grow.tsx +1 -0
  338. package/dist/mdx/react/form-field/examples/HiddenLabel.tsx +27 -11
  339. package/dist/mdx/react/form-field/examples/Hint.tsx +2 -2
  340. package/dist/mdx/react/form-field/examples/LabelPositionHorizontalEnd.tsx +3 -2
  341. package/dist/mdx/react/form-field/examples/LabelPositionHorizontalStart.tsx +3 -2
  342. package/dist/mdx/react/form-field/examples/RefForwarding.tsx +4 -3
  343. package/dist/mdx/react/form-field/examples/Required.tsx +2 -1
  344. package/dist/mdx/react/form-field/examples/ThemedErrors.tsx +8 -8
  345. package/dist/mdx/react/icon/Assets.mdx +174 -17
  346. package/dist/mdx/react/icon/examples/AccentIconList.tsx +5 -4
  347. package/dist/mdx/react/icon/examples/AppletIconList.tsx +5 -4
  348. package/dist/mdx/react/icon/examples/ExpressiveBasic.tsx +41 -0
  349. package/dist/mdx/react/icon/examples/ExpressiveCustomStyles.tsx +54 -0
  350. package/dist/mdx/react/icon/examples/{IconList.tsx → ExpressiveIconList.tsx} +20 -13
  351. package/dist/mdx/react/icon/examples/SVGBasic.tsx +31 -0
  352. package/dist/mdx/react/icon/examples/SystemBasic.tsx +44 -0
  353. package/dist/mdx/react/icon/examples/SystemCircleBasic.tsx +34 -0
  354. package/dist/mdx/react/icon/examples/SystemCustomStyles.tsx +62 -0
  355. package/dist/mdx/react/icon/examples/SystemIconList.tsx +80 -0
  356. package/dist/mdx/react/information-highlight/InformationHighlight.mdx +96 -0
  357. package/dist/mdx/{preview-react → react}/information-highlight/examples/Basic.tsx +1 -1
  358. package/dist/mdx/{preview-react → react}/information-highlight/examples/Body.tsx +1 -1
  359. package/dist/mdx/{preview-react → react}/information-highlight/examples/Caution.tsx +2 -2
  360. package/dist/mdx/{preview-react → react}/information-highlight/examples/Critical.tsx +2 -2
  361. package/dist/mdx/{preview-react → react}/information-highlight/examples/CustomIconCritical.tsx +5 -6
  362. package/dist/mdx/{preview-react → react}/information-highlight/examples/Heading.tsx +1 -1
  363. package/dist/mdx/{preview-react → react}/information-highlight/examples/Informational.tsx +4 -4
  364. package/dist/mdx/{preview-react → react}/information-highlight/examples/RTL.tsx +6 -11
  365. package/dist/mdx/react/layout/Box.mdx +13 -13
  366. package/dist/mdx/react/layout/Flex.mdx +3 -3
  367. package/dist/mdx/react/layout/Grid.mdx +3 -3
  368. package/dist/mdx/react/layout/examples/Box/Basic.tsx +9 -2
  369. package/dist/mdx/react/layout/examples/Flex/Basic.tsx +1 -0
  370. package/dist/mdx/react/layout/examples/Grid/Basic.tsx +19 -13
  371. package/dist/mdx/react/layout/examples/Grid/GridCard.tsx +34 -24
  372. package/dist/mdx/react/layout/examples/Grid/GridLayout.tsx +1 -0
  373. package/dist/mdx/react/layout/examples/Grid/GridLayoutInteractive.tsx +3 -3
  374. package/dist/mdx/react/loading-dots/LoadingDots.mdx +1 -1
  375. package/dist/mdx/react/loading-dots/examples/Accessible.tsx +8 -7
  376. package/dist/mdx/react/loading-dots/examples/Basic.tsx +1 -0
  377. package/dist/mdx/react/loading-dots/examples/CustomColorAndAnimation.tsx +6 -4
  378. package/dist/mdx/react/loading-dots/examples/CustomShape.tsx +7 -7
  379. package/dist/mdx/react/loading-dots/examples/Inverse.tsx +2 -2
  380. package/dist/mdx/react/loading-dots/examples/RTL.tsx +3 -7
  381. package/dist/mdx/react/menu/Menu.mdx +68 -30
  382. package/dist/mdx/react/menu/examples/Icons.tsx +11 -10
  383. package/dist/mdx/react/menu/examples/MenuWithFallbackPlacements.tsx +5 -3
  384. package/dist/mdx/react/menu/examples/Nested.tsx +0 -1
  385. package/dist/mdx/react/menu/examples/NestedDynamic.tsx +1 -1
  386. package/dist/mdx/react/menu/examples/SelectableMenu.tsx +13 -2
  387. package/dist/mdx/react/modal/Modal.mdx +94 -16
  388. package/dist/mdx/react/modal/examples/Basic.tsx +5 -4
  389. package/dist/mdx/react/modal/examples/BodyOverflow.tsx +1 -1
  390. package/dist/mdx/react/modal/examples/CustomFocus.tsx +4 -3
  391. package/dist/mdx/react/modal/examples/FormModal.tsx +28 -3
  392. package/dist/mdx/react/modal/examples/FullOverflow.tsx +1 -1
  393. package/dist/mdx/react/modal/examples/IframeTest.tsx +1 -1
  394. package/dist/mdx/react/modal/examples/ModalWithPopup.tsx +3 -3
  395. package/dist/mdx/react/modal/examples/ModalWithPopupRTL.tsx +66 -0
  396. package/dist/mdx/react/modal/examples/NoTargetRTL.tsx +49 -0
  397. package/dist/mdx/react/modal/examples/ReturnFocus.tsx +140 -41
  398. package/dist/mdx/react/modal/examples/StackedModals.tsx +1 -1
  399. package/dist/mdx/react/modal/examples/WithRadioButtons.tsx +1 -0
  400. package/dist/mdx/react/modal/examples/WithTooltips.tsx +2 -1
  401. package/dist/mdx/react/modal/examples/WithoutCloseIcon.tsx +10 -9
  402. package/dist/mdx/react/pagination/examples/Basic.tsx +0 -1
  403. package/dist/mdx/react/pagination/examples/HoistedModel.tsx +0 -1
  404. package/dist/mdx/react/pagination/examples/RTL.tsx +2 -5
  405. package/dist/mdx/react/pagination/examples/ResponsiveRange.tsx +13 -9
  406. package/dist/mdx/react/pagination/pagination.mdx +8 -6
  407. package/dist/mdx/{preview-react → react}/pill/Pill.mdx +3 -3
  408. package/dist/mdx/{preview-react → react}/pill/examples/Basic.tsx +2 -3
  409. package/dist/mdx/react/pill/examples/CustomStyles.tsx +52 -0
  410. package/dist/mdx/{preview-react → react}/pill/examples/WithAvatar.tsx +6 -4
  411. package/dist/mdx/{preview-react → react}/pill/examples/WithCount.tsx +3 -2
  412. package/dist/mdx/{preview-react → react}/pill/examples/WithList.tsx +2 -2
  413. package/dist/mdx/{preview-react → react}/pill/examples/WithReadOnly.tsx +3 -3
  414. package/dist/mdx/{preview-react → react}/pill/examples/WithRemovable.tsx +6 -5
  415. package/dist/mdx/react/popup/Popup.mdx +64 -36
  416. package/dist/mdx/react/popup/examples/Basic.tsx +22 -5
  417. package/dist/mdx/react/popup/examples/ComboboxWithinPopup.tsx +3 -3
  418. package/dist/mdx/react/popup/examples/CustomTarget.tsx +3 -2
  419. package/dist/mdx/react/popup/examples/ExternalWindow.tsx +26 -29
  420. package/dist/mdx/react/popup/examples/FocusRedirect.tsx +27 -12
  421. package/dist/mdx/react/popup/examples/FocusTrap.tsx +8 -6
  422. package/dist/mdx/react/popup/examples/FullScreen.tsx +6 -6
  423. package/dist/mdx/react/popup/examples/InitialFocus.tsx +115 -11
  424. package/dist/mdx/react/popup/examples/InlinePopup.tsx +126 -0
  425. package/dist/mdx/react/popup/examples/MixedPopupTypes.tsx +5 -4
  426. package/dist/mdx/react/popup/examples/MultiplePopups.tsx +34 -22
  427. package/dist/mdx/react/popup/examples/NestedPopups.tsx +5 -5
  428. package/dist/mdx/react/popup/examples/PopupWithFallbackPlacements.tsx +26 -18
  429. package/dist/mdx/react/popup/examples/PopupWithNonHidablePopup.tsx +1 -1
  430. package/dist/mdx/react/popup/examples/RTL.tsx +9 -9
  431. package/dist/mdx/react/popup/examples/ReturnFocusTest.tsx +4 -4
  432. package/dist/mdx/react/popup/examples/TooltipReturnFocus.tsx +5 -5
  433. package/dist/mdx/react/radio/Radio.mdx +8 -9
  434. package/dist/mdx/react/radio/examples/Basic.tsx +4 -3
  435. package/dist/mdx/react/radio/examples/Caution.tsx +2 -1
  436. package/dist/mdx/react/radio/examples/Disabled.tsx +2 -1
  437. package/dist/mdx/react/radio/examples/Error.tsx +2 -1
  438. package/dist/mdx/react/radio/examples/Inverse.tsx +3 -2
  439. package/dist/mdx/react/radio/examples/LabelPosition.tsx +2 -1
  440. package/dist/mdx/react/radio/examples/NoValue.tsx +2 -1
  441. package/dist/mdx/react/radio/examples/RefForwarding.tsx +2 -1
  442. package/dist/mdx/react/radio/examples/Required.tsx +2 -1
  443. package/dist/mdx/react/segmented-control/SegmentedControl.mdx +119 -18
  444. package/dist/mdx/react/segmented-control/examples/Basic.tsx +32 -28
  445. package/dist/mdx/{preview-react → react}/segmented-control/examples/Disabled.tsx +2 -2
  446. package/dist/mdx/{preview-react → react}/segmented-control/examples/Dynamic.tsx +3 -2
  447. package/dist/mdx/{preview-react → react}/segmented-control/examples/RTL.tsx +4 -4
  448. package/dist/mdx/{preview-react → react}/segmented-control/examples/Sizes.tsx +4 -3
  449. package/dist/mdx/{preview-react → react}/segmented-control/examples/TextAndIcon.tsx +2 -1
  450. package/dist/mdx/{preview-react → react}/segmented-control/examples/TextOnly.tsx +2 -1
  451. package/dist/mdx/{preview-react → react}/segmented-control/examples/Vertical.tsx +2 -2
  452. package/dist/mdx/react/select/Select.mdx +26 -20
  453. package/dist/mdx/react/select/examples/Basic.tsx +2 -1
  454. package/dist/mdx/react/select/examples/Caution.tsx +2 -1
  455. package/dist/mdx/react/select/examples/Complex.tsx +2 -1
  456. package/dist/mdx/react/select/examples/Controlled.tsx +3 -2
  457. package/dist/mdx/react/select/examples/Disabled.tsx +2 -1
  458. package/dist/mdx/react/select/examples/DisabledOption.tsx +2 -1
  459. package/dist/mdx/react/select/examples/Error.tsx +2 -1
  460. package/dist/mdx/react/select/examples/FetchingDynamicItems.tsx +4 -3
  461. package/dist/mdx/react/select/examples/GroupedItems.tsx +59 -0
  462. package/dist/mdx/react/select/examples/Grow.tsx +2 -1
  463. package/dist/mdx/react/select/examples/HoistedModel.tsx +1 -0
  464. package/dist/mdx/react/select/examples/InitialSelectedItem.tsx +2 -1
  465. package/dist/mdx/react/select/examples/LabelPosition.tsx +2 -1
  466. package/dist/mdx/react/select/examples/MenuHeight.tsx +1 -1
  467. package/dist/mdx/react/select/examples/Placeholder.tsx +2 -1
  468. package/dist/mdx/react/select/examples/RefForwarding.tsx +1 -0
  469. package/dist/mdx/react/select/examples/Required.tsx +2 -1
  470. package/dist/mdx/react/select/examples/WithIcons.tsx +6 -10
  471. package/dist/mdx/react/side-panel/SidePanel.mdx +287 -0
  472. package/dist/mdx/react/side-panel/examples/AlwaysOpen.tsx +50 -0
  473. package/dist/mdx/react/side-panel/examples/Basic.tsx +33 -0
  474. package/dist/mdx/react/side-panel/examples/ExternalControl.tsx +60 -0
  475. package/dist/mdx/react/side-panel/examples/Heading.tsx +43 -0
  476. package/dist/mdx/react/side-panel/examples/OnStateTransition.tsx +52 -0
  477. package/dist/mdx/react/side-panel/examples/RightOrigin.tsx +67 -0
  478. package/dist/mdx/react/side-panel/examples/Variant.tsx +51 -0
  479. package/dist/mdx/react/side-panel/examples/useDirection.ts +24 -0
  480. package/dist/mdx/react/skeleton/Skeleton.mdx +1 -1
  481. package/dist/mdx/react/skeleton/examples/Basic.tsx +8 -6
  482. package/dist/mdx/react/skeleton/examples/Color.tsx +13 -11
  483. package/dist/mdx/react/skeleton/examples/Header.tsx +1 -0
  484. package/dist/mdx/react/skeleton/examples/Shape.tsx +4 -3
  485. package/dist/mdx/react/skeleton/examples/Simulation.tsx +40 -25
  486. package/dist/mdx/react/skeleton/examples/Text.tsx +1 -0
  487. package/dist/mdx/react/status-indicator/StatusIndicator.mdx +1 -1
  488. package/dist/mdx/react/status-indicator/examples/Basic.tsx +6 -7
  489. package/dist/mdx/react/status-indicator/examples/Emphasis.tsx +6 -7
  490. package/dist/mdx/react/status-indicator/examples/Icon.tsx +3 -2
  491. package/dist/mdx/react/status-indicator/examples/MaxWidth.tsx +6 -7
  492. package/dist/mdx/react/switch/Switch.mdx +22 -9
  493. package/dist/mdx/react/switch/examples/Basic.tsx +1 -0
  494. package/dist/mdx/react/switch/examples/Caution.tsx +1 -0
  495. package/dist/mdx/react/switch/examples/Disabled.tsx +1 -0
  496. package/dist/mdx/react/switch/examples/Error.tsx +1 -0
  497. package/dist/mdx/react/switch/examples/LabelPosition.tsx +1 -0
  498. package/dist/mdx/react/switch/examples/RefForwarding.tsx +1 -0
  499. package/dist/mdx/react/table/examples/BaseHtmlTable.tsx +1 -3
  500. package/dist/mdx/react/table/examples/Basic.tsx +1 -3
  501. package/dist/mdx/react/table/examples/BasicWithHeading.tsx +3 -5
  502. package/dist/mdx/react/table/examples/FixedColumn.tsx +8 -8
  503. package/dist/mdx/react/table/examples/RightToLeft.tsx +3 -5
  504. package/dist/mdx/react/tabs/Tabs.mdx +10 -9
  505. package/dist/mdx/react/tabs/examples/AlternativeTabStop.tsx +3 -4
  506. package/dist/mdx/react/tabs/examples/Basic.tsx +3 -3
  507. package/dist/mdx/react/tabs/examples/DisabledTab.tsx +3 -3
  508. package/dist/mdx/react/tabs/examples/DynamicTabs.tsx +2 -1
  509. package/dist/mdx/react/tabs/examples/HoistedModel.tsx +3 -4
  510. package/dist/mdx/react/tabs/examples/Icons.tsx +4 -5
  511. package/dist/mdx/react/tabs/examples/NamedTabs.tsx +3 -3
  512. package/dist/mdx/react/tabs/examples/OverflowTabs.tsx +2 -2
  513. package/dist/mdx/react/tabs/examples/RightToLeft.tsx +5 -5
  514. package/dist/mdx/react/tabs/examples/SinglePanel.tsx +2 -4
  515. package/dist/mdx/react/testing/examples/Basic.tsx +3 -3
  516. package/dist/mdx/react/text/LabelText.mdx +1 -1
  517. package/dist/mdx/react/text/Text.mdx +1 -1
  518. package/dist/mdx/react/text/examples/BodyText/Basic.tsx +1 -0
  519. package/dist/mdx/react/text/examples/Heading/Basic.tsx +1 -0
  520. package/dist/mdx/react/text/examples/LabelText/Basic.tsx +1 -0
  521. package/dist/mdx/react/text/examples/LabelText/Cursor.tsx +1 -0
  522. package/dist/mdx/react/text/examples/LabelText/Disabled.tsx +3 -5
  523. package/dist/mdx/react/text/examples/Subtext/Basic.tsx +1 -0
  524. package/dist/mdx/react/text/examples/Text/Basic.tsx +12 -7
  525. package/dist/mdx/react/text/examples/Title/Basic.tsx +1 -0
  526. package/dist/mdx/react/text-area/TextArea.mdx +44 -18
  527. package/dist/mdx/react/text-area/examples/Basic.tsx +1 -0
  528. package/dist/mdx/react/text-area/examples/Disabled.tsx +1 -0
  529. package/dist/mdx/react/text-area/examples/Grow.tsx +1 -0
  530. package/dist/mdx/react/text-area/examples/LabelPosition.tsx +1 -0
  531. package/dist/mdx/react/text-area/examples/Placeholder.tsx +1 -0
  532. package/dist/mdx/react/text-area/examples/RefForwarding.tsx +1 -0
  533. package/dist/mdx/react/text-area/examples/Required.tsx +1 -0
  534. package/dist/mdx/react/text-area/examples/ResizeConstraints.tsx +1 -0
  535. package/dist/mdx/react/text-input/TextInput.mdx +43 -18
  536. package/dist/mdx/react/text-input/examples/Basic.tsx +1 -0
  537. package/dist/mdx/react/text-input/examples/Disabled.tsx +1 -0
  538. package/dist/mdx/react/text-input/examples/Grow.tsx +1 -0
  539. package/dist/mdx/react/text-input/examples/Icons.tsx +25 -21
  540. package/dist/mdx/react/text-input/examples/LabelPosition.tsx +1 -0
  541. package/dist/mdx/react/text-input/examples/Placeholder.tsx +1 -0
  542. package/dist/mdx/react/text-input/examples/RefForwarding.tsx +1 -0
  543. package/dist/mdx/react/text-input/examples/Required.tsx +1 -0
  544. package/dist/mdx/react/toast/examples/Basic.tsx +2 -1
  545. package/dist/mdx/react/toast/examples/RTL.tsx +4 -6
  546. package/dist/mdx/react/toast/examples/ToastAlert.tsx +2 -2
  547. package/dist/mdx/react/toast/examples/ToastDialog.tsx +2 -1
  548. package/dist/mdx/react/toast/examples/WithActionLinkAndCloseIcon.tsx +2 -4
  549. package/dist/mdx/react/toast/examples/WithPopper.tsx +4 -4
  550. package/dist/mdx/react/toast/toast.mdx +4 -3
  551. package/dist/mdx/react/tokens/Tokens.mdx +1 -1
  552. package/dist/mdx/react/tokens/examples/Overview.tsx +2 -2
  553. package/dist/mdx/react/tokens/examples/Tokens.tsx +4 -4
  554. package/dist/mdx/react/tooltip/Tooltip.mdx +31 -13
  555. package/dist/mdx/react/tooltip/examples/Default.tsx +1 -1
  556. package/dist/mdx/react/tooltip/examples/DescriptionType.tsx +3 -3
  557. package/dist/mdx/react/tooltip/examples/Ellipsis.tsx +8 -8
  558. package/dist/mdx/react/tooltip/examples/Placements.tsx +13 -14
  559. package/dist/mdx/react/tooltip/examples/UseTooltip.tsx +2 -2
  560. package/dist/mdx/style-props/STYLE_PROPS.mdx +1 -1
  561. package/dist/mdx/style-props/stylePropsMigrationCodemod.mdx +1 -1
  562. package/dist/mdx/style-props/stylePropsMigrationOverview.mdx +20 -20
  563. package/dist/mdx/styling/mdx/CreateStyles.mdx +32 -31
  564. package/dist/mdx/styling/mdx/CustomizingStyles.mdx +4 -4
  565. package/dist/mdx/styling/mdx/MergingStyles.mdx +6 -4
  566. package/dist/mdx/styling/mdx/Overview.mdx +15 -15
  567. package/dist/mdx/styling/mdx/Stencils.mdx +32 -30
  568. package/dist/mdx/styling/mdx/Utilities.mdx +135 -27
  569. package/dist/mdx/styling/mdx/examples/CSProp.tsx +7 -9
  570. package/dist/mdx/styling/mdx/examples/CreateModifiers.tsx +1 -1
  571. package/dist/mdx/styling/mdx/examples/CreateStencil.tsx +10 -9
  572. package/dist/mdx/styling/mdx/examples/CreateStyles.tsx +2 -4
  573. package/dist/mdx/styling/mdx/examples/CustomButton.tsx +16 -23
  574. package/dist/mdx/styling/mdx/examples/CustomIcon.tsx +5 -6
  575. package/dist/mdx/styling/mdx/examples/EmotionButton.tsx +1 -1
  576. package/dist/mdx/styling/mdx/examples/ManualStylesButton.tsx +1 -0
  577. package/dist/mdx/styling/mdx/examples/StyledButton.tsx +13 -15
  578. package/dist/mdx/styling/mdx/examples/StylingButton.tsx +2 -1
  579. package/dist/mdx/styling/mdx/examples/StylingOverrides.tsx +10 -10
  580. package/dist/mdx/tokens/TokenMigrationCodemod.mdx +9 -0
  581. package/dist/mdx/tokens/TokenMigrationFinal.mdx +35 -30
  582. package/dist/mdx/tokens/TokenMigrationInstall.mdx +17 -14
  583. package/dist/mdx/tokens/TokenMigrationMappingColors.mdx +434 -288
  584. package/dist/mdx/tokens/TokenMigrationMappingSystem.mdx +51 -199
  585. package/dist/mdx/tokens/TokenMigrationOverview.mdx +23 -41
  586. package/dist/mdx/welcome.mdx +14 -16
  587. package/lib/DescriptionTooltip.tsx +16 -11
  588. package/lib/DownloadLLMFile.tsx +12 -12
  589. package/lib/ExampleCodeBlock.tsx +38 -28
  590. package/lib/MDXElements.tsx +6 -5
  591. package/lib/MoreTooltip.tsx +12 -10
  592. package/lib/Specifications.tsx +30 -17
  593. package/lib/StorybookStatusIndicator.tsx +32 -20
  594. package/lib/StylePropsTable.tsx +2 -1
  595. package/lib/SymbolDoc.tsx +2 -1
  596. package/lib/Table.tsx +37 -39
  597. package/lib/Value.tsx +22 -15
  598. package/lib/docs.ts +1 -0
  599. package/lib/stackblitzFiles/App.tsx +7 -21
  600. package/lib/stackblitzFiles/main.tsx +6 -4
  601. package/lib/stackblitzFiles/packageJSONFile.ts +4 -2
  602. package/lib/stackblitzFiles/types/custom-imports.d.ts +0 -9
  603. package/lib/stackblitzFiles/vite.config.ts +1 -3
  604. package/lib/widgetUtils.tsx +42 -43
  605. package/lib/widgets/array.tsx +1 -1
  606. package/lib/widgets/callExpression.tsx +1 -2
  607. package/lib/widgets/canvasColor.tsx +2 -2
  608. package/lib/widgets/conditional.tsx +1 -1
  609. package/lib/widgets/enhancedComponent.tsx +12 -8
  610. package/lib/widgets/external.tsx +1 -2
  611. package/lib/widgets/function.tsx +3 -3
  612. package/lib/widgets/index.ts +1 -1
  613. package/lib/widgets/intersection.tsx +1 -1
  614. package/lib/widgets/model.tsx +1 -1
  615. package/lib/widgets/parenthesis.tsx +1 -1
  616. package/lib/widgets/primitives.tsx +3 -2
  617. package/lib/widgets/qualifiedName.tsx +1 -1
  618. package/lib/widgets/tuple.tsx +1 -1
  619. package/lib/widgets/typeParameter.tsx +1 -1
  620. package/lib/widgets/union.tsx +1 -1
  621. package/package.json +14 -12
  622. package/webpack/extract-exports.js +2 -1
  623. package/dist/mdx/labs-react/combobox/Combobox.mdx +0 -68
  624. package/dist/mdx/labs-react/combobox/examples/Basic.tsx +0 -88
  625. package/dist/mdx/labs-react/combobox/examples/DisabledItem.tsx +0 -88
  626. package/dist/mdx/labs-react/combobox/examples/GroupOfResult.tsx +0 -88
  627. package/dist/mdx/labs-react/combobox/examples/Grow.tsx +0 -88
  628. package/dist/mdx/labs-react/combobox/examples/NoClearButton.tsx +0 -88
  629. package/dist/mdx/labs-react/combobox/examples/RTL.tsx +0 -90
  630. package/dist/mdx/labs-react/search-form/SearchForm.mdx +0 -92
  631. package/dist/mdx/labs-react/search-form/examples/Basic.tsx +0 -63
  632. package/dist/mdx/labs-react/search-form/examples/Collapsed.tsx +0 -64
  633. package/dist/mdx/labs-react/search-form/examples/CustomStyles.tsx +0 -91
  634. package/dist/mdx/labs-react/search-form/examples/CustomTheme.tsx +0 -73
  635. package/dist/mdx/labs-react/search-form/examples/Grow.tsx +0 -64
  636. package/dist/mdx/labs-react/search-form/examples/RTL.tsx +0 -72
  637. package/dist/mdx/labs-react/search-form/examples/Theming.tsx +0 -66
  638. package/dist/mdx/preview-react/avatar/examples/Basic.tsx +0 -5
  639. package/dist/mdx/preview-react/avatar/examples/nicholas-avatar.png +0 -0
  640. package/dist/mdx/preview-react/information-highlight/InformationHighlight.mdx +0 -109
  641. package/dist/mdx/preview-react/pill/examples/CustomStyles.tsx +0 -53
  642. package/dist/mdx/preview-react/segmented-control/SegmentedControl.mdx +0 -139
  643. package/dist/mdx/preview-react/segmented-control/examples/Basic.tsx +0 -42
  644. package/dist/mdx/preview-react/select/Select.mdx +0 -107
  645. package/dist/mdx/preview-react/select/examples/Left Label/AlertLeft.tsx +0 -18
  646. package/dist/mdx/preview-react/select/examples/Left Label/DefaultLeft.tsx +0 -17
  647. package/dist/mdx/preview-react/select/examples/Left Label/DefaultWithCustomOptionsLeft.tsx +0 -25
  648. package/dist/mdx/preview-react/select/examples/Left Label/DefaultWithSimpleOptionsLeft.tsx +0 -17
  649. package/dist/mdx/preview-react/select/examples/Left Label/DisabledLeft.tsx +0 -19
  650. package/dist/mdx/preview-react/select/examples/Left Label/ErrorLeft.tsx +0 -18
  651. package/dist/mdx/preview-react/select/examples/Left Label/GrowLeft.tsx +0 -17
  652. package/dist/mdx/preview-react/select/examples/Left Label/ScrollableLeft.tsx +0 -17
  653. package/dist/mdx/preview-react/select/examples/Left Label/index.ts +0 -8
  654. package/dist/mdx/preview-react/select/examples/Top Label/Caution.tsx +0 -16
  655. package/dist/mdx/preview-react/select/examples/Top Label/Default.tsx +0 -15
  656. package/dist/mdx/preview-react/select/examples/Top Label/DefaultWithCustomOptions.tsx +0 -23
  657. package/dist/mdx/preview-react/select/examples/Top Label/DefaultWithSimpleOptions.tsx +0 -15
  658. package/dist/mdx/preview-react/select/examples/Top Label/Disabled.tsx +0 -17
  659. package/dist/mdx/preview-react/select/examples/Top Label/Error.tsx +0 -16
  660. package/dist/mdx/preview-react/select/examples/Top Label/Grow.tsx +0 -15
  661. package/dist/mdx/preview-react/select/examples/Top Label/Scrollable.tsx +0 -13
  662. package/dist/mdx/preview-react/select/examples/Top Label/index.ts +0 -8
  663. package/dist/mdx/preview-react/select/examples/storiesData.tsx +0 -92
  664. package/dist/mdx/react/_examples/mdx/examples/SegmentControlWithText.tsx +0 -119
  665. package/dist/mdx/react/avatar/avatar/Avatar.mdx +0 -109
  666. package/dist/mdx/react/avatar/avatar/examples/Basic.tsx +0 -17
  667. package/dist/mdx/react/avatar/avatar/examples/Button.tsx +0 -20
  668. package/dist/mdx/react/avatar/avatar/examples/CustomStyles.tsx +0 -34
  669. package/dist/mdx/react/avatar/avatar/examples/Image.tsx +0 -25
  670. package/dist/mdx/react/avatar/avatar/examples/LazyLoad.tsx +0 -20
  671. package/dist/mdx/react/avatar/avatar/examples/ObjectFit.tsx +0 -30
  672. package/dist/mdx/react/avatar/avatar/examples/Size.tsx +0 -27
  673. package/dist/mdx/react/avatar/avatar/examples/Variant.tsx +0 -10
  674. package/dist/mdx/react/avatar/avatar/examples/test-avatar.png +0 -0
  675. package/dist/mdx/react/icon/examples/Overview.tsx +0 -42
  676. package/dist/mdx/react/text-area/examples/Caution.tsx +0 -21
  677. package/dist/mdx/react/text-area/examples/Error.tsx +0 -21
  678. package/dist/mdx/react/text-input/examples/Caution.tsx +0 -21
  679. package/dist/mdx/react/text-input/examples/Error.tsx +0 -21
  680. /package/dist/mdx/accessibility/{AccessibilityTesting.mdx → TestingTableWithFormFields.mdx} +0 -0
  681. /package/dist/mdx/{preview-react → react}/pill/examples/test-avatar.png +0 -0
@@ -0,0 +1,1097 @@
1
+ # Canvas Kit 15.0 Upgrade Guide
2
+
3
+ This guide contains an overview of the changes in Canvas Kit v15. Please
4
+ [reach out](https://github.com/Workday/canvas-kit/issues/new?labels=bug&template=bug.md) if you have
5
+ any questions.
6
+
7
+ ## Why You Should Upgrade
8
+
9
+ v15 and v4 Canvas Tokens Web introduce new shape, size, gap, and padding tokens to our components.
10
+ While we still support our old shape and space tokens, the new tokens aim to add more semantic
11
+ meaning to allow for better use and theming. Our old shape and space tokens are now deprecated and
12
+ will be removed in a future version.
13
+
14
+ > **Note:** While v15 and v4 tokens should be backwards compatible with previous versions that use
15
+ > CSS tokens, **we strongly advise migrating both Canvas Kit and Canvas Tokens Web together**.
16
+
17
+ ## Table of Contents
18
+
19
+ - [Codemod](#codemod)
20
+ - [Instructions](#instructions)
21
+ - [Codemod Transformations for Icons](#codemod-transformations-for-icons)
22
+ - [Theming](#theming)
23
+ - [System Brand Tokens and Brand Tokens](#system-brand-tokens-and-brand-tokens)
24
+ - [Icon Updates](#icon-updates)
25
+ - [Svg](#svg)
26
+ - [System Icon](#system-icon)
27
+ - [System Icon Circle](#system-icon-circle)
28
+ - [Icon Size Updates](#icon-size-updates)
29
+ - [New Components](#new-components)
30
+ - [Expressive Icon](#expressive-icon)
31
+ - [Switch (Preview)](#switch-preview)
32
+ - [Component Promotions](#component-promotions)
33
+ - [Avatar](#avatar)
34
+ - [Information Highlight](#information-highlight)
35
+ - [Pill](#pill)
36
+ - [Segmented Control](#segmented-control)
37
+ - [Side Panel](#side-panel)
38
+ - [Component Updates](#component-updates)
39
+ - [Buttons](#buttons)
40
+ - [Containers](#containers)
41
+ - [Indicators](#indicators)
42
+ - [Inputs](#inputs)
43
+ - [Navigation](#navigation)
44
+ - [Popups](#popups)
45
+ - [Deprecations](#deprecations)
46
+ - [Accent Icon](#accent-icon)
47
+ - [Applet Icon](#applet-icon)
48
+ - [Icon Utilities](#icon-utilities)
49
+ - [Switch (Main)](#switch-main)
50
+ - [Removals](#removals)
51
+ - [Avatar (Deprecated)](#avatar-deprecated)
52
+ - [Combobox (Labs)](#combobox-labs)
53
+ - [Form Field Container (Deprecated)](#form-field-container-deprecated)
54
+ - [Search Form (Labs)](#search-form-labs)
55
+ - [Segmented Control (Deprecated)](#segmented-control-deprecated)
56
+ - [Select (Deprecated)](#select-deprecated)
57
+ - [Side Panel (Deprecated)](#side-panel-deprecated)
58
+ - [Status Indicator AI Variant](#status-indicator-ai-variant)
59
+ - [New Utilities](#new-utilities)
60
+ - [colorSpace](#colorspace)
61
+ - [Glossary](#glossary)
62
+ - [Main](#main)
63
+ - [Preview](#preview)
64
+ - [Labs](#labs)
65
+
66
+ ## Codemod
67
+
68
+ We've provided a [codemod](https://github.com/Workday/canvas-kit/tree/master/modules/codemod) to
69
+ automatically update your code to work with most of the breaking changes in v15. **Breaking changes
70
+ handled by the codemod are marked with 🤖 in the Upgrade Guide.**
71
+
72
+ A codemod is a script that makes programmatic transformations on your codebase by traversing the
73
+ AST, identifying patterns, and making prescribed changes. This greatly decreases opportunities for
74
+ error and reduces the number of manual updates, which allows you to focus on changes that need your
75
+ attention. **We highly recommend you use the codemod for these reasons.**
76
+
77
+ If you're new to running codemods or if it's been a minute since you've used one, there are a few
78
+ things you'll want to keep in mind.
79
+
80
+ - Our codemods are meant to be run sequentially. For example, if you're using v13 of Canvas Kit,
81
+ you'll need to run the v14 codemod before you run v15.
82
+ - The codemod will update your code to be compatible with the specified version, but it will **not**
83
+ remove outdated dependencies or upgrade dependencies to the latest version. You'll need to upgrade
84
+ dependencies on your own.
85
+ - We recommend upgrading dependencies before running the codemod.
86
+ - Always review your `package.json` files to make sure your dependency versions look correct.
87
+ - The codemod will not handle every breaking change in v15. You will likely need to make some manual
88
+ changes to be compatible. Use our Upgrade Guide as a checklist.
89
+ - Codemods are not bulletproof.
90
+ - Conduct a thorough PR and QA review of all changes to ensure no regressions were introduced.
91
+ - As a safety precaution, we recommend committing the changes from the codemod as a single
92
+ isolated commit (separate from other changes) so you can roll back more easily if necessary.
93
+
94
+ We're here to help! Automatic changes to your codebase can feel scary. You can always reach out to
95
+ our team. We'd be very happy to walk you through the process to set you up for success.
96
+
97
+ ### Instructions
98
+
99
+ The easiest way to run our codemod is to use `npx` in your terminal.
100
+
101
+ ```sh
102
+ npx @workday/canvas-kit-codemod v15 [path]
103
+ ```
104
+
105
+ Be sure to provide specific directories that need to be updated via the `[path]` argument. This
106
+ decreases the amount of AST the codemod needs to traverse and reduces the chances of the script
107
+ having an error. For example, if your source code lives in `src/`, use `src/` as your `[path]`. Or,
108
+ if you have a monorepo with three packages using Canvas Kit, provide those specific packages as your
109
+ `[path]`.
110
+
111
+ Alternatively, if you're unable to run the codemod successfully using `npx`, you can install the
112
+ codemod package as a dev dependency, run it with `yarn`, and then remove the package after you're
113
+ finished.
114
+
115
+ ```sh
116
+ yarn add @workday/canvas-kit-codemod --dev
117
+ yarn canvas-kit-codemod v15 [path]
118
+ yarn remove @workday/canvas-kit-codemod
119
+ ```
120
+
121
+ > **Note:** The codemod only works on `.js`, `.jsx`, `.ts`, and `.tsx` files. You'll need to
122
+ > manually edit other file types (`.json`, `.mdx`, `.md`, etc.). You may need to run your linter
123
+ > after executing the codemod, as its resulting formatting (spacing, quotes, etc.) may not match
124
+ > your project conventions.
125
+
126
+ ### Codemod Transformations for Icons
127
+
128
+ #### Icon Codemod
129
+
130
+ For v15, there is a **separate codemod** called `v15-icons` that updates Canvas Kit icons usage
131
+ across your codebase. This codemod will:
132
+
133
+ - For **system icons**:
134
+ - Replace all **deprecated system icons** from `@workday/canvas-system-icons-web` with the correct
135
+ new icon name.
136
+
137
+ - For **accent and applet icons**:
138
+ - Replace all uses of accent and applet icon imports from `@workday/canvas-accent-icons-web` and
139
+ `@workday/canvas-applet-icons-web` with imports from the new
140
+ `@workday/canvas-expressive-icons-web` expressive icon package.
141
+ - Change all legacy `<AccentIcon icon={foo} />` and `<AppletIcon icon={foo} />` component usages
142
+ to the new `<ExpressiveIcon icon={foo} />` syntax.
143
+
144
+ To run the codemod:
145
+
146
+ ```sh
147
+ npx @workday/canvas-kit-codemod v15-icons [path]
148
+ ```
149
+
150
+ > **Tip:** Provide the specific directory or directories you want to update as `[path]` to speed up
151
+ > migration.
152
+ >
153
+ > The codemod will handle both expressive (Accent/Applet) and system icons, replacing old icons and
154
+ > updating your code to the latest APIs automatically. For further information about the new icon
155
+ > system and migration options, check the
156
+ > [Expressive Icon documentation](https://canvas.workdaydesign.com/styles/assets/expressive-icons)
157
+ > and the
158
+ > [migration guide table](https://canvas.workdaydesign.com/styles/assets/expressive-icons#tab=migration-guide).
159
+
160
+ > 🤖 The `v15-icons` codemod automates the majority of icon migration work, but _always_ review the
161
+ > PR for any remaining icons or component usages that the codemod could not address, especially in
162
+ > tricky cases or heavily customized usages.
163
+
164
+ ## Theming
165
+
166
+ ### System Brand Tokens and Brand Tokens
167
+
168
+ The relationship between **system brand tokens** (e.g. `system.color.brand.accent.primary`) and
169
+ **brand tokens** (e.g. `brand.primary600`) has changed. Teams can still set palette values such as
170
+ `base`, `light`, `lighter`, `lightest`, `dark` and `darkest` via the `CanvasProvider` `theme` prop.
171
+ The mapping inside `CanvasProvider` exists for **backwards compatibility**. When you pass a theme
172
+ object, we forward those values to both the legacy brand tokens and the system brand tokens so
173
+ current implementations will continue to work.
174
+
175
+ For more information on theming, view our [Theming](/get-started/for-developers/theming/overview/)
176
+ documentation.
177
+
178
+ For more information on our tokens, view our
179
+ [Tokens](https://workday.github.io/canvas-tokens/?path=/docs/docs-getting-started--docs)
180
+ documentation.
181
+
182
+ ```tsx
183
+ // This will set the [brand.primary.**] tokens to shades of purple.
184
+ <CanvasProvider theme={{canvas: {palette: {primary: {main: 'purple'}}}}}>
185
+ <App />
186
+ </CanvasProvider>
187
+ ```
188
+
189
+ ## Icon Updates
190
+
191
+ **PR:** [#3851](https://github.com/Workday/canvas-kit/pull/3851)
192
+
193
+ ### Svg
194
+
195
+ The `Svg` component has been improved to align with our latest token system and usage patterns:
196
+
197
+ - `SvgProps` no longer extends `BoxProps`, which means Icon components may not accept Box-related
198
+ style props. Switch to use the `cs` prop instead. Use the `v14.1 codemod` to migrate style props
199
+ automatically.
200
+ - The stencil variables for `width` and `height` are now deprecated; use the `size` prop instead.
201
+ - The `transformColorNameToToken` utility has been fully removed; replace it with direct usage of
202
+ the new token values.
203
+
204
+ ### System Icon
205
+
206
+ The `SystemIcon` component has been improved to align with our latest token system and usage
207
+ patterns:
208
+
209
+ - The `size` prop now accepts updated size token values: `xxs` (14px), `xs` (16px), `sm` (18px),
210
+ `md` (20px), `lg` (24px), and `xl` (32px), for consistent sizing across your application.
211
+ - The `color` prop now only supports direct color values (tokens such as `blueberry400` are no
212
+ longer accepted). Use the component icon or system color tokens directly instead.
213
+ - Hover-related props (`colorHover`, `accentHover`, `backgroundHover`) have been removed for a
214
+ cleaner and more predictable API. Instead, use new styling approaches if you need hover state
215
+ modifications.
216
+ - Deprecated functionality, like `systemIconStyles`, `SystemIconStyles`, `deprecatedSystemIconVars`,
217
+ has been fully removed to reduce complexity and encourage best practices.
218
+
219
+ ### System Icon Circle
220
+
221
+ The `SystemIconCircle` component has received important updates for improved accessibility and
222
+ clarity:
223
+
224
+ - Added a new `inverse` prop, enabling an inverse color variant for better adaptability across
225
+ backgrounds.
226
+ - The `background` prop and the `color` prop must be provided together to ensure optimal contrast
227
+ and compliance with accessibility standards between the icon and its circular background.
228
+ - `SystemIconCircleSize` has been deprecated; replace with direct tokens as size prop.
229
+
230
+ ### Icon Size Updates
231
+
232
+ **PR:** [#3866](https://github.com/Workday/canvas-kit/pull/3866)
233
+
234
+ Canvas v15 is optimized to look best when using the latest version of v4 tokens
235
+ (`@workday/canvas-tokens-web`) and the latest version of v4 system icons
236
+ (`@workday/canvas-system-icons-web`). It is designed to be backwards-compatible with v3 tokens and
237
+ v3 system icons — nothing should break. But you might see minor imperfections when using v3 system
238
+ icons when upgrading to v15. In those cases, we recommend upgrading to the latest version of v4
239
+ icons `@workday/canvas-system-icons-web` and the latest version of v4 tokens
240
+ `@workday/canvas-tokens-web`.
241
+
242
+ The size of icons in some components have been updated. This is reflected in the following
243
+ components:
244
+
245
+ - `MultiSelect` | `1.5rem` → `1.25rem`
246
+ - `Switch (Preview)` | `1.25rem` → `1.125rem`
247
+ - `Buttons with icons (Primary, Secondary, Tertiary, Delete, ToolbarButton and ToolbarDropdownButton)`
248
+ | `1.125rem` → `1rem`
249
+ - `Pill.Icon` | `1.25rem` → `1.125rem`
250
+ - `Pill.IconButton` | `1.5rem` → `1.125rem`
251
+
252
+ > **Note:** If you upgrade to `v15` and are not using `v4` tokens and `v4` icons, the size of the
253
+ > icon will still be updated as part of the upgrade.
254
+
255
+ ## New Components
256
+
257
+ ### Expressive Icon
258
+
259
+ **PR:** [#3851](https://github.com/Workday/canvas-kit/pull/3851)
260
+
261
+ The new `ExpressiveIcon` component brings expressive icons to Canvas Kit. This component replaces
262
+ the previous usage of `Accent` and `Applet` icons.
263
+
264
+ The `ExpressiveIcon` component requires an `icon` prop, which should be an icon object imported from
265
+ the
266
+ [`@workday/canvas-expressive-icons-web`](https://www.npmjs.com/package/@workday/canvas-expressive-icons-web)
267
+ package.
268
+
269
+ > **Note**: If you previously used `Accent` or `Applet` icons, update your usage to import icons
270
+ > from `@workday/canvas-expressive-icons-web` and pass them to `ExpressiveIcon` as the `icon` prop.
271
+ > This can be done through a `v15-icons codemod` for auto-replacement or by following
272
+ > [a migration table](https://canvas.workdaydesign.com/styles/assets/expressive-icons#tab=migration-guide).
273
+
274
+ ```tsx
275
+ import * as React from 'react';
276
+
277
+ import {bookOpenIcon} from '@workday/canvas-expressive-icons-web';
278
+ import {ExpressiveIcon} from '@workday/canvas-kit-react/icon';
279
+
280
+ <ExpressiveIcon icon={bookOpenIcon} />;
281
+ ```
282
+
283
+ ### Switch (Preview)
284
+
285
+ **PR:** [#3842](https://github.com/Workday/canvas-kit/pull/3842)
286
+
287
+ We've created a new version of the [Switch](/components/inputs/switch/) component in `Preview`.
288
+
289
+ Accessibility improvements include:
290
+
291
+ - An icon to show the `unchecked` and `checked` state.
292
+ - Visible borders when "High Contrast Mode" is enabled.
293
+
294
+ > **NOTE:** The API has not changed between `Switch` in `main` and `Switch` in `preview` however,
295
+ > the styles have changed.
296
+
297
+ ## Component Promotions
298
+
299
+ ### Avatar
300
+
301
+ **PR:** [#3660](https://github.com/Workday/canvas-kit/pull/3660)
302
+
303
+ We've promoted `Avatar` from [Preview](#preview) to [Main](#main). This replaces the deprecated
304
+ `Avatar` that was previously in Main.
305
+
306
+ **Before in v14**
307
+
308
+ ```tsx
309
+ import {Avatar} from '@workday/canvas-kit-preview-react/avatar';
310
+ ```
311
+
312
+ **After in v15**
313
+
314
+ ```tsx
315
+ import {Avatar} from '@workday/canvas-kit-react/avatar';
316
+ ```
317
+
318
+ > 🤖 The codemod will handle the change of imports as shown above.
319
+
320
+ #### New Features
321
+
322
+ The promoted `Avatar` includes several new features:
323
+
324
+ - **Initials display**: Automatically shows initials from the `name` prop when no image URL is
325
+ provided
326
+ - **Color variants**: Four color variants (`blue`, `amber`, `teal`, `purple`) instead of light/dark
327
+ - **Custom initials**: Use `preferredInitials` for full control over displayed initials
328
+ - **Decorative mode**: Use `isDecorative` when Avatar is purely decorative (rendered next to a name)
329
+ - **Compound components**: Build custom avatars using `BaseAvatar`, `BaseAvatar.Image`, and
330
+ `BaseAvatar.Name`
331
+ - **Utility function**: Use `getInitialsFromName` to extract initials from a name string
332
+
333
+ ```tsx
334
+ // With initials (no image)
335
+ <Avatar name="John Doe" variant="blue" />
336
+
337
+ // Custom initials
338
+ <Avatar name="John Smith Doe" preferredInitials="JD" />
339
+
340
+ // Decorative (next to text name)
341
+ <Avatar name="John Doe" url="..." isDecorative />
342
+
343
+ // Using compound components for custom layouts
344
+ <BaseAvatar variant="teal" size="large">
345
+ <BaseAvatar.Image src="..." alt="John Doe" />
346
+ <BaseAvatar.Name name="John Doe" />
347
+ </BaseAvatar>
348
+ ```
349
+
350
+ #### API Differences
351
+
352
+ The new `Avatar` is a
353
+ [compound component](/getting-started/for-developers/resources/compound-components/) with a
354
+ different API than the deprecated version.
355
+
356
+ ##### Structure Changes
357
+
358
+ | Deprecated (Old Main) | New (Promoted from Preview) |
359
+ | --------------------- | ---------------------------------- |
360
+ | `Avatar` | `Avatar` |
361
+ | - | `BaseAvatar` |
362
+ | - | `BaseAvatar.Image` / `AvatarImage` |
363
+ | - | `BaseAvatar.Name` / `AvatarName` |
364
+
365
+ ##### Prop Changes
366
+
367
+ | Feature | Deprecated (Old Main) | New (Promoted from Preview) |
368
+ | ---------------- | ------------------------------------------------- | ------------------------------------------------------ |
369
+ | Variant | `variant` (`light`, `dark`) | `variant` (`blue`, `amber`, `teal`, `purple`) |
370
+ | Size | `size` (extraSmall=16px to extraExtraLarge=120px) | `size` (extraExtraSmall=24px to extraExtraLarge=120px) |
371
+ | User identifier | `altText` prop | `name` prop |
372
+ | Custom initials | Not supported | `preferredInitials` prop |
373
+ | Decorative mode | Not supported | `isDecorative` prop |
374
+ | Image URL | `url` prop | `url` prop |
375
+ | Object fit | `objectFit` prop | `objectFit` prop |
376
+ | Initials display | Not supported (shows user icon) | Shows initials from `name` when no image |
377
+
378
+ ##### Size Mapping
379
+
380
+ | Size Name | Deprecated (Old Main) | New (Promoted from Preview) |
381
+ | --------------- | --------------------- | --------------------------- |
382
+ | extraExtraSmall | - | 24px |
383
+ | extraSmall | 16px | 32px |
384
+ | small | 24px | 40px |
385
+ | medium | 32px | 48px |
386
+ | large | 40px | 72px |
387
+ | extraLarge | 64px | 96px |
388
+ | extraExtraLarge | 120px | 120px |
389
+
390
+ ##### Code Migration
391
+
392
+ **Deprecated API (Old Main)**
393
+
394
+ ```tsx
395
+ import {Avatar} from '@workday/canvas-kit-react/avatar';
396
+
397
+ <Avatar size="medium" variant="light" url="https://example.com/photo.jpg" altText="John Doe" />;
398
+ ```
399
+
400
+ **New API (v15)**
401
+
402
+ ```tsx
403
+ import {Avatar} from '@workday/canvas-kit-react/avatar';
404
+
405
+ <Avatar size="medium" variant="blue" url="https://example.com/photo.jpg" name="John Doe" />;
406
+ ```
407
+
408
+ ### Information Highlight
409
+
410
+ **PR:** [#3633](https://github.com/Workday/canvas-kit/pull/3633)
411
+
412
+ We've promoted `InformationHighlight` from [Preview](#preview) to [Main](#main). There are no
413
+ changes to the functionality or styling of the component. The only change required is updating the
414
+ import statement.
415
+
416
+ **Before in v14**
417
+
418
+ ```tsx
419
+ import {InformationHighlight} from '@workday/canvas-kit-preview-react/information-highlight';
420
+ ```
421
+
422
+ **After in v15**
423
+
424
+ ```tsx
425
+ import {InformationHighlight} from '@workday/canvas-kit-react/information-highlight';
426
+ ```
427
+
428
+ > 🤖 The codemod will handle the change of imports as shown above.
429
+
430
+ ### Pill
431
+
432
+ **PR:** [#3634](https://github.com/Workday/canvas-kit/pull/3634)
433
+
434
+ We've promoted `Pill` from [Preview](#preview) to [Main](#main). There are no changes to the
435
+ functionality of the component. The only change required is updating the import statement.
436
+
437
+ **Before in v14**
438
+
439
+ ```tsx
440
+ import {Pill} from '@workday/canvas-kit-preview-react/pill';
441
+ ```
442
+
443
+ **After in v15**
444
+
445
+ ```tsx
446
+ import {Pill} from '@workday/canvas-kit-react/pill';
447
+ ```
448
+
449
+ > 🤖 The codemod will handle the change of imports as shown above.
450
+
451
+ ### Segmented Control
452
+
453
+ **PR:** [#3626](https://github.com/Workday/canvas-kit/pull/3626)
454
+
455
+ We've promoted `SegmentedControl` from [Preview](#preview) to [Main](#main). This replaces the
456
+ deprecated `SegmentedControl` that was previously in Main.
457
+
458
+ **Before in v14**
459
+
460
+ ```tsx
461
+ import {SegmentedControl} from '@workday/canvas-kit-preview-react/segmented-control';
462
+ ```
463
+
464
+ **After in v15**
465
+
466
+ ```tsx
467
+ import {SegmentedControl} from '@workday/canvas-kit-react/segmented-control';
468
+ ```
469
+
470
+ > 🤖 The codemod will handle the change of imports as shown above.
471
+
472
+ #### New Features
473
+
474
+ The promoted `SegmentedControl` includes several new features:
475
+
476
+ - **Text and icon support**: Items can display text, icons, or both
477
+ - **Size variants**: `small`, `medium`, and `large` sizes
478
+ - **Vertical orientation**: Use `orientation="vertical"` for vertical layouts
479
+ - **Built-in tooltips**: Add tooltips via `tooltipProps` on items
480
+ - **Disabled state**: Disable all items via the model or individual items
481
+ - **Dynamic items**: Render items dynamically using the collection API
482
+
483
+ ```tsx
484
+ // Text only
485
+ <SegmentedControl.Item data-id="yearly">Yearly</SegmentedControl.Item>
486
+
487
+ // Icon with text
488
+ <SegmentedControl.Item data-id="list" icon={listViewIcon}>List View</SegmentedControl.Item>
489
+
490
+ // With size and orientation
491
+ <SegmentedControl size="large" orientation="vertical">
492
+ ...
493
+ </SegmentedControl>
494
+ ```
495
+
496
+ #### API Differences
497
+
498
+ The new `SegmentedControl` is a
499
+ [compound component](/getting-started/for-developers/resources/compound-components/) with a
500
+ different API than the deprecated version.
501
+
502
+ ##### Structure Changes
503
+
504
+ | Deprecated (Old Main) | New (Promoted from Preview) |
505
+ | ------------------------- | ------------------------------------------------- |
506
+ | `SegmentedControl` | `SegmentedControl` |
507
+ | `SegmentedControl.Button` | `SegmentedControl.List` + `SegmentedControl.Item` |
508
+
509
+ ##### Prop Changes
510
+
511
+ | Feature | Deprecated (Old Main) | New (Promoted from Preview) |
512
+ | --------------- | -------------------------- | --------------------------------------------- |
513
+ | Selection | `value` prop on container | `initialValue` prop on container |
514
+ | Change handler | `onChange={(value) => {}}` | `onSelect={(data) => setSelected(data.id)}` |
515
+ | Item identifier | `value` prop on Button | `data-id` prop on Item |
516
+ | Disabled (all) | Not supported | `disabled` prop on container model |
517
+ | Size | Not supported | `size` prop (`small`, `medium`, `large`) |
518
+ | Orientation | Not supported | `orientation` prop (`horizontal`, `vertical`) |
519
+ | Text labels | Not supported | `children` on Item |
520
+ | Tooltips | Not supported | `tooltipProps` on Item |
521
+ | Accessibility | Manual | Built-in `aria-label` on List |
522
+
523
+ ##### Code Migration
524
+
525
+ **Deprecated API (Old Main)**
526
+
527
+ ```tsx
528
+ import {SegmentedControl} from '@workday/canvas-kit-react/segmented-control';
529
+
530
+ const [value, setValue] = React.useState<string | number>('list-view');
531
+
532
+ <SegmentedControl value={value} onChange={setValue}>
533
+ <SegmentedControl.Button icon={listViewIcon} value="list-view" />
534
+ <SegmentedControl.Button icon={worksheetsIcon} value="table-view" />
535
+ <SegmentedControl.Button icon={deviceTabletIcon} value="device-view" />
536
+ </SegmentedControl>;
537
+ ```
538
+
539
+ **New API (v15)**
540
+
541
+ ```tsx
542
+ import {SegmentedControl} from '@workday/canvas-kit-react/segmented-control';
543
+
544
+ const [value, setValue] = React.useState('list-view');
545
+
546
+ <SegmentedControl initialValue={value} onSelect={data => setValue(data.id)}>
547
+ <SegmentedControl.List aria-label="View type">
548
+ <SegmentedControl.Item data-id="list-view" icon={listViewIcon} tooltipProps={{title: 'List'}} />
549
+ <SegmentedControl.Item
550
+ data-id="table-view"
551
+ icon={worksheetsIcon}
552
+ tooltipProps={{title: 'Table'}}
553
+ />
554
+ <SegmentedControl.Item
555
+ data-id="device-view"
556
+ icon={deviceTabletIcon}
557
+ tooltipProps={{title: 'Device'}}
558
+ />
559
+ </SegmentedControl.List>
560
+ </SegmentedControl>;
561
+ ```
562
+
563
+ ### Side Panel
564
+
565
+ **PR:** [#3670](https://github.com/Workday/canvas-kit/pull/3670)
566
+
567
+ We've promoted `SidePanel` from [Labs](#labs) to [Main](#main). This replaces the deprecated
568
+ `SidePanel` that was previously in Main and should replace the one in [Preview](#preview) as well.
569
+
570
+ **Before in v14**
571
+
572
+ ```tsx
573
+ import {SidePanel} from '@workday/canvas-kit-labs-react/side-panel';
574
+ ```
575
+
576
+ **After in v15**
577
+
578
+ ```tsx
579
+ import {SidePanel} from '@workday/canvas-kit-react/side-panel';
580
+ ```
581
+
582
+ > 🤖 The codemod will handle the change of imports as shown above.
583
+
584
+ #### Migrating from Preview
585
+
586
+ If you're migrating from `@workday/canvas-kit-preview-react/side-panel`, here are the key API
587
+ changes:
588
+
589
+ ```tsx
590
+ // Before (preview-react)
591
+ import {SidePanel, useSidePanel} from '@workday/canvas-kit-preview-react/side-panel';
592
+
593
+ // After (react)
594
+ import {SidePanel, useSidePanelModel} from '@workday/canvas-kit-react/side-panel';
595
+ ```
596
+
597
+ #### Hook API Changes
598
+
599
+ | Preview (`useSidePanel`) | Main (`useSidePanelModel`) |
600
+ | -------------------------------- | ------------------------------------------------------- |
601
+ | `initialExpanded: boolean` | `initialTransitionState: 'expanded' \| 'collapsed'` |
602
+ | `origin: 'left' \| 'right'` | `origin: 'start' \| 'end'` |
603
+ | Returns `expanded: boolean` | Returns `model.state.transitionState` |
604
+ | Returns `setExpanded(bool)` | Use `model.events.expand()` / `model.events.collapse()` |
605
+ | Returns `panelProps` to spread | Props applied automatically via `elemPropsHook` |
606
+ | Returns `labelProps` to spread | Use `id={model.state.labelId}` on label element |
607
+ | Returns `controlProps` to spread | Props applied automatically to `SidePanel.ToggleButton` |
608
+
609
+ #### Component API Changes
610
+
611
+ | Preview | Main |
612
+ | ---------------------------------------------- | ---------------------------------------------------- |
613
+ | `<SidePanel {...panelProps}>` | `<SidePanel model={model}>` or just `<SidePanel>` |
614
+ | `<SidePanel.ToggleButton {...controlProps} />` | `<SidePanel.ToggleButton />` |
615
+ | `<Heading {...labelProps}>` | `<SidePanel.Heading>Panel Title</SidePanel.Heading>` |
616
+ | `expanded` prop on SidePanel | Managed by model's `transitionState` |
617
+ | `touched` prop on SidePanel | Managed internally |
618
+ | `onExpandedChange` callback | Use `onStateTransition` and derive expanded state |
619
+ | `onStateTransition` on component | `onStateTransition` in model config |
620
+
621
+ #### Code Migration Example
622
+
623
+ ```tsx
624
+ // Before (in Preview)
625
+ const {expanded, panelProps, labelProps, controlProps} = useSidePanel({
626
+ initialExpanded: false,
627
+ });
628
+
629
+ <SidePanel {...panelProps} origin="right" onExpandedChange={exp => console.log(exp)}>
630
+ <SidePanel.ToggleButton {...controlProps} />
631
+ <Heading {...labelProps}>Panel Title</Heading>
632
+ {expanded && <Content />}
633
+ </SidePanel>;
634
+
635
+ // After (in Main)
636
+ const model = useSidePanelModel({
637
+ initialTransitionState: 'collapsed',
638
+ origin: 'end',
639
+ onStateTransition: state => {
640
+ const isExpanded = state === 'expanded' || state === 'expanding';
641
+ console.log(isExpanded);
642
+ },
643
+ });
644
+
645
+ <SidePanel model={model}>
646
+ <SidePanel.ToggleButton aria-label="Collapse View" />
647
+ <SidePanel.Heading>Panel Title</SidePanel.Heading>
648
+ {model.state.transitionState === 'expanded' && <Content />}
649
+ </SidePanel>;
650
+ ```
651
+
652
+ #### Checking Expanded State
653
+
654
+ ```tsx
655
+ // Before (@workday/canvas-kit-preview-react/side-panel)
656
+ if (expanded) {
657
+ /* ... */
658
+ }
659
+
660
+ // After (@workday/canvas-kit-react/side-panel) - for exact state
661
+ if (model.state.transitionState === 'expanded') {
662
+ /* ... */
663
+ }
664
+
665
+ // After (@workday/canvas-kit-react/side-panel) - including animation states
666
+ const isExpanded =
667
+ model.state.transitionState === 'expanded' || model.state.transitionState === 'expanding';
668
+ ```
669
+
670
+ ## Component Updates
671
+
672
+ The following components have been updated to use our new `size`, `padding`, `gap` and `shape`
673
+ tokens. These changes are **only visual**.
674
+
675
+ If you'd like to see the visual differences between `v14` with `v3` tokens and `v15 alpha` with `v4`
676
+ tokens, check out our [Visual Changes](/docs/guides-upgrade-guides-v15-0-visual-changes--docs) file.
677
+
678
+ ### Buttons
679
+
680
+ **PR:** [#3604](https://github.com/Workday/canvas-kit/pull/3604)
681
+
682
+ `PrimaryButton`, `SecondaryButton`, `DeleteButton`, `TertiaryButton`, `ToolbarButton`,
683
+ `ToolbarDropdownButton`, `Hyperlink`, `ExternalHyperlink` and `ActionBar`.
684
+
685
+ ### Containers
686
+
687
+ **PR:** [#3732](https://github.com/Workday/canvas-kit/pull/3732)
688
+
689
+ `Card`, `Expandable` and `Tabs`
690
+
691
+ ### Indicators
692
+
693
+ **PR:** [#3738](https://github.com/Workday/canvas-kit/pull/3738)
694
+
695
+ `StatusIndicator (Preview)`, `Avatar`, `Badge`, `Banner`, `InformationHighlight`, `Pill` and
696
+ `Skeleton`
697
+
698
+ ### Inputs
699
+
700
+ **PR:** [#3719](https://github.com/Workday/canvas-kit/pull/3719)
701
+
702
+ `ColorPicker`, `MultiSelect`, `Radio`, `Checkbox`, `FormField`, `Select`, `Switch`, `TextArea` and
703
+ `TextInput`
704
+
705
+ ### Navigation
706
+
707
+ **PR:** [#3753](https://github.com/Workday/canvas-kit/pull/3753)
708
+
709
+ `Breadcrumbs`, `Pagination`, `Hyperlink` and `ExternalHyperlink`
710
+
711
+ ### Popups
712
+
713
+ **PR:** [#3745](https://github.com/Workday/canvas-kit/pull/3745)
714
+
715
+ `Menu`, `Modal`, `Popup`, `Toast` and `Tooltip`
716
+
717
+ ## Deprecations
718
+
719
+ We add the [@deprecated](https://jsdoc.app/tags-deprecated.html) JSDoc tag to code we plan to remove
720
+ in a future major release. This signals consumers to migrate to a more stable alternative before the
721
+ deprecated code is removed.
722
+
723
+ ### Accent Icon
724
+
725
+ **PR:** [#3727](https://github.com/Workday/canvas-kit/pull/3727)
726
+
727
+ The Accent Icon set has been **deprecated** and will be removed in a future major version. We
728
+ recommend migrating to **Expressive Icons**, which are more flexible and aligned with our current
729
+ design direction.
730
+
731
+ ### Applet Icon
732
+
733
+ **PR:** [#3727](https://github.com/Workday/canvas-kit/pull/3727)
734
+
735
+ The Applet Icon set has been **deprecated** and will be removed in a future major version. Please
736
+ migrate to **Expressive Icons**, as Applet Icons will no longer receive updates or support.
737
+
738
+ ### Icon Utilities
739
+
740
+ **PR:** [#3851](https://github.com/Workday/canvas-kit/pull/3851)
741
+
742
+ `validateIconType` and `SpanProps` are deprecated.
743
+
744
+ ### Switch (Main)
745
+
746
+ **PR:** [#3854](https://github.com/Workday/canvas-kit/pull/3854)
747
+
748
+ We've deprecated the `Switch` component in `@workday/canvas-kit-react` Main package. Please use the
749
+ `Switch` component in our Preview package `@workday/canvas-kit-preview-react`.
750
+
751
+ > **NOTE:** The API has not changed between `Switch` in `main` and `Switch` in `preview` however,
752
+ > the styles have changed.
753
+
754
+ ## Removals
755
+
756
+ ### Avatar (Deprecated)
757
+
758
+ **PR:** [#3660](https://github.com/Workday/canvas-kit/pull/3660)
759
+
760
+ The deprecated `Avatar` that was previously in `@workday/canvas-kit-react/avatar` has been removed.
761
+ This was the older implementation that showed a user icon placeholder and supported `light`/`dark`
762
+ variants.
763
+
764
+ Please migrate to the new `Avatar` component (promoted from Preview) which uses initials display,
765
+ color variants (`blue`, `amber`, `teal`, `purple`), and supports compound components. See the
766
+ [API Differences](#api-differences) section above for migration guidance.
767
+
768
+ ### Combobox (Labs)
769
+
770
+ **PR:** [#3661](https://github.com/Workday/canvas-kit/pull/3661)
771
+
772
+ The deprecated `Combobox` component has been removed from `@workday/canvas-kit-labs-react`.
773
+
774
+ The following exports are no longer available:
775
+
776
+ - `Combobox`
777
+ - `ComboboxProps`
778
+ - `AutocompleteList`
779
+ - `Status`
780
+
781
+ Please migrate to the [Combobox](/get-started/for-developers/guides/combobox/) in
782
+ `@workday/canvas-kit-react`.
783
+
784
+ ### Form Field Container (Deprecated)
785
+
786
+ **PR:** [#3882](https://github.com/Workday/canvas-kit/pull/3882)
787
+
788
+ The deprecated `FormField.Container` has been removed from `@workday/canvas-kit-react/form-field`.
789
+ This component was deprecated in v12 and has now been fully removed in v15.
790
+
791
+ Please use `FormField.Field` instead, which ensures proper label alignment, spacing of inputs and
792
+ hint text regardless of the orientation.
793
+
794
+ `formFieldContainerStencil` has been removed from `@workday/canvas-kit-react/form-field` as well.
795
+
796
+ **Before in v14**
797
+
798
+ ```tsx
799
+ import {FormField} from '@workday/canvas-kit-react/form-field';
800
+ import {TextInput} from '@workday/canvas-kit-react/text-input';
801
+
802
+ <FormField>
803
+ <FormField.Label>Email</FormField.Label>
804
+ <FormField.Container>
805
+ <FormField.Input as={TextInput} />
806
+ <FormField.Hint>You must provide an email</FormField.Hint>
807
+ </FormField.Container>
808
+ </FormField>;
809
+ ```
810
+
811
+ > 🤖 The codemod will automatically handle replacing `FormField.Container` with `FormField.Field`
812
+ > throughout your codebase.
813
+
814
+ ### Search Form (Labs)
815
+
816
+ **PR:** [#3661](https://github.com/Workday/canvas-kit/pull/3661)
817
+
818
+ The deprecated `SearchForm` component has been removed from `@workday/canvas-kit-labs-react`.
819
+
820
+ The following exports are no longer available:
821
+
822
+ - `SearchForm`
823
+ - `SearchFormProps`
824
+ - `SearchFormState`
825
+ - `SearchTheme`
826
+ - `SearchThemeAttributes`
827
+
828
+ Please migrate to the [Combobox](/get-started/for-developers/guides/combobox/) in
829
+ `@workday/canvas-kit-react`.
830
+
831
+ ### Segmented Control (Deprecated)
832
+
833
+ **PR:** [#3626](https://github.com/Workday/canvas-kit/pull/3626)
834
+
835
+ The deprecated `SegmentedControl` that was previously in
836
+ `@workday/canvas-kit-react/segmented-control` has been removed. This was the older implementation
837
+ that used `SegmentedControl.Button` subcomponents.
838
+
839
+ Please migrate to the new `SegmentedControl` component (promoted from Preview) which uses a compound
840
+ component pattern with `SegmentedControl.List` and `SegmentedControl.Item`. See the
841
+ [API Differences](#api-differences) section above for migration guidance.
842
+
843
+ ### Select (Deprecated)
844
+
845
+ **PR:** [#3658](https://github.com/Workday/canvas-kit/pull/3658)
846
+
847
+ The `Select` component in `@workday/canvas-kit-preview-react/select` has been removed. Please use
848
+ the `Select` component from `@workday/canvas-kit-react/select` instead.
849
+
850
+ **Before in v14**
851
+
852
+ ```tsx
853
+ import {Select} from '@workday/canvas-kit-preview-react/select';
854
+ ```
855
+
856
+ **After in v15**
857
+
858
+ ```tsx
859
+ import {Select} from '@workday/canvas-kit-react/select';
860
+ ```
861
+
862
+ #### Main Select Features
863
+
864
+ The Main `Select` includes features not available in the Preview version:
865
+
866
+ - **Composition-based API**: Full control over structure with subcomponents
867
+ - **FormField integration**: Built-in accessibility when wrapped with FormField
868
+ - **Model-based state**: Use `useSelectModel` for advanced state management
869
+ - **Icons in input**: Use `inputStartIcon` prop on `Select.Input`
870
+ - **Icons in items**: Use `Select.Item.Icon` subcomponent
871
+
872
+ ```tsx
873
+ // With icons
874
+ <Select.Input inputStartIcon={myIcon} />
875
+
876
+ // With item icons
877
+ <Select.Item>
878
+ <Select.Item.Icon icon={starIcon} />
879
+ Favorite
880
+ </Select.Item>
881
+
882
+ // With model for controlled state
883
+ const model = useSelectModel({
884
+ items: myItems,
885
+ onSelect: ({id}) => console.log('Selected:', id),
886
+ });
887
+
888
+ <Select model={model}>
889
+ ...
890
+ </Select>
891
+ ```
892
+
893
+ #### API Differences
894
+
895
+ The Main `Select` is a
896
+ [compound component](/getting-started/for-developers/resources/compound-components/) built on top of
897
+ the Combobox component with a composition-based API, whereas the Preview Select was a monolithic
898
+ class-based component.
899
+
900
+ ##### Structure Changes
901
+
902
+ | Preview (Removed) | Main |
903
+ | --------------------------- | ------------------------------------------------------------------------------------------- |
904
+ | `Select` (single component) | `Select` + `Select.Input` + `Select.Popper` + `Select.Card` + `Select.List` + `Select.Item` |
905
+
906
+ ##### Prop Changes
907
+
908
+ | Feature | Preview (Removed) | Main |
909
+ | ---------------- | ---------------------------------------- | -------------------------------------- |
910
+ | Options | `options` prop (array of Option objects) | `items` prop (array of any type) |
911
+ | Selected value | `value` prop | Managed via model (`useSelectModel`) |
912
+ | Change handler | `onChange={(e) => {}}` | `onChange` on `Select.Input` |
913
+ | Error state | `error={Select.ErrorType.Error}` | `error="error"` or `error="caution"` |
914
+ | Custom rendering | `renderOption` / `renderSelected` props | Composition via `Select.Item` children |
915
+ | Form integration | Manual | Built-in with `FormField` wrapper |
916
+ | Accessibility | Manual ARIA | Built-in via Combobox foundation |
917
+
918
+ ##### Code Migration
919
+
920
+ **Preview API (Removed)**
921
+
922
+ ```tsx
923
+ import {Select} from '@workday/canvas-kit-preview-react/select';
924
+
925
+ const options = [
926
+ {label: 'Small', value: 'small'},
927
+ {label: 'Medium', value: 'medium'},
928
+ {label: 'Large', value: 'large'},
929
+ ];
930
+
931
+ const [value, setValue] = React.useState('medium');
932
+
933
+ <Select options={options} value={value} onChange={e => setValue(e.target.value)} />;
934
+ ```
935
+
936
+ **Main API (v15)**
937
+
938
+ ```tsx
939
+ import {FormField} from '@workday/canvas-kit-react/form-field';
940
+ import {Select} from '@workday/canvas-kit-react/select';
941
+
942
+ const items = ['Small', 'Medium', 'Large'];
943
+
944
+ <Select items={items}>
945
+ <FormField label="Size">
946
+ <FormField.Input as={Select.Input} onChange={e => console.log('Selected:', e.target.value)} />
947
+ <Select.Popper>
948
+ <Select.Card>
949
+ <Select.List>{item => <Select.Item>{item}</Select.Item>}</Select.List>
950
+ </Select.Card>
951
+ </Select.Popper>
952
+ </FormField>
953
+ </Select>;
954
+ ```
955
+
956
+ ### Side Panel (Deprecated)
957
+
958
+ **PR:** [#3670](https://github.com/Workday/canvas-kit/pull/3670)
959
+
960
+ The deprecated `SidePanel` that was previously in `@workday/canvas-kit-react/side-panel` has been
961
+ removed. This was the older implementation that used our old patterns.
962
+
963
+ Please migrate to the new `SidePanel` component (promoted from Labs) which uses a compound component
964
+ pattern and `useSidePanelModel`. See the [API Differences](#api-differences) section above for
965
+ migration guidance.
966
+
967
+ ### Status Indicator AI Variant
968
+
969
+ **PR:** [#3899](https://github.com/Workday/canvas-kit/pull/3899)
970
+
971
+ We've removed the `ai` variant from the `StatusIndicator` component in `Preview`. This pattern is no
972
+ longer supported. If you wish to create your own custom variant you can customize both the icon and
973
+ color of the `StatusIndicator`.
974
+
975
+ > 🤖 The codemod will automatically handle replacing `ai` variant with `variant="blue`. You can
976
+ > manually change the color if you wish.
977
+
978
+ ## New Utilities
979
+
980
+ ### colorSpace
981
+
982
+ **PR:** [#3738](https://github.com/Workday/canvas-kit/pull/3738),
983
+ [#3818](https://github.com/Workday/canvas-kit/pull/3818)
984
+
985
+ We've added a new utility called
986
+ [colorSpace](/get-started/for-developers/styling/utilities/#colorspace) which has three functions:
987
+ [darken](/get-started/for-developers/styling/utilities/#darken),
988
+ [hover](/get-started/for-developers/styling/utilities/#hover) and
989
+ [pressed](/get-started/for-developers/styling/utilities/#pressed).
990
+
991
+ These utilities are meant to be used for interactive states (i.e. `:hover`, `:active` on buttons,
992
+ links, etc.).
993
+
994
+ These will return
995
+ [color-mix()](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/color_value/color-mix)
996
+ and the result is a mix of the first color and the mixin color together in the srgb colorspace by a
997
+ given amount.
998
+
999
+ With the addition of our `surface` tokens, we wanted to create a utility that would allow us to use
1000
+ the `surface` tokens in interactive states. Alpha colors (`surface` tokens) are translucent versions
1001
+ of their solid counterparts. Solid colors are designed for white backgrounds and can lose contrast
1002
+ on other surfaces. Alpha colors adapt via transparency, so they match the appearance of solid colors
1003
+ on the default page background while remaining legible on any surface.
1004
+
1005
+ #### Darken
1006
+
1007
+ This is the core function that is used under the hood for the `hover` and `pressed` functions.
1008
+
1009
+ It takes a single options object with four properties:
1010
+
1011
+ 1. `color`: The color that will be darkened (this is typically the "base" color on the given
1012
+ element).
1013
+ 2. `fallback`: A fallback color if the first color is not valid or not defined.
1014
+ 3. `mixinColor`: The color that will be mixed in with the first color (or fallback color).
1015
+ 4. `mixinValue`: The percentage of the mixin color that will be added to the first color (or
1016
+ fallback color).
1017
+
1018
+ ```tsx
1019
+ import {colorSpace, createStyles} from '@workday/canvas-kit-styling';
1020
+ import {brand, system} from '@workday/canvas-tokens-web';
1021
+
1022
+ const styles = createStyles({
1023
+ backgroundColor: system.color.brand.accent.primary,
1024
+ '&:hover': {
1025
+ backgroundColor: colorSpace.darken({
1026
+ color: system.color.brand.accent.primary,
1027
+ fallback: brand.primary.darkest,
1028
+ mixinColor: system.color.accent.overlay.mixin,
1029
+ mixinValue: system.opacity.accent.hover,
1030
+ }),
1031
+ },
1032
+ });
1033
+ ```
1034
+
1035
+ #### Hover and Pressed
1036
+
1037
+ For the `hover` and `pressed` functions, they take a single options object with three properties:
1038
+
1039
+ 1. `color`: The color that will be darkened (this is typically the "base" color on the given
1040
+ element).
1041
+ 2. `fallback`: A fallback color if the first color is not valid or not defined.
1042
+ 3. `colorType`: A string that will determine where the mixin color and the mixin percentage come
1043
+ from in tokens (i.e. `system.color.accent....`, `system.color.surface....`,
1044
+ `system.opacity.accent....` or `system.opacity.surface....`).
1045
+
1046
+ ##### Hover
1047
+
1048
+ This function is used specifically for hover states.
1049
+
1050
+ ```tsx
1051
+ const styles = createStyles({
1052
+ backgroundColor: system.color.brand.accent.primary,
1053
+ '&:hover': {
1054
+ backgroundColor: colorSpace.hover({
1055
+ color: system.color.brand.accent.primary,
1056
+ fallback: brand.primary.darkest,
1057
+ colorType: 'accent',
1058
+ }),
1059
+ },
1060
+ });
1061
+ ```
1062
+
1063
+ ##### Pressed
1064
+
1065
+ This function is used specifically for pressed/active states.
1066
+
1067
+ ```tsx
1068
+ const styles = createStyles({
1069
+ backgroundColor: system.color.brand.accent.primary,
1070
+ '&:active': {
1071
+ backgroundColor: colorSpace.pressed({
1072
+ color: system.color.brand.accent.primary,
1073
+ fallback: brand.primary.darkest,
1074
+ colorType: 'accent',
1075
+ }),
1076
+ },
1077
+ });
1078
+ ```
1079
+
1080
+ ## Glossary
1081
+
1082
+ For an overview of the different packages we provide, please view our docs
1083
+ [here](https://workday.github.io/canvas-kit/?path=/docs/guides-packages--docs).
1084
+
1085
+ ### Main
1086
+
1087
+ Components in the Main package are stable and ready for production use.
1088
+
1089
+ ### Preview
1090
+
1091
+ Components in the Preview package are mostly stable but may still receive breaking changes before
1092
+ being promoted to Main.
1093
+
1094
+ ### Labs
1095
+
1096
+ Components in the Labs package are experimental and may receive significant changes or be removed
1097
+ entirely.