Compare commits

...

13 Commits

Author SHA1 Message Date
HugoRCD
f14314387a up 2025-07-08 14:17:51 +02:00
HugoRCD
8a20b7118d up 2025-07-08 13:54:40 +02:00
HugoRCD
08da06a78c up 2025-07-08 12:03:20 +02:00
HugoRCD
20fc6bfaad Merge remote-tracking branch 'origin/v3' into refactor/toast-animations 2025-07-08 11:49:42 +02:00
Benjamin Canac
c1427a3264 docs(ComponentSlots): hide ui slot prop content 2025-07-08 11:48:05 +02:00
HugoRCD
2afce33038 Merge remote-tracking branch 'origin/v3' into refactor/toast-animations 2025-07-08 11:47:43 +02:00
HugoRCD
8e82780df0 up 2025-07-08 11:18:00 +02:00
HugoRCD
f81687724e up 2025-07-08 10:52:07 +02:00
Eugen Istoc
6519a74de4 fix(useOverlay): improve props handling by merging existing and new (#4478) 2025-07-08 10:51:34 +02:00
HugoRCD
dbf19913a2 Merge remote-tracking branch 'origin/v3' into refactor/toast-animations 2025-07-08 10:46:35 +02:00
Benjamin Canac
da05c37ffe docs(input): hide password reveal button in edge
Resolves #4484
2025-07-08 10:39:25 +02:00
HugoRCD
faae76e796 up 2025-07-07 15:10:00 +02:00
HugoRCD
6ea33aba68 refactor(Toaster): improve animations 2025-07-07 14:58:12 +02:00
5 changed files with 16 additions and 7 deletions

View File

@@ -34,7 +34,7 @@ const meta = await fetchComponentMeta(name as any)
</ProseCode> </ProseCode>
</ProseTd> </ProseTd>
<ProseTd> <ProseTd>
<HighlightInlineType v-if="slot.type" :type="slot.type" /> <HighlightInlineType v-if="slot.type" :type="slot.type.replace(/ui:\s*\{[^}]*\}/g, 'ui: {}')" />
<MDC v-if="slot.description" :value="slot.description" class="text-toned mt-1" :cache-key="`${kebabCase(route.path)}-${slot.name}-description`" /> <MDC v-if="slot.description" :value="slot.description" class="text-toned mt-1" :cache-key="`${kebabCase(route.path)}-${slot.name}-description`" />
</ProseTd> </ProseTd>

View File

@@ -24,3 +24,10 @@ const password = ref('')
</template> </template>
</UInput> </UInput>
</template> </template>
<style>
/* Hide the password reveal button in Edge */
::-ms-reveal {
display: none;
}
</style>

View File

@@ -120,6 +120,8 @@ function getOffset(index: number) {
:close="(toast.close as boolean)" :close="(toast.close as boolean)"
:data-expanded="expanded" :data-expanded="expanded"
:data-front="!expanded && index === toasts.length - 1" :data-front="!expanded && index === toasts.length - 1"
:data-second="!expanded && index === toasts.length - 2"
:data-third="!expanded && index === toasts.length - 3"
:style="{ :style="{
'--index': (index - toasts.length) + toasts.length, '--index': (index - toasts.length) + toasts.length,
'--before': toasts.length - 1 - index, '--before': toasts.length - 1 - index,

View File

@@ -71,7 +71,7 @@ function _useOverlay() {
isMounted: !!defaultOpen, isMounted: !!defaultOpen,
destroyOnClose: !!destroyOnClose, destroyOnClose: !!destroyOnClose,
originalProps: props || {}, originalProps: props || {},
props: { ...(props || {}) } props: { ...props }
}) })
overlays.push(options) overlays.push(options)
@@ -135,7 +135,7 @@ function _useOverlay() {
const patch = <T extends Component>(id: symbol, props: Partial<ComponentProps<T>>): void => { const patch = <T extends Component>(id: symbol, props: Partial<ComponentProps<T>>): void => {
const overlay = getOverlay(id) const overlay = getOverlay(id)
overlay.props = { ...props } overlay.props = { ...overlay.props, ...props }
} }
const getOverlay = (id: symbol): Overlay => { const getOverlay = (id: symbol): Overlay => {

View File

@@ -1,7 +1,7 @@
export default { export default {
slots: { slots: {
viewport: 'fixed flex flex-col w-[calc(100%-2rem)] sm:w-96 z-[100] data-[expanded=true]:h-(--height) focus:outline-none', viewport: 'fixed flex flex-col w-[calc(100%-2rem)] sm:w-96 z-[100] data-[expanded=true]:h-(--height) focus:outline-none transition-all duration-500 ease-in-out',
base: 'pointer-events-auto absolute inset-x-0 z-(--index) transform-(--transform) data-[expanded=false]:data-[front=false]:h-(--front-height) data-[expanded=false]:data-[front=false]:*:opacity-0 data-[front=false]:*:transition-opacity data-[front=false]:*:duration-100 data-[state=closed]:animate-[toast-closed_200ms_ease-in-out] data-[state=closed]:data-[expanded=false]:data-[front=false]:animate-[toast-collapsed-closed_200ms_ease-in-out] data-[swipe=move]:transition-none transition-[transform,translate,height] duration-200 ease-out' base: 'pointer-events-auto absolute inset-x-0 z-(--index) transform-(--transform) data-[expanded=false]:data-[front=false]:max-h-[calc(var(--front-height)+0.5rem)] data-[expanded=false]:data-[front=false]:min-h-[3rem] data-[expanded=false]:data-[front=false]:overflow-hidden data-[expanded=false]:data-[front=false]:data-[second=false]:data-[third=false]:opacity-0 data-[expanded=false]:data-[second=true]:opacity-60 data-[expanded=false]:data-[third=true]:opacity-30 data-[expanded=false]:data-[front=false]:*:opacity-0 data-[front=false]:*:transition-opacity data-[front=false]:*:duration-200 transition-[transform,translate,max-height,opacity] duration-200 ease-out data-[state=closed]:animate-[toast-closed_200ms_ease-out] data-[state=closed]:data-[expanded=false]:data-[front=false]:animate-[toast-collapsed-closed_200ms_ease-out] data-[swipe=move]:transition-none'
}, },
variants: { variants: {
position: { position: {
@@ -35,13 +35,13 @@ export default {
position: ['top-left', 'top-center', 'top-right'], position: ['top-left', 'top-center', 'top-right'],
class: { class: {
viewport: 'top-4', viewport: 'top-4',
base: 'top-0 data-[state=open]:animate-[slide-in-from-top_200ms_ease-in-out]' base: 'top-0 data-[state=open]:animate-[slide-in-from-top_280ms_cubic-bezier(0.4,0,0.6,1)]'
} }
}, { }, {
position: ['bottom-left', 'bottom-center', 'bottom-right'], position: ['bottom-left', 'bottom-center', 'bottom-right'],
class: { class: {
viewport: 'bottom-4', viewport: 'bottom-4',
base: 'bottom-0 data-[state=open]:animate-[slide-in-from-bottom_200ms_ease-in-out]' base: 'bottom-0 data-[state=open]:animate-[slide-in-from-bottom_280ms_cubic-bezier(0.4,0,0.6,1)]'
} }
}, { }, {
swipeDirection: ['left', 'right'], swipeDirection: ['left', 'right'],