import { html, LitElement, css } from 'lit'; import { browserDetection, DisabledWithTabIndexMixin } from '@lion/ui/core.js'; const isKeyboardClickEvent = (/** @type {KeyboardEvent} */ e) => e.key === ' ' || e.key === 'Enter'; const isSpaceKeyboardClickEvent = (/** @type {KeyboardEvent} */ e) => e.key === ' '; /** * @typedef {import('@lion/core').TemplateResult} TemplateResult */ /** * Use LionButton (or LionButtonReset|LionButtonSubmit) when there is a need to extend HTMLButtonElement. * It allows to create complex shadow DOM for buttons needing this. Think of: * - a material Design button that needs a JS controlled ripple * - a LionSelectRich invoker that needs a complex shadow DOM structure * (for styling/maintainability purposes) * - a specialized button (for instance a primary button or icon button in a Design System) that * needs a simple api: `text` is always better than * `