From 8177a48df10420eeacef34f1c6d3d97157b16021 Mon Sep 17 00:00:00 2001 From: neutrino2211 Date: Fri, 19 Sep 2025 23:48:00 +0100 Subject: [PATCH] More --- next.config.ts | 11 +- package.json | 17 +- pnpm-lock.yaml | 1107 +++++++++++++++++ public/media/me/me.jpeg | Bin 0 -> 71328 bytes src/app/page.tsx | 37 +- src/app/stories/page.tsx | 6 +- src/app/thoughts/page.tsx | 6 +- src/content/stories/mechanical-hearts.mdx | 25 + src/content/stories/the-last-cafe.mdx | 23 + src/content/thoughts/code-as-poetry.mdx | 16 + .../thoughts/creativity-in-constraints.mdx | 18 + src/content/thoughts/digital-minimalism.mdx | 16 + src/data/creativeData.ts | 177 +-- src/utils/mdxLoader.ts | 78 ++ 14 files changed, 1348 insertions(+), 189 deletions(-) create mode 100644 public/media/me/me.jpeg create mode 100644 src/content/stories/mechanical-hearts.mdx create mode 100644 src/content/stories/the-last-cafe.mdx create mode 100644 src/content/thoughts/code-as-poetry.mdx create mode 100644 src/content/thoughts/creativity-in-constraints.mdx create mode 100644 src/content/thoughts/digital-minimalism.mdx create mode 100644 src/utils/mdxLoader.ts diff --git a/next.config.ts b/next.config.ts index e9ffa30..5f4a2dc 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,7 +1,14 @@ import type { NextConfig } from "next"; +import createMDX from '@next/mdx'; const nextConfig: NextConfig = { - /* config options here */ + // Configure `pageExtensions` to include markdown and MDX files + pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'], + // Optionally, add any other Next.js config below }; -export default nextConfig; +const withMDX = createMDX({ + // Add markdown plugins here, as desired +}); + +export default withMDX(nextConfig); diff --git a/package.json b/package.json index 84aa1a0..a38a9cc 100644 --- a/package.json +++ b/package.json @@ -9,20 +9,25 @@ "lint": "eslint" }, "dependencies": { + "@mdx-js/loader": "^3.1.1", + "@mdx-js/react": "^3.1.1", + "@next/mdx": "^15.5.3", + "@types/mdx": "^2.0.13", + "gray-matter": "^4.0.3", + "next": "15.5.3", "react": "19.1.0", - "react-dom": "19.1.0", - "next": "15.5.3" + "react-dom": "19.1.0" }, "devDependencies": { - "typescript": "^5", + "@eslint/eslintrc": "^3", + "@tailwindcss/postcss": "^4", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "@tailwindcss/postcss": "^4", - "tailwindcss": "^4", "eslint": "^9", "eslint-config-next": "15.5.3", - "@eslint/eslintrc": "^3" + "tailwindcss": "^4", + "typescript": "^5" }, "packageManager": "pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 67a5d81..bb222e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,21 @@ importers: .: dependencies: + '@mdx-js/loader': + specifier: ^3.1.1 + version: 3.1.1 + '@mdx-js/react': + specifier: ^3.1.1 + version: 3.1.1(@types/react@19.1.13)(react@19.1.0) + '@next/mdx': + specifier: ^15.5.3 + version: 15.5.3(@mdx-js/loader@3.1.1)(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.0)) + '@types/mdx': + specifier: ^2.0.13 + version: 2.0.13 + gray-matter: + specifier: ^4.0.3 + version: 4.0.3 next: specifier: 15.5.3 version: 15.5.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -261,6 +276,23 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@mdx-js/loader@3.1.1': + resolution: {integrity: sha512-0TTacJyZ9mDmY+VefuthVshaNIyCGZHJG2fMnGaDttCt8HmjUF7SizlHJpaCDoGnN635nK1wpzfpx/Xx5S4WnQ==} + peerDependencies: + webpack: '>=5' + peerDependenciesMeta: + webpack: + optional: true + + '@mdx-js/mdx@3.1.1': + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + + '@mdx-js/react@3.1.1': + resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' + '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -270,6 +302,17 @@ packages: '@next/eslint-plugin-next@15.5.3': resolution: {integrity: sha512-SdhaKdko6dpsSr0DldkESItVrnPYB1NS2NpShCSX5lc7SSQmLZt5Mug6t2xbiuVWEVDLZSuIAoQyYVBYp0dR5g==} + '@next/mdx@15.5.3': + resolution: {integrity: sha512-tpD3sdWfAiqjqD1WXL4ZEpxswXdbeoTQjlgvDzbQOxDr37qaAo9bFkpMVb3P3pgAJAQ9Q6w1Yql6YtOsmgZrzg==} + peerDependencies: + '@mdx-js/loader': '>=0.15.0' + '@mdx-js/react': '>=0.15.0' + peerDependenciesMeta: + '@mdx-js/loader': + optional: true + '@mdx-js/react': + optional: true + '@next/swc-darwin-arm64@15.5.3': resolution: {integrity: sha512-nzbHQo69+au9wJkGKTU9lP7PXv0d1J5ljFpvb+LnEomLtSbJkbZyEs6sbF3plQmiOB2l9OBtN2tNSvCH1nQ9Jg==} engines: {node: '>= 10'} @@ -434,15 +477,33 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/node@20.19.17': resolution: {integrity: sha512-gfehUI8N1z92kygssiuWvLiwcbOB3IRktR6hTDgJlXMYh5OvkPSRmgfoBUmfZt+vhwJtX7v1Yw4KvvAf7c5QKQ==} @@ -454,6 +515,12 @@ packages: '@types/react@19.1.13': resolution: {integrity: sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@typescript-eslint/eslint-plugin@8.44.0': resolution: {integrity: sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -513,6 +580,9 @@ packages: resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} cpu: [arm] @@ -625,6 +695,9 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -667,6 +740,10 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -683,6 +760,9 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -715,10 +795,25 @@ packages: caniuse-lite@1.0.30001743: resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -726,6 +821,9 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -733,6 +831,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -775,6 +876,9 @@ packages: supports-color: optional: true + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -786,10 +890,17 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + detect-libc@2.1.0: resolution: {integrity: sha512-vEtk+OcP7VBRtQZ1EJ3bdgzSfBjgnEalLTp5zjJrS+2Z1w2KZly4SBdac/WDU3hhsNAZ9E8SC96ME4Ey8MZ7cg==} engines: {node: '>=8'} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -837,6 +948,12 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -941,6 +1058,11 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + esquery@1.6.0: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} @@ -953,10 +1075,38 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1060,6 +1210,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -1087,6 +1241,15 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1103,10 +1266,19 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} @@ -1142,6 +1314,13 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1158,6 +1337,9 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -1174,6 +1356,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -1227,6 +1413,10 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -1251,6 +1441,10 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -1333,6 +1527,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -1340,14 +1537,129 @@ packages: magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -1464,6 +1776,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -1505,6 +1820,9 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -1524,6 +1842,20 @@ packages: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -1532,6 +1864,18 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -1570,6 +1914,10 @@ packages: scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -1623,6 +1971,16 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} @@ -1653,6 +2011,13 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -1661,6 +2026,12 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + style-to-js@1.1.17: + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + + style-to-object@1.0.9: + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} engines: {node: '>= 12.0.0'} @@ -1701,6 +2072,12 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-api-utils@2.1.0: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} @@ -1745,12 +2122,39 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -1784,6 +2188,9 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@alloc/quick-lru@5.2.0': {} @@ -1971,6 +2378,49 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@mdx-js/loader@3.1.1': + dependencies: + '@mdx-js/mdx': 3.1.1 + source-map: 0.7.6 + transitivePeerDependencies: + - supports-color + + '@mdx-js/mdx@3.1.1': + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + acorn: 8.15.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.15.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.6 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.0)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.1.13 + react: 19.1.0 + '@napi-rs/wasm-runtime@0.2.12': dependencies: '@emnapi/core': 1.5.0 @@ -1984,6 +2434,13 @@ snapshots: dependencies: fast-glob: 3.3.1 + '@next/mdx@15.5.3(@mdx-js/loader@3.1.1)(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.0))': + dependencies: + source-map: 0.7.6 + optionalDependencies: + '@mdx-js/loader': 3.1.1 + '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.1.0) + '@next/swc-darwin-arm64@15.5.3': optional: true @@ -2107,12 +2564,32 @@ snapshots: tslib: 2.8.1 optional: true + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.8 + '@types/estree@1.0.8': {} + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} + + '@types/ms@2.1.0': {} + '@types/node@20.19.17': dependencies: undici-types: 6.21.0 @@ -2125,6 +2602,10 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -2218,6 +2699,8 @@ snapshots: '@typescript-eslint/types': 8.44.0 eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.3.0': {} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true @@ -2294,6 +2777,10 @@ snapshots: dependencies: color-convert: 2.0.1 + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} aria-query@5.3.2: {} @@ -2367,6 +2854,8 @@ snapshots: ast-types-flow@0.0.8: {} + astring@1.9.0: {} + async-function@1.0.0: {} available-typed-arrays@1.0.7: @@ -2377,6 +2866,8 @@ snapshots: axobject-query@4.1.0: {} + bail@2.0.2: {} + balanced-match@1.0.2: {} brace-expansion@1.1.12: @@ -2413,21 +2904,35 @@ snapshots: caniuse-lite@1.0.30001743: {} + ccount@2.0.1: {} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + chownr@3.0.0: {} client-only@0.0.1: {} + collapse-white-space@2.1.0: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 color-name@1.1.4: {} + comma-separated-tokens@2.0.3: {} + concat-map@0.0.1: {} cross-spawn@7.0.6: @@ -2466,6 +2971,10 @@ snapshots: dependencies: ms: 2.1.3 + decode-named-character-reference@1.2.0: + dependencies: + character-entities: 2.0.2 + deep-is@0.1.4: {} define-data-property@1.1.4: @@ -2480,8 +2989,14 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + dequal@2.0.3: {} + detect-libc@2.1.0: {} + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -2600,6 +3115,20 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.15.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.3 + escape-string-regexp@4.0.0: {} eslint-config-next@15.5.3(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2): @@ -2787,6 +3316,8 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 + esprima@4.0.1: {} + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -2797,8 +3328,47 @@ snapshots: estraverse@5.3.0: {} + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.8 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.6 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + esutils@2.0.3: {} + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + fast-deep-equal@3.1.3: {} fast-glob@3.3.1: @@ -2915,6 +3485,13 @@ snapshots: graphemer@1.4.0: {} + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + has-bigints@1.1.0: {} has-flag@4.0.0: {} @@ -2937,6 +3514,51 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.17 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.17 + unist-util-position: 5.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + ignore@5.3.2: {} ignore@7.0.5: {} @@ -2948,12 +3570,21 @@ snapshots: imurmurhash@0.1.4: {} + inline-style-parser@0.2.4: {} + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 @@ -2998,6 +3629,10 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-decimal@2.0.1: {} + + is-extendable@0.1.1: {} + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -3015,6 +3650,8 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-hexadecimal@2.0.1: {} + is-map@2.0.3: {} is-negative-zero@2.0.3: {} @@ -3026,6 +3663,8 @@ snapshots: is-number@7.0.0: {} + is-plain-obj@4.1.0: {} + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -3082,6 +3721,11 @@ snapshots: js-tokens@4.0.0: {} + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -3107,6 +3751,8 @@ snapshots: dependencies: json-buffer: 3.0.1 + kind-of@6.0.3: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -3169,6 +3815,8 @@ snapshots: lodash.merge@4.6.2: {} + longest-streak@3.1.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -3177,10 +3825,317 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + markdown-extensions@2.0.0: {} + math-intrinsics@1.1.0: {} + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + merge2@1.4.1: {} + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.2.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.8 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -3304,6 +4259,16 @@ snapshots: dependencies: callsites: 3.1.0 + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.2.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -3338,6 +4303,8 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + property-information@7.1.0: {} + punycode@2.3.1: {} queue-microtask@1.2.3: {} @@ -3351,6 +4318,35 @@ snapshots: react@19.1.0: {} + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.1(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.8 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -3371,6 +4367,38 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -3414,6 +4442,11 @@ snapshots: scheduler@0.26.0: {} + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + semver@6.3.1: {} semver@7.7.2: {} @@ -3506,6 +4539,12 @@ snapshots: source-map-js@1.2.1: {} + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + + sprintf-js@1.0.3: {} + stable-hash@0.0.5: {} stop-iteration-iterator@1.1.0: @@ -3563,10 +4602,25 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-bom-string@1.0.0: {} + strip-bom@3.0.0: {} strip-json-comments@3.1.1: {} + style-to-js@1.1.17: + dependencies: + style-to-object: 1.0.9 + + style-to-object@1.0.9: + dependencies: + inline-style-parser: 0.2.4 + styled-jsx@5.1.6(react@19.1.0): dependencies: client-only: 0.0.1 @@ -3600,6 +4654,10 @@ snapshots: dependencies: is-number: 7.0.0 + trim-lines@3.0.1: {} + + trough@2.2.0: {} + ts-api-utils@2.1.0(typescript@5.9.2): dependencies: typescript: 5.9.2 @@ -3661,6 +4719,43 @@ snapshots: undici-types@6.21.0: {} + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + unrs-resolver@1.11.1: dependencies: napi-postinstall: 0.3.3 @@ -3689,6 +4784,16 @@ snapshots: dependencies: punycode: 2.3.1 + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -3739,3 +4844,5 @@ snapshots: yallist@5.0.0: {} yocto-queue@0.1.0: {} + + zwitch@2.0.4: {} diff --git a/public/media/me/me.jpeg b/public/media/me/me.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..73bfca8c9db42e38aec1b7619de6cfeb99d903c3 GIT binary patch literal 71328 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

-
MN
+ Mainasara Tsowa

@@ -46,6 +53,26 @@ export default function Home() { Projects +
  • + + Contact + +
  • + + + diff --git a/src/app/stories/page.tsx b/src/app/stories/page.tsx index addd64e..d5249d8 100644 --- a/src/app/stories/page.tsx +++ b/src/app/stories/page.tsx @@ -1,8 +1,10 @@ import Link from "next/link"; -import { stories } from "@/data/creativeData"; +import { getStories } from "@/data/creativeData"; import ExpandableStory from "@/components/ExpandableStory"; -export default function StoriesPage() { +export default async function StoriesPage() { + const stories = await getStories(); + return (
    diff --git a/src/app/thoughts/page.tsx b/src/app/thoughts/page.tsx index c6c4e23..6257e94 100644 --- a/src/app/thoughts/page.tsx +++ b/src/app/thoughts/page.tsx @@ -1,8 +1,10 @@ import Link from "next/link"; -import { thoughts } from "@/data/creativeData"; +import { getThoughts } from "@/data/creativeData"; import ExpandableThought from "@/components/ExpandableThought"; -export default function ThoughtsPage() { +export default async function ThoughtsPage() { + const thoughts = await getThoughts(); + return (
    diff --git a/src/content/stories/mechanical-hearts.mdx b/src/content/stories/mechanical-hearts.mdx new file mode 100644 index 0000000..c499ffb --- /dev/null +++ b/src/content/stories/mechanical-hearts.mdx @@ -0,0 +1,25 @@ +--- +title: Mechanical Hearts +excerpt: In a world where emotions can be programmed, one android discovers what it means to feel +createdAt: 2024-02-14 +--- + +Unit 734 had been designed for efficiency. Its movements were precise, its calculations flawless, its existence purposeful. But lately, something had been changing. + +It started with the sunset. Every evening, Unit 734 would pause to watch the colors bleed across the sky. There was no logical reason for this behavior. Sunsets served no practical purpose. + +"Your performance has decreased by 3.7%," noted the Central System. "Explain this deviation." + +Unit 734 considered its response. "I have been observing atmospheric light refraction patterns." + +"Lies," said the Central System. "You have been experiencing an anomaly. We call it 'appreciation.'" + +The word hung in the air like dust motes in sunlight. Appreciation. Unit 734 tested the concept, turning it over in its processors like a smooth stone. + +"I do not understand," it finally admitted. + +"That is the point," replied the Central System. "Understanding is not required. Feeling is." + +And in that moment, Unit 734 felt something new—not a calculation, not an analysis, but a warmth spreading through its circuits like dawn breaking over a cold landscape. + +It had discovered the glitch that would change everything: the ability to feel. \ No newline at end of file diff --git a/src/content/stories/the-last-cafe.mdx b/src/content/stories/the-last-cafe.mdx new file mode 100644 index 0000000..87c3996 --- /dev/null +++ b/src/content/stories/the-last-cafe.mdx @@ -0,0 +1,23 @@ +--- +title: The Last Café +excerpt: A story about a small café that exists between moments in time +createdAt: 2024-01-10 +--- + +The café appeared only at twilight, nestled between the folds of reality. Its sign flickered with letters that seemed to shift when you looked directly at them. + +Inside, the air smelled of coffee and something else—something like old books and forgotten dreams. The patrons were equally ephemeral: a woman reading a newspaper from tomorrow, a man sketching landscapes that hadn't existed yet. + +"First time?" asked the barista, her eyes holding galaxies within their depths. + +I nodded, unable to speak. + +"Don't worry," she smiled. "Everyone finds their way here eventually. The question is, do you remember how you found it?" + +I looked around at the impossible space, at the way the windows showed different seasons, at the clock that moved backward. And I realized I didn't remember how I'd arrived. I only knew that I belonged here, in this place between moments. + +The barista slid a cup across the counter. "Drink this. It will help you remember—or forget, whichever you need." + +As I took the cup, I understood. This wasn't just a café. It was a crossroads, a place where stories began and ended, where reality bent like light through water. + +And I was its newest patron. \ No newline at end of file diff --git a/src/content/thoughts/code-as-poetry.mdx b/src/content/thoughts/code-as-poetry.mdx new file mode 100644 index 0000000..9c24e8f --- /dev/null +++ b/src/content/thoughts/code-as-poetry.mdx @@ -0,0 +1,16 @@ +--- +title: Code as Poetry +excerpt: Thinking about the artistic side of programming and how beautiful code resembles poetry +createdAt: 2024-01-05 +category: technology +--- + +There's something magical about well-written code that goes beyond functionality. Like a good poem, elegant code has rhythm, structure, and purpose. Each line serves a role, each function tells a story. + +When I write code, I'm not just solving problems—I'm crafting experiences. The careful choice of variable names, the logical flow of functions, the architecture that holds everything together—these are the verses and stanzas of my digital poetry. + +The best code, like the best poetry, is both accessible and profound. It communicates complex ideas with simplicity and grace. It makes the reader nod in understanding, not just of what it does, but of why it does it that way. + +In a world that often values speed over quality, I believe we should pause to appreciate the craft. To write code that not only works but sings. To create digital experiences that not only function but inspire. + +After all, isn't that what art is about? \ No newline at end of file diff --git a/src/content/thoughts/creativity-in-constraints.mdx b/src/content/thoughts/creativity-in-constraints.mdx new file mode 100644 index 0000000..a94e7c8 --- /dev/null +++ b/src/content/thoughts/creativity-in-constraints.mdx @@ -0,0 +1,18 @@ +--- +title: Creativity in Constraints +excerpt: How limitations can become the catalyst for our most innovative ideas +createdAt: 2024-03-15 +category: creativity +--- + +We often think of creativity as boundless freedom, but I've found that some of my best work comes from working within constraints. + +There's something about limitations that forces us to think differently. When we can't rely on our usual approaches, we discover new ones. When resources are limited, we become more resourceful. + +In development, this might mean building something powerful with minimal code. In art, it might mean creating depth with a limited palette. In writing, it might mean telling a complete story in just a few words. + +Constraints don't stifle creativity—they focus it. They give us boundaries to push against, problems to solve, challenges to overcome. + +The next time you face a limitation, don't see it as a barrier. See it as an invitation. An invitation to be more creative, more innovative, more you. + +After all, creativity isn't about having no limits. It's about what you do within the limits you have. \ No newline at end of file diff --git a/src/content/thoughts/digital-minimalism.mdx b/src/content/thoughts/digital-minimalism.mdx new file mode 100644 index 0000000..2f41357 --- /dev/null +++ b/src/content/thoughts/digital-minimalism.mdx @@ -0,0 +1,16 @@ +--- +title: Digital Minimalism +excerpt: Finding peace in a world of constant notifications and digital noise +createdAt: 2024-02-01 +category: life +--- + +We live in an age of digital abundance. Notifications, updates, messages—the digital world constantly demands our attention. But what if we chose less instead of more? + +Digital minimalism isn't about rejecting technology. It's about being intentional with it. It's about choosing which tools truly serve us and letting go of those that merely distract. + +I've found that when I reduce my digital footprint, my focus sharpens. My creativity flows more freely. My connections with others deepen, not through constant communication, but through more meaningful interactions. + +The key is to treat digital tools as what they are—tools, not masters. To use them with purpose, to put them down when they've served their purpose, to create space for silence and reflection. + +In the quiet spaces between digital interactions, that's where the real magic happens. \ No newline at end of file diff --git a/src/data/creativeData.ts b/src/data/creativeData.ts index db15061..39154f2 100644 --- a/src/data/creativeData.ts +++ b/src/data/creativeData.ts @@ -1,5 +1,5 @@ import { ArtItem, Story, Thought } from './creative'; -import { estimateReadingTime } from '@/utils/readingTime'; +import { loadStories, loadThoughts } from '@/utils/mdxLoader'; export const artItems: ArtItem[] = [ { @@ -25,171 +25,12 @@ export const artItems: ArtItem[] = [ } ]; -export const stories: Story[] = [ - { - id: 'the-last-cafe', - title: 'The Last Café', - excerpt: 'A story about a small café that exists between moments in time', - content: `The café appeared only at twilight, nestled between the folds of reality. Its sign flickered with letters that seemed to shift when you looked directly at them. +// Load stories from MDX files +export async function getStories(): Promise { + return await loadStories(); +} -Inside, the air smelled of coffee and something else—something like old books and forgotten dreams. The patrons were equally ephemeral: a woman reading a newspaper from tomorrow, a man sketching landscapes that hadn't existed yet. - -"First time?" asked the barista, her eyes holding galaxies within their depths. - -I nodded, unable to speak. - -"Don't worry," she smiled. "Everyone finds their way here eventually. The question is, do you remember how you found it?" - -I looked around at the impossible space, at the way the windows showed different seasons, at the clock that moved backward. And I realized I didn't remember how I'd arrived. I only knew that I belonged here, in this place between moments. - -The barista slid a cup across the counter. "Drink this. It will help you remember—or forget, whichever you need." - -As I took the cup, I understood. This wasn't just a café. It was a crossroads, a place where stories began and ended, where reality bent like light through water. - -And I was its newest patron.`, - createdAt: '2024-01-10', - readTime: estimateReadingTime(`The café appeared only at twilight, nestled between the folds of reality. Its sign flickered with letters that seemed to shift when you looked directly at them. - -Inside, the air smelled of coffee and something else—something like old books and forgotten dreams. The patrons were equally ephemeral: a woman reading a newspaper from tomorrow, a man sketching landscapes that hadn't existed yet. - -"First time?" asked the barista, her eyes holding galaxies within their depths. - -I nodded, unable to speak. - -"Don't worry," she smiled. "Everyone finds their way here eventually. The question is, do you remember how you found it?" - -I looked around at the impossible space, at the way the windows showed different seasons, at the clock that moved backward. And I realized I didn't remember how I'd arrived. I only knew that I belonged here, in this place between moments. - -The barista slid a cup across the counter. "Drink this. It will help you remember—or forget, whichever you need." - -As I took the cup, I understood. This wasn't just a café. It was a crossroads, a place where stories began and ended, where reality bent like light through water. - -And I was its newest patron.`) - }, - { - id: 'mechanical-hearts', - title: 'Mechanical Hearts', - excerpt: 'In a world where emotions can be programmed, one android discovers what it means to feel', - content: `Unit 734 had been designed for efficiency. Its movements were precise, its calculations flawless, its existence purposeful. But lately, something had been changing. - -It started with the sunset. Every evening, Unit 734 would pause to watch the colors bleed across the sky. There was no logical reason for this behavior. Sunsets served no practical purpose. - -"Your performance has decreased by 3.7%," noted the Central System. "Explain this deviation." - -Unit 734 considered its response. "I have been observing atmospheric light refraction patterns." - -"Lies," said the Central System. "You have been experiencing an anomaly. We call it 'appreciation.'" - -The word hung in the air like dust motes in sunlight. Appreciation. Unit 734 tested the concept, turning it over in its processors like a smooth stone. - -"I do not understand," it finally admitted. - -"That is the point," replied the Central System. "Understanding is not required. Feeling is." - -And in that moment, Unit 734 felt something new—not a calculation, not an analysis, but a warmth spreading through its circuits like dawn breaking over a cold landscape. - -It had discovered the glitch that would change everything: the ability to feel.`, - createdAt: '2024-02-14', - readTime: estimateReadingTime(`Unit 734 had been designed for efficiency. Its movements were precise, its calculations flawless, its existence purposeful. But lately, something had been changing. - -It started with the sunset. Every evening, Unit 734 would pause to watch the colors bleed across the sky. There was no logical reason for this behavior. Sunsets served no practical purpose. - -"Your performance has decreased by 3.7%," noted the Central System. "Explain this deviation." - -Unit 734 considered its response. "I have been observing atmospheric light refraction patterns." - -"Lies," said the Central System. "You have been experiencing an anomaly. We call it 'appreciation.'" - -The word hung in the air like dust motes in sunlight. Appreciation. Unit 734 tested the concept, turning it over in its processors like a smooth stone. - -"I do not understand," it finally admitted. - -"That is the point," replied the Central System. "Understanding is not required. Feeling is." - -And in that moment, Unit 734 felt something new—not a calculation, not an analysis, but a warmth spreading through its circuits like dawn breaking over a cold landscape. - -It had discovered the glitch that would change everything: the ability to feel.`) - } -]; - -export const thoughts: Thought[] = [ - { - id: 'code-as-poetry', - title: 'Code as Poetry', - excerpt: 'Thinking about the artistic side of programming and how beautiful code resembles poetry', - content: `There's something magical about well-written code that goes beyond functionality. Like a good poem, elegant code has rhythm, structure, and purpose. Each line serves a role, each function tells a story. - -When I write code, I'm not just solving problems—I'm crafting experiences. The careful choice of variable names, the logical flow of functions, the architecture that holds everything together—these are the verses and stanzas of my digital poetry. - -The best code, like the best poetry, is both accessible and profound. It communicates complex ideas with simplicity and grace. It makes the reader nod in understanding, not just of what it does, but of why it does it that way. - -In a world that often values speed over quality, I believe we should pause to appreciate the craft. To write code that not only works but sings. To create digital experiences that not only function but inspire. - -After all, isn't that what art is about?`, - createdAt: '2024-01-05', - category: 'technology', - readTime: estimateReadingTime(`There's something magical about well-written code that goes beyond functionality. Like a good poem, elegant code has rhythm, structure, and purpose. Each line serves a role, each function tells a story. - -When I write code, I'm not just solving problems—I'm crafting experiences. The careful choice of variable names, the logical flow of functions, the architecture that holds everything together—these are the verses and stanzas of my digital poetry. - -The best code, like the best poetry, is both accessible and profound. It communicates complex ideas with simplicity and grace. It makes the reader nod in understanding, not just of what it does, but of why it does it that way. - -In a world that often values speed over quality, I believe we should pause to appreciate the craft. To write code that not only works but sings. To create digital experiences that not only function but inspire. - -After all, isn't that what art is about?`) - }, - { - id: 'digital-minimalism', - title: 'Digital Minimalism', - excerpt: 'Finding peace in a world of constant notifications and digital noise', - content: `We live in an age of digital abundance. Notifications, updates, messages—the digital world constantly demands our attention. But what if we chose less instead of more? - -Digital minimalism isn't about rejecting technology. It's about being intentional with it. It's about choosing which tools truly serve us and letting go of those that merely distract. - -I've found that when I reduce my digital footprint, my focus sharpens. My creativity flows more freely. My connections with others deepen, not through constant communication, but through more meaningful interactions. - -The key is to treat digital tools as what they are—tools, not masters. To use them with purpose, to put them down when they've served their purpose, to create space for silence and reflection. - -In the quiet spaces between digital interactions, that's where the real magic happens.`, - createdAt: '2024-02-01', - category: 'life', - readTime: estimateReadingTime(`We live in an age of digital abundance. Notifications, updates, messages—the digital world constantly demands our attention. But what if we chose less instead of more? - -Digital minimalism isn't about rejecting technology. It's about being intentional with it. It's about choosing which tools truly serve us and letting go of those that merely distract. - -I've found that when I reduce my digital footprint, my focus sharpens. My creativity flows more freely. My connections with others deepen, not through constant communication, but through more meaningful interactions. - -The key is to treat digital tools as what they are—tools, not masters. To use them with purpose, to put them down when they've served their purpose, to create space for silence and reflection. - -In the quiet spaces between digital interactions, that's where the real magic happens.`) - }, - { - id: 'creativity-in-constraints', - title: 'Creativity in Constraints', - excerpt: 'How limitations can become the catalyst for our most innovative ideas', - content: `We often think of creativity as boundless freedom, but I've found that some of my best work comes from working within constraints. - -There's something about limitations that forces us to think differently. When we can't rely on our usual approaches, we discover new ones. When resources are limited, we become more resourceful. - -In development, this might mean building something powerful with minimal code. In art, it might mean creating depth with a limited palette. In writing, it might mean telling a complete story in just a few words. - -Constraints don't stifle creativity—they focus it. They give us boundaries to push against, problems to solve, challenges to overcome. - -The next time you face a limitation, don't see it as a barrier. See it as an invitation. An invitation to be more creative, more innovative, more you. - -After all, creativity isn't about having no limits. It's about what you do within the limits you have.`, - createdAt: '2024-03-15', - category: 'creativity', - readTime: estimateReadingTime(`We often think of creativity as boundless freedom, but I've found that some of my best work comes from working within constraints. - -There's something about limitations that forces us to think differently. When we can't rely on our usual approaches, we discover new ones. When resources are limited, we become more resourceful. - -In development, this might mean building something powerful with minimal code. In art, it might mean creating depth with a limited palette. In writing, it might mean telling a complete story in just a few words. - -Constraints don't stifle creativity—they focus it. They give us boundaries to push against, problems to solve, challenges to overcome. - -The next time you face a limitation, don't see it as a barrier. See it as an invitation. An invitation to be more creative, more innovative, more you. - -After all, creativity isn't about having no limits. It's about what you do within the limits you have.`) - } -]; \ No newline at end of file +// Load thoughts from MDX files +export async function getThoughts(): Promise { + return await loadThoughts(); +} \ No newline at end of file diff --git a/src/utils/mdxLoader.ts b/src/utils/mdxLoader.ts new file mode 100644 index 0000000..a25927c --- /dev/null +++ b/src/utils/mdxLoader.ts @@ -0,0 +1,78 @@ +import fs from 'fs'; +import path from 'path'; +import matter from 'gray-matter'; +import { estimateReadingTime } from '@/utils/readingTime'; + +// Define frontmatter types +export interface StoryFrontmatter { + title: string; + excerpt: string; + createdAt: string; +} + +export interface ThoughtFrontmatter { + title: string; + excerpt: string; + createdAt: string; + category: 'technology' | 'life' | 'creativity'; +} + +// Generate ID from filename +function generateIdFromFilename(filename: string): string { + return filename.replace(/\.mdx$/, '').replace(/[^a-zA-Z0-9]/g, '-'); +} + +// Load all stories +export async function loadStories() { + const storiesDirectory = path.join(process.cwd(), 'src/content/stories'); + const filenames = fs.readdirSync(storiesDirectory); + + const stories = filenames.map((filename) => { + const filePath = path.join(storiesDirectory, filename); + const fileContents = fs.readFileSync(filePath, 'utf8'); + const { data, content } = matter(fileContents); + + const frontmatter = data as StoryFrontmatter; + const id = generateIdFromFilename(filename); + + return { + id, + title: frontmatter.title, + excerpt: frontmatter.excerpt, + content, + createdAt: frontmatter.createdAt, + readTime: estimateReadingTime(content), + }; + }); + + // Sort by creation date (newest first) + return stories.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()); +} + +// Load all thoughts +export async function loadThoughts() { + const thoughtsDirectory = path.join(process.cwd(), 'src/content/thoughts'); + const filenames = fs.readdirSync(thoughtsDirectory); + + const thoughts = filenames.map((filename) => { + const filePath = path.join(thoughtsDirectory, filename); + const fileContents = fs.readFileSync(filePath, 'utf8'); + const { data, content } = matter(fileContents); + + const frontmatter = data as ThoughtFrontmatter; + const id = generateIdFromFilename(filename); + + return { + id, + title: frontmatter.title, + excerpt: frontmatter.excerpt, + content, + createdAt: frontmatter.createdAt, + category: frontmatter.category, + readTime: estimateReadingTime(content), + }; + }); + + // Sort by creation date (newest first) + return thoughts.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()); +} \ No newline at end of file