{"mappings":"AACA,cAAc,sBAA4B;AAG1C,OAAO,aAAa;;;;;;;;;;;;;AAgBpB,cACM,gBAAgB,QAAQ;CAC5B,QAAQ;CACR,MAAM,SAAS;CAEf,AACA;CAEA,AACA;CAEA,UAAU,UAAU,eAAe;CAmBnC;CACA;CAEA;;AAiBF,eAAe;AACf,SAAS","names":[],"sources":["../../../../src/web-components/tooltip/component.ts"],"sourcesContent":["import { godown, htmlSlot } from \"@godown/element\";\nimport { type TemplateResult, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\nimport Popover from \"../popover/component.js\";\n\nconst protoName = \"tooltip\";\n\n/**\n * {@linkcode Tooltip} is similar to {@linkcode Popover}.\n *\n * It listens for the mouseenter event and displays the tip or popover after a specified delay.\n *\n * When it is clicked or the mouseleave event occurs followed by another delay, closes the tip.\n *\n * @fires toggle - Fired when the popover is toggled.\n * @slot tip - Tip content.\n * @slot - Tip trigger.\n * @category feedback\n */\n@godown(protoName)\nclass Tooltip extends Popover {\n  action: \"hide\";\n  span: \"span\" | \"isolated\";\n\n  @property()\n  tip: string;\n\n  @property({ type: Number })\n  delay = 300;\n\n  protected render(): TemplateResult<1> {\n    return html`\n      <div part=\"root\">\n        <div\n          part=\"trigger\"\n          @click=${this.hide}\n        >\n          ${htmlSlot()}\n        </div>\n        <div\n          part=\"popover\"\n          popover=\"manual\"\n        >\n          ${htmlSlot(\"tip\", this.tip)}\n        </div>\n      </div>\n    `;\n  }\n\n  _hoverTimeout: number;\n  _leaveTimeout: number;\n\n  connectedCallback(): void {\n    super.connectedCallback();\n    this.events.add(this, \"mouseenter\", () => {\n      clearTimeout(this._leaveTimeout);\n      this._hoverTimeout = setTimeout(() => {\n        this.show();\n      }, this.delay);\n    });\n    this.events.add(this, \"mouseleave\", () => {\n      clearTimeout(this._hoverTimeout);\n      this._leaveTimeout = setTimeout(() => {\n        this.hide();\n      }, this.delay);\n    });\n  }\n}\n\nexport default Tooltip;\nexport { Tooltip };\n"],"version":3,"file":"component.d.ts"}