From ecea9bee1da6ae48716c20a436274112d67ee2ff Mon Sep 17 00:00:00 2001 From: Johan Dahlborg Date: Thu, 28 Sep 2023 15:04:25 +0200 Subject: [PATCH 1/2] fix(TreeViewDataDrivenItem.svelte): add support for displaying trail content in TreeViewDataDrivenItem component feat(TreeViewItem.svelte): add support for displaying trail content in TreeViewItem component docs(types.ts): add documentation for trail property in TreeViewNode interface --- .../components/TreeView/TreeViewDataDrivenItem.svelte | 4 ++++ .../src/lib/components/TreeView/TreeViewItem.svelte | 9 +++++++++ packages/skeleton/src/lib/components/TreeView/types.ts | 2 ++ 3 files changed, 15 insertions(+) diff --git a/packages/skeleton/src/lib/components/TreeView/TreeViewDataDrivenItem.svelte b/packages/skeleton/src/lib/components/TreeView/TreeViewDataDrivenItem.svelte index fea63fd8d3..a67b619a92 100644 --- a/packages/skeleton/src/lib/components/TreeView/TreeViewDataDrivenItem.svelte +++ b/packages/skeleton/src/lib/components/TreeView/TreeViewDataDrivenItem.svelte @@ -93,6 +93,7 @@ bind:this={treeItems[i]} bind:open={node.open} hideLead={!node.lead} + hideTrail={!node.trail} hideChildren={!node.children || node.children.length === 0} bind:disabled={node.disabled} bind:group @@ -111,6 +112,9 @@ {@html node.lead} + + {@html node.trail} + diff --git a/packages/skeleton/src/lib/components/TreeView/TreeViewItem.svelte b/packages/skeleton/src/lib/components/TreeView/TreeViewItem.svelte index 0b925e0f74..01f14f7717 100644 --- a/packages/skeleton/src/lib/components/TreeView/TreeViewItem.svelte +++ b/packages/skeleton/src/lib/components/TreeView/TreeViewItem.svelte @@ -5,6 +5,7 @@ // Slots: /** * @slot {{}} lead - Allows for an optional leading element, such as an icon. + * @slot {{}} trail - Allows for an optional trailing element, such as an icon. * @slot {{}} children - Provide TreeView item children. */ import { getContext, createEventDispatcher } from 'svelte'; @@ -75,6 +76,8 @@ /** Don't use this prop, workaround until svelte implements conditional slots */ export let hideLead = false; /** Don't use this prop, workaround until svelte implements conditional slots */ + export let hideTrail = false; + /** Don't use this prop, workaround until svelte implements conditional slots */ export let hideChildren = false; // Locals @@ -356,6 +359,12 @@
+ + {#if $$slots.trail && !hideTrail} +
+ +
+ {/if}
diff --git a/packages/skeleton/src/lib/components/TreeView/types.ts b/packages/skeleton/src/lib/components/TreeView/types.ts index 879b738cdc..5b3d458226 100644 --- a/packages/skeleton/src/lib/components/TreeView/types.ts +++ b/packages/skeleton/src/lib/components/TreeView/types.ts @@ -3,6 +3,8 @@ export interface TreeViewNode { content: string; /** Lead content. accepts HTML. */ lead?: string; + /** Trail content. accepts HTML. */ + trail?: string; /** Set open by default on load. */ open?: boolean; /** Set the tree disabled state. */ From 37f288ee28d523767ce368464c6f5c70e7356e75 Mon Sep 17 00:00:00 2001 From: Johan Dahlborg Date: Thu, 28 Sep 2023 15:20:57 +0200 Subject: [PATCH 2/2] chore(TreeViewItem.svelte): update slot description for 'trail' to improve clarity and accuracy --- .../skeleton/src/lib/components/TreeView/TreeViewItem.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/skeleton/src/lib/components/TreeView/TreeViewItem.svelte b/packages/skeleton/src/lib/components/TreeView/TreeViewItem.svelte index 01f14f7717..8c23cba326 100644 --- a/packages/skeleton/src/lib/components/TreeView/TreeViewItem.svelte +++ b/packages/skeleton/src/lib/components/TreeView/TreeViewItem.svelte @@ -5,7 +5,7 @@ // Slots: /** * @slot {{}} lead - Allows for an optional leading element, such as an icon. - * @slot {{}} trail - Allows for an optional trailing element, such as an icon. + * @slot {{}} trail - Allows for an optional trailing element, such as action icons. * @slot {{}} children - Provide TreeView item children. */ import { getContext, createEventDispatcher } from 'svelte';