@phosart/common 0.4.24 → 0.4.27

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/Image.svelte CHANGED
@@ -11,6 +11,7 @@
11
11
  nolqip?: boolean;
12
12
  onloaded?: () => void;
13
13
  loading?: boolean;
14
+ transformSrc?: (src: string) => string;
14
15
  }
15
16
 
16
17
  let {
@@ -20,7 +21,8 @@
20
21
  video = undefined,
21
22
  controls = false,
22
23
  nolqip = false,
23
- loading = $bindable(true)
24
+ loading = $bindable(true),
25
+ transformSrc = (s) => s
24
26
  }: Props = $props();
25
27
 
26
28
  let showBackground = $state(true);
@@ -32,9 +34,7 @@
32
34
  let src = $derived(highRes ? onlyHighRes(picture) : no4K(picture));
33
35
 
34
36
  let background = $derived(
35
- !nolqip && src.lqip && showBackground
36
- ? `url(${src.lqip?.src}) no-repeat center/contain`
37
- : 'none'
37
+ !nolqip && src.lqip && showBackground ? `url(${src.lqip.src}) no-repeat center/contain` : 'none'
38
38
  );
39
39
 
40
40
  $effect(() => {
@@ -115,12 +115,12 @@
115
115
  <picture style="background: {background}; aspect-ratio: {src.fallback.w} / {src.fallback.h};">
116
116
  {#each Object.entries(src.sources) as [format, images] (format)}
117
117
  <source
118
- srcset={images.map((img) => `${img.src} ${img.w}w`).join(', ')}
118
+ srcset={images.map((img) => `${transformSrc(img.src)} ${img.w}w`).join(', ')}
119
119
  type={'image/' + format}
120
120
  />
121
121
  {/each}
122
122
  <img
123
- src={src.fallback.src}
123
+ src={transformSrc(src.fallback.src)}
124
124
  {alt}
125
125
  use:onload
126
126
  loading="lazy"
@@ -7,6 +7,7 @@ interface Props {
7
7
  nolqip?: boolean;
8
8
  onloaded?: () => void;
9
9
  loading?: boolean;
10
+ transformSrc?: (src: string) => string;
10
11
  }
11
12
  declare const Image: import("svelte").Component<Props, {}, "loading">;
12
13
  type Image = ReturnType<typeof Image>;
@@ -1 +1 @@
1
- {"version":3,"file":"Image.svelte.d.ts","sourceRoot":"","sources":["../src/lib/Image.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,KAAK,IAAI,UAAU,EAAQ,MAAM,eAAe,CAAC;AAK3E,UAAU,KAAK;IACd,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AA8GF,QAAA,MAAM,KAAK,kDAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Image.svelte.d.ts","sourceRoot":"","sources":["../src/lib/Image.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,KAAK,IAAI,UAAU,EAAQ,MAAM,eAAe,CAAC;AAK3E,UAAU,KAAK;IACd,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;AA6GF,QAAA,MAAM,KAAK,kDAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
@@ -43,6 +43,10 @@ export declare const builtinSettings: {
43
43
  readonly defaultArtist: {
44
44
  readonly type: "string";
45
45
  };
46
+ readonly websiteMode: {
47
+ readonly type: "selection";
48
+ readonly options: ["static", "vercel"];
49
+ };
46
50
  };
47
51
  export type BuiltinSettings = typeof builtinSettings;
48
52
  type MaterializedOptionFor<T extends ThemeSettingsSchema[string]> = T extends z.infer<typeof ZColorOption> ? `#${string}` : T extends z.infer<typeof ZSelectionOption> ? [...T['options']] : T extends z.infer<typeof ZMultiSelectionOption> ? Array<[...T['options']]> : T extends z.infer<typeof ZStringList> ? Array<string> : T extends z.infer<typeof ZTagsOption> ? Array<string> : T extends z.infer<typeof ZStringOption> ? string : never;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/server/theme/schema.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAcpB,QAAA,MAAM,YAAY;;mBAAyC,CAAC;AAC5D,QAAA,MAAM,gBAAgB;;;;mBAIpB,CAAC;AACH,QAAA,MAAM,qBAAqB;;;;mBAIzB,CAAC;AACH,QAAA,MAAM,aAAa;;mBAA0C,CAAC;AAC9D,QAAA,MAAM,WAAW;;mBAA4C,CAAC;AAC9D,QAAA,MAAM,WAAW;;mBAA+C,CAAC;AACjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;sBAUhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,eAAe;;;;CAEY,CAAC;AACzC,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAErD,KAAK,qBAAqB,CAAC,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,IAC/D,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACnC,IAAI,MAAM,EAAE,GACZ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACzC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GACjB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAC9C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACxB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACtC,MAAM,GACN,KAAK,CAAC;AAEf,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,mBAAmB,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF,wBAAsB,eAAe,CAAC,CAAC,SAAS,mBAAmB,KAAK,OAAO,CAAC,CAAC,CAAC,CAqBjF;AAyCD,wBAAgB,cAAc,CAAC,CAAC,SAAS,mBAAmB,EAC3D,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,OAAO,GACV,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,CAEzC;AAoGD,wBAAsB,eAAe,CAAC,CAAC,SAAS,mBAAmB,EAClE,MAAM,EAAE,CAAC,GACP,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAoB3C;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,mBAAmB,EACnE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAIf"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/lib/server/theme/schema.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAcpB,QAAA,MAAM,YAAY;;mBAAyC,CAAC;AAC5D,QAAA,MAAM,gBAAgB;;;;mBAIpB,CAAC;AACH,QAAA,MAAM,qBAAqB;;;;mBAIzB,CAAC;AACH,QAAA,MAAM,aAAa;;mBAA0C,CAAC;AAC9D,QAAA,MAAM,WAAW;;mBAA4C,CAAC;AAC9D,QAAA,MAAM,WAAW;;mBAA+C,CAAC;AACjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;sBAUhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,eAAe;;;;;;;;CAGY,CAAC;AACzC,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAErD,KAAK,qBAAqB,CAAC,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,IAC/D,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACnC,IAAI,MAAM,EAAE,GACZ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACzC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GACjB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAC9C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACxB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GACpC,KAAK,CAAC,MAAM,CAAC,GACb,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACtC,MAAM,GACN,KAAK,CAAC;AAEf,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,mBAAmB,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF,wBAAsB,eAAe,CAAC,CAAC,SAAS,mBAAmB,KAAK,OAAO,CAAC,CAAC,CAAC,CAqBjF;AAyCD,wBAAgB,cAAc,CAAC,CAAC,SAAS,mBAAmB,EAC3D,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,OAAO,GACV,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,CAEzC;AAoGD,wBAAsB,eAAe,CAAC,CAAC,SAAS,mBAAmB,EAClE,MAAM,EAAE,CAAC,GACP,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAoB3C;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,mBAAmB,EACnE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -36,7 +36,8 @@ export const ZThemeSettingsSchema = z.record(z.string(), z.union([
36
36
  ZStringOption
37
37
  ]));
38
38
  export const builtinSettings = {
39
- defaultArtist: { type: 'string' }
39
+ defaultArtist: { type: 'string' },
40
+ websiteMode: { type: 'selection', options: ['static', 'vercel'] }
40
41
  };
41
42
  export async function readThemeSchema() {
42
43
  let text;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phosart/common",
3
- "version": "0.4.24",
3
+ "version": "0.4.27",
4
4
  "files": [
5
5
  "dist",
6
6
  "!dist/**/*.test.*",
@@ -11,6 +11,7 @@
11
11
  nolqip?: boolean;
12
12
  onloaded?: () => void;
13
13
  loading?: boolean;
14
+ transformSrc?: (src: string) => string;
14
15
  }
15
16
 
16
17
  let {
@@ -20,7 +21,8 @@
20
21
  video = undefined,
21
22
  controls = false,
22
23
  nolqip = false,
23
- loading = $bindable(true)
24
+ loading = $bindable(true),
25
+ transformSrc = (s) => s
24
26
  }: Props = $props();
25
27
 
26
28
  let showBackground = $state(true);
@@ -32,9 +34,7 @@
32
34
  let src = $derived(highRes ? onlyHighRes(picture) : no4K(picture));
33
35
 
34
36
  let background = $derived(
35
- !nolqip && src.lqip && showBackground
36
- ? `url(${src.lqip?.src}) no-repeat center/contain`
37
- : 'none'
37
+ !nolqip && src.lqip && showBackground ? `url(${src.lqip.src}) no-repeat center/contain` : 'none'
38
38
  );
39
39
 
40
40
  $effect(() => {
@@ -115,12 +115,12 @@
115
115
  <picture style="background: {background}; aspect-ratio: {src.fallback.w} / {src.fallback.h};">
116
116
  {#each Object.entries(src.sources) as [format, images] (format)}
117
117
  <source
118
- srcset={images.map((img) => `${img.src} ${img.w}w`).join(', ')}
118
+ srcset={images.map((img) => `${transformSrc(img.src)} ${img.w}w`).join(', ')}
119
119
  type={'image/' + format}
120
120
  />
121
121
  {/each}
122
122
  <img
123
- src={src.fallback.src}
123
+ src={transformSrc(src.fallback.src)}
124
124
  {alt}
125
125
  use:onload
126
126
  loading="lazy"
@@ -44,7 +44,8 @@ export const ZThemeSettingsSchema = z.record(
44
44
  export type ThemeSettingsSchema = z.infer<typeof ZThemeSettingsSchema>;
45
45
 
46
46
  export const builtinSettings = {
47
- defaultArtist: { type: 'string' }
47
+ defaultArtist: { type: 'string' },
48
+ websiteMode: { type: 'selection', options: ['static', 'vercel'] }
48
49
  } as const satisfies ThemeSettingsSchema;
49
50
  export type BuiltinSettings = typeof builtinSettings;
50
51