feat: initial commit — site + admin panel + Postgres content pipeline

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
AyrisAI
2026-07-21 01:24:47 +03:00
co-authored by Claude Fable 5
commit 3420d32271
188 changed files with 25053 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
import { h, type Component } from "vue";
import { Icon } from "@iconify/vue";
export const iconNames = {
mail: "heroicons-solid:envelope",
document: "heroicons-solid:document-text",
code: "heroicons-solid:code-bracket",
chevronRightIcon: "heroicons-solid:chevron-right",
chevronLeftIcon: "heroicons-solid:chevron-left",
arrowRight: "heroicons-solid:arrow-right",
arrowLeft: "heroicons-solid:arrow-left",
arrowUp: "heroicons-solid:arrow-up",
external: "heroicons-solid:arrow-top-right-on-square",
phone: "heroicons-solid:phone",
location: "heroicons-solid:map-pin",
check: "heroicons-solid:check-circle",
plus: "heroicons-solid:plus",
user: "heroicons-solid:user",
home: "mdi:home",
share: "heroicons-solid:share",
clipboard: "heroicons-solid:clipboard-document",
link: "heroicons-solid:link",
chat: "heroicons-solid:chat-bubble-left-right",
close: "heroicons-solid:x-mark",
instagram: "mdi:instagram",
facebook: "mdi:facebook",
tiktok: "ic:baseline-tiktok",
} as const;
export type IconName = keyof typeof iconNames;
export function useIcons(): Record<IconName, Component> {
const registry = {} as Record<IconName, Component>;
for (const name of Object.keys(iconNames) as IconName[]) {
registry[name] = {
name: `${name}Icon`,
render() {
return h(Icon, {
icon: iconNames[name],
});
},
};
}
return registry;
}