@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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@resee-movies/nuxt-ux",
3
3
  "configKey": "ux",
4
- "version": "0.19.1",
4
+ "version": "0.20.1",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.0"
@@ -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: true }
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-duration:calc(var(--default-transition-duration)*2);transition-property:transform,box-shadow;transition-timing-function:var(--default-transition-timing-function)}.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)}
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(12)}
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' : 'false'"
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" :style="offsetStyles">
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
- behindHeader: { type: Boolean, required: false, default: true },
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
- .image-backdrop{position:relative}.image-backdrop .foreground{position:relative;z-index:1}.image-backdrop .background{max-height:calc(99vh - v-bind(headerOffset));overflow:clip;position:absolute;top:0;width:100%;z-index:0}
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
- behindHeader?: boolean;
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-violet)" },
16
- secondaryColor: { type: String, required: false, default: "var(--color-resee-orange)" },
17
- tertiaryColor: { type: String, required: false, default: "var(--color-resee-aqua)" }
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:v-bind(primaryColor);--color-2:v-bind(secondaryColor);--color-3:v-bind(tertiaryColor);--delay-x:-7s;--delay-y:-8s}.spotlight-2{--size:10vw;--speed:40s;--direction:alternate;--color:v-bind(secondaryColor);--color-2:v-bind(primaryColor);--color-3:v-bind(tertiaryColor);--delay-x:-30s;--delay-y:-1s}.spotlight-3{--size:30vw;--speed:60s;--direction:alternate-reverse;--color:v-bind(tertiaryColor);--color-2:v-bind(primaryColor);--color-3:v-bind(secondaryColor);--delay-x:-13s;--delay-y:0}
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:85%;--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%))}}}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resee-movies/nuxt-ux",
3
- "version": "0.19.1",
3
+ "version": "0.20.1",
4
4
  "description": "The next-gen user experience library for ReSee Movies - currently in development. ",
5
5
  "repository": {
6
6
  "url": "https://github.com/ReSee-Movies/nuxt-ux.git"