@resee-movies/nuxt-ux 0.19.1 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.json +1 -1
- package/dist/runtime/components/Button.vue +1 -1
- package/dist/runtime/components/Button.vue.d.ts +1 -1
- package/dist/runtime/components/CardScroller.vue +3 -3
- package/dist/runtime/components/GlobalHeader.vue +1 -1
- package/dist/runtime/components/GlobalHeaderAnnouncement.vue +1 -1
- package/dist/runtime/components/Image.vue +4 -4
- package/dist/runtime/components/ImageBackdrop.vue +6 -15
- package/dist/runtime/components/ImageBackdrop.vue.d.ts +3 -2
- package/dist/runtime/components/MotionArt.vue +4 -4
- package/dist/runtime/theme/css/brand/image.css +1 -1
- package/package.json +1 -1
package/dist/module.json
CHANGED
|
@@ -61,7 +61,7 @@ const props = defineProps({
|
|
|
61
61
|
tooltip: { type: String, required: false, default: void 0 },
|
|
62
62
|
disabledTooltip: { type: String, required: false, default: void 0 },
|
|
63
63
|
onClick: { type: [Function, Array], required: false },
|
|
64
|
-
type: { type: String, required: false, default: "button" },
|
|
64
|
+
type: { type: [String, null], required: false, default: "button" },
|
|
65
65
|
text: { type: String, required: false },
|
|
66
66
|
icon: { type: String, required: false },
|
|
67
67
|
trailingIcon: { type: String, required: false },
|
|
@@ -25,7 +25,7 @@ export interface ButtonProps extends IconTextPairProps {
|
|
|
25
25
|
tooltip?: string;
|
|
26
26
|
disabledTooltip?: string;
|
|
27
27
|
onClick?: ((evt: Event) => void | Promise<void>) | ((evt: Event) => void | Promise<void>)[];
|
|
28
|
-
type?: 'button' | 'submit' | 'reset';
|
|
28
|
+
type?: 'button' | 'submit' | 'reset' | null;
|
|
29
29
|
}
|
|
30
30
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
31
31
|
click: (evt: Event) => any;
|
|
@@ -68,7 +68,7 @@ const props = defineProps({
|
|
|
68
68
|
toPageContainerEdge: { type: Boolean, required: false, default: true },
|
|
69
69
|
styleWhenTransiting: { type: String, required: false, default: "right" },
|
|
70
70
|
transitOpacity: { type: Boolean, required: false, default: true },
|
|
71
|
-
transitScale: { type: Boolean, required: false, default:
|
|
71
|
+
transitScale: { type: Boolean, required: false, default: false }
|
|
72
72
|
});
|
|
73
73
|
const slots = defineSlots();
|
|
74
74
|
const ruler = ref();
|
|
@@ -167,8 +167,8 @@ function applyStyleChanges(transiting, styleOpacity, styleScale) {
|
|
|
167
167
|
if (styleOpacity) {
|
|
168
168
|
element.style.opacity = "1";
|
|
169
169
|
}
|
|
170
|
-
if (styleScale) {
|
|
171
|
-
element.style.scale = "1";
|
|
170
|
+
if (styleScale && element.firstElementChild instanceof HTMLElement) {
|
|
171
|
+
element.firstElementChild.style.scale = "1";
|
|
172
172
|
}
|
|
173
173
|
} else if (direction === "left" && styleLeft || direction === "right" && styleRight) {
|
|
174
174
|
if (styleOpacity) {
|
|
@@ -135,5 +135,5 @@ watch(
|
|
|
135
135
|
</script>
|
|
136
136
|
|
|
137
137
|
<style scoped>
|
|
138
|
-
.placeholder{height:calc(v-bind(headerHeight)*1px)}header{position:relative;z-index:100}.header-affixed{box-shadow:var(--shadow-heavy);left:0;position:fixed;right:0;top:0;transform:translateY(0)}.header-affixed.header-transit{transition-
|
|
138
|
+
.placeholder{height:calc(v-bind(headerHeight)*1px)}header{position:relative;transition-duration:calc(var(--default-transition-duration)*2);transition-property:box-shadow;transition-timing-function:var(--default-transition-timing-function);z-index:100}.header-affixed{box-shadow:var(--shadow-heavy);left:0;position:fixed;right:0;top:0;transform:translateY(0)}.header-affixed.header-transit{transition-property:transform,box-shadow}.header-affixed.header-hidden{box-shadow:none;transform:translateY(calc(v-bind(drawerHeight)*-1px))}.subheader :deep(.btn){background:transparent;transition:background-color;transition-duration:var(--default-transition-duration);transition-timing-function:var(--default-transition-timing-function)}.subheader :deep(.btn).active{background:var(--color-global-background-accent)}
|
|
139
139
|
</style>
|
|
@@ -45,5 +45,5 @@ function dismissAnnouncement() {
|
|
|
45
45
|
</script>
|
|
46
46
|
|
|
47
47
|
<style scoped>
|
|
48
|
-
@reference "tailwindcss";.announcement{--announcement-bg-color:#fff;@variant dark{--announcement-bg-color:#000}background-image:linear-gradient(to bottom,var(--announcement-bg-color) 0 calc(100% - 10px),transparent),linear-gradient(to right,var(--colorscale-resee-linear));padding-bottom:6px}.announcement.dismissable>div{padding-right:--spacing(
|
|
48
|
+
@reference "tailwindcss";.announcement{--announcement-bg-color:#fff;position:relative;z-index:100;@variant dark{--announcement-bg-color:#000}background-image:linear-gradient(to bottom,var(--announcement-bg-color) 0 calc(100% - 10px),transparent),linear-gradient(to right,var(--colorscale-resee-linear));padding-bottom:6px}.announcement.dismissable>div{padding-right:--spacing(16)}
|
|
49
49
|
</style>
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
:class = "[
|
|
11
11
|
'image',
|
|
12
12
|
{
|
|
13
|
-
glass: props.glassy && !(imgHasError || isImgLoading || props.loading),
|
|
14
|
-
scale: props.scaleToParent
|
|
13
|
+
'glass-effect': props.glassy && !(imgHasError || isImgLoading || props.loading),
|
|
14
|
+
'scale-to-parent': props.scaleToParent
|
|
15
15
|
}
|
|
16
16
|
]"
|
|
17
17
|
>
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
:loadStyle = "props.loadStyle"
|
|
35
35
|
class = "transition-opacity duration-300"
|
|
36
36
|
:class = "{ 'opacity-0': isImgLoading || props.loading || imgHasError }"
|
|
37
|
-
:aria-hidden = "imgHasError ? 'true' :
|
|
37
|
+
:aria-hidden = "imgHasError ? 'true' : void 0"
|
|
38
38
|
@loading = "handleLoading"
|
|
39
39
|
@load = "handleLoaded"
|
|
40
40
|
@error = "handleError"
|
|
@@ -92,5 +92,5 @@ function handleError(err) {
|
|
|
92
92
|
</script>
|
|
93
93
|
|
|
94
94
|
<style scoped>
|
|
95
|
-
@layer components{.image{display:block;max-width:-moz-fit-content;max-width:fit-content;overflow:clip;position:relative}.image.glass:after{background-image:linear-gradient(110deg,transparent 25%,hsla(0,0%,100%,.15) 80%,transparent);content:var(--zero-width-space);inset:0;position:absolute}.image :deep(.icon){color:var(--color-global-background-accent);left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%)}.image.scale{max-width:unset}.image.scale :deep(img){min-width:100%}}
|
|
95
|
+
@layer components{.image{display:block;max-width:-moz-fit-content;max-width:fit-content;overflow:clip;position:relative}.image.glass-effect:after{background-image:linear-gradient(110deg,transparent 25%,hsla(0,0%,100%,.15) 80%,transparent);content:var(--zero-width-space);inset:0;position:absolute}.image :deep(.icon){color:var(--color-global-background-accent);left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%)}.image.scale-to-parent{max-width:unset}.image.scale-to-parent :deep(img){min-width:100%}}
|
|
96
96
|
</style>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="image-backdrop"
|
|
3
|
-
<div :class="['background', props.maskPreset]">
|
|
2
|
+
<div class="image-backdrop">
|
|
3
|
+
<div :class="['background', { 'fixed-position': props.fixedPosition }, props.maskPreset, props.backgroundClass]">
|
|
4
4
|
<slot name="background">
|
|
5
5
|
<Transition name="fade" mode="out-in">
|
|
6
6
|
<LazyImage
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
v-else-if = "Array.isArray(props.src)"
|
|
16
16
|
v-bind = "props.multiImageOptions"
|
|
17
17
|
:images = "props.src"
|
|
18
|
-
class = "bg-global-background"
|
|
19
18
|
/>
|
|
20
19
|
|
|
21
20
|
<LazyMotionArt
|
|
@@ -38,29 +37,21 @@
|
|
|
38
37
|
</script>
|
|
39
38
|
|
|
40
39
|
<script setup>
|
|
41
|
-
import { computed } from "vue";
|
|
42
|
-
import { useGlobalHeaderState } from "../composables/use-global-header-state";
|
|
43
40
|
import LazyImage from "./Image.vue";
|
|
44
41
|
import LazyImageTiler from "./ImageTiler.vue";
|
|
45
42
|
import LazyMotionArt from "./MotionArt.vue";
|
|
46
43
|
const props = defineProps({
|
|
47
44
|
src: { type: null, required: false, default: void 0 },
|
|
48
|
-
|
|
45
|
+
fixedPosition: { type: Boolean, required: false, default: true },
|
|
49
46
|
motionArt: { type: Boolean, required: false, default: true },
|
|
50
47
|
maskPreset: { type: [String, Array], required: false, default: void 0 },
|
|
51
48
|
singleImageOptions: { type: Object, required: false, default: void 0 },
|
|
52
49
|
multiImageOptions: { type: Object, required: false, default: void 0 },
|
|
53
|
-
motionArtOptions: { type: Object, required: false }
|
|
54
|
-
}
|
|
55
|
-
const headerState = useGlobalHeaderState();
|
|
56
|
-
const offsetStyles = computed(() => {
|
|
57
|
-
return props.behindHeader ? headerState.offsetFromHeaderStyles.value : void 0;
|
|
58
|
-
});
|
|
59
|
-
const headerOffset = computed(() => {
|
|
60
|
-
return props.behindHeader ? `0px` : `${headerState.headerHeight.value}px`;
|
|
50
|
+
motionArtOptions: { type: Object, required: false },
|
|
51
|
+
backgroundClass: { type: null, required: false }
|
|
61
52
|
});
|
|
62
53
|
</script>
|
|
63
54
|
|
|
64
55
|
<style scoped>
|
|
65
|
-
|
|
56
|
+
@reference "tailwindcss";.image-backdrop{position:relative}.image-backdrop .foreground{position:relative;z-index:1}@keyframes shrink-image{0%{left:-20px;right:-20px}to{left:0;right:0}}@keyframes fade-image{0%{opacity:1}to{opacity:.7}}.image-backdrop .background{left:0;overflow:clip;position:absolute;right:0;top:0;z-index:0}.image-backdrop .background.fixed-position{position:fixed}.image-backdrop .background.fixed-position:has(.image){left:-20px;right:-20px}.image-backdrop .background.fixed-position{@variant supports-animation-timeline{&:has(.image){animation:shrink-image linear forwards,fade-image linear forwards}&:has(.tiler){animation:fade-image linear forwards}&:has(.image,.tiler){animation-range:0 calc(56.25vw - 110px);animation-timeline:scroll();@variant sm{animation-range:0 150px}}}}
|
|
66
57
|
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ImageFileDescriptor } from '@resee-movies/utilities/images/normalize-image-file-descriptor';
|
|
2
|
-
import type { ImageMaskPreset } from '../types/index.js';
|
|
2
|
+
import type { HTMLElementClassNames, ImageMaskPreset } from '../types/index.js';
|
|
3
3
|
import type { ImageProps } from './Image.vue.js';
|
|
4
4
|
import type { ImageBaseProps } from './ImageBase.vue.js';
|
|
5
5
|
import type { ImageTilerProps } from './ImageTiler.vue.js';
|
|
@@ -8,12 +8,13 @@ export type SingleImageProps = Omit<ImageBaseProps, 'src' | 'alt' | 'loadStyle'>
|
|
|
8
8
|
export type MultiImageProps = Omit<ImageTilerProps, 'images' | 'maskPreset'>;
|
|
9
9
|
export interface ImageBackdropProps {
|
|
10
10
|
src?: ImageFileDescriptor | ImageFileDescriptor[] | null | undefined;
|
|
11
|
-
|
|
11
|
+
fixedPosition?: boolean;
|
|
12
12
|
motionArt?: boolean;
|
|
13
13
|
maskPreset?: ImageMaskPreset | ImageMaskPreset[];
|
|
14
14
|
singleImageOptions?: SingleImageProps;
|
|
15
15
|
multiImageOptions?: MultiImageProps;
|
|
16
16
|
motionArtOptions?: MotionArtProps;
|
|
17
|
+
backgroundClass?: HTMLElementClassNames;
|
|
17
18
|
}
|
|
18
19
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ImageBackdropProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ImageBackdropProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
19
20
|
background?: (props: {}) => any;
|
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
|
|
13
13
|
<script setup>
|
|
14
14
|
defineProps({
|
|
15
|
-
primaryColor: { type: String, required: false, default: "var(--color-resee-
|
|
16
|
-
secondaryColor: { type: String, required: false, default: "
|
|
17
|
-
tertiaryColor: { type: String, required: false, default: "
|
|
15
|
+
primaryColor: { type: String, required: false, default: "var(--color-resee-indigo)" },
|
|
16
|
+
secondaryColor: { type: String, required: false, default: "initial" },
|
|
17
|
+
tertiaryColor: { type: String, required: false, default: "initial" }
|
|
18
18
|
});
|
|
19
19
|
</script>
|
|
20
20
|
|
|
21
21
|
<style scoped>
|
|
22
|
-
@reference "tailwindcss";.motion-art{container-type:size}.spotlight{animation:x var(--speed) linear infinite var(--direction);animation-delay:var(--delay-x);filter:blur(3px);position:absolute}.spotlight>div{animation:y calc(var(--speed)*.7) linear infinite var(--direction),c var(--speed) linear infinite var(--direction);animation-delay:var(--delay-y);background:var(--color);border-radius:100%;height:var(--size);opacity:.5;width:var(--size)}@variant motion-reduce{.spotlight,.spotlight>div{animation-play-state:paused}}@keyframes x{to{filter:blur(10px);transform:translateX(calc(100cqw - var(--size)))}}@keyframes y{to{opacity:.3;transform:translateY(calc(100cqh - var(--size)))}}@keyframes c{33%{background:var(--color-2)}66%{background:var(--color-3)}to{background:var(--color)}}.spotlight-1{--size:20vw;--speed:50s;--direction:alternate;--color:
|
|
22
|
+
@reference "tailwindcss";.motion-art{--motion-art-color-1:v-bind(primaryColor);--motion-art-color-2-bound:v-bind(secondaryColor);--motion-art-color-2:var(--motion-art-color-2-bound,oklch(from var(--motion-art-color-1) l c calc(h + 135)));--motion-art-color-3-bound:v-bind(tertiaryColor);--motion-art-color-3:var(--motion-art-color-3-bound,oklch(from var(--motion-art-color-1) l c calc(h + 270)));container-type:size}.spotlight{animation:x var(--speed) linear infinite var(--direction);animation-delay:var(--delay-x);filter:blur(3px);position:absolute}.spotlight>div{animation:y calc(var(--speed)*.7) linear infinite var(--direction),c var(--speed) linear infinite var(--direction);animation-delay:var(--delay-y);background:var(--color);border-radius:100%;height:var(--size);opacity:.5;width:var(--size)}@variant motion-reduce{.spotlight,.spotlight>div{animation-play-state:paused}}@keyframes x{to{filter:blur(10px);transform:translateX(calc(100cqw - var(--size)))}}@keyframes y{to{opacity:.3;transform:translateY(calc(100cqh - var(--size)))}}@keyframes c{33%{background:var(--color-2)}66%{background:var(--color-3)}to{background:var(--color)}}.spotlight-1{--size:20vw;--speed:50s;--direction:alternate;--color:var(--motion-art-color-1);--color-2:var(--motion-art-color-2);--color-3:var(--motion-art-color-3);--delay-x:-7s;--delay-y:-8s}.spotlight-2{--size:10vw;--speed:40s;--direction:alternate;--color:var(--motion-art-color-2);--color-2:var(--motion-art-color-1);--color-3:var(--motion-art-color-3);--delay-x:-30s;--delay-y:-1s}.spotlight-3{--size:30vw;--speed:60s;--direction:alternate-reverse;--color:var(--motion-art-color-3);--color-2:var(--motion-art-color-1);--color-3:var(--motion-art-color-2);--delay-x:-13s;--delay-y:0}
|
|
23
23
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer base{:root{--image-mask-gradient-opacity-dir:to bottom;--image-mask-gradient-opacity-stop:
|
|
1
|
+
@layer base{:root{--image-mask-gradient-opacity-dir:to bottom;--image-mask-gradient-opacity-stop:50%;--image-mask-gradient-dir:to bottom;--image-mask-gradient-stop:80%;--image-mask-color:var(--color-global-background);--image-mask-alpha-percent:85%}}@utility image-mask-washout{@apply relative before:z-1 before:absolute before:inset-0;&:before{background:--alpha(var(--image-mask-color)/var(--image-mask-alpha-percent))}}@utility image-mask-gradient-washout{@apply relative before:z-1 before:absolute before:inset-0;&:before{background:linear-gradient(var(--image-mask-gradient-dir),--alpha(var(--image-mask-color)/var(--image-mask-alpha-percent)) var(--image-mask-gradient-stop),var(--image-mask-color))}}@utility image-mask-gradient-washout-lite{@apply relative before:z-1 before:absolute before:inset-0;--image-mask-alpha-percent:10%;--image-mask-gradient-stop:30%;&:before{background:linear-gradient(var(--image-mask-gradient-dir),--alpha(var(--image-mask-color)/var(--image-mask-alpha-percent)) var(--image-mask-gradient-stop),var(--image-mask-color))}}@utility image-mask-gradient-opacity{-webkit-mask-image:linear-gradient(var(--image-mask-gradient-opacity-dir),#000 var(--image-mask-gradient-opacity-stop),transparent);mask-image:linear-gradient(var(--image-mask-gradient-opacity-dir),#000 var(--image-mask-gradient-opacity-stop),transparent)}@utility image-mask-hero{@apply relative before:z-1 before:absolute before:inset-0;--image-mask-color:#fff;@variant dark{--image-mask-color:#000}&:before{background:--alpha(var(--image-mask-color)/75%);@variant sm{background:linear-gradient(to right,--alpha(var(--image-mask-color)/90%) 35%,--alpha(var(--image-mask-color)/15%))}}}
|
package/package.json
CHANGED