Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ on: # yamllint disable-line rule:truthy
- main
- '*.*'
- 'staging*'
schedule:
- cron: '0 12 * * 0'
workflow_dispatch:

permissions:
Expand Down
39 changes: 20 additions & 19 deletions src/lib/components/DynamicIcon.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,36 @@
export let iconTheme = "bs";
export let size = "1.2rem";
let iconThemes = {
// We need to use the proper import structure for svelte-icons-pack
// First import the whole theme, then access specific icons
const themeImports = {
ai: () => import("svelte-icons-pack/ai"),
bs: () => import("svelte-icons-pack/bs"),
bi: () => import("svelte-icons-pack/bi"),
ci: () => import("svelte-icons-pack/ci"),
fi: () => import("svelte-icons-pack/fi"),
fa: () => import("svelte-icons-pack/fa"),
oi: () => import("svelte-icons-pack/oi"),
hi: () => import("svelte-icons-pack/hi"),
im: () => import("svelte-icons-pack/im"),
io: () => import("svelte-icons-pack/io"),
lu: () => import("svelte-icons-pack/lu"),
ri: () => import("svelte-icons-pack/ri"),
si: () => import("svelte-icons-pack/si"),
sl: () => import("svelte-icons-pack/sl"),
ti: () => import("svelte-icons-pack/ti"),
tr: () => import("svelte-icons-pack/tr"),
wi: () => import("svelte-icons-pack/wi"),
vsc: () => import("svelte-icons-pack/vsc"),
// Add others as needed
};
async function getIcon(iconName, iconTheme) {
try {
const moduleLoader = iconThemes[iconTheme];
if (!moduleLoader) {
throw new Error(`Unknown icon theme: ${iconTheme}`);
// Get the theme module loader
const themeLoader = themeImports[iconTheme];
if (!themeLoader) {
console.warn(`Icon theme not configured: ${iconTheme}`);
return null;
}
const module = await moduleLoader();
return module[iconName];
// Load the entire theme module
const themeModule = await themeLoader();
// Get the specific icon from the theme
if (!(iconName in themeModule)) {
console.warn(`Icon not found: ${iconName} in theme: ${iconTheme}`);
return null;
}
return themeModule[iconName];
} catch (error) {
console.error(`Failed to load icon: ${iconName} from theme: ${iconTheme}`, error);
return null;
Expand Down
2 changes: 1 addition & 1 deletion src/lib/config/data/donate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ projects:
slug: spyder
image: /assets/media/spyder_splash_bg.webp
donationLinkID: Pjm6SyqYNb
pastDonations: 15744
pastDonations: 15859
- id: 1
slug: code-completions
image: /assets/media/donations-code_completions.webp
Expand Down
8 changes: 4 additions & 4 deletions static/data/github-contributors.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"type": "User",
"user_view_type": "public",
"site_admin": false,
"contributions": 14431
"contributions": 14462
},
{
"login": "dalthviz",
Expand Down Expand Up @@ -129,7 +129,7 @@
"type": "User",
"user_view_type": "public",
"site_admin": false,
"contributions": 986
"contributions": 993
},
{
"login": "jnsebgosselin",
Expand Down Expand Up @@ -305,7 +305,7 @@
"type": "User",
"user_view_type": "public",
"site_admin": false,
"contributions": 298
"contributions": 302
},
{
"login": "hlouzada",
Expand Down Expand Up @@ -503,7 +503,7 @@
"type": "User",
"user_view_type": "public",
"site_admin": false,
"contributions": 95
"contributions": 98
},
{
"login": "dhoegh",
Expand Down
230 changes: 227 additions & 3 deletions static/data/hubspot.json
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,118 @@
"pipeline": "691999256"
},
"updatedAt": "2025-04-29T17:04:39.244Z"
},
{
"createdAt": "2025-05-03T09:46:35.819Z",
"archived": false,
"id": "36669741836",
"properties": {
"amount": "15.00",
"createdate": "2025-05-03T09:46:35.819Z",
"dealname": "Smarter code completion: One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-03T09:52:03.955Z",
"hs_object_id": "36669741836",
"pipeline": "691999256"
},
"updatedAt": "2025-05-03T09:52:03.955Z"
},
{
"createdAt": "2025-05-03T11:31:49.309Z",
"archived": false,
"id": "36669445015",
"properties": {
"amount": "100.00",
"createdate": "2025-05-03T11:31:49.309Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-03T11:37:19.645Z",
"hs_object_id": "36669445015",
"pipeline": "691999256"
},
"updatedAt": "2025-05-03T11:37:19.645Z"
},
{
"createdAt": "2025-05-04T01:52:57.487Z",
"archived": false,
"id": "36667340080",
"properties": {
"amount": "25.00",
"createdate": "2025-05-04T01:52:57.487Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-04T01:53:10.490Z",
"hs_object_id": "36667340080",
"pipeline": "691999256"
},
"updatedAt": "2025-05-04T01:53:10.490Z"
},
{
"createdAt": "2025-05-04T12:45:20.458Z",
"archived": false,
"id": "36680225375",
"properties": {
"amount": "10.00",
"createdate": "2025-05-04T12:45:20.458Z",
"dealname": "Smarter code completion: One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-04T12:50:41.233Z",
"hs_object_id": "36680225375",
"pipeline": "691999256"
},
"updatedAt": "2025-05-04T12:50:41.233Z"
},
{
"createdAt": "2025-05-04T18:50:16.137Z",
"archived": false,
"id": "36672569189",
"properties": {
"amount": "10.00",
"createdate": "2025-05-04T18:50:16.137Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-04T18:50:38.651Z",
"hs_object_id": "36672569189",
"pipeline": "691999256"
},
"updatedAt": "2025-05-04T18:50:38.651Z"
},
{
"createdAt": "2025-05-04T21:55:20.178Z",
"archived": false,
"id": "36687533695",
"properties": {
"amount": "50.00",
"createdate": "2025-05-04T21:55:20.178Z",
"dealname": "Level-up the Variable Explorer: One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-04T21:55:45.189Z",
"hs_object_id": "36687533695",
"pipeline": "691999256"
},
"updatedAt": "2025-05-04T21:55:45.189Z"
},
{
"createdAt": "2025-05-06T20:46:16.006Z",
"archived": false,
"id": "36834640221",
"properties": {
"amount": "15.00",
"createdate": "2025-05-06T20:46:16.006Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-06T20:51:29.385Z",
"hs_object_id": "36834640221",
"pipeline": "691999256"
},
"updatedAt": "2025-05-06T20:51:29.385Z"
},
{
"createdAt": "2025-05-08T11:00:42.052Z",
"archived": false,
"id": "36896574053",
"properties": {
"amount": "10.00",
"createdate": "2025-05-08T11:00:42.052Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-08T11:06:05.623Z",
"hs_object_id": "36896574053",
"pipeline": "691999256"
},
"updatedAt": "2025-05-08T11:06:05.623Z"
}
],
"monthlyDeals": [
Expand Down Expand Up @@ -731,10 +843,122 @@
"pipeline": "691999256"
},
"updatedAt": "2025-04-29T17:04:39.244Z"
},
{
"createdAt": "2025-05-03T09:46:35.819Z",
"archived": false,
"id": "36669741836",
"properties": {
"amount": "15.00",
"createdate": "2025-05-03T09:46:35.819Z",
"dealname": "Smarter code completion: One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-03T09:52:03.955Z",
"hs_object_id": "36669741836",
"pipeline": "691999256"
},
"updatedAt": "2025-05-03T09:52:03.955Z"
},
{
"createdAt": "2025-05-03T11:31:49.309Z",
"archived": false,
"id": "36669445015",
"properties": {
"amount": "100.00",
"createdate": "2025-05-03T11:31:49.309Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-03T11:37:19.645Z",
"hs_object_id": "36669445015",
"pipeline": "691999256"
},
"updatedAt": "2025-05-03T11:37:19.645Z"
},
{
"createdAt": "2025-05-04T01:52:57.487Z",
"archived": false,
"id": "36667340080",
"properties": {
"amount": "25.00",
"createdate": "2025-05-04T01:52:57.487Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-04T01:53:10.490Z",
"hs_object_id": "36667340080",
"pipeline": "691999256"
},
"updatedAt": "2025-05-04T01:53:10.490Z"
},
{
"createdAt": "2025-05-04T12:45:20.458Z",
"archived": false,
"id": "36680225375",
"properties": {
"amount": "10.00",
"createdate": "2025-05-04T12:45:20.458Z",
"dealname": "Smarter code completion: One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-04T12:50:41.233Z",
"hs_object_id": "36680225375",
"pipeline": "691999256"
},
"updatedAt": "2025-05-04T12:50:41.233Z"
},
{
"createdAt": "2025-05-04T18:50:16.137Z",
"archived": false,
"id": "36672569189",
"properties": {
"amount": "10.00",
"createdate": "2025-05-04T18:50:16.137Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-04T18:50:38.651Z",
"hs_object_id": "36672569189",
"pipeline": "691999256"
},
"updatedAt": "2025-05-04T18:50:38.651Z"
},
{
"createdAt": "2025-05-04T21:55:20.178Z",
"archived": false,
"id": "36687533695",
"properties": {
"amount": "50.00",
"createdate": "2025-05-04T21:55:20.178Z",
"dealname": "Level-up the Variable Explorer: One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-04T21:55:45.189Z",
"hs_object_id": "36687533695",
"pipeline": "691999256"
},
"updatedAt": "2025-05-04T21:55:45.189Z"
},
{
"createdAt": "2025-05-06T20:46:16.006Z",
"archived": false,
"id": "36834640221",
"properties": {
"amount": "15.00",
"createdate": "2025-05-06T20:46:16.006Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-06T20:51:29.385Z",
"hs_object_id": "36834640221",
"pipeline": "691999256"
},
"updatedAt": "2025-05-06T20:51:29.385Z"
},
{
"createdAt": "2025-05-08T11:00:42.052Z",
"archived": false,
"id": "36896574053",
"properties": {
"amount": "10.00",
"createdate": "2025-05-08T11:00:42.052Z",
"dealname": "Spyder One-time via Payment Link",
"hs_lastmodifieddate": "2025-05-08T11:06:05.623Z",
"hs_object_id": "36896574053",
"pipeline": "691999256"
},
"updatedAt": "2025-05-08T11:06:05.623Z"
}
],
"totalDonations": 887,
"totalDonations": 1122,
"totalMonthlyDonations": 360,
"totalOneTimeDonations": 527,
"lastUpdated": "2025-04-29T19:56:58.134Z"
"totalOneTimeDonations": 762,
"lastUpdated": "2025-05-08T22:01:16.424Z"
}
16 changes: 16 additions & 0 deletions vite.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,21 @@ export default defineConfig({
chunkSizeWarningLimit: 1500,
ssrEmitAssets: true,
sourcemap: false,
rollupOptions: {
output: {
manualChunks: {
'svelte-core': ['svelte'],
// Create separate chunks for each icon pack
'icons-ai': ['svelte-icons-pack/ai'],
'icons-bs': ['svelte-icons-pack/bs'],
'icons-bi': ['svelte-icons-pack/bi'],
'icons-lu': ['svelte-icons-pack/lu'],
'icons-vsc': ['svelte-icons-pack/vsc'],
}
}
},
},
optimizeDeps: {
include: ['svelte'],
}
});