diff --git a/src/uix/eidos/components/combobox/combobox-clear-button.svelte b/src/uix/eidos/components/combobox/combobox-clear-button.svelte index ac6570e3e..1901139bf 100644 --- a/src/uix/eidos/components/combobox/combobox-clear-button.svelte +++ b/src/uix/eidos/components/combobox/combobox-clear-button.svelte @@ -1,29 +1,62 @@ - {#if children} - {@render children()} - {:else} - - {/if} + {#snippet child({ props })} + {#if outerChild} + {@render outerChild({ props })} + {:else} + + {/if} + {/snippet} diff --git a/src/uix/eidos/components/combobox/combobox.css b/src/uix/eidos/components/combobox/combobox.css index 0a3672e63..8dd19b8bb 100644 --- a/src/uix/eidos/components/combobox/combobox.css +++ b/src/uix/eidos/components/combobox/combobox.css @@ -241,38 +241,10 @@ transition: transform var(--duration-fast) var(--ease-default); } -[data-combobox-clear-button] { - display: inline-flex; - flex: 0 0 auto; - align-items: center; - justify-content: center; - inline-size: var(--control-height-xs); - block-size: var(--control-height-xs); - padding: 0; - border: 0; - border-radius: var(--radius-full); - background: transparent; - color: var(--color-content-secondary); - font: inherit; - cursor: pointer; - outline: none; - transition: - background var(--duration-fast) var(--ease-default), - color var(--duration-fast) var(--ease-default), - opacity var(--duration-fast) var(--ease-default); -} - -[data-combobox-clear-button]:hover:not(:disabled):not([data-disabled]) { - background: var(--color-surface-raised); - color: var(--color-content-primary); -} - -[data-combobox-clear-button]:focus-visible { - box-shadow: - 0 0 0 var(--focus-ring-offset) var(--color-surface-default), - 0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring-color); -} - +/* ClearButton chrome (border, focus ring, padding, hover) comes from + * `button.css` since the eidos wrapper renders an icon-only ` + {/if} + {/snippet} diff --git a/src/uix/eidos/components/search-field/search-field.css b/src/uix/eidos/components/search-field/search-field.css index cadf478a1..846fe35fe 100644 --- a/src/uix/eidos/components/search-field/search-field.css +++ b/src/uix/eidos/components/search-field/search-field.css @@ -163,36 +163,10 @@ cursor: not-allowed; } -[data-search-field-clear-trigger] { - display: inline-flex; - flex: 0 0 auto; - align-items: center; - justify-content: center; - inline-size: var(--search-field-clear-size); - block-size: var(--search-field-clear-size); - border: var(--search-field-clear-border-width) solid var(--search-field-clear-border); - border-radius: var(--search-field-clear-radius); - background: var(--search-field-clear-bg); - color: var(--search-field-clear-color); - font: inherit; - cursor: pointer; - outline: none; - transition: - background var(--search-field-transition-duration) var(--search-field-transition-ease), - border-color var(--search-field-transition-duration) var(--search-field-transition-ease), - color var(--search-field-transition-duration) var(--search-field-transition-ease); -} - -[data-search-field-clear-trigger]:hover:not([data-disabled]) { - border-color: var(--search-field-clear-border-hover); - background: var(--search-field-clear-bg-hover); - color: var(--search-field-clear-color-hover); -} - -[data-search-field-clear-trigger]:focus-visible { - box-shadow: var(--search-field-clear-focus-shadow); -} - +/* ClearTrigger chrome (border, focus ring, padding, hover) comes from + * `button.css` since the eidos wrapper renders an icon-only `