add size and contained variants to uncap indicator
This commit is contained in:
parent
ca3aa0687f
commit
f7c209d5ee
3 changed files with 43 additions and 1 deletions
|
|
@ -11,6 +11,7 @@
|
||||||
editable?: boolean
|
editable?: boolean
|
||||||
interactive?: boolean
|
interactive?: boolean
|
||||||
tabindex?: number
|
tabindex?: number
|
||||||
|
size?: 'regular' | 'small'
|
||||||
onStarClick?: () => void
|
onStarClick?: () => void
|
||||||
onFragmentClick?: (newStage: number) => void
|
onFragmentClick?: (newStage: number) => void
|
||||||
onFragmentHover?: (newStage: number) => void
|
onFragmentHover?: (newStage: number) => void
|
||||||
|
|
@ -23,6 +24,7 @@
|
||||||
editable = false,
|
editable = false,
|
||||||
interactive = false,
|
interactive = false,
|
||||||
tabindex,
|
tabindex,
|
||||||
|
size = 'regular',
|
||||||
onStarClick,
|
onStarClick,
|
||||||
onFragmentClick,
|
onFragmentClick,
|
||||||
onFragmentHover
|
onFragmentHover
|
||||||
|
|
@ -165,6 +167,7 @@
|
||||||
class:stage3={stage === 3}
|
class:stage3={stage === 3}
|
||||||
class:stage4={stage === 4}
|
class:stage4={stage === 4}
|
||||||
class:stage5={stage === 5}
|
class:stage5={stage === 5}
|
||||||
|
class:small={size === 'small'}
|
||||||
onclick={handleClick}
|
onclick={handleClick}
|
||||||
onmouseleave={interactive ? handleMouseLeave : undefined}
|
onmouseleave={interactive ? handleMouseLeave : undefined}
|
||||||
bind:this={starElement}
|
bind:this={starElement}
|
||||||
|
|
@ -211,6 +214,10 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.small {
|
||||||
|
--size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
transform: scale(1.2);
|
transform: scale(1.2);
|
||||||
}
|
}
|
||||||
|
|
@ -332,6 +339,10 @@
|
||||||
transform: scale(1.2);
|
transform: scale(1.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.small .figure {
|
||||||
|
--size: 12px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.popover {
|
.popover {
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,8 @@
|
||||||
special?: boolean | undefined
|
special?: boolean | undefined
|
||||||
className?: string | undefined
|
className?: string | undefined
|
||||||
editable?: boolean | undefined
|
editable?: boolean | undefined
|
||||||
|
contained?: boolean | undefined
|
||||||
|
size?: 'regular' | 'small' | undefined
|
||||||
updateUncap?: ((index: number) => void) | undefined
|
updateUncap?: ((index: number) => void) | undefined
|
||||||
updateTranscendence?: ((index: number) => void) | undefined
|
updateTranscendence?: ((index: number) => void) | undefined
|
||||||
}
|
}
|
||||||
|
|
@ -27,6 +29,7 @@
|
||||||
ulb?: boolean
|
ulb?: boolean
|
||||||
index: number
|
index: number
|
||||||
tabindex?: number
|
tabindex?: number
|
||||||
|
size?: 'regular' | 'small'
|
||||||
onStarClick: (index: number, empty: boolean) => void
|
onStarClick: (index: number, empty: boolean) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -38,6 +41,7 @@
|
||||||
editable?: boolean
|
editable?: boolean
|
||||||
interactive?: boolean
|
interactive?: boolean
|
||||||
tabindex?: number
|
tabindex?: number
|
||||||
|
size?: 'regular' | 'small'
|
||||||
onStarClick?: () => void
|
onStarClick?: () => void
|
||||||
onFragmentClick?: (newStage: number) => void
|
onFragmentClick?: (newStage: number) => void
|
||||||
onFragmentHover?: (newStage: number) => void
|
onFragmentHover?: (newStage: number) => void
|
||||||
|
|
@ -58,6 +62,8 @@
|
||||||
special = false,
|
special = false,
|
||||||
className,
|
className,
|
||||||
editable = false,
|
editable = false,
|
||||||
|
contained = false,
|
||||||
|
size = 'regular',
|
||||||
updateUncap,
|
updateUncap,
|
||||||
updateTranscendence
|
updateTranscendence
|
||||||
}: Props = $props()
|
}: Props = $props()
|
||||||
|
|
@ -119,6 +125,7 @@
|
||||||
type,
|
type,
|
||||||
editable,
|
editable,
|
||||||
interactive: editable,
|
interactive: editable,
|
||||||
|
size,
|
||||||
onFragmentClick: editable ? handleTranscendenceUpdate : undefined
|
onFragmentClick: editable ? handleTranscendenceUpdate : undefined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -137,6 +144,7 @@
|
||||||
ulb: options.ulb,
|
ulb: options.ulb,
|
||||||
special: options.special,
|
special: options.special,
|
||||||
tabindex: editable ? 0 : undefined,
|
tabindex: editable ? 0 : undefined,
|
||||||
|
size,
|
||||||
onStarClick: editable ? toggleStar : () => {}
|
onStarClick: editable ? toggleStar : () => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -194,7 +202,7 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="uncap-indicator {className || ''}">
|
<div class="uncap-indicator {className || ''}" class:contained class:small={size === 'small'}>
|
||||||
<ul class="stars">
|
<ul class="stars">
|
||||||
{#each Array(numStars) as _, i}
|
{#each Array(numStars) as _, i}
|
||||||
{@const star = renderStar(i)}
|
{@const star = renderStar(i)}
|
||||||
|
|
@ -210,8 +218,20 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
@use '$src/themes/spacing' as spacing;
|
||||||
|
|
||||||
.uncap-indicator {
|
.uncap-indicator {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
|
&.contained {
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
border-radius: 999px;
|
||||||
|
padding: spacing.$unit;
|
||||||
|
|
||||||
|
&.small {
|
||||||
|
padding: spacing.$unit-half;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.stars {
|
.stars {
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
ulb?: boolean
|
ulb?: boolean
|
||||||
index: number
|
index: number
|
||||||
tabindex?: number
|
tabindex?: number
|
||||||
|
size?: 'regular' | 'small'
|
||||||
onStarClick: (index: number, empty: boolean) => void
|
onStarClick: (index: number, empty: boolean) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -18,6 +19,7 @@
|
||||||
ulb = false,
|
ulb = false,
|
||||||
index,
|
index,
|
||||||
tabindex,
|
tabindex,
|
||||||
|
size = 'regular',
|
||||||
onStarClick
|
onStarClick
|
||||||
}: Props = $props()
|
}: Props = $props()
|
||||||
|
|
||||||
|
|
@ -33,6 +35,7 @@
|
||||||
class:mlb={!special}
|
class:mlb={!special}
|
||||||
class:flb
|
class:flb
|
||||||
class:ulb
|
class:ulb
|
||||||
|
class:small={size === 'small'}
|
||||||
{tabindex}
|
{tabindex}
|
||||||
onclick={handleClick}
|
onclick={handleClick}
|
||||||
role="button"
|
role="button"
|
||||||
|
|
@ -49,6 +52,10 @@
|
||||||
width: var(--size);
|
width: var(--size);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.small {
|
||||||
|
--size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
transform: scale(1.2);
|
transform: scale(1.2);
|
||||||
}
|
}
|
||||||
|
|
@ -101,6 +108,10 @@
|
||||||
--size: 14px;
|
--size: 14px;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
|
|
||||||
|
&.small {
|
||||||
|
--size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue