UNPKG

@carbon/react

Version:

React components for the Carbon Design System

208 lines (207 loc) 7.76 kB
/** * Copyright IBM Corp. 2016, 2025 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ import PropTypes from 'prop-types'; import { PropsWithChildren } from 'react'; export type DeprecatedCodeSnippetAlignment = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'left-bottom' | 'left-top' | 'right-bottom' | 'right-top'; export type NewCodeSnippetAlignment = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-end' | 'left-start' | 'right-end' | 'right-start'; export type CodeSnippetAlignment = DeprecatedCodeSnippetAlignment | NewCodeSnippetAlignment; export interface CodeSnippetProps { /** * Specify how the trigger should align with the tooltip */ align?: CodeSnippetAlignment; /** * **Experimental**: Will attempt to automatically align the tooltip */ autoAlign?: boolean; /** * Specify a label to be read by screen readers on the containing textbox * node */ ['aria-label']?: string; /** * Deprecated, please use `aria-label` instead. * Specify a label to be read by screen readers on the containing textbox * node */ ariaLabel?: string; /** * Specify an optional className to be applied to the container node */ className?: string; /** * Specify the description for the Copy Button */ copyButtonDescription?: string; /** * Optional text to copy. If not specified, the `children` node's `innerText` * will be used as the copy value. */ copyText?: string; /** * Specify whether or not the CodeSnippet should be disabled */ disabled?: boolean; /** * Specify the string displayed when the snippet is copied */ feedback?: string; /** * Specify the time it takes for the feedback message to timeout */ feedbackTimeout?: number; /** * Specify whether or not a copy button should be used/rendered. */ hideCopyButton?: boolean; /** * Specify whether you are using the light variant of the Code Snippet, * typically used for inline snippet to display an alternate color */ light?: boolean; /** * Specify the maximum number of rows to be shown when in collapsed view */ maxCollapsedNumberOfRows?: number; /** * Specify the maximum number of rows to be shown when in expanded view */ maxExpandedNumberOfRows?: number; /** * Specify the minimum number of rows to be shown when in collapsed view */ minCollapsedNumberOfRows?: number; /** * Specify the minimum number of rows to be shown when in expanded view */ minExpandedNumberOfRows?: number; /** * An optional handler to listen to the `onClick` even fired by the Copy * Button */ onClick?: (e: MouseEvent) => void; /** * Specify a string that is displayed when the Code Snippet has been * interacted with to show more lines */ showLessText?: string; /** * Specify a string that is displayed when the Code Snippet text is more * than 15 lines */ showMoreText?: string; /** * Provide the type of Code Snippet */ type?: 'single' | 'inline' | 'multi'; /** * Specify whether or not to wrap the text. */ wrapText?: boolean; } declare function CodeSnippet({ align, autoAlign, className, type, children, disabled, feedback, feedbackTimeout, onClick, ['aria-label']: ariaLabel, ariaLabel: deprecatedAriaLabel, copyText, copyButtonDescription, light, showMoreText, showLessText, hideCopyButton, wrapText, maxCollapsedNumberOfRows, maxExpandedNumberOfRows, minCollapsedNumberOfRows, minExpandedNumberOfRows, ...rest }: PropsWithChildren<CodeSnippetProps>): import("react/jsx-runtime").JSX.Element; declare namespace CodeSnippet { var propTypes: { /** * Specify how the trigger should align with the tooltip */ align: (props: any, propName: any, componentName: any, ...rest: any[]) => any; /** * Specify a label to be read by screen readers on the containing textbox * node */ "aria-label": PropTypes.Requireable<string>; /** * Deprecated, please use `aria-label` instead. * Specify a label to be read by screen readers on the containing textbox * node */ ariaLabel: (props: any, propName: any, componentName: any, ...rest: any[]) => any; /** * **Experimental**: Will attempt to automatically align the tooltip */ autoAlign: PropTypes.Requireable<boolean>; /** * Provide the content of your CodeSnippet as a node or string */ children: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * Specify an optional className to be applied to the container node */ className: PropTypes.Requireable<string>; /** * Specify the description for the Copy Button */ copyButtonDescription: PropTypes.Requireable<string>; /** * Optional text to copy. If not specified, the `children` node's `innerText` * will be used as the copy value. */ copyText: PropTypes.Requireable<string>; /** * Specify whether or not the CodeSnippet should be disabled */ disabled: PropTypes.Requireable<boolean>; /** * Specify the string displayed when the snippet is copied */ feedback: PropTypes.Requireable<string>; /** * Specify the time it takes for the feedback message to timeout */ feedbackTimeout: PropTypes.Requireable<number>; /** * Specify whether or not a copy button should be used/rendered. */ hideCopyButton: PropTypes.Requireable<boolean>; /** * Specify whether you are using the light variant of the Code Snippet, * typically used for inline snippet to display an alternate color */ light: (props: any, propName: any, componentName: any, ...rest: any[]) => any; /** * Specify the maximum number of rows to be shown when in collapsed view */ maxCollapsedNumberOfRows: PropTypes.Requireable<number>; /** * Specify the maximum number of rows to be shown when in expanded view */ maxExpandedNumberOfRows: PropTypes.Requireable<number>; /** * Specify the minimum number of rows to be shown when in collapsed view */ minCollapsedNumberOfRows: PropTypes.Requireable<number>; /** * Specify the minimum number of rows to be shown when in expanded view */ minExpandedNumberOfRows: PropTypes.Requireable<number>; /** * An optional handler to listen to the `onClick` even fired by the Copy * Button */ onClick: PropTypes.Requireable<(...args: any[]) => any>; /** * Specify a string that is displayed when the Code Snippet has been * interacted with to show more lines */ showLessText: PropTypes.Requireable<string>; /** * Specify a string that is displayed when the Code Snippet text is more * than 15 lines */ showMoreText: PropTypes.Requireable<string>; /** * Provide the type of Code Snippet */ type: PropTypes.Requireable<string>; /** * Specify whether or not to wrap the text. */ wrapText: PropTypes.Requireable<boolean>; }; } export default CodeSnippet;