UNPKG

@hashicorp/design-system-components

Version:
56 lines (55 loc) 2.32 kB
/** * Copyright IBM Corp. 2021, 2025 * SPDX-License-Identifier: MPL-2.0 */ import Component from '@glimmer/component'; import type { EditorView } from '@codemirror/view'; import type { WithBoundArgs } from '@glint/template'; import type Owner from '@ember/owner'; import HdsCodeEditorDescription from './description'; import HdsCodeEditorGeneric from './generic'; import HdsCodeEditorTitle from './title'; import type { HdsCodeEditorDescriptionSignature } from './description'; import type { HdsCodeEditorSignature as HdsCodeEditorModifierSignature } from '../../../modifiers/hds-code-editor.ts'; import type { HdsCodeEditorTitleSignature } from './title'; import type { HdsCopyButtonSignature } from '../copy/button/index'; export interface HdsCodeEditorSignature { Args: { hasCopyButton?: boolean; hasFullScreenButton?: boolean; isStandalone?: boolean; copyButtonText?: HdsCopyButtonSignature['Args']['text']; } & HdsCodeEditorModifierSignature['Args']['Named']; Blocks: { default: [ { Title?: WithBoundArgs<typeof HdsCodeEditorTitle, 'onInsert' | 'editorId'>; Description?: WithBoundArgs<typeof HdsCodeEditorDescription, 'onInsert' | 'editorId'>; Generic?: typeof HdsCodeEditorGeneric; } ]; }; Element: HTMLDivElement; } export default class HdsCodeEditor extends Component<HdsCodeEditorSignature> { private _isFullScreen; private _isSetupComplete; private _value; private _titleId; private _descriptionId; private _id; private _handleEscape; constructor(owner: Owner, args: HdsCodeEditorSignature['Args']); get ariaLabelledBy(): string | undefined; get ariaDescribedBy(): string | undefined; get hasActions(): boolean; get isStandalone(): boolean; get classNames(): string; get copyButtonText(): HdsCopyButtonSignature['Args']['text']; registerTitleElement: (element: HdsCodeEditorTitleSignature["Element"]) => void; registerDescriptionElement: (element: HdsCodeEditorDescriptionSignature["Element"]) => void; toggleFullScreen: () => void; onInput: (newValue: string, editorView: EditorView) => void; onKeyDown: (event: KeyboardEvent) => void; onSetup: (editorView: EditorView) => void; }