reduce item gap and tweak sizing in ElementPicker
This commit is contained in:
parent
816c252ba3
commit
ebfe40b219
2 changed files with 42 additions and 40 deletions
|
|
@ -95,10 +95,11 @@
|
||||||
{options}
|
{options}
|
||||||
value={Array.isArray(value) ? value : value !== undefined ? [value] : []}
|
value={Array.isArray(value) ? value : value !== undefined ? [value] : []}
|
||||||
onValueChange={handleMultipleChange}
|
onValueChange={handleMultipleChange}
|
||||||
{size}
|
size="medium"
|
||||||
{contained}
|
{contained}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
placeholder="Select elements..."
|
placeholder="Select elements..."
|
||||||
|
fullWidth={true}
|
||||||
class={className}
|
class={className}
|
||||||
/>
|
/>
|
||||||
{:else}
|
{:else}
|
||||||
|
|
@ -106,10 +107,11 @@
|
||||||
{options}
|
{options}
|
||||||
value={typeof value === 'number' ? value : undefined}
|
value={typeof value === 'number' ? value : undefined}
|
||||||
onValueChange={handleSingleChange}
|
onValueChange={handleSingleChange}
|
||||||
{size}
|
size="medium"
|
||||||
{contained}
|
{contained}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
placeholder="Select element"
|
placeholder="Select element"
|
||||||
|
fullWidth={true}
|
||||||
class={className}
|
class={className}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@
|
||||||
type="multiple"
|
type="multiple"
|
||||||
value={stringValue as string[]}
|
value={stringValue as string[]}
|
||||||
onValueChange={handleMultipleChange}
|
onValueChange={handleMultipleChange}
|
||||||
class="group"
|
class="element-group"
|
||||||
{disabled}
|
{disabled}
|
||||||
>
|
>
|
||||||
{#each elements as element}
|
{#each elements as element}
|
||||||
|
|
@ -109,13 +109,13 @@
|
||||||
{#snippet children()}
|
{#snippet children()}
|
||||||
<ToggleGroup.Item
|
<ToggleGroup.Item
|
||||||
value={String(element)}
|
value={String(element)}
|
||||||
class="item"
|
class="element-item"
|
||||||
{disabled}
|
{disabled}
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
src={getElementImage(element)}
|
src={getElementImage(element)}
|
||||||
alt={getLabel(element)}
|
alt={getLabel(element)}
|
||||||
class="image"
|
class="element-image"
|
||||||
/>
|
/>
|
||||||
</ToggleGroup.Item>
|
</ToggleGroup.Item>
|
||||||
{/snippet}
|
{/snippet}
|
||||||
|
|
@ -127,7 +127,7 @@
|
||||||
type="single"
|
type="single"
|
||||||
value={stringValue as string | undefined}
|
value={stringValue as string | undefined}
|
||||||
onValueChange={handleSingleChange}
|
onValueChange={handleSingleChange}
|
||||||
class="group"
|
class="element-group"
|
||||||
{disabled}
|
{disabled}
|
||||||
>
|
>
|
||||||
{#each elements as element}
|
{#each elements as element}
|
||||||
|
|
@ -135,13 +135,13 @@
|
||||||
{#snippet children()}
|
{#snippet children()}
|
||||||
<ToggleGroup.Item
|
<ToggleGroup.Item
|
||||||
value={String(element)}
|
value={String(element)}
|
||||||
class="item"
|
class="element-item"
|
||||||
{disabled}
|
{disabled}
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
src={getElementImage(element)}
|
src={getElementImage(element)}
|
||||||
alt={getLabel(element)}
|
alt={getLabel(element)}
|
||||||
class="image"
|
class="element-image"
|
||||||
/>
|
/>
|
||||||
</ToggleGroup.Item>
|
</ToggleGroup.Item>
|
||||||
{/snippet}
|
{/snippet}
|
||||||
|
|
@ -161,7 +161,7 @@
|
||||||
type="multiple"
|
type="multiple"
|
||||||
value={stringValue as string[]}
|
value={stringValue as string[]}
|
||||||
onValueChange={handleMultipleChange}
|
onValueChange={handleMultipleChange}
|
||||||
class="group"
|
class="element-group"
|
||||||
{disabled}
|
{disabled}
|
||||||
>
|
>
|
||||||
{#each elements as element}
|
{#each elements as element}
|
||||||
|
|
@ -169,10 +169,10 @@
|
||||||
{#snippet children()}
|
{#snippet children()}
|
||||||
<ToggleGroup.Item
|
<ToggleGroup.Item
|
||||||
value={String(element)}
|
value={String(element)}
|
||||||
class="item"
|
class="element-item"
|
||||||
{disabled}
|
{disabled}
|
||||||
>
|
>
|
||||||
<img src={getElementImage(element)} alt={getLabel(element)} class="image" />
|
<img src={getElementImage(element)} alt={getLabel(element)} class="element-image" />
|
||||||
</ToggleGroup.Item>
|
</ToggleGroup.Item>
|
||||||
{/snippet}
|
{/snippet}
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
@ -183,7 +183,7 @@
|
||||||
type="single"
|
type="single"
|
||||||
value={stringValue as string | undefined}
|
value={stringValue as string | undefined}
|
||||||
onValueChange={handleSingleChange}
|
onValueChange={handleSingleChange}
|
||||||
class="group"
|
class="element-group"
|
||||||
{disabled}
|
{disabled}
|
||||||
>
|
>
|
||||||
{#each elements as element}
|
{#each elements as element}
|
||||||
|
|
@ -191,10 +191,10 @@
|
||||||
{#snippet children()}
|
{#snippet children()}
|
||||||
<ToggleGroup.Item
|
<ToggleGroup.Item
|
||||||
value={String(element)}
|
value={String(element)}
|
||||||
class="item"
|
class="element-item"
|
||||||
{disabled}
|
{disabled}
|
||||||
>
|
>
|
||||||
<img src={getElementImage(element)} alt={getLabel(element)} class="image" />
|
<img src={getElementImage(element)} alt={getLabel(element)} class="element-image" />
|
||||||
</ToggleGroup.Item>
|
</ToggleGroup.Item>
|
||||||
{/snippet}
|
{/snippet}
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
@ -229,13 +229,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.group) {
|
:global(.element-group) {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: $unit-half;
|
gap: $unit-quarter;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item) {
|
:global(.element-item) {
|
||||||
all: unset;
|
all: unset;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border-radius: $full-corner;
|
border-radius: $full-corner;
|
||||||
|
|
@ -243,87 +243,87 @@
|
||||||
@include smooth-transition($duration-quick, background-color, opacity);
|
@include smooth-transition($duration-quick, background-color, opacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item:focus-visible) {
|
:global(.element-item:focus-visible) {
|
||||||
@include focus-ring($blue);
|
@include focus-ring($blue);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item:disabled) {
|
:global(.element-item:disabled) {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Element-specific hover and selected states
|
// Element-specific hover and selected states
|
||||||
:global(.item[data-value='0']:hover:not(:disabled)) {
|
:global(.element-item[data-value='0']:hover:not(:disabled)) {
|
||||||
background-color: var(--null-nav-hover-bg);
|
background-color: var(--null-nav-hover-bg);
|
||||||
}
|
}
|
||||||
:global(.item[data-value='0'][data-state='on']:not(:hover)) {
|
:global(.element-item[data-value='0'][data-state='on']) {
|
||||||
background-color: var(--null-nav-selected-bg);
|
background-color: var(--null-nav-selected-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item[data-value='1']:hover:not(:disabled)) {
|
:global(.element-item[data-value='1']:hover:not(:disabled)) {
|
||||||
background-color: var(--wind-nav-hover-bg);
|
background-color: var(--wind-nav-hover-bg);
|
||||||
}
|
}
|
||||||
:global(.item[data-value='1'][data-state='on']:not(:hover)) {
|
:global(.element-item[data-value='1'][data-state='on']) {
|
||||||
background-color: var(--wind-nav-selected-bg);
|
background-color: var(--wind-nav-selected-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item[data-value='2']:hover:not(:disabled)) {
|
:global(.element-item[data-value='2']:hover:not(:disabled)) {
|
||||||
background-color: var(--fire-nav-hover-bg);
|
background-color: var(--fire-nav-hover-bg);
|
||||||
}
|
}
|
||||||
:global(.item[data-value='2'][data-state='on']:not(:hover)) {
|
:global(.element-item[data-value='2'][data-state='on']) {
|
||||||
background-color: var(--fire-nav-selected-bg);
|
background-color: var(--fire-nav-selected-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item[data-value='3']:hover:not(:disabled)) {
|
:global(.element-item[data-value='3']:hover:not(:disabled)) {
|
||||||
background-color: var(--water-nav-hover-bg);
|
background-color: var(--water-nav-hover-bg);
|
||||||
}
|
}
|
||||||
:global(.item[data-value='3'][data-state='on']:not(:hover)) {
|
:global(.element-item[data-value='3'][data-state='on']) {
|
||||||
background-color: var(--water-nav-selected-bg);
|
background-color: var(--water-nav-selected-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item[data-value='4']:hover:not(:disabled)) {
|
:global(.element-item[data-value='4']:hover:not(:disabled)) {
|
||||||
background-color: var(--earth-nav-hover-bg);
|
background-color: var(--earth-nav-hover-bg);
|
||||||
}
|
}
|
||||||
:global(.item[data-value='4'][data-state='on']:not(:hover)) {
|
:global(.element-item[data-value='4'][data-state='on']) {
|
||||||
background-color: var(--earth-nav-selected-bg);
|
background-color: var(--earth-nav-selected-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item[data-value='5']:hover:not(:disabled)) {
|
:global(.element-item[data-value='5']:hover:not(:disabled)) {
|
||||||
background-color: var(--dark-nav-hover-bg);
|
background-color: var(--dark-nav-hover-bg);
|
||||||
}
|
}
|
||||||
:global(.item[data-value='5'][data-state='on']:not(:hover)) {
|
:global(.element-item[data-value='5'][data-state='on']) {
|
||||||
background-color: var(--dark-nav-selected-bg);
|
background-color: var(--dark-nav-selected-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.item[data-value='6']:hover:not(:disabled)) {
|
:global(.element-item[data-value='6']:hover:not(:disabled)) {
|
||||||
background-color: var(--light-nav-hover-bg);
|
background-color: var(--light-nav-hover-bg);
|
||||||
}
|
}
|
||||||
:global(.item[data-value='6'][data-state='on']:not(:hover)) {
|
:global(.element-item[data-value='6'][data-state='on']) {
|
||||||
background-color: var(--light-nav-selected-bg);
|
background-color: var(--light-nav-selected-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.image) {
|
:global(.element-image) {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Size variants
|
// Size variants
|
||||||
.small {
|
.small {
|
||||||
:global(.item) {
|
:global(.element-item) {
|
||||||
padding: $unit-half;
|
padding: $unit-half;
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.image) {
|
:global(.element-image) {
|
||||||
width: $unit-3x;
|
width: calc($unit * 3.25);
|
||||||
height: $unit-3x;
|
height: calc($unit * 3.25);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.regular {
|
.regular {
|
||||||
:global(.item) {
|
:global(.element-item) {
|
||||||
padding: $unit-half;
|
padding: $unit-half;
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.image) {
|
:global(.element-image) {
|
||||||
width: $unit-4x;
|
width: $unit-4x;
|
||||||
height: $unit-4x;
|
height: $unit-4x;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue