chore: merge dev into v2

This commit is contained in:
Aiden Cline 2026-07-14 20:01:41 +00:00
commit 6911456c2f
122 changed files with 3190 additions and 754 deletions

View file

@ -147,6 +147,7 @@ export const dict = {
"ui.common.close": "إغلاق",
"ui.common.next": "التالي",
"ui.common.submit": "إرسال",
"ui.common.showMore": "عرض المزيد",
"ui.permission.deny": "رفض",
"ui.permission.allowAlways": "السماح دائمًا",

View file

@ -147,6 +147,7 @@ export const dict = {
"ui.common.close": "Fechar",
"ui.common.next": "Próximo",
"ui.common.submit": "Enviar",
"ui.common.showMore": "Mostrar mais",
"ui.permission.deny": "Negar",
"ui.permission.allowAlways": "Permitir sempre",

View file

@ -151,6 +151,7 @@ export const dict = {
"ui.common.close": "Zatvori",
"ui.common.next": "Dalje",
"ui.common.submit": "Pošalji",
"ui.common.showMore": "Prikaži više",
"ui.permission.deny": "Zabrani",
"ui.permission.allowAlways": "Uvijek dozvoli",

View file

@ -146,6 +146,7 @@ export const dict = {
"ui.common.close": "Luk",
"ui.common.next": "Næste",
"ui.common.submit": "Indsend",
"ui.common.showMore": "Vis mere",
"ui.permission.deny": "Afvis",
"ui.permission.allowAlways": "Tillad altid",

View file

@ -153,6 +153,7 @@ export const dict = {
"ui.common.close": "Schließen",
"ui.common.next": "Weiter",
"ui.common.submit": "Absenden",
"ui.common.showMore": "Mehr anzeigen",
"ui.permission.deny": "Verweigern",
"ui.permission.allowAlways": "Immer erlauben",

View file

@ -160,6 +160,7 @@ export const dict: Record<string, string> = {
"ui.common.close": "Close",
"ui.common.next": "Next",
"ui.common.submit": "Submit",
"ui.common.showMore": "Show more",
"ui.permission.deny": "Deny",
"ui.permission.allowAlways": "Allow always",

View file

@ -147,6 +147,7 @@ export const dict = {
"ui.common.close": "Cerrar",
"ui.common.next": "Siguiente",
"ui.common.submit": "Enviar",
"ui.common.showMore": "Mostrar más",
"ui.permission.deny": "Denegar",
"ui.permission.allowAlways": "Permitir siempre",

View file

@ -147,6 +147,7 @@ export const dict = {
"ui.common.close": "Fermer",
"ui.common.next": "Suivant",
"ui.common.submit": "Soumettre",
"ui.common.showMore": "Afficher plus",
"ui.permission.deny": "Refuser",
"ui.permission.allowAlways": "Toujours autoriser",

View file

@ -146,6 +146,7 @@ export const dict = {
"ui.common.close": "閉じる",
"ui.common.next": "次へ",
"ui.common.submit": "送信",
"ui.common.showMore": "さらに表示",
"ui.permission.deny": "拒否",
"ui.permission.allowAlways": "常に許可",

View file

@ -123,6 +123,7 @@ export const dict = {
"ui.common.close": "닫기",
"ui.common.next": "다음",
"ui.common.submit": "제출",
"ui.common.showMore": "더 보기",
"ui.permission.deny": "거부",
"ui.permission.allowAlways": "항상 허용",

View file

@ -126,6 +126,7 @@ export const dict: Record<Keys, string> = {
"ui.common.close": "Lukk",
"ui.common.next": "Neste",
"ui.common.submit": "Send inn",
"ui.common.showMore": "Vis mer",
"ui.permission.deny": "Avslå",
"ui.permission.allowAlways": "Tillat alltid",

View file

@ -146,6 +146,7 @@ export const dict = {
"ui.common.close": "Zamknij",
"ui.common.next": "Dalej",
"ui.common.submit": "Prześlij",
"ui.common.showMore": "Pokaż więcej",
"ui.permission.deny": "Odmów",
"ui.permission.allowAlways": "Zezwalaj zawsze",

View file

@ -146,6 +146,7 @@ export const dict = {
"ui.common.close": "Закрыть",
"ui.common.next": "Далее",
"ui.common.submit": "Отправить",
"ui.common.showMore": "Показать ещё",
"ui.permission.deny": "Запретить",
"ui.permission.allowAlways": "Разрешить всегда",

View file

@ -148,6 +148,7 @@ export const dict = {
"ui.common.close": "ปิด",
"ui.common.next": "ถัดไป",
"ui.common.submit": "ส่ง",
"ui.common.showMore": "แสดงเพิ่มเติม",
"ui.permission.deny": "ปฏิเสธ",
"ui.permission.allowAlways": "อนุญาตเสมอ",

View file

@ -153,6 +153,7 @@ export const dict = {
"ui.common.close": "Kapat",
"ui.common.next": "İleri",
"ui.common.submit": "Gönder",
"ui.common.showMore": "Daha fazla göster",
"ui.permission.deny": "Reddet",
"ui.permission.allowAlways": "Her zaman izin ver",

View file

@ -160,6 +160,7 @@ export const dict: Record<string, string> = {
"ui.common.close": "Закрити",
"ui.common.next": "Далі",
"ui.common.submit": "Надіслати",
"ui.common.showMore": "Показати більше",
"ui.permission.deny": "Заборонити",
"ui.permission.allowAlways": "Дозволяти завжди",

View file

@ -150,6 +150,7 @@ export const dict = {
"ui.common.close": "关闭",
"ui.common.next": "下一步",
"ui.common.submit": "提交",
"ui.common.showMore": "显示更多",
"ui.permission.deny": "拒绝",
"ui.permission.allowAlways": "始终允许",

View file

@ -150,6 +150,7 @@ export const dict = {
"ui.common.close": "關閉",
"ui.common.next": "下一步",
"ui.common.submit": "提交",
"ui.common.showMore": "顯示更多",
"ui.permission.deny": "拒絕",
"ui.permission.allowAlways": "永遠允許",

View file

@ -25,3 +25,9 @@
[data-component="tag"][data-high-contrast] {
border-color: var(--v2-border-border-strong);
}
[data-component="tag"][data-variant="accent"] {
border: 0;
background: var(--v2-background-bg-accent);
color: var(--v2-text-text-contrast);
}

View file

@ -8,10 +8,11 @@ Use alongside headings or lists for quick metadata.
### API
- Accepts standard span props.
- Optional: \`variant\` is \`neutral\` (default) or \`accent\`.
- Optional: \`data-high-contrast\` attribute for stronger border contrast.
### Variants and states
- Single size style.
- Neutral and accent variants.
- Optional high-contrast border style.
### Behavior
@ -52,3 +53,7 @@ export const HighContrast = {
</div>
),
}
export const Accent = {
render: () => <Tag variant="accent">New</Tag>,
}

View file

@ -1,14 +1,17 @@
import { type ComponentProps, splitProps } from "solid-js"
import "./badge-v2.css"
export interface TagProps extends ComponentProps<"span"> {}
export interface TagProps extends ComponentProps<"span"> {
variant?: "neutral" | "accent"
}
export function Tag(props: TagProps) {
const [split, rest] = splitProps(props, ["class", "classList", "children"])
const [split, rest] = splitProps(props, ["class", "classList", "children", "variant"])
return (
<span
{...rest}
data-component="tag"
data-variant={split.variant ?? "neutral"}
classList={{
...split.classList,
[split.class ?? ""]: !!split.class,

View file

@ -1,91 +1,70 @@
import { createUniqueId, type ComponentProps } from "solid-js"
export function WordmarkV2(props: Pick<ComponentProps<"svg">, "class">) {
const filter = createUniqueId()
const mask = createUniqueId()
const maskGradient = createUniqueId()
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 720.002 129.001"
viewBox="0 0 720 129"
fill="none"
preserveAspectRatio="none"
classList={{ [props.class ?? ""]: !!props.class }}
>
<g opacity="0.16" filter={`url(#${filter})`} mask={`url(#${mask})`}>
<path
opacity="0.7"
d="M55.3846 36.8583H18.4615V92.144H55.3846V36.8583ZM73.8462 110.573H0V18.4297H73.8462V110.573Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M110.774 92.144H147.697V36.8583H110.774V92.144ZM166.159 110.573H110.774V129.001H92.3125V18.4297H166.159V110.573Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M258.463 73.7154H203.079V92.144H258.463V110.573H184.617V18.4297H258.463V73.7154ZM203.079 55.2868H240.002V36.8583H203.079V55.2868Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M332.306 36.8583H295.383V110.573H276.922V18.4297H332.306V36.8583ZM350.768 110.573H332.306V36.8583H350.768V110.573Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M443.081 36.8583H387.696V92.144H443.081V110.573H369.234V18.4297H443.081V36.8583Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M516.924 36.8583H480.001V92.144H516.924V36.8583ZM535.385 110.573H461.539V18.4297H535.385V110.573Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M609.228 36.8571H572.305V92.1429H609.228V36.8571ZM627.69 110.571H553.844V18.4286H609.228V0H627.69V110.571Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M664.618 36.8583V55.2868H701.541V36.8583H664.618ZM720.002 73.7154H664.618V92.144H720.002V110.573H646.156V18.4297H720.002V73.7154Z"
fill="currentColor"
/>
<g opacity="0.6">
<g mask={`url(#${mask})`}>
<g opacity="0.16">
<path
opacity="0.7"
d="M55.3846 36.4286H18.4615V91.7143H55.3846V36.4286ZM73.8462 110.143H0V18H73.8462V110.143Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M110.462 91.7143H147.385V36.4286H110.462V91.7143ZM165.846 110.143H110.462V128.571H92V18H165.846V110.143Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M258.846 73.2857H203.462V91.7143H258.846V110.143H185V18H258.846V73.2857ZM203.462 54.8571H240.385V36.4286H203.462V54.8571Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M332.385 36.4286H295.462V110.143H277V18H332.385V36.4286ZM350.846 110.143H332.385V36.4286H350.846V110.143Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M442.846 36.4286H387.462V91.7143H442.846V110.143H369V18H442.846V36.4286Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M517.385 36.4286H480.462V91.7143H517.385V36.4286ZM535.846 110.143H462V18H535.846V110.143Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M609.385 36.8571H572.462V92.1429H609.385V36.8571ZM627.846 110.571H554V18.4286H609.385V0H627.846V110.571Z"
fill="currentColor"
/>
<path
opacity="0.7"
d="M664.462 36.4286V54.8571H701.385V36.4286H664.462ZM719.846 73.2857H664.462V91.7143H719.846V110.143H646V18H719.846V73.2857Z"
fill="currentColor"
/>
</g>
</g>
</g>
<defs>
<mask id={mask} maskUnits="userSpaceOnUse" x="0" y="0" width="720" height="129">
<mask id={mask} style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="720" height="129">
<rect width="720" height="129" fill={`url(#${maskGradient})`} />
</mask>
<linearGradient id={maskGradient} x1="360" y1="0" x2="360" y2="112" gradientUnits="userSpaceOnUse">
<linearGradient id={maskGradient} x1="360" y1="68" x2="360" y2="129" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0.7" />
<stop offset="1" stop-color="white" stop-opacity="0" />
</linearGradient>
<filter
id={filter}
x="0"
y="0"
width="720.002"
height="130.001"
filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB"
>
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset dy="1" />
<feGaussianBlur stdDeviation="1" />
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1" />
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0" />
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_4938_16028" />
</filter>
</defs>
</svg>
)