@ -7,12 +7,11 @@ export interface Props extends astroHTML.JSX.AnchorHTMLAttributes {
|
||||
}
|
||||
|
||||
const classes = [
|
||||
"button",
|
||||
{outline: Astro.props.outline},
|
||||
{ghost: Astro.props.ghost},
|
||||
'button',
|
||||
{ outline: Astro.props.outline },
|
||||
{ ghost: Astro.props.ghost },
|
||||
Astro.props.class
|
||||
]
|
||||
|
||||
---
|
||||
{'href' in Astro.props && (
|
||||
<a class:list={classes} {...objectOmit(Astro.props, 'type') as any}>
|
||||
|
@ -1,12 +1,9 @@
|
||||
---
|
||||
import { getImage } from 'astro:assets'
|
||||
import AstroUtils from '../../libs/AstroUtils'
|
||||
import { objectOmit } from '@dzeio/object-util'
|
||||
import AstroUtils from '../../libs/AstroUtils'
|
||||
|
||||
const formats = [
|
||||
'avif',
|
||||
'webp'
|
||||
]
|
||||
const formats = ['avif', 'webp']
|
||||
|
||||
export interface Props extends Omit<astroHTML.JSX.ImgHTMLAttributes, 'src'> {
|
||||
src: ImageMetadata | string
|
||||
@ -17,7 +14,7 @@ export interface Props extends Omit<astroHTML.JSX.ImgHTMLAttributes, 'src'> {
|
||||
|
||||
type PictureResult = {
|
||||
format: 'new'
|
||||
formats: Array<{format: string, img: Awaited<ReturnType<typeof getImage>>}>
|
||||
formats: Array<{ format: string, img: Awaited<ReturnType<typeof getImage>> }>
|
||||
src: Awaited<ReturnType<typeof getImage>>
|
||||
} | {
|
||||
format: 'raw'
|
||||
@ -38,14 +35,25 @@ async function resolvePicture(image: ImageMetadata | string): Promise<PictureRes
|
||||
}
|
||||
}
|
||||
|
||||
const imageFormats: Array<{format: string, img: Awaited<ReturnType<typeof getImage>>}> = await Promise.all(
|
||||
formats.map(async (it) => ({
|
||||
img: await getImage({src: Astro.props.src, format: it, width: Astro.props.width, height: Astro.props.height}),
|
||||
format: it
|
||||
}))
|
||||
)
|
||||
const imageFormats: Array<{ format: string, img: Awaited<ReturnType<typeof getImage>> }> =
|
||||
await Promise.all(
|
||||
formats.map(async (it) => ({
|
||||
img: await getImage({
|
||||
src: Astro.props.src,
|
||||
format: it,
|
||||
width: Astro.props.width,
|
||||
height: Astro.props.height
|
||||
}),
|
||||
format: it
|
||||
}))
|
||||
)
|
||||
|
||||
const orig = await getImage({src: Astro.props.src, format: ext, width: Astro.props.width, height: Astro.props.height})
|
||||
const orig = await getImage({
|
||||
src: Astro.props.src,
|
||||
format: ext,
|
||||
width: Astro.props.width,
|
||||
height: Astro.props.height
|
||||
})
|
||||
|
||||
return {
|
||||
format: 'new',
|
||||
@ -62,7 +70,6 @@ const res = await AstroUtils.wrap<Result>(async () => {
|
||||
})
|
||||
|
||||
const props = objectOmit(Astro.props, 'src', 'srcDark', 'class')
|
||||
|
||||
---
|
||||
|
||||
{res.light.format === 'new' && (
|
||||
|
@ -6,7 +6,6 @@ interface Props extends Omit<astroHTML.JSX.InputHTMLAttributes, 'type'> {
|
||||
}
|
||||
|
||||
const baseProps = objectOmit(Astro.props, 'label', 'block')
|
||||
|
||||
---
|
||||
|
||||
<div class:list={[{parent: Astro.props.block}]}>
|
||||
|
@ -7,7 +7,7 @@ export interface Props extends Omit<astroHTML.JSX.InputHTMLAttributes, 'type'> {
|
||||
block?: boolean
|
||||
suffix?: string
|
||||
prefix?: string
|
||||
options: Array<string | number | {title: string | number, description?: string | number | null}>
|
||||
options: Array<string | number | { title: string | number, description?: string | number | null }>
|
||||
}
|
||||
|
||||
const baseProps = objectOmit(Astro.props, 'label', 'block', 'suffix', 'prefix', 'options')
|
||||
|
@ -87,8 +87,8 @@ export function setOnTableClick(table: HTMLTableElement, fn: (row: number, cell:
|
||||
table.querySelectorAll<HTMLTableCellElement>('td').forEach((it) => {
|
||||
it.addEventListener('click', () => {
|
||||
const row = it.parentElement as HTMLTableRowElement
|
||||
const rowIdx = parseInt(row.dataset.row as string)
|
||||
const cellIdx = parseInt(it.dataset.cell as string)
|
||||
const rowIdx = Number.parseInt(row.dataset.row as string)
|
||||
const cellIdx = Number.parseInt(it.dataset.cell as string)
|
||||
fn(rowIdx, cellIdx)
|
||||
})
|
||||
})
|
||||
|
@ -9,10 +9,9 @@ export interface Props {
|
||||
|
||||
if (Astro.props.icoPath !== '/favicon.ico') {
|
||||
console.warn('It is recommanded that the ICO file should be located at /favicon.ico')
|
||||
|
||||
}
|
||||
|
||||
const appleTouch = await getImage({src: Astro.props.png, width: 180, height: 180})
|
||||
const appleTouch = await getImage({ src: Astro.props.png, width: 180, height: 180 })
|
||||
---
|
||||
|
||||
<>
|
||||
|
@ -1,36 +0,0 @@
|
||||
import { getImage } from 'astro:assets'
|
||||
|
||||
export default class Manifest {
|
||||
static async create(baseImage: ImageMetadata, options: {
|
||||
name: string
|
||||
color?: string
|
||||
images?: Array<number>
|
||||
}) {
|
||||
const [
|
||||
i192,
|
||||
i512
|
||||
] = await Promise.all([
|
||||
getImage({src: baseImage, format: 'png', width: 192, height: 192}),
|
||||
getImage({src: baseImage, format: 'png', width: 512, height: 512})
|
||||
])
|
||||
return JSON.stringify({
|
||||
name: options.name,
|
||||
short_name: options.name,
|
||||
icons: [
|
||||
{
|
||||
src: i192.src,
|
||||
sizes: "192x192",
|
||||
type: "image/png"
|
||||
},
|
||||
{
|
||||
src: i512.src,
|
||||
sizes: "512x512",
|
||||
type: "image/png"
|
||||
}
|
||||
],
|
||||
theme_color: options.color ?? "#fff",
|
||||
background_color: options.color ?? "#fff",
|
||||
display: "standalone"
|
||||
})
|
||||
}
|
||||
}
|
@ -2,8 +2,8 @@
|
||||
const year = new Date().getFullYear()
|
||||
|
||||
export interface Props {
|
||||
links?: Array<{href: string, target?: string, display: string}>
|
||||
socials?: Array<{href: string, target?: string, icon: any}>
|
||||
links?: Array<{ href: string, target?: string, display: string }>
|
||||
socials?: Array<{ href: string, target?: string, icon: any }>
|
||||
}
|
||||
---
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
---
|
||||
import Logo from 'assets/components/layouts/Header/logo.svg'
|
||||
import Picture from 'components/global/Picture.astro'
|
||||
import Button from 'components/global/Button.astro'
|
||||
import { objectMap } from '@dzeio/object-util'
|
||||
import Logo from 'assets/components/layouts/Header/logo.svg'
|
||||
import Button from 'components/global/Button.astro'
|
||||
import Picture from 'components/global/Picture.astro'
|
||||
|
||||
export interface Props {
|
||||
right?: Record<string, string>
|
||||
|
Reference in New Issue
Block a user