@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.
- package/README.md +6 -6
- package/dist/es6/docgen/createTraversals.d.ts +0 -3
- package/dist/es6/docgen/createTraversals.d.ts.map +1 -1
- package/dist/es6/docgen/docParser.d.ts +1 -1
- package/dist/es6/docgen/docParser.d.ts.map +1 -1
- package/dist/es6/docgen/docParser.js +14 -4
- package/dist/es6/docgen/plugins/componentParser.d.ts +1 -1
- package/dist/es6/docgen/plugins/componentParser.d.ts.map +1 -1
- package/dist/es6/docgen/plugins/componentParser.js +1 -1
- package/dist/es6/docgen/plugins/customTypes.d.ts +1 -1
- package/dist/es6/docgen/plugins/customTypes.d.ts.map +1 -1
- package/dist/es6/docgen/plugins/enhancedComponentParser.d.ts +1 -1
- package/dist/es6/docgen/plugins/enhancedComponentParser.d.ts.map +1 -1
- package/dist/es6/docgen/plugins/enhancedComponentParser.js +2 -1
- package/dist/es6/docgen/plugins/modelParser.d.ts.map +1 -1
- package/dist/es6/docgen/plugins/modelParser.js +4 -4
- package/dist/es6/docgen/traverse.d.ts.map +1 -1
- package/dist/es6/docgen/traverse.js +1 -1
- package/dist/es6/lib/DescriptionTooltip.d.ts +2 -5
- package/dist/es6/lib/DescriptionTooltip.d.ts.map +1 -1
- package/dist/es6/lib/DescriptionTooltip.js +11 -10
- package/dist/es6/lib/DownloadLLMFile.js +11 -11
- package/dist/es6/lib/ExampleCodeBlock.d.ts.map +1 -1
- package/dist/es6/lib/ExampleCodeBlock.js +37 -28
- package/dist/es6/lib/MDXElements.d.ts +1 -1
- package/dist/es6/lib/MDXElements.d.ts.map +1 -1
- package/dist/es6/lib/MDXElements.js +5 -5
- package/dist/es6/lib/MoreTooltip.d.ts.map +1 -1
- package/dist/es6/lib/MoreTooltip.js +1 -1
- package/dist/es6/lib/Specifications.d.ts +3 -1
- package/dist/es6/lib/Specifications.d.ts.map +1 -1
- package/dist/es6/lib/Specifications.js +20 -10
- package/dist/es6/lib/StorybookStatusIndicator.d.ts +2 -2
- package/dist/es6/lib/StorybookStatusIndicator.d.ts.map +1 -1
- package/dist/es6/lib/StorybookStatusIndicator.js +23 -21
- package/dist/es6/lib/StylePropsTable.d.ts.map +1 -1
- package/dist/es6/lib/StylePropsTable.js +1 -1
- package/dist/es6/lib/SymbolDoc.d.ts +1 -1
- package/dist/es6/lib/SymbolDoc.d.ts.map +1 -1
- package/dist/es6/lib/SymbolDoc.js +1 -1
- package/dist/es6/lib/Table.d.ts.map +1 -1
- package/dist/es6/lib/Table.js +33 -10
- package/dist/es6/lib/Value.d.ts.map +1 -1
- package/dist/es6/lib/Value.js +14 -11
- package/dist/es6/lib/docs.d.ts.map +1 -1
- package/dist/es6/lib/docs.js +204588 -183032
- package/dist/es6/lib/specs.js +6142 -1
- package/dist/es6/lib/stackblitzFiles/App.d.ts.map +1 -1
- package/dist/es6/lib/stackblitzFiles/App.js +5 -11
- package/dist/es6/lib/stackblitzFiles/App.tsx +7 -21
- package/dist/es6/lib/stackblitzFiles/main.d.ts +1 -0
- package/dist/es6/lib/stackblitzFiles/main.d.ts.map +1 -1
- package/dist/es6/lib/stackblitzFiles/main.js +4 -3
- package/dist/es6/lib/stackblitzFiles/main.tsx +6 -4
- package/dist/es6/lib/stackblitzFiles/packageJSONFile.d.ts.map +1 -1
- package/dist/es6/lib/stackblitzFiles/packageJSONFile.js +8 -7
- package/dist/es6/lib/stackblitzFiles/packageJSONFile.ts +9 -7
- package/dist/es6/lib/stackblitzFiles/vite.config.d.ts +1 -1
- package/dist/es6/lib/stackblitzFiles/vite.config.d.ts.map +1 -1
- package/dist/es6/lib/stackblitzFiles/vite.config.js +1 -1
- package/dist/es6/lib/stackblitzFiles/vite.config.ts +1 -3
- package/dist/es6/lib/widgetUtils.d.ts.map +1 -1
- package/dist/es6/lib/widgetUtils.js +39 -39
- package/dist/es6/lib/widgets/array.js +1 -1
- package/dist/es6/lib/widgets/callExpression.js +1 -1
- package/dist/es6/lib/widgets/canvasColor.js +3 -2
- package/dist/es6/lib/widgets/conditional.js +1 -1
- package/dist/es6/lib/widgets/enhancedComponent.js +2 -1
- package/dist/es6/lib/widgets/external.js +1 -1
- package/dist/es6/lib/widgets/function.js +2 -2
- package/dist/es6/lib/widgets/index.d.ts +1 -1
- package/dist/es6/lib/widgets/index.d.ts.map +1 -1
- package/dist/es6/lib/widgets/index.js +1 -1
- package/dist/es6/lib/widgets/intersection.js +1 -1
- package/dist/es6/lib/widgets/model.js +1 -1
- package/dist/es6/lib/widgets/parenthesis.js +1 -1
- package/dist/es6/lib/widgets/primitives.js +2 -2
- package/dist/es6/lib/widgets/qualifiedName.js +1 -1
- package/dist/es6/lib/widgets/tuple.js +1 -1
- package/dist/es6/lib/widgets/typeParameter.js +1 -1
- package/dist/es6/lib/widgets/union.js +1 -1
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/CommentBoxWithCharLimit.d.ts +2 -0
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/CommentBoxWithCharLimit.d.ts.map +1 -0
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/CommentBoxWithCharLimit.js +31 -0
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/FilterListWithLiveStatus.js +9 -9
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/HiddenLiveRegion.js +2 -2
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/IconButtonsWithLiveBadges.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/IconButtonsWithLiveBadges.js +4 -4
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/TextInputWithLiveError.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/TextInputWithLiveError.js +3 -3
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/VisibleLiveRegion.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/AriaLiveRegions/VisibleLiveRegion.js +8 -9
- package/dist/es6/mdx/accessibility/examples/GlobalHeader.js +21 -21
- package/dist/es6/mdx/accessibility/examples/PageStructure/BreadcrumbNavRegion.js +2 -2
- package/dist/es6/mdx/accessibility/examples/PageStructure/FullPageDemo.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/PageStructure/FullPageDemo.js +16 -10
- package/dist/es6/mdx/accessibility/examples/PageStructure/LandmarkRegions.d.ts +1 -1
- package/dist/es6/mdx/accessibility/examples/PageStructure/LandmarkRegions.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/PageStructure/LandmarkRegions.js +15 -9
- package/dist/es6/mdx/accessibility/examples/Popups/InlinePopupNoPortal.d.ts +2 -0
- package/dist/es6/mdx/accessibility/examples/Popups/InlinePopupNoPortal.d.ts.map +1 -0
- package/dist/es6/mdx/accessibility/examples/Popups/InlinePopupNoPortal.js +62 -0
- package/dist/es6/mdx/accessibility/examples/Popups/InlinePortalPopup.d.ts +7 -0
- package/dist/es6/mdx/accessibility/examples/Popups/InlinePortalPopup.d.ts.map +1 -0
- package/dist/es6/mdx/accessibility/examples/Popups/InlinePortalPopup.js +65 -0
- package/dist/es6/mdx/accessibility/examples/Popups/PopupAriaOwns.d.ts +7 -0
- package/dist/es6/mdx/accessibility/examples/Popups/PopupAriaOwns.d.ts.map +1 -0
- package/dist/es6/mdx/accessibility/examples/Popups/PopupAriaOwns.js +46 -0
- package/dist/es6/mdx/accessibility/examples/SidePanelWithNavigation.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/SidePanelWithNavigation.js +16 -16
- package/dist/es6/mdx/accessibility/examples/SidePanelWithOverlay.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/SidePanelWithOverlay.js +4 -5
- package/dist/es6/mdx/accessibility/examples/Table/WithColumnHeaderFilters.js +8 -8
- package/dist/es6/mdx/accessibility/examples/Table/WithExpandableRows.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/Table/WithExpandableRows.js +6 -6
- package/dist/es6/mdx/accessibility/examples/Table/WithFormFields.d.ts.map +1 -1
- package/dist/es6/mdx/accessibility/examples/Table/WithFormFields.js +10 -10
- package/dist/es6/mdx/accessibility/examples/Table/WithSelectableRows.js +4 -4
- package/dist/es6/mdx/accessibility/examples/Table/WithSortableColumnHeaders.js +7 -7
- package/dist/es6/mdx/installBlock.d.ts.map +1 -1
- package/dist/es6/mdx/installBlock.js +18 -6
- package/dist/es6/mdx/tokens/StorybookInformationHighlight/index.d.ts.map +1 -1
- package/dist/es6/mdx/tokens/StorybookInformationHighlight/index.js +2 -3
- package/dist/es6/mdx/versionsTable.d.ts.map +1 -1
- package/dist/es6/mdx/versionsTable.js +4 -3
- package/dist/es6/mdx/welcomePage.d.ts.map +1 -1
- package/dist/es6/mdx/welcomePage.js +24 -20
- package/dist/es6/utils/parseSpecFile.d.ts +24 -0
- package/dist/es6/utils/parseSpecFile.d.ts.map +1 -0
- package/dist/es6/utils/parseSpecFile.js +82 -0
- package/dist/mdx/10.0-UPGRADE-GUIDE.mdx +3 -3
- package/dist/mdx/13.0-UPGRADE-GUIDE.mdx +24 -18
- package/dist/mdx/14.0-UPGRADE-GUIDE.mdx +61 -14
- package/dist/mdx/14.0-VISUAL-CHANGES.mdx +19 -19
- package/dist/mdx/15.0-UPGRADE-GUIDE.mdx +1097 -0
- package/dist/mdx/15.0-VISUAL-CHANGES.mdx +151 -0
- package/dist/mdx/5.0-UPGRADE-GUIDE.mdx +3 -3
- package/dist/mdx/7.0-UPGRADE-GUIDE.mdx +4 -4
- package/dist/mdx/8.0-UPGRADE-GUIDE.mdx +5 -5
- package/dist/mdx/9.0-UPGRADE-GUIDE.mdx +2 -2
- package/dist/mdx/CODEMODS.mdx +2 -2
- package/dist/mdx/CONTRIBUTING.mdx +4 -4
- package/dist/mdx/CREATING_COMPOUND_COMPONENTS.mdx +1 -1
- package/dist/mdx/DOCUMENTATION_GUIDELINES.mdx +2 -2
- package/dist/mdx/GETTING_STARTED.mdx +1 -2
- package/dist/mdx/accessibility/AriaLiveRegions.mdx +14 -15
- package/dist/mdx/accessibility/InlinePortals.mdx +20 -0
- package/dist/mdx/accessibility/PageStructure.mdx +3 -2
- package/dist/mdx/accessibility/Popups.mdx +71 -0
- package/dist/mdx/accessibility/WindowsHighContrastThemes.mdx +12 -11
- package/dist/mdx/changelog.mdx +1 -2
- package/dist/mdx/labs-react/ai-ingress-button/examples/Inverse.tsx +2 -2
- package/dist/mdx/preview-react/_examples/mdx/examples/TextInputWithReactHookForm.tsx +11 -12
- package/dist/mdx/preview-react/divider/examples/Basic.tsx +6 -7
- package/dist/mdx/preview-react/divider/examples/CustomSpace.tsx +4 -3
- package/dist/mdx/preview-react/loading-sparkles/LoadingSparkles.mdx +2 -2
- package/dist/mdx/preview-react/loading-sparkles/examples/Basic.tsx +3 -2
- package/dist/mdx/preview-react/loading-sparkles/examples/RTL.tsx +3 -7
- package/dist/mdx/preview-react/multi-select/MultiSelect.mdx +3 -4
- package/dist/mdx/preview-react/multi-select/examples/Basic.tsx +1 -1
- package/dist/mdx/preview-react/multi-select/examples/Complex.tsx +3 -5
- package/dist/mdx/preview-react/multi-select/examples/Controlled.tsx +2 -3
- package/dist/mdx/preview-react/multi-select/examples/Disabled.tsx +1 -1
- package/dist/mdx/preview-react/multi-select/examples/Error.tsx +5 -5
- package/dist/mdx/preview-react/multi-select/examples/Icons.tsx +8 -9
- package/dist/mdx/preview-react/multi-select/examples/InitialSelectedItems.tsx +6 -8
- package/dist/mdx/preview-react/multi-select/examples/Searching.tsx +6 -8
- package/dist/mdx/preview-react/radio/examples/Basic.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/Caution.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/Custom.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/Disabled.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/Error.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/Inverse.tsx +5 -4
- package/dist/mdx/preview-react/radio/examples/LabelPosition.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/NoValue.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/RefForwarding.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/Required.tsx +2 -1
- package/dist/mdx/preview-react/radio/examples/StandaloneRadio.tsx +2 -1
- package/dist/mdx/preview-react/side-panel/SidePanel.mdx +20 -8
- package/dist/mdx/preview-react/side-panel/examples/AlwaysOpen.tsx +5 -7
- package/dist/mdx/preview-react/side-panel/examples/Basic.tsx +10 -15
- package/dist/mdx/preview-react/side-panel/examples/ExternalControl.tsx +5 -5
- package/dist/mdx/preview-react/side-panel/examples/HiddenName.tsx +2 -1
- package/dist/mdx/preview-react/side-panel/examples/OnExpandedChange.tsx +3 -2
- package/dist/mdx/preview-react/side-panel/examples/OnStateTransition.tsx +3 -2
- package/dist/mdx/preview-react/side-panel/examples/RightOrigin.tsx +4 -7
- package/dist/mdx/preview-react/side-panel/examples/Variant.tsx +4 -6
- package/dist/mdx/preview-react/side-panel/examples/useDirection.ts +1 -0
- package/dist/mdx/preview-react/status-indicator/StatusIndicator.mdx +9 -2
- package/dist/mdx/preview-react/status-indicator/examples/Custom.tsx +22 -0
- package/dist/mdx/preview-react/status-indicator/examples/Emphasis.tsx +4 -6
- package/dist/mdx/preview-react/status-indicator/examples/Icon.tsx +4 -6
- package/dist/mdx/preview-react/status-indicator/examples/Overflow.tsx +5 -7
- package/dist/mdx/preview-react/status-indicator/examples/Variants.tsx +15 -17
- package/dist/mdx/preview-react/switch/Switch.mdx +84 -0
- package/dist/mdx/preview-react/switch/examples/Basic.tsx +21 -0
- package/dist/mdx/preview-react/switch/examples/Caution.tsx +22 -0
- package/dist/mdx/preview-react/switch/examples/Disabled.tsx +21 -0
- package/dist/mdx/preview-react/switch/examples/Error.tsx +22 -0
- package/dist/mdx/preview-react/switch/examples/LabelPosition.tsx +21 -0
- package/dist/mdx/preview-react/switch/examples/RTL.tsx +24 -0
- package/dist/mdx/preview-react/switch/examples/RefForwarding.tsx +30 -0
- package/dist/mdx/react/_examples/mdx/ContextualHelp.mdx +36 -0
- package/dist/mdx/react/_examples/mdx/examples/ContextualHelp/ContextualHelpDialogFocusRedirect.tsx +79 -0
- package/dist/mdx/react/_examples/mdx/examples/ContextualHelp/ContextualHelpDialogFocusTrap.tsx +79 -0
- package/dist/mdx/react/_examples/mdx/examples/ContextualHelp/ContextualHelpTooltip.tsx +43 -0
- package/dist/mdx/react/_examples/mdx/examples/CookieBanner.tsx +2 -2
- package/dist/mdx/react/_examples/mdx/examples/Density.tsx +43 -42
- package/dist/mdx/react/_examples/mdx/examples/MediaModal.tsx +4 -3
- package/dist/mdx/react/_examples/mdx/examples/PageHeader.tsx +22 -19
- package/dist/mdx/react/_examples/mdx/examples/SelectWithFormik.tsx +8 -12
- package/dist/mdx/react/_examples/mdx/examples/compoundComponent/CustomCard.tsx +10 -12
- package/dist/mdx/react/_examples/mdx/examples/layout/AreaColumnPositioning.tsx +1 -1
- package/dist/mdx/react/_examples/mdx/examples/layout/CustomColumnPositioning.tsx +1 -1
- package/dist/mdx/react/_examples/mdx/examples/layout/CustomColumnWidth.tsx +1 -1
- package/dist/mdx/react/_examples/mdx/examples/layout/FullWidthWith3Columns.tsx +50 -12
- package/dist/mdx/react/_examples/mdx/examples/layout/FullWidthWith3Columns2Rows.tsx +1 -1
- package/dist/mdx/react/_examples/mdx/examples/layout/Masonry.tsx +3 -2
- package/dist/mdx/react/_examples/mdx/examples/layout/ResponsiveColumns.tsx +2 -2
- package/dist/mdx/react/_examples/mdx/examples/layout/Tiled2and3Columns.tsx +1 -1
- package/dist/mdx/react/_examples/mdx/examples/layout/Tiled4and2Columns.tsx +1 -1
- package/dist/mdx/react/action-bar/ActionBar.mdx +4 -4
- package/dist/mdx/react/action-bar/examples/Icons.tsx +1 -1
- package/dist/mdx/react/action-bar/examples/OverflowActionBar.tsx +5 -3
- package/dist/mdx/react/action-bar/examples/OverflowActionBarCustomButtonCount.tsx +1 -0
- package/dist/mdx/{preview-react → react}/avatar/Avatar.mdx +23 -13
- package/dist/mdx/react/avatar/examples/Basic.tsx +5 -0
- package/dist/mdx/{preview-react → react}/avatar/examples/Custom.tsx +1 -1
- package/dist/mdx/{preview-react → react}/avatar/examples/Decorative.tsx +7 -5
- package/dist/mdx/{preview-react → react}/avatar/examples/Image.tsx +1 -1
- package/dist/mdx/{preview-react → react}/avatar/examples/Size.tsx +2 -2
- package/dist/mdx/{preview-react → react}/avatar/examples/Variant.tsx +2 -2
- package/dist/mdx/react/avatar/examples/nicholas-avatar.jpg +0 -0
- package/dist/mdx/react/badge/CountBadge.mdx +1 -1
- package/dist/mdx/react/badge/examples/Basic.tsx +2 -2
- package/dist/mdx/react/badge/examples/CustomLimit.tsx +8 -8
- package/dist/mdx/react/badge/examples/Emphasis.tsx +4 -4
- package/dist/mdx/react/badge/examples/Inverse.tsx +7 -6
- package/dist/mdx/react/badge/examples/NotificationBadge.tsx +8 -7
- package/dist/mdx/react/banner/Banner.mdx +2 -2
- package/dist/mdx/react/banner/examples/IconBanner.tsx +1 -1
- package/dist/mdx/react/banner/examples/RefForwarding.tsx +1 -1
- package/dist/mdx/react/banner/examples/Sticky.tsx +1 -1
- package/dist/mdx/react/banner/examples/StickyAnimation.tsx +7 -7
- package/dist/mdx/react/banner/examples/StickyRTL.tsx +3 -14
- package/dist/mdx/react/banner/examples/ThemedAlert.tsx +4 -5
- package/dist/mdx/react/banner/examples/ThemedError.tsx +5 -6
- package/dist/mdx/react/breadcrumbs/Breadcrumbs.mdx +6 -5
- package/dist/mdx/react/breadcrumbs/examples/CurrentItemTruncation.tsx +1 -0
- package/dist/mdx/react/breadcrumbs/examples/LinkTruncation.tsx +1 -0
- package/dist/mdx/react/breadcrumbs/examples/Overflow.tsx +6 -3
- package/dist/mdx/react/breadcrumbs/examples/RTL.tsx +6 -10
- package/dist/mdx/react/button/button/Button.mdx +11 -12
- package/dist/mdx/react/button/button/Hyperlink.mdx +11 -5
- package/dist/mdx/react/button/button/examples/CustomStyles.tsx +43 -43
- package/dist/mdx/react/button/button/examples/Delete.tsx +4 -4
- package/dist/mdx/react/button/button/examples/ExternalHyperlinkInverse.tsx +3 -3
- package/dist/mdx/react/button/button/examples/ExternalHyperlinkRTL.tsx +10 -0
- package/dist/mdx/react/button/button/examples/HyperlinkInverse.tsx +3 -3
- package/dist/mdx/react/button/button/examples/Primary.tsx +5 -5
- package/dist/mdx/react/button/button/examples/PrimaryInverse.tsx +6 -6
- package/dist/mdx/react/button/button/examples/Secondary.tsx +5 -5
- package/dist/mdx/react/button/button/examples/SecondaryInverse.tsx +6 -6
- package/dist/mdx/react/button/button/examples/StandaloneHyperlink.tsx +2 -2
- package/dist/mdx/react/button/button/examples/Tertiary.tsx +5 -5
- package/dist/mdx/react/button/button/examples/TertiaryInverse.tsx +6 -6
- package/dist/mdx/react/button/button/examples/ThemeOverrides.tsx +6 -6
- package/dist/mdx/react/card/card.mdx +5 -5
- package/dist/mdx/react/card/examples/Basic.tsx +1 -0
- package/dist/mdx/react/card/examples/Borderless.tsx +2 -3
- package/dist/mdx/react/card/examples/CustomStyles.tsx +1 -3
- package/dist/mdx/react/card/examples/Stencils.tsx +9 -10
- package/dist/mdx/react/card/examples/{Filled.tsx → Tonal.tsx} +2 -1
- package/dist/mdx/react/checkbox/Checkbox.mdx +11 -12
- package/dist/mdx/react/checkbox/examples/Basic.tsx +1 -0
- package/dist/mdx/react/checkbox/examples/Caution.tsx +1 -0
- package/dist/mdx/react/checkbox/examples/Disabled.tsx +1 -0
- package/dist/mdx/react/checkbox/examples/Error.tsx +1 -0
- package/dist/mdx/react/checkbox/examples/Indeterminate.tsx +3 -2
- package/dist/mdx/react/checkbox/examples/Inverse.tsx +3 -2
- package/dist/mdx/react/checkbox/examples/LabelPosition.tsx +1 -0
- package/dist/mdx/react/checkbox/examples/RefForwarding.tsx +3 -2
- package/dist/mdx/react/checkbox/examples/Required.tsx +1 -0
- package/dist/mdx/react/collection/mdx/examples/BasicGrid.tsx +3 -3
- package/dist/mdx/react/collection/mdx/examples/DataLoader.tsx +4 -4
- package/dist/mdx/react/collection/mdx/examples/MultiSelection.tsx +3 -3
- package/dist/mdx/react/collection/mdx/examples/OverflowVerticalList.tsx +3 -2
- package/dist/mdx/react/collection/mdx/examples/RovingFocus.tsx +2 -2
- package/dist/mdx/react/collection/mdx/examples/Selection.tsx +3 -3
- package/dist/mdx/react/collection/mdx/examples/StringChildren.tsx +1 -1
- package/dist/mdx/react/collection/mdx/examples/WrappingGrid.tsx +3 -3
- package/dist/mdx/react/color-picker/color-input/ColorInput.mdx +7 -8
- package/dist/mdx/react/color-picker/color-input/examples/Basic.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/Caution.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/Checked.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/Disabled.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/Error.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/Grow.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/LabelPosition.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/RefForwarding.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/Required.tsx +2 -1
- package/dist/mdx/react/color-picker/color-input/examples/ValidColorChange.tsx +4 -3
- package/dist/mdx/react/color-picker/color-preview/ColorPreview.mdx +3 -3
- package/dist/mdx/react/color-picker/color-preview/examples/LabelPosition.tsx +2 -1
- package/dist/mdx/react/color-picker/color-preview/examples/RefForwarding.tsx +4 -3
- package/dist/mdx/react/combobox/examples/Autocomplete.tsx +11 -9
- package/dist/mdx/react/common/mdx/CompoundComponentUtilities.mdx +1 -1
- package/dist/mdx/react/common/mdx/Theming.mdx +166 -129
- package/dist/mdx/react/common/mdx/examples/CreateComponent.tsx +10 -4
- package/dist/mdx/react/common/mdx/examples/CreateContainer.tsx +1 -0
- package/dist/mdx/react/common/mdx/examples/CreateElemPropsHook.tsx +3 -2
- package/dist/mdx/react/common/mdx/examples/CreateModelHook.tsx +1 -0
- package/dist/mdx/react/common/mdx/examples/CreateSubcomponent.tsx +2 -1
- package/dist/mdx/react/common/mdx/examples/RTL.tsx +4 -5
- package/dist/mdx/react/common/mdx/examples/ResponsiveStyles.tsx +4 -3
- package/dist/mdx/react/common/mdx/examples/ResponsiveViewport.tsx +4 -3
- package/dist/mdx/react/common/mdx/examples/Theming.tsx +40 -22
- package/dist/mdx/react/dialog/Dialog.mdx +51 -20
- package/dist/mdx/react/dialog/examples/Basic.tsx +4 -3
- package/dist/mdx/react/dialog/examples/DialogWithFallbackPlacements.tsx +20 -12
- package/dist/mdx/react/dialog/examples/Focus.tsx +3 -3
- package/dist/mdx/react/expandable/Expandable.mdx +54 -2
- package/dist/mdx/react/expandable/examples/Avatar.tsx +1 -0
- package/dist/mdx/react/expandable/examples/Depth.tsx +10 -1
- package/dist/mdx/react/expandable/examples/HoistedModel.tsx +26 -21
- package/dist/mdx/react/expandable/examples/LongTitle.tsx +1 -0
- package/dist/mdx/react/expandable/examples/RTL.tsx +2 -7
- package/dist/mdx/react/form-field/FormField.mdx +97 -45
- package/dist/mdx/react/form-field/examples/AllFields.tsx +10 -11
- package/dist/mdx/react/form-field/examples/Basic.tsx +1 -0
- package/dist/mdx/react/form-field/examples/Caution.tsx +8 -5
- package/dist/mdx/react/form-field/examples/Custom.tsx +3 -2
- package/dist/mdx/react/form-field/examples/CustomId.tsx +1 -0
- package/dist/mdx/react/form-field/examples/Disabled.tsx +2 -2
- package/dist/mdx/react/form-field/examples/Error.tsx +3 -3
- package/dist/mdx/react/form-field/examples/GroupedInputs.tsx +14 -14
- package/dist/mdx/react/form-field/examples/Grow.tsx +1 -0
- package/dist/mdx/react/form-field/examples/HiddenLabel.tsx +27 -11
- package/dist/mdx/react/form-field/examples/Hint.tsx +2 -2
- package/dist/mdx/react/form-field/examples/LabelPositionHorizontalEnd.tsx +3 -2
- package/dist/mdx/react/form-field/examples/LabelPositionHorizontalStart.tsx +3 -2
- package/dist/mdx/react/form-field/examples/RefForwarding.tsx +4 -3
- package/dist/mdx/react/form-field/examples/Required.tsx +2 -1
- package/dist/mdx/react/form-field/examples/ThemedErrors.tsx +8 -8
- package/dist/mdx/react/icon/Assets.mdx +174 -17
- package/dist/mdx/react/icon/examples/AccentIconList.tsx +5 -4
- package/dist/mdx/react/icon/examples/AppletIconList.tsx +5 -4
- package/dist/mdx/react/icon/examples/ExpressiveBasic.tsx +41 -0
- package/dist/mdx/react/icon/examples/ExpressiveCustomStyles.tsx +54 -0
- package/dist/mdx/react/icon/examples/{IconList.tsx → ExpressiveIconList.tsx} +20 -13
- package/dist/mdx/react/icon/examples/SVGBasic.tsx +31 -0
- package/dist/mdx/react/icon/examples/SystemBasic.tsx +44 -0
- package/dist/mdx/react/icon/examples/SystemCircleBasic.tsx +34 -0
- package/dist/mdx/react/icon/examples/SystemCustomStyles.tsx +62 -0
- package/dist/mdx/react/icon/examples/SystemIconList.tsx +80 -0
- package/dist/mdx/react/information-highlight/InformationHighlight.mdx +96 -0
- package/dist/mdx/{preview-react → react}/information-highlight/examples/Basic.tsx +1 -1
- package/dist/mdx/{preview-react → react}/information-highlight/examples/Body.tsx +1 -1
- package/dist/mdx/{preview-react → react}/information-highlight/examples/Caution.tsx +2 -2
- package/dist/mdx/{preview-react → react}/information-highlight/examples/Critical.tsx +2 -2
- package/dist/mdx/{preview-react → react}/information-highlight/examples/CustomIconCritical.tsx +5 -6
- package/dist/mdx/{preview-react → react}/information-highlight/examples/Heading.tsx +1 -1
- package/dist/mdx/{preview-react → react}/information-highlight/examples/Informational.tsx +4 -4
- package/dist/mdx/{preview-react → react}/information-highlight/examples/RTL.tsx +6 -11
- package/dist/mdx/react/layout/Box.mdx +13 -13
- package/dist/mdx/react/layout/Flex.mdx +3 -3
- package/dist/mdx/react/layout/Grid.mdx +3 -3
- package/dist/mdx/react/layout/examples/Box/Basic.tsx +9 -2
- package/dist/mdx/react/layout/examples/Flex/Basic.tsx +1 -0
- package/dist/mdx/react/layout/examples/Grid/Basic.tsx +19 -13
- package/dist/mdx/react/layout/examples/Grid/GridCard.tsx +34 -24
- package/dist/mdx/react/layout/examples/Grid/GridLayout.tsx +1 -0
- package/dist/mdx/react/layout/examples/Grid/GridLayoutInteractive.tsx +3 -3
- package/dist/mdx/react/loading-dots/LoadingDots.mdx +1 -1
- package/dist/mdx/react/loading-dots/examples/Accessible.tsx +8 -7
- package/dist/mdx/react/loading-dots/examples/Basic.tsx +1 -0
- package/dist/mdx/react/loading-dots/examples/CustomColorAndAnimation.tsx +6 -4
- package/dist/mdx/react/loading-dots/examples/CustomShape.tsx +7 -7
- package/dist/mdx/react/loading-dots/examples/Inverse.tsx +2 -2
- package/dist/mdx/react/loading-dots/examples/RTL.tsx +3 -7
- package/dist/mdx/react/menu/Menu.mdx +68 -30
- package/dist/mdx/react/menu/examples/Icons.tsx +11 -10
- package/dist/mdx/react/menu/examples/MenuWithFallbackPlacements.tsx +5 -3
- package/dist/mdx/react/menu/examples/Nested.tsx +0 -1
- package/dist/mdx/react/menu/examples/NestedDynamic.tsx +1 -1
- package/dist/mdx/react/menu/examples/SelectableMenu.tsx +13 -2
- package/dist/mdx/react/modal/Modal.mdx +94 -16
- package/dist/mdx/react/modal/examples/Basic.tsx +5 -4
- package/dist/mdx/react/modal/examples/BodyOverflow.tsx +1 -1
- package/dist/mdx/react/modal/examples/CustomFocus.tsx +4 -3
- package/dist/mdx/react/modal/examples/FormModal.tsx +28 -3
- package/dist/mdx/react/modal/examples/FullOverflow.tsx +1 -1
- package/dist/mdx/react/modal/examples/IframeTest.tsx +1 -1
- package/dist/mdx/react/modal/examples/ModalWithPopup.tsx +3 -3
- package/dist/mdx/react/modal/examples/ModalWithPopupRTL.tsx +66 -0
- package/dist/mdx/react/modal/examples/NoTargetRTL.tsx +49 -0
- package/dist/mdx/react/modal/examples/ReturnFocus.tsx +140 -41
- package/dist/mdx/react/modal/examples/StackedModals.tsx +1 -1
- package/dist/mdx/react/modal/examples/WithRadioButtons.tsx +1 -0
- package/dist/mdx/react/modal/examples/WithTooltips.tsx +2 -1
- package/dist/mdx/react/modal/examples/WithoutCloseIcon.tsx +10 -9
- package/dist/mdx/react/pagination/examples/Basic.tsx +0 -1
- package/dist/mdx/react/pagination/examples/HoistedModel.tsx +0 -1
- package/dist/mdx/react/pagination/examples/RTL.tsx +2 -5
- package/dist/mdx/react/pagination/examples/ResponsiveRange.tsx +13 -9
- package/dist/mdx/react/pagination/pagination.mdx +8 -6
- package/dist/mdx/{preview-react → react}/pill/Pill.mdx +3 -3
- package/dist/mdx/{preview-react → react}/pill/examples/Basic.tsx +2 -3
- package/dist/mdx/react/pill/examples/CustomStyles.tsx +52 -0
- package/dist/mdx/{preview-react → react}/pill/examples/WithAvatar.tsx +6 -4
- package/dist/mdx/{preview-react → react}/pill/examples/WithCount.tsx +3 -2
- package/dist/mdx/{preview-react → react}/pill/examples/WithList.tsx +2 -2
- package/dist/mdx/{preview-react → react}/pill/examples/WithReadOnly.tsx +3 -3
- package/dist/mdx/{preview-react → react}/pill/examples/WithRemovable.tsx +6 -5
- package/dist/mdx/react/popup/Popup.mdx +64 -36
- package/dist/mdx/react/popup/examples/Basic.tsx +22 -5
- package/dist/mdx/react/popup/examples/ComboboxWithinPopup.tsx +3 -3
- package/dist/mdx/react/popup/examples/CustomTarget.tsx +3 -2
- package/dist/mdx/react/popup/examples/ExternalWindow.tsx +26 -29
- package/dist/mdx/react/popup/examples/FocusRedirect.tsx +27 -12
- package/dist/mdx/react/popup/examples/FocusTrap.tsx +8 -6
- package/dist/mdx/react/popup/examples/FullScreen.tsx +6 -6
- package/dist/mdx/react/popup/examples/InitialFocus.tsx +115 -11
- package/dist/mdx/react/popup/examples/InlinePopup.tsx +126 -0
- package/dist/mdx/react/popup/examples/MixedPopupTypes.tsx +5 -4
- package/dist/mdx/react/popup/examples/MultiplePopups.tsx +34 -22
- package/dist/mdx/react/popup/examples/NestedPopups.tsx +5 -5
- package/dist/mdx/react/popup/examples/PopupWithFallbackPlacements.tsx +26 -18
- package/dist/mdx/react/popup/examples/PopupWithNonHidablePopup.tsx +1 -1
- package/dist/mdx/react/popup/examples/RTL.tsx +9 -9
- package/dist/mdx/react/popup/examples/ReturnFocusTest.tsx +4 -4
- package/dist/mdx/react/popup/examples/TooltipReturnFocus.tsx +5 -5
- package/dist/mdx/react/radio/Radio.mdx +8 -9
- package/dist/mdx/react/radio/examples/Basic.tsx +4 -3
- package/dist/mdx/react/radio/examples/Caution.tsx +2 -1
- package/dist/mdx/react/radio/examples/Disabled.tsx +2 -1
- package/dist/mdx/react/radio/examples/Error.tsx +2 -1
- package/dist/mdx/react/radio/examples/Inverse.tsx +3 -2
- package/dist/mdx/react/radio/examples/LabelPosition.tsx +2 -1
- package/dist/mdx/react/radio/examples/NoValue.tsx +2 -1
- package/dist/mdx/react/radio/examples/RefForwarding.tsx +2 -1
- package/dist/mdx/react/radio/examples/Required.tsx +2 -1
- package/dist/mdx/react/segmented-control/SegmentedControl.mdx +119 -18
- package/dist/mdx/react/segmented-control/examples/Basic.tsx +32 -28
- package/dist/mdx/{preview-react → react}/segmented-control/examples/Disabled.tsx +2 -2
- package/dist/mdx/{preview-react → react}/segmented-control/examples/Dynamic.tsx +3 -2
- package/dist/mdx/{preview-react → react}/segmented-control/examples/RTL.tsx +4 -4
- package/dist/mdx/{preview-react → react}/segmented-control/examples/Sizes.tsx +4 -3
- package/dist/mdx/{preview-react → react}/segmented-control/examples/TextAndIcon.tsx +2 -1
- package/dist/mdx/{preview-react → react}/segmented-control/examples/TextOnly.tsx +2 -1
- package/dist/mdx/{preview-react → react}/segmented-control/examples/Vertical.tsx +2 -2
- package/dist/mdx/react/select/Select.mdx +26 -20
- package/dist/mdx/react/select/examples/Basic.tsx +2 -1
- package/dist/mdx/react/select/examples/Caution.tsx +2 -1
- package/dist/mdx/react/select/examples/Complex.tsx +2 -1
- package/dist/mdx/react/select/examples/Controlled.tsx +3 -2
- package/dist/mdx/react/select/examples/Disabled.tsx +2 -1
- package/dist/mdx/react/select/examples/DisabledOption.tsx +2 -1
- package/dist/mdx/react/select/examples/Error.tsx +2 -1
- package/dist/mdx/react/select/examples/FetchingDynamicItems.tsx +4 -3
- package/dist/mdx/react/select/examples/GroupedItems.tsx +59 -0
- package/dist/mdx/react/select/examples/Grow.tsx +2 -1
- package/dist/mdx/react/select/examples/HoistedModel.tsx +1 -0
- package/dist/mdx/react/select/examples/InitialSelectedItem.tsx +2 -1
- package/dist/mdx/react/select/examples/LabelPosition.tsx +2 -1
- package/dist/mdx/react/select/examples/MenuHeight.tsx +1 -1
- package/dist/mdx/react/select/examples/Placeholder.tsx +2 -1
- package/dist/mdx/react/select/examples/RefForwarding.tsx +1 -0
- package/dist/mdx/react/select/examples/Required.tsx +2 -1
- package/dist/mdx/react/select/examples/WithIcons.tsx +6 -10
- package/dist/mdx/react/side-panel/SidePanel.mdx +287 -0
- package/dist/mdx/react/side-panel/examples/AlwaysOpen.tsx +50 -0
- package/dist/mdx/react/side-panel/examples/Basic.tsx +33 -0
- package/dist/mdx/react/side-panel/examples/ExternalControl.tsx +60 -0
- package/dist/mdx/react/side-panel/examples/Heading.tsx +43 -0
- package/dist/mdx/react/side-panel/examples/OnStateTransition.tsx +52 -0
- package/dist/mdx/react/side-panel/examples/RightOrigin.tsx +67 -0
- package/dist/mdx/react/side-panel/examples/Variant.tsx +51 -0
- package/dist/mdx/react/side-panel/examples/useDirection.ts +24 -0
- package/dist/mdx/react/skeleton/Skeleton.mdx +1 -1
- package/dist/mdx/react/skeleton/examples/Basic.tsx +8 -6
- package/dist/mdx/react/skeleton/examples/Color.tsx +13 -11
- package/dist/mdx/react/skeleton/examples/Header.tsx +1 -0
- package/dist/mdx/react/skeleton/examples/Shape.tsx +4 -3
- package/dist/mdx/react/skeleton/examples/Simulation.tsx +40 -25
- package/dist/mdx/react/skeleton/examples/Text.tsx +1 -0
- package/dist/mdx/react/status-indicator/StatusIndicator.mdx +1 -1
- package/dist/mdx/react/status-indicator/examples/Basic.tsx +6 -7
- package/dist/mdx/react/status-indicator/examples/Emphasis.tsx +6 -7
- package/dist/mdx/react/status-indicator/examples/Icon.tsx +3 -2
- package/dist/mdx/react/status-indicator/examples/MaxWidth.tsx +6 -7
- package/dist/mdx/react/switch/Switch.mdx +22 -9
- package/dist/mdx/react/switch/examples/Basic.tsx +1 -0
- package/dist/mdx/react/switch/examples/Caution.tsx +1 -0
- package/dist/mdx/react/switch/examples/Disabled.tsx +1 -0
- package/dist/mdx/react/switch/examples/Error.tsx +1 -0
- package/dist/mdx/react/switch/examples/LabelPosition.tsx +1 -0
- package/dist/mdx/react/switch/examples/RefForwarding.tsx +1 -0
- package/dist/mdx/react/table/examples/BaseHtmlTable.tsx +1 -3
- package/dist/mdx/react/table/examples/Basic.tsx +1 -3
- package/dist/mdx/react/table/examples/BasicWithHeading.tsx +3 -5
- package/dist/mdx/react/table/examples/FixedColumn.tsx +8 -8
- package/dist/mdx/react/table/examples/RightToLeft.tsx +3 -5
- package/dist/mdx/react/tabs/Tabs.mdx +10 -9
- package/dist/mdx/react/tabs/examples/AlternativeTabStop.tsx +3 -4
- package/dist/mdx/react/tabs/examples/Basic.tsx +3 -3
- package/dist/mdx/react/tabs/examples/DisabledTab.tsx +3 -3
- package/dist/mdx/react/tabs/examples/DynamicTabs.tsx +2 -1
- package/dist/mdx/react/tabs/examples/HoistedModel.tsx +3 -4
- package/dist/mdx/react/tabs/examples/Icons.tsx +4 -5
- package/dist/mdx/react/tabs/examples/NamedTabs.tsx +3 -3
- package/dist/mdx/react/tabs/examples/OverflowTabs.tsx +2 -2
- package/dist/mdx/react/tabs/examples/RightToLeft.tsx +5 -5
- package/dist/mdx/react/tabs/examples/SinglePanel.tsx +2 -4
- package/dist/mdx/react/testing/examples/Basic.tsx +3 -3
- package/dist/mdx/react/text/LabelText.mdx +1 -1
- package/dist/mdx/react/text/Text.mdx +1 -1
- package/dist/mdx/react/text/examples/BodyText/Basic.tsx +1 -0
- package/dist/mdx/react/text/examples/Heading/Basic.tsx +1 -0
- package/dist/mdx/react/text/examples/LabelText/Basic.tsx +1 -0
- package/dist/mdx/react/text/examples/LabelText/Cursor.tsx +1 -0
- package/dist/mdx/react/text/examples/LabelText/Disabled.tsx +3 -5
- package/dist/mdx/react/text/examples/Subtext/Basic.tsx +1 -0
- package/dist/mdx/react/text/examples/Text/Basic.tsx +12 -7
- package/dist/mdx/react/text/examples/Title/Basic.tsx +1 -0
- package/dist/mdx/react/text-area/TextArea.mdx +44 -18
- package/dist/mdx/react/text-area/examples/Basic.tsx +1 -0
- package/dist/mdx/react/text-area/examples/Disabled.tsx +1 -0
- package/dist/mdx/react/text-area/examples/Grow.tsx +1 -0
- package/dist/mdx/react/text-area/examples/LabelPosition.tsx +1 -0
- package/dist/mdx/react/text-area/examples/Placeholder.tsx +1 -0
- package/dist/mdx/react/text-area/examples/RefForwarding.tsx +1 -0
- package/dist/mdx/react/text-area/examples/Required.tsx +1 -0
- package/dist/mdx/react/text-area/examples/ResizeConstraints.tsx +1 -0
- package/dist/mdx/react/text-input/TextInput.mdx +43 -18
- package/dist/mdx/react/text-input/examples/Basic.tsx +1 -0
- package/dist/mdx/react/text-input/examples/Disabled.tsx +1 -0
- package/dist/mdx/react/text-input/examples/Grow.tsx +1 -0
- package/dist/mdx/react/text-input/examples/Icons.tsx +25 -21
- package/dist/mdx/react/text-input/examples/LabelPosition.tsx +1 -0
- package/dist/mdx/react/text-input/examples/Placeholder.tsx +1 -0
- package/dist/mdx/react/text-input/examples/RefForwarding.tsx +1 -0
- package/dist/mdx/react/text-input/examples/Required.tsx +1 -0
- package/dist/mdx/react/toast/examples/Basic.tsx +2 -1
- package/dist/mdx/react/toast/examples/RTL.tsx +4 -6
- package/dist/mdx/react/toast/examples/ToastAlert.tsx +2 -2
- package/dist/mdx/react/toast/examples/ToastDialog.tsx +2 -1
- package/dist/mdx/react/toast/examples/WithActionLinkAndCloseIcon.tsx +2 -4
- package/dist/mdx/react/toast/examples/WithPopper.tsx +4 -4
- package/dist/mdx/react/toast/toast.mdx +4 -3
- package/dist/mdx/react/tokens/Tokens.mdx +1 -1
- package/dist/mdx/react/tokens/examples/Overview.tsx +2 -2
- package/dist/mdx/react/tokens/examples/Tokens.tsx +4 -4
- package/dist/mdx/react/tooltip/Tooltip.mdx +31 -13
- package/dist/mdx/react/tooltip/examples/Default.tsx +1 -1
- package/dist/mdx/react/tooltip/examples/DescriptionType.tsx +3 -3
- package/dist/mdx/react/tooltip/examples/Ellipsis.tsx +8 -8
- package/dist/mdx/react/tooltip/examples/Placements.tsx +13 -14
- package/dist/mdx/react/tooltip/examples/UseTooltip.tsx +2 -2
- package/dist/mdx/style-props/STYLE_PROPS.mdx +1 -1
- package/dist/mdx/style-props/stylePropsMigrationCodemod.mdx +1 -1
- package/dist/mdx/style-props/stylePropsMigrationOverview.mdx +20 -20
- package/dist/mdx/styling/mdx/CreateStyles.mdx +32 -31
- package/dist/mdx/styling/mdx/CustomizingStyles.mdx +4 -4
- package/dist/mdx/styling/mdx/MergingStyles.mdx +6 -4
- package/dist/mdx/styling/mdx/Overview.mdx +15 -15
- package/dist/mdx/styling/mdx/Stencils.mdx +32 -30
- package/dist/mdx/styling/mdx/Utilities.mdx +135 -27
- package/dist/mdx/styling/mdx/examples/CSProp.tsx +7 -9
- package/dist/mdx/styling/mdx/examples/CreateModifiers.tsx +1 -1
- package/dist/mdx/styling/mdx/examples/CreateStencil.tsx +10 -9
- package/dist/mdx/styling/mdx/examples/CreateStyles.tsx +2 -4
- package/dist/mdx/styling/mdx/examples/CustomButton.tsx +16 -23
- package/dist/mdx/styling/mdx/examples/CustomIcon.tsx +5 -6
- package/dist/mdx/styling/mdx/examples/EmotionButton.tsx +1 -1
- package/dist/mdx/styling/mdx/examples/ManualStylesButton.tsx +1 -0
- package/dist/mdx/styling/mdx/examples/StyledButton.tsx +13 -15
- package/dist/mdx/styling/mdx/examples/StylingButton.tsx +2 -1
- package/dist/mdx/styling/mdx/examples/StylingOverrides.tsx +10 -10
- package/dist/mdx/tokens/TokenMigrationCodemod.mdx +9 -0
- package/dist/mdx/tokens/TokenMigrationFinal.mdx +35 -30
- package/dist/mdx/tokens/TokenMigrationInstall.mdx +17 -14
- package/dist/mdx/tokens/TokenMigrationMappingColors.mdx +434 -288
- package/dist/mdx/tokens/TokenMigrationMappingSystem.mdx +51 -199
- package/dist/mdx/tokens/TokenMigrationOverview.mdx +23 -41
- package/dist/mdx/welcome.mdx +14 -16
- package/lib/DescriptionTooltip.tsx +16 -11
- package/lib/DownloadLLMFile.tsx +12 -12
- package/lib/ExampleCodeBlock.tsx +38 -28
- package/lib/MDXElements.tsx +6 -5
- package/lib/MoreTooltip.tsx +12 -10
- package/lib/Specifications.tsx +30 -17
- package/lib/StorybookStatusIndicator.tsx +32 -20
- package/lib/StylePropsTable.tsx +2 -1
- package/lib/SymbolDoc.tsx +2 -1
- package/lib/Table.tsx +37 -39
- package/lib/Value.tsx +22 -15
- package/lib/docs.ts +1 -0
- package/lib/stackblitzFiles/App.tsx +7 -21
- package/lib/stackblitzFiles/main.tsx +6 -4
- package/lib/stackblitzFiles/packageJSONFile.ts +4 -2
- package/lib/stackblitzFiles/types/custom-imports.d.ts +0 -9
- package/lib/stackblitzFiles/vite.config.ts +1 -3
- package/lib/widgetUtils.tsx +42 -43
- package/lib/widgets/array.tsx +1 -1
- package/lib/widgets/callExpression.tsx +1 -2
- package/lib/widgets/canvasColor.tsx +2 -2
- package/lib/widgets/conditional.tsx +1 -1
- package/lib/widgets/enhancedComponent.tsx +12 -8
- package/lib/widgets/external.tsx +1 -2
- package/lib/widgets/function.tsx +3 -3
- package/lib/widgets/index.ts +1 -1
- package/lib/widgets/intersection.tsx +1 -1
- package/lib/widgets/model.tsx +1 -1
- package/lib/widgets/parenthesis.tsx +1 -1
- package/lib/widgets/primitives.tsx +3 -2
- package/lib/widgets/qualifiedName.tsx +1 -1
- package/lib/widgets/tuple.tsx +1 -1
- package/lib/widgets/typeParameter.tsx +1 -1
- package/lib/widgets/union.tsx +1 -1
- package/package.json +14 -12
- package/webpack/extract-exports.js +2 -1
- package/dist/mdx/labs-react/combobox/Combobox.mdx +0 -68
- package/dist/mdx/labs-react/combobox/examples/Basic.tsx +0 -88
- package/dist/mdx/labs-react/combobox/examples/DisabledItem.tsx +0 -88
- package/dist/mdx/labs-react/combobox/examples/GroupOfResult.tsx +0 -88
- package/dist/mdx/labs-react/combobox/examples/Grow.tsx +0 -88
- package/dist/mdx/labs-react/combobox/examples/NoClearButton.tsx +0 -88
- package/dist/mdx/labs-react/combobox/examples/RTL.tsx +0 -90
- package/dist/mdx/labs-react/search-form/SearchForm.mdx +0 -92
- package/dist/mdx/labs-react/search-form/examples/Basic.tsx +0 -63
- package/dist/mdx/labs-react/search-form/examples/Collapsed.tsx +0 -64
- package/dist/mdx/labs-react/search-form/examples/CustomStyles.tsx +0 -91
- package/dist/mdx/labs-react/search-form/examples/CustomTheme.tsx +0 -73
- package/dist/mdx/labs-react/search-form/examples/Grow.tsx +0 -64
- package/dist/mdx/labs-react/search-form/examples/RTL.tsx +0 -72
- package/dist/mdx/labs-react/search-form/examples/Theming.tsx +0 -66
- package/dist/mdx/preview-react/avatar/examples/Basic.tsx +0 -5
- package/dist/mdx/preview-react/avatar/examples/nicholas-avatar.png +0 -0
- package/dist/mdx/preview-react/information-highlight/InformationHighlight.mdx +0 -109
- package/dist/mdx/preview-react/pill/examples/CustomStyles.tsx +0 -53
- package/dist/mdx/preview-react/segmented-control/SegmentedControl.mdx +0 -139
- package/dist/mdx/preview-react/segmented-control/examples/Basic.tsx +0 -42
- package/dist/mdx/preview-react/select/Select.mdx +0 -107
- package/dist/mdx/preview-react/select/examples/Left Label/AlertLeft.tsx +0 -18
- package/dist/mdx/preview-react/select/examples/Left Label/DefaultLeft.tsx +0 -17
- package/dist/mdx/preview-react/select/examples/Left Label/DefaultWithCustomOptionsLeft.tsx +0 -25
- package/dist/mdx/preview-react/select/examples/Left Label/DefaultWithSimpleOptionsLeft.tsx +0 -17
- package/dist/mdx/preview-react/select/examples/Left Label/DisabledLeft.tsx +0 -19
- package/dist/mdx/preview-react/select/examples/Left Label/ErrorLeft.tsx +0 -18
- package/dist/mdx/preview-react/select/examples/Left Label/GrowLeft.tsx +0 -17
- package/dist/mdx/preview-react/select/examples/Left Label/ScrollableLeft.tsx +0 -17
- package/dist/mdx/preview-react/select/examples/Left Label/index.ts +0 -8
- package/dist/mdx/preview-react/select/examples/Top Label/Caution.tsx +0 -16
- package/dist/mdx/preview-react/select/examples/Top Label/Default.tsx +0 -15
- package/dist/mdx/preview-react/select/examples/Top Label/DefaultWithCustomOptions.tsx +0 -23
- package/dist/mdx/preview-react/select/examples/Top Label/DefaultWithSimpleOptions.tsx +0 -15
- package/dist/mdx/preview-react/select/examples/Top Label/Disabled.tsx +0 -17
- package/dist/mdx/preview-react/select/examples/Top Label/Error.tsx +0 -16
- package/dist/mdx/preview-react/select/examples/Top Label/Grow.tsx +0 -15
- package/dist/mdx/preview-react/select/examples/Top Label/Scrollable.tsx +0 -13
- package/dist/mdx/preview-react/select/examples/Top Label/index.ts +0 -8
- package/dist/mdx/preview-react/select/examples/storiesData.tsx +0 -92
- package/dist/mdx/react/_examples/mdx/examples/SegmentControlWithText.tsx +0 -119
- package/dist/mdx/react/avatar/avatar/Avatar.mdx +0 -109
- package/dist/mdx/react/avatar/avatar/examples/Basic.tsx +0 -17
- package/dist/mdx/react/avatar/avatar/examples/Button.tsx +0 -20
- package/dist/mdx/react/avatar/avatar/examples/CustomStyles.tsx +0 -34
- package/dist/mdx/react/avatar/avatar/examples/Image.tsx +0 -25
- package/dist/mdx/react/avatar/avatar/examples/LazyLoad.tsx +0 -20
- package/dist/mdx/react/avatar/avatar/examples/ObjectFit.tsx +0 -30
- package/dist/mdx/react/avatar/avatar/examples/Size.tsx +0 -27
- package/dist/mdx/react/avatar/avatar/examples/Variant.tsx +0 -10
- package/dist/mdx/react/avatar/avatar/examples/test-avatar.png +0 -0
- package/dist/mdx/react/icon/examples/Overview.tsx +0 -42
- package/dist/mdx/react/text-area/examples/Caution.tsx +0 -21
- package/dist/mdx/react/text-area/examples/Error.tsx +0 -21
- package/dist/mdx/react/text-input/examples/Caution.tsx +0 -21
- package/dist/mdx/react/text-input/examples/Error.tsx +0 -21
- /package/dist/mdx/accessibility/{AccessibilityTesting.mdx → TestingTableWithFormFields.mdx} +0 -0
- /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.
|