@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
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import {LoadingDots} from '@workday/canvas-kit-react/loading-dots';
|
|
3
|
-
import {system} from '@workday/canvas-tokens-web';
|
|
4
2
|
import {createStyles} from '@workday/canvas-kit-styling';
|
|
3
|
+
import {system} from '@workday/canvas-tokens-web';
|
|
5
4
|
|
|
6
5
|
const styleOverrides = {
|
|
7
6
|
parentContainer: createStyles({
|
|
8
7
|
display: 'flex',
|
|
9
|
-
gap: system.
|
|
8
|
+
gap: system.gap.md,
|
|
10
9
|
}),
|
|
11
10
|
};
|
|
12
11
|
|
|
13
12
|
export default () => {
|
|
14
13
|
return (
|
|
15
14
|
<div className={styleOverrides.parentContainer}>
|
|
16
|
-
<LoadingDots
|
|
15
|
+
<LoadingDots
|
|
16
|
+
loadingDotColor={system.color.brand.fg.primary.default}
|
|
17
|
+
animationDurationMs="60ms"
|
|
18
|
+
/>
|
|
17
19
|
</div>
|
|
18
20
|
);
|
|
19
21
|
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {LoadingDots} from '@workday/canvas-kit-react/loading-dots';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import {createStencil, createStyles} from '@workday/canvas-kit-styling';
|
|
3
|
+
import {base, system} from '@workday/canvas-tokens-web';
|
|
4
4
|
|
|
5
5
|
const styleOverrides = {
|
|
6
6
|
parentContainer: createStyles({
|
|
7
7
|
display: 'flex',
|
|
8
|
-
gap: system.
|
|
8
|
+
gap: system.gap.md,
|
|
9
9
|
}),
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
const loadingStencil = createStencil({
|
|
13
13
|
base: {
|
|
14
|
-
borderRadius: system.shape.
|
|
15
|
-
backgroundColor: system.color.
|
|
16
|
-
height:
|
|
17
|
-
width:
|
|
14
|
+
borderRadius: system.shape.full,
|
|
15
|
+
backgroundColor: system.color.surface.contrast.strong,
|
|
16
|
+
height: base.size1000,
|
|
17
|
+
width: base.size1000,
|
|
18
18
|
alignItems: 'center',
|
|
19
19
|
justifyContent: 'center',
|
|
20
20
|
display: 'flex',
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import {Graphic} from '@workday/canvas-kit-react/icon';
|
|
1
2
|
import {LoadingDots} from '@workday/canvas-kit-react/loading-dots';
|
|
2
3
|
import {createStencil, createStyles, px2rem} from '@workday/canvas-kit-styling';
|
|
3
4
|
import {system} from '@workday/canvas-tokens-web';
|
|
4
|
-
import {Graphic} from '@workday/canvas-kit-react/icon';
|
|
5
5
|
|
|
6
6
|
const loadingStencil = createStencil({
|
|
7
7
|
base: {
|
|
8
|
-
background: system.color.
|
|
8
|
+
background: system.color.surface.overlay.scrim,
|
|
9
9
|
alignItems: 'center',
|
|
10
10
|
justifyContent: 'center',
|
|
11
11
|
display: 'flex',
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import {CanvasProvider} from '@workday/canvas-kit-react/common';
|
|
2
4
|
import {LoadingDots} from '@workday/canvas-kit-react/loading-dots';
|
|
3
|
-
import {CanvasProvider, ContentDirection} from '@workday/canvas-kit-react/common';
|
|
4
5
|
|
|
5
6
|
export default () => {
|
|
6
|
-
const theme = {
|
|
7
|
-
canvas: {
|
|
8
|
-
direction: ContentDirection.RTL,
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
7
|
return (
|
|
12
|
-
<CanvasProvider
|
|
8
|
+
<CanvasProvider dir="rtl">
|
|
13
9
|
<LoadingDots />
|
|
14
10
|
</CanvasProvider>
|
|
15
11
|
);
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {ExampleCodeBlock,
|
|
1
|
+
import {ExampleCodeBlock, Specifications, SymbolDoc} from '@workday/canvas-kit-docs';
|
|
2
|
+
|
|
2
3
|
import Basic from './examples/Basic';
|
|
3
4
|
import ContextMenu from './examples/ContextMenu';
|
|
4
|
-
import Icons from './examples/Icons';
|
|
5
|
-
import SelectableMenu from './examples/SelectableMenu';
|
|
6
5
|
import Grouping from './examples/Grouping';
|
|
6
|
+
import Icons from './examples/Icons';
|
|
7
7
|
import Nested from './examples/Nested';
|
|
8
8
|
import NestedDynamic from './examples/NestedDynamic';
|
|
9
|
+
import SelectableMenu from './examples/SelectableMenu';
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
# Canvas Kit Menu
|
|
@@ -32,23 +33,18 @@ yarn add @workday/canvas-kit-react
|
|
|
32
33
|
`Menu` will automatically focus on the cursor item (first item by default). The `Menu` uses a menu
|
|
33
34
|
model which composes a list model and a popup model and sets up accessibility features for you.
|
|
34
35
|
|
|
35
|
-
`Menu` follows the
|
|
36
|
-
[Actions Menu pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/examples/menu-button-actions/)
|
|
37
|
-
using roving tabindex. Below is table of supported keyboard shortcuts and associated actions.
|
|
38
|
-
|
|
39
|
-
| Key | Action |
|
|
40
|
-
| ------------------ | ------------------------------------------------------------------------------------------------------------ |
|
|
41
|
-
| `Enter` or `Space` | Activates the menu item and then closes the menu |
|
|
42
|
-
| `Escape` | Closes the menu |
|
|
43
|
-
| `Up Arrow` | Moves focus to the previous menu item – if focus is on first menu item, it moves focus to the last menu item |
|
|
44
|
-
| `Down Arrow` | Moves focus to the next menu item – if focus is on last menu item, it moves focus to the first menu item |
|
|
45
|
-
| `Home` | Moves focus to the first menu item |
|
|
46
|
-
| `End` | Moves focus to the last menu item |
|
|
47
|
-
|
|
48
36
|
### Context Menu
|
|
49
37
|
|
|
50
38
|
<ExampleCodeBlock code={ContextMenu} />
|
|
51
39
|
|
|
40
|
+
> **Accessibility Note**: This variation relies on the `contextmenu` browser event, which has
|
|
41
|
+
> varying levels of support across different operating systems. On Windows, this feature is better
|
|
42
|
+
> supported and users can typically trigger context menus using the **Shift + F10** keyboard
|
|
43
|
+
> shortcut or the dedicated **Context Menu** key (if available on their keyboard). However, on
|
|
44
|
+
> macOS, context menu support is limited and may require users to enable specific accessibility
|
|
45
|
+
> settings in their system preferences to function properly. Consider providing alternative access
|
|
46
|
+
> methods for critical functionality.
|
|
47
|
+
|
|
52
48
|
### Icons
|
|
53
49
|
|
|
54
50
|
Menu supports more complex children, including icons, but the text of the item will no longer be
|
|
@@ -60,18 +56,10 @@ about the text of the item.
|
|
|
60
56
|
|
|
61
57
|
<ExampleCodeBlock code={Icons} />
|
|
62
58
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
`Menu.Item`. The `Menu.Option` is meant to be used when the `Menu.Card` has a role of `listbox` and
|
|
68
|
-
is controlled via `aria-activedescendant`. This example uses `Menu.Option` to should what the
|
|
69
|
-
checkmark looks like, but the example is not keyboard or screen reader accessible. There are many
|
|
70
|
-
other behaviors that need to be composed into the `Menu.Target` and `Menu.List` components and the
|
|
71
|
-
behaviors depend on many other things. To see a full example of all these behaviors, look at the
|
|
72
|
-
`<Combobox>` and `<Select>` component source code as examples.
|
|
73
|
-
|
|
74
|
-
<ExampleCodeBlock code={SelectableMenu} />
|
|
59
|
+
> **Accessibility Note**: Icons in menu items do not inherently provide text alternatives to
|
|
60
|
+
> assistive technologies. However, in most cases, icons are used decoratively alongside text labels,
|
|
61
|
+
> and additional text alternatives are not necessary since the menu item text itself provides the
|
|
62
|
+
> accessible name.
|
|
75
63
|
|
|
76
64
|
### Grouping
|
|
77
65
|
|
|
@@ -84,6 +72,14 @@ and are not selectable with the keyboard or mouse.
|
|
|
84
72
|
|
|
85
73
|
<ExampleCodeBlock code={Grouping} />
|
|
86
74
|
|
|
75
|
+
> **Accessibility Note**: Menu groups use `role="group"` with appropriate labeling to provide
|
|
76
|
+
> semantic structure for assistive technologies. When navigating through grouped menu items, screen
|
|
77
|
+
> readers will announce the group label when users enter a new group, providing important context
|
|
78
|
+
> about the organization of the menu. Group headers are not part of the keyboard navigation
|
|
79
|
+
> sequence, allowing users to efficiently move between actionable menu items. This semantic grouping
|
|
80
|
+
> helps all users, including those using assistive technologies, understand the hierarchy and
|
|
81
|
+
> categorization of menu options.
|
|
82
|
+
|
|
87
83
|
### Nested
|
|
88
84
|
|
|
89
85
|
Menus support nesting. If you only have a few items and not very many nesting levels, the menu can
|
|
@@ -94,6 +90,10 @@ indicate this dual role.
|
|
|
94
90
|
|
|
95
91
|
<ExampleCodeBlock code={Nested} />
|
|
96
92
|
|
|
93
|
+
> **Accessibility Note**: When a menu item has an attached submenu, the `<Menu.Submenu.TargetItem>`
|
|
94
|
+
> includes `aria-haspopup="true"` and `aria-expanded={true | false}` properties. These properties
|
|
95
|
+
> will alert screen reader users to the available submenu systems.
|
|
96
|
+
|
|
97
97
|
### Nested Dynamic Items
|
|
98
98
|
|
|
99
99
|
Menu nesting is simpler with the dynamic API. In this example, a `renderItem` function is defined to
|
|
@@ -106,7 +106,45 @@ submenus.
|
|
|
106
106
|
|
|
107
107
|
## Accessibility
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
Our Menu component is based on the Menu Button pattern on the ARIA Authoring Practices Guide from
|
|
110
|
+
the W3C and relies on the roving tabindex technique for managing focus within the opened menu. This
|
|
111
|
+
means that the minimum requirements for screen reader support and keyboard navigation are included
|
|
112
|
+
in the component.
|
|
113
|
+
|
|
114
|
+
[Menu Button Pattern | APG | WAI | W3C](https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/)
|
|
115
|
+
|
|
116
|
+
- The `<Menu.Target>` sub-component uses `aria-haspopup="true"` and `aria-expanded={true | false}`
|
|
117
|
+
properties. This benefits screen reader users by indicating when a button element has an attached
|
|
118
|
+
menu.
|
|
119
|
+
- The `<Menu.List>` sub-component uses `role="menu"` and `<Menu.Item>` uses `role="menuitem"` ARIA
|
|
120
|
+
roles. These roles allow screen readers to pass through arrow key events to the web application.
|
|
121
|
+
- The `<Menu.List>` sub-component includes an `aria-labelledby` ID reference to the `<Menu.Target>`
|
|
122
|
+
sub-component. This assigns a label to the menu for context.
|
|
123
|
+
|
|
124
|
+
### Navigation
|
|
125
|
+
|
|
126
|
+
- **Enter or Space**: When focused on the menu button, opens the menu and moves focus to the first
|
|
127
|
+
menu item. When focused on a menu item, activates the item and closes the menu
|
|
128
|
+
- **Escape**: Closes the menu and returns focus to the menu button
|
|
129
|
+
- **Up & Down Arrow**: Moves focus up and down the menu items
|
|
130
|
+
- **Home & End**: Moves focus to the first or last menu item
|
|
131
|
+
- **Right & Left Arrow**: When focused on a menu item with a submenu, opens the submenu and moves
|
|
132
|
+
focus to the first item in the submenu or closes the submenu and returns focus to the parent menu
|
|
133
|
+
item
|
|
134
|
+
|
|
135
|
+
### Screen Reader Experience
|
|
136
|
+
|
|
137
|
+
- The menu button will be announced with its label text followed by the button role, a notification
|
|
138
|
+
that it has a popup menu, and the current state of the menu (For example: "Actions, button, menu
|
|
139
|
+
popup, collapsed")
|
|
140
|
+
- **Opening the Menu:** When the menu button is activated, screen readers will announce the menu
|
|
141
|
+
opening, the number of menu items available, and the currently focused item (For example:
|
|
142
|
+
"Actions, menu, First Action, menu item, 1 of 4.")
|
|
143
|
+
- **Navigating Menu Items:** As focus moves between menu items, screen readers will announce the
|
|
144
|
+
item name and its position in the list (For example: "Second Action, menu item, 2 of 4.")
|
|
145
|
+
- **Menu Items with Submenus:** When focused on a menu item that has a submenu, screen readers will
|
|
146
|
+
announce that it has a submenu and provide the expanded/collapsed state (For example: "More
|
|
147
|
+
Actions, menu item, has submenu, collapsed, 3 of 4.")
|
|
110
148
|
|
|
111
149
|
## Component API
|
|
112
150
|
|
|
@@ -114,4 +152,4 @@ This content is coming soon!
|
|
|
114
152
|
|
|
115
153
|
## Specifications
|
|
116
154
|
|
|
117
|
-
<Specifications file="Menu.spec.
|
|
155
|
+
<Specifications file="./cypress/component/Menu.spec.tsx" name="Menu" />
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import {Menu} from '@workday/canvas-kit-react/menu';
|
|
4
|
+
import {BodyText} from '@workday/canvas-kit-react/text';
|
|
2
5
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
6
|
+
bookUserIcon,
|
|
7
|
+
cloudArrowUpIcon,
|
|
8
|
+
configureIcon,
|
|
5
9
|
userIcon,
|
|
6
|
-
taskContactIcon,
|
|
7
10
|
} from '@workday/canvas-system-icons-web';
|
|
8
|
-
import {Menu} from '@workday/canvas-kit-react/menu';
|
|
9
|
-
import {BodyText} from '@workday/canvas-kit-react/text';
|
|
10
11
|
|
|
11
12
|
export default () => {
|
|
12
13
|
const [selected, setSelected] = React.useState('');
|
|
@@ -17,17 +18,17 @@ export default () => {
|
|
|
17
18
|
<Menu.Card>
|
|
18
19
|
<Menu.List>
|
|
19
20
|
<Menu.Item data-text="First Item">
|
|
20
|
-
<Menu.Item.Icon icon={
|
|
21
|
+
<Menu.Item.Icon icon={cloudArrowUpIcon} />
|
|
21
22
|
<Menu.Item.Text>First Item</Menu.Item.Text>
|
|
22
23
|
</Menu.Item>
|
|
23
24
|
<Menu.Item data-text="Second Item (with a really really really long label)">
|
|
24
|
-
<Menu.Item.Icon icon={
|
|
25
|
+
<Menu.Item.Icon icon={configureIcon} />
|
|
25
26
|
<Menu.Item.Text>Second Item (with a really really really long label)</Menu.Item.Text>
|
|
26
27
|
</Menu.Item>
|
|
27
28
|
<Menu.Item aria-disabled data-text="Third Item">
|
|
28
|
-
<Menu.Item.Icon icon={
|
|
29
|
+
<Menu.Item.Icon icon={cloudArrowUpIcon} />
|
|
29
30
|
<Menu.Item.Text>Third Item</Menu.Item.Text>
|
|
30
|
-
<Menu.Item.Icon icon={
|
|
31
|
+
<Menu.Item.Icon icon={bookUserIcon} />
|
|
31
32
|
</Menu.Item>
|
|
32
33
|
<Menu.Item data-text="User">
|
|
33
34
|
<Menu.Item.Icon icon={userIcon} />
|
|
@@ -35,7 +36,7 @@ export default () => {
|
|
|
35
36
|
</Menu.Item>
|
|
36
37
|
<Menu.Divider />
|
|
37
38
|
<Menu.Item data-text="Fifth Item (with divider)">
|
|
38
|
-
<Menu.Item.Icon icon={
|
|
39
|
+
<Menu.Item.Icon icon={bookUserIcon} />
|
|
39
40
|
<Menu.Item.Text>Fifth Item (with divider)</Menu.Item.Text>
|
|
40
41
|
</Menu.Item>
|
|
41
42
|
</Menu.List>
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import {
|
|
2
|
+
|
|
3
|
+
import {Flex} from '@workday/canvas-kit-react/layout';
|
|
4
4
|
import {Menu} from '@workday/canvas-kit-react/menu';
|
|
5
|
+
import {Placement} from '@workday/canvas-kit-react/popup';
|
|
5
6
|
import {BodyText} from '@workday/canvas-kit-react/text';
|
|
6
|
-
|
|
7
|
+
|
|
8
|
+
import {PopperController} from '../../../../../utils/storybook';
|
|
7
9
|
|
|
8
10
|
export default () => {
|
|
9
11
|
const [placement, setPlacement] = React.useState<Placement>('top');
|
|
@@ -97,7 +97,7 @@ export default () => {
|
|
|
97
97
|
<Menu.List>{renderItem}</Menu.List>
|
|
98
98
|
</Menu.Card>
|
|
99
99
|
</Menu.Popper>
|
|
100
|
-
<BodyText size="small" cs={{
|
|
100
|
+
<BodyText size="small" cs={{marginTop: system.gap.md}}>
|
|
101
101
|
Selected: <span data-testid="output">{selected}</span>
|
|
102
102
|
</BodyText>
|
|
103
103
|
</Menu>
|
|
@@ -3,14 +3,25 @@ import React from 'react';
|
|
|
3
3
|
import {Menu} from '@workday/canvas-kit-react/menu';
|
|
4
4
|
import {BodyText} from '@workday/canvas-kit-react/text';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* The `Menu.Item` renders a `role=menuitem` element, and `aria-selected` is not a valid attribute for
|
|
8
|
+
* the `menuitem` role, so it cannot have a selected state. If you wish your menu to have selectable
|
|
9
|
+
* menu items, use `Menu.Option` instead of `Menu.Item`. This is meant to be used when overriding the
|
|
10
|
+
* default role of the `Menu.List` to `listbox`. This example uses `Menu.Option` to show what the
|
|
11
|
+
* checkmark looks like, but the example is not keyboard or screen reader accessible. There are many
|
|
12
|
+
* other behaviors that need to be composed into the `Menu.Target` and `Menu.List` components and the
|
|
13
|
+
* behaviors depend on many other things. To see a full example of all these behaviors, look at the
|
|
14
|
+
* `<Combobox>` and `<Select>` component source code as examples.
|
|
15
|
+
*/
|
|
16
|
+
|
|
6
17
|
export default () => {
|
|
7
18
|
const [selected, setSelected] = React.useState('');
|
|
8
19
|
return (
|
|
9
20
|
<Menu onSelect={data => setSelected(data.id)}>
|
|
10
21
|
<Menu.Target>Open Menu</Menu.Target>
|
|
11
22
|
<Menu.Popper>
|
|
12
|
-
<Menu.Card
|
|
13
|
-
<Menu.List
|
|
23
|
+
<Menu.Card>
|
|
24
|
+
<Menu.List role="listbox">
|
|
14
25
|
<Menu.Option>First Item</Menu.Option>
|
|
15
26
|
<Menu.Option>Second Item</Menu.Option>
|
|
16
27
|
<Menu.Divider />
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
import {ExampleCodeBlock,
|
|
2
|
-
|
|
1
|
+
import {ExampleCodeBlock, Specifications, SymbolDoc} from '@workday/canvas-kit-docs';
|
|
3
2
|
import Basic from './examples/Basic';
|
|
4
|
-
import
|
|
3
|
+
import BodyOverflow from './examples/BodyOverflow';
|
|
5
4
|
import CustomFocus from './examples/CustomFocus';
|
|
6
|
-
import ReturnFocus from './examples/ReturnFocus';
|
|
7
5
|
import CustomTarget from './examples/CustomTarget';
|
|
8
|
-
import BodyOverflow from './examples/BodyOverflow';
|
|
9
|
-
import FullOverflow from './examples/FullOverflow';
|
|
10
6
|
import FormModal from './examples/FormModal';
|
|
7
|
+
import FullOverflow from './examples/FullOverflow';
|
|
8
|
+
import ReturnFocus from './examples/ReturnFocus';
|
|
9
|
+
import WithoutCloseIcon from './examples/WithoutCloseIcon';
|
|
10
|
+
|
|
11
11
|
|
|
12
12
|
# Canvas Kit Modal
|
|
13
13
|
|
|
14
14
|
A Modal component is a type of Dialog that renders a translucent overlay that prevents user
|
|
15
15
|
interaction with the rest of the page. A Modal will render the rest of the page inert until the
|
|
16
|
-
Modal is dismissed. A Modal should be used when the user needs to presented with important
|
|
16
|
+
Modal is dismissed. A Modal should be used when the user needs to be presented with important
|
|
17
17
|
information that must be interacted with before continuing interaction with the rest of the page.
|
|
18
18
|
|
|
19
|
+
For tasks that do not require blocking the rest of the page, consider the non-modal
|
|
20
|
+
[**Dialog**](https://workday.github.io/canvas-kit/?path=/docs/components-popups-dialog--docs)
|
|
21
|
+
component instead.
|
|
22
|
+
|
|
19
23
|
## Installation
|
|
20
24
|
|
|
21
25
|
```sh
|
|
@@ -34,7 +38,7 @@ dialog.
|
|
|
34
38
|
### Without Close Icon
|
|
35
39
|
|
|
36
40
|
If you wish to remove the close icon button, you can simply omit the `Modal.CloseButton`
|
|
37
|
-
subcomponent. If you have a modal dialog that requires the user to accept instead of dismiss
|
|
41
|
+
subcomponent. If you have a modal dialog that requires the user to accept instead of dismiss through
|
|
38
42
|
an escape key or clicking outside the modal, you must create a new `PopupModel` without those
|
|
39
43
|
behaviors and hand that model to the Modal dialog component.
|
|
40
44
|
|
|
@@ -52,18 +56,29 @@ element receives focus when the modal opens.
|
|
|
52
56
|
|
|
53
57
|
<ExampleCodeBlock code={CustomFocus} />
|
|
54
58
|
|
|
59
|
+
> **Accessibility Note**: When initial focus lands on a control **below** the heading (for example,
|
|
60
|
+
> a text field instead of the close button), give supplementary copy a unique `id` and pass
|
|
61
|
+
> **`aria-describedby`** on **`Modal.Card`** so screen readers can announce both the dialog name and
|
|
62
|
+
> that text. For more examples of custom focus techniques, see
|
|
63
|
+
> [Popup > Initial Focus](https://workday.github.io/canvas-kit/?path=/docs/components-popups-popup--docs#initial-focus).
|
|
64
|
+
|
|
55
65
|
### Return Focus
|
|
56
66
|
|
|
57
|
-
By default, the Modal will return focus to the `Modal.Target` element
|
|
58
|
-
|
|
59
|
-
that
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
By default, the Modal will return focus to the `Modal.Target` element. When you open the modal with
|
|
68
|
+
`model.events.show()` (without `Modal.Target`), set **`returnFocusRef`** on the model to the element
|
|
69
|
+
that should receive focus when the modal closes—for example the button that opened it. That covers
|
|
70
|
+
cancel, Escape, and the close icon: focus returns to the control the user activated.
|
|
71
|
+
|
|
72
|
+
If confirming an action **removes** that control from the document (such as deleting the row that
|
|
73
|
+
held the delete button), `returnFocusRef` alone cannot land on a **new** target. The example below
|
|
74
|
+
uses **`useLayoutEffect`** after the list updates to move focus to another row’s delete control, or
|
|
75
|
+
to empty-state text when no files remain.
|
|
64
76
|
|
|
65
77
|
<ExampleCodeBlock code={ReturnFocus} />
|
|
66
78
|
|
|
79
|
+
> **Accessibility Note**: After an item is deleted, focus is returned to the next item in the list
|
|
80
|
+
> or to the empty state text when no items remain.
|
|
81
|
+
|
|
67
82
|
### Custom Target
|
|
68
83
|
|
|
69
84
|
It is common to have a custom target for your modal. Use the `as` prop to use your custom component.
|
|
@@ -79,6 +94,12 @@ requires a `label` prop.
|
|
|
79
94
|
|
|
80
95
|
<ExampleCodeBlock code={CustomTarget} />
|
|
81
96
|
|
|
97
|
+
> **Accessibility Note**: Custom targets must be keyboard focusable, otherwise users will not be
|
|
98
|
+
> able to access the modal. Bear in mind that click handlers only work with the keyboard when
|
|
99
|
+
> applied to HTML `<button>` elements and it is **strongly recommended** to base your custom target
|
|
100
|
+
> on a `<button>` element. Otherwise, you will be required to build in your own custom keyboard
|
|
101
|
+
> event handlers for invoking the modal.
|
|
102
|
+
|
|
82
103
|
### Body Content Overflow
|
|
83
104
|
|
|
84
105
|
The Modal automatically handles overflowing content inside the `Modal.Body` element. If contents are
|
|
@@ -87,6 +108,11 @@ need to restrict the height of your browser to observe the overflow.
|
|
|
87
108
|
|
|
88
109
|
<ExampleCodeBlock code={BodyOverflow} />
|
|
89
110
|
|
|
111
|
+
> **Accessibility Note**: When body content overflows, ensure users can scroll that region **using
|
|
112
|
+
> only the keyboard**. Mouse users can drag scrollbars, but keyboard users need another path. In
|
|
113
|
+
> this example, **`tabIndex={0}`** is set on **`Modal.Body`** so the scrollable area can receive
|
|
114
|
+
> focus; once focused, **arrow keys** move the viewport within the overflowing content.
|
|
115
|
+
|
|
90
116
|
### Full overlay scrolling
|
|
91
117
|
|
|
92
118
|
If content is large, scrolling the entire overlay container is an option. Use the
|
|
@@ -105,10 +131,62 @@ hoisted to allow for form validation and allow you to control when the modal clo
|
|
|
105
131
|
|
|
106
132
|
<ExampleCodeBlock code={FormModal} />
|
|
107
133
|
|
|
134
|
+
## Accessibility
|
|
135
|
+
|
|
136
|
+
`Modal` uses the default modal model (`useModalModel`), which composes **`useInitialFocus`**,
|
|
137
|
+
**`useReturnFocus`**, **`useCloseOnOverlayClick`**, **`useCloseOnEscape`**, **`useFocusTrap`**,
|
|
138
|
+
**`useAssistiveHideSiblings`**, and **`useDisableBodyScroll`**.
|
|
139
|
+
|
|
140
|
+
**`Modal.Card`** exposes **`role="dialog"`** and **`aria-labelledby`** referencing the `id` on
|
|
141
|
+
**`Modal.Heading`**, so the dialog has an accessible name that matches the visible heading. If you
|
|
142
|
+
do not use **`Modal.Heading`**, add an **`aria-label`** on **`Modal.Card`** instead.
|
|
143
|
+
|
|
144
|
+
**`aria-modal`:** The card sets **`aria-modal="false"`**. When **`aria-modal`** is `true`, some
|
|
145
|
+
assistive technologies hide everything outside the dialog—including portaled UI owned by the dialog
|
|
146
|
+
(such as a Select menu rendered as a sibling of the modal). Canvas Kit keeps
|
|
147
|
+
**`aria-modal="false"`** for a better VoiceOver experience while **`useAssistiveHideSiblings`**
|
|
148
|
+
applies **`aria-hidden`** to siblings of the modal stack so background content stays hidden from
|
|
149
|
+
assistive technology while the modal is open.
|
|
150
|
+
|
|
151
|
+
Unlike [**Dialog**](/components/popups/dialog/), Modal does **not** add the sibling **`aria-owns`**
|
|
152
|
+
pattern used to remap reading order for portaled non-modal dialogs. Focus moves into the modal when
|
|
153
|
+
it opens, and sibling hiding reduces exposure to content behind the overlay. For portals, reading
|
|
154
|
+
order, and related tradeoffs, see
|
|
155
|
+
[Guides > Accessibility > Inline Popups](https://workday.github.io/canvas-kit/?path=/docs/guides-accessibility-inline-popups--docs).
|
|
156
|
+
|
|
157
|
+
[Modal Dialog Pattern | APG | WAI | W3C](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/)
|
|
158
|
+
|
|
159
|
+
- Prefer **`Modal.Heading`** so the dialog is properly labelled; avoid leaving a dialog without an
|
|
160
|
+
accessible name.
|
|
161
|
+
- Ensure icon-only controls such as **`Modal.CloseIcon`** include an accessible name. Prefer the
|
|
162
|
+
`Tooltip` component to provide a visible label, or a translated `aria-label` string is acceptable.
|
|
163
|
+
|
|
164
|
+
### Navigation
|
|
165
|
+
|
|
166
|
+
- **Enter** / **Space**: Open the modal (standard button behavior on the trigger). When it opens,
|
|
167
|
+
focus moves to the **first focusable element** inside the modal in DOM order—often the close
|
|
168
|
+
control—or to the element referenced by **`initialFocusRef`** on the model when set.
|
|
169
|
+
- **Tab** / **Shift + Tab**: Move through focusable elements inside the modal; focus **stays**
|
|
170
|
+
within the modal (**focus trap**).
|
|
171
|
+
- **Escape**: Closes the modal and returns focus to **`Modal.Target`** (or the configured return
|
|
172
|
+
target, such as **`returnFocusRef`**).
|
|
173
|
+
|
|
174
|
+
### Screen Reader Experience
|
|
175
|
+
|
|
176
|
+
- **When the modal opens:** Screen readers should announce the first focused control (often the
|
|
177
|
+
close button), the dialog's name (**`Modal.Heading`**) and role.
|
|
178
|
+
- **Background content:** Sibling elements of the modal stack receive **`aria-hidden="true"`** while
|
|
179
|
+
the modal is visible, which hides the rest of the page from many assistive technologies. Mouse
|
|
180
|
+
users are blocked by the overlay and inert interaction expectations; always verify behavior in
|
|
181
|
+
your supported browser and screen reader combinations.
|
|
182
|
+
- **Focus trap limits:** Trapping **keyboard** focus does not stop mouse users from interacting
|
|
183
|
+
outside the dialog card, and some screen reader users can move a virtual cursor outside the
|
|
184
|
+
trapped region. Treat the trap as the primary keyboard affordance, not a hard security boundary.
|
|
185
|
+
|
|
108
186
|
## Component API
|
|
109
187
|
|
|
110
188
|
<SymbolDoc name="Modal" fileName="/react/" />
|
|
111
189
|
|
|
112
190
|
## Specifications
|
|
113
191
|
|
|
114
|
-
<Specifications file="Modal.spec.
|
|
192
|
+
<Specifications file="./cypress/component/Modal.spec.tsx" name="Modal" />
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {Modal} from '@workday/canvas-kit-react/modal';
|
|
2
1
|
import {PrimaryButton} from '@workday/canvas-kit-react/button';
|
|
3
|
-
import {
|
|
2
|
+
import {Box, Flex} from '@workday/canvas-kit-react/layout';
|
|
3
|
+
import {Modal} from '@workday/canvas-kit-react/modal';
|
|
4
|
+
import {system} from '@workday/canvas-tokens-web';
|
|
4
5
|
|
|
5
6
|
export default () => {
|
|
6
7
|
const handleAcknowledge = () => {
|
|
@@ -19,12 +20,12 @@ export default () => {
|
|
|
19
20
|
<Modal.CloseIcon aria-label="Close" />
|
|
20
21
|
<Modal.Heading>MIT License</Modal.Heading>
|
|
21
22
|
<Modal.Body>
|
|
22
|
-
<Box as="p"
|
|
23
|
+
<Box as="p" cs={{marginBlock: '0'}}>
|
|
23
24
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
|
24
25
|
software and associated documentation files (the "Software").
|
|
25
26
|
</Box>
|
|
26
27
|
</Modal.Body>
|
|
27
|
-
<Flex gap
|
|
28
|
+
<Flex cs={{gap: system.gap.sm, paddingBlock: system.padding.xxs}}>
|
|
28
29
|
<Modal.CloseButton as={PrimaryButton} onClick={handleAcknowledge}>
|
|
29
30
|
Acknowledge
|
|
30
31
|
</Modal.CloseButton>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
import {Modal} from '@workday/canvas-kit-react/modal';
|
|
4
3
|
import {PrimaryButton} from '@workday/canvas-kit-react/button';
|
|
5
4
|
import {Flex} from '@workday/canvas-kit-react/layout';
|
|
5
|
+
import {Modal} from '@workday/canvas-kit-react/modal';
|
|
6
6
|
|
|
7
7
|
export default () => {
|
|
8
8
|
const handleAcknowledge = () => {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import {PrimaryButton} from '@workday/canvas-kit-react/button';
|
|
4
|
+
import {useUniqueId} from '@workday/canvas-kit-react/common';
|
|
4
5
|
import {FormField} from '@workday/canvas-kit-react/form-field';
|
|
6
|
+
import {Box, Flex} from '@workday/canvas-kit-react/layout';
|
|
7
|
+
import {Modal, useModalModel} from '@workday/canvas-kit-react/modal';
|
|
5
8
|
import {TextInput} from '@workday/canvas-kit-react/text-input';
|
|
6
|
-
import {Flex, Box} from '@workday/canvas-kit-react/layout';
|
|
7
|
-
import {useUniqueId} from '@workday/canvas-kit-react/common';
|
|
8
9
|
|
|
9
10
|
export default () => {
|
|
10
11
|
const longDescID = useUniqueId();
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
import {Modal, useModalModel} from '@workday/canvas-kit-react/modal';
|
|
4
3
|
import {PrimaryButton} from '@workday/canvas-kit-react/button';
|
|
5
|
-
import {Flex} from '@workday/canvas-kit-react/layout';
|
|
6
4
|
import {FormField} from '@workday/canvas-kit-react/form-field';
|
|
5
|
+
import {Flex} from '@workday/canvas-kit-react/layout';
|
|
6
|
+
import {Modal, useModalModel} from '@workday/canvas-kit-react/modal';
|
|
7
|
+
import {Select} from '@workday/canvas-kit-react/select';
|
|
7
8
|
import {TextInput} from '@workday/canvas-kit-react/text-input';
|
|
9
|
+
import {createStyles} from '@workday/canvas-kit-styling';
|
|
8
10
|
import {plusIcon} from '@workday/canvas-system-icons-web';
|
|
11
|
+
import {system} from '@workday/canvas-tokens-web';
|
|
12
|
+
|
|
13
|
+
const FAVORITE_COLOR_OPTIONS = ['Blue', 'Yellow'];
|
|
14
|
+
|
|
15
|
+
const flexStyles = createStyles({
|
|
16
|
+
gap: system.gap.md,
|
|
17
|
+
padding: system.padding.xs,
|
|
18
|
+
});
|
|
9
19
|
|
|
10
20
|
export default () => {
|
|
11
21
|
const model = useModalModel();
|
|
@@ -18,6 +28,8 @@ export default () => {
|
|
|
18
28
|
console.log('form data', {
|
|
19
29
|
first: (event.currentTarget.elements.namedItem('first') as HTMLInputElement).value,
|
|
20
30
|
last: (event.currentTarget.elements.namedItem('last') as HTMLInputElement).value,
|
|
31
|
+
favoriteColor: (event.currentTarget.elements.namedItem('favoriteColor') as HTMLInputElement)
|
|
32
|
+
.value,
|
|
21
33
|
});
|
|
22
34
|
|
|
23
35
|
// if it looks good, submit to the server and close the modal
|
|
@@ -40,8 +52,21 @@ export default () => {
|
|
|
40
52
|
<FormField.Label>Last Name</FormField.Label>
|
|
41
53
|
<FormField.Input as={TextInput} name="last" />
|
|
42
54
|
</FormField>
|
|
55
|
+
<FormField>
|
|
56
|
+
<FormField.Label>Favorite Color</FormField.Label>
|
|
57
|
+
<FormField.Field>
|
|
58
|
+
<Select items={FAVORITE_COLOR_OPTIONS}>
|
|
59
|
+
<FormField.Input as={Select.Input} name="favoriteColor" />
|
|
60
|
+
<Select.Popper>
|
|
61
|
+
<Select.Card>
|
|
62
|
+
<Select.List>{item => <Select.Item>{item}</Select.Item>}</Select.List>
|
|
63
|
+
</Select.Card>
|
|
64
|
+
</Select.Popper>
|
|
65
|
+
</Select>
|
|
66
|
+
</FormField.Field>
|
|
67
|
+
</FormField>
|
|
43
68
|
</Modal.Body>
|
|
44
|
-
<Flex
|
|
69
|
+
<Flex cs={flexStyles}>
|
|
45
70
|
<Modal.CloseButton>Cancel</Modal.CloseButton>
|
|
46
71
|
<PrimaryButton type="submit">Submit</PrimaryButton>
|
|
47
72
|
</Flex>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
import {Modal} from '@workday/canvas-kit-react/modal';
|
|
4
3
|
import {PrimaryButton} from '@workday/canvas-kit-react/button';
|
|
5
4
|
import {Flex} from '@workday/canvas-kit-react/layout';
|
|
5
|
+
import {Modal} from '@workday/canvas-kit-react/modal';
|
|
6
6
|
|
|
7
7
|
export default () => {
|
|
8
8
|
const handleAcknowledge = () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {Modal} from '@workday/canvas-kit-react/modal';
|
|
2
1
|
import {DeleteButton} from '@workday/canvas-kit-react/button';
|
|
3
2
|
import {Flex} from '@workday/canvas-kit-react/layout';
|
|
3
|
+
import {Modal} from '@workday/canvas-kit-react/modal';
|
|
4
4
|
|
|
5
5
|
export default () => {
|
|
6
6
|
return (
|