UNPKG

chrome-devtools-frontend

Version:
84 lines (72 loc) 2.6 kB
// Copyright 2026 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as Lit from '../../../../ui/lit/lit.js'; import * as UI from '../../legacy.js'; import * as InlineEditor from './inline_editor.js'; const {html} = Lit; let text = 'top span-left'; export function render(container: HTMLElement): void { const area = InlineEditor.PositionAreaEditor.parsePositionArea(text) ?? undefined; function onPositionAreaChanged(event: CustomEvent<InlineEditor.PositionAreaEditor.Area>): void { text = InlineEditor.PositionAreaEditor.stringifyPositionArea(event.detail); render(container); } function onInput(event: Event): void { const input = event.target as HTMLInputElement; text = input.value; render(container); } Lit.render(html` <style> .wrapper { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sys-size-5); padding: var(--sys-size-8); } .input-container { display: flex; align-items: center; gap: var(--sys-size-3); } .input-label { font-family: var(--source-code-font-family); font-size: var(--sys-typescale-body4-size); color: var(--sys-color-token-property-special); } .property-input { font-family: var(--source-code-font-family); font-size: var(--sys-typescale-body4-size); padding: var(--sys-size-2) var(--sys-size-3); width: 200px; } .editor-container { border: 1px solid var(--sys-color-neutral-outline); border-radius: var(--sys-shape-corner-small); overflow: hidden; width: fit-content; } </style> <div class="wrapper"> <div class="input-container"> <label class="input-label" for="position-area-input">position-area:</label> <input id="position-area-input" class="property-input" type="text" .value=${text} @input=${onInput} /> </div> <div class="editor-container"> <devtools-widget ${UI.Widget.widget(InlineEditor.PositionAreaEditor.PositionAreaEditor, {area})} @positionAreaChanged=${onPositionAreaChanged}> </devtools-widget> </div> </div> `, container); }