From 9a7288c13000a9ec2e1e73c57be3ebc005b4a6ce Mon Sep 17 00:00:00 2001 From: Christoph Schmatzler Date: Tue, 2 Jul 2024 22:57:19 +0200 Subject: [PATCH] add arrow Signed-off-by: Christoph Schmatzler --- hooks/dist/index.js | 2 +- hooks/dist/index.mjs | 2 +- hooks/tooltip.ts | 2 +- lib/turboprop/headless/tooltip.ex | 16 ++++++++++++++++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/hooks/dist/index.js b/hooks/dist/index.js index 2336625..b4439c1 100644 --- a/hooks/dist/index.js +++ b/hooks/dist/index.js @@ -688,7 +688,7 @@ var Tooltip = class extends Component { return tooltip.connect(this.service.state, this.service.send, normalizeProps); } render() { - const parts = ["trigger", "positioner", "content"]; + const parts = ["trigger", "positioner", "content", "arrow", "arrow-tip"]; for (const part of parts) renderPart(this.el, part, this.api); } onOpenChange(details) { diff --git a/hooks/dist/index.mjs b/hooks/dist/index.mjs index c6acb4f..8680e0b 100644 --- a/hooks/dist/index.mjs +++ b/hooks/dist/index.mjs @@ -645,7 +645,7 @@ var Tooltip = class extends Component { return tooltip.connect(this.service.state, this.service.send, normalizeProps); } render() { - const parts = ["trigger", "positioner", "content"]; + const parts = ["trigger", "positioner", "content", "arrow", "arrow-tip"]; for (const part of parts) renderPart(this.el, part, this.api); } onOpenChange(details) { diff --git a/hooks/tooltip.ts b/hooks/tooltip.ts index 5c87423..21c2d2a 100644 --- a/hooks/tooltip.ts +++ b/hooks/tooltip.ts @@ -14,7 +14,7 @@ class Tooltip extends Component { } render() { - const parts = ["trigger", "positioner", "content"]; + const parts = ["trigger", "positioner", "content", "arrow", "arrow-tip"]; for (const part of parts) renderPart(this.el, part, this.api); } diff --git a/lib/turboprop/headless/tooltip.ex b/lib/turboprop/headless/tooltip.ex index 4e0e17f..d897cd1 100644 --- a/lib/turboprop/headless/tooltip.ex +++ b/lib/turboprop/headless/tooltip.ex @@ -61,6 +61,22 @@ defmodule Turboprop.Headless.Tooltip do attr :rest, :global slot :inner_block + def arrow(assigns) do + render_as_tag_or_component(assigns, %{"data-part" => "arrow"}) + end + + attr :as, :any, default: "div" + attr :rest, :global + slot :inner_block + + def arrow_tip(assigns) do + render_as_tag_or_component(assigns, %{"data-part" => "arrow-tip"}) + end + + attr :as, :any, default: "div" + attr :rest, :global + slot :inner_block + def content(assigns) do render_as_tag_or_component(assigns, %{"data-part" => "content"}) end