diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml new file mode 100644 index 0000000..3dbdfc3 --- /dev/null +++ b/.github/workflows/build-deploy.yml @@ -0,0 +1,56 @@ +name: Build and Deploy to GitHub Pages + +on: + push: + branches: + - v2 + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Optimise images + run: node scripts/optimise-images.js + + - name: Build project + run: npm run build + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Upload build artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./dist + + deploy: + needs: build + runs-on: ubuntu-latest + + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index c754c8d..42f213d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,31 @@ -_site -.sass-cache -.jekyll-cache -.jekyll-metadata -.idea +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Image optimization cache +public/assets/**/optimised + +# Editor directories and files +.vite/ +.vscode/ +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +.mise.toml + +*storybook.log +storybook-static diff --git a/.storybook/main.js b/.storybook/main.js new file mode 100644 index 0000000..6d3e5f8 --- /dev/null +++ b/.storybook/main.js @@ -0,0 +1,10 @@ +/** @type { import('@storybook/vue3-vite').StorybookConfig } */ +const config = { + stories: ['../src/**/*.stories.js'], + framework: { + name: '@storybook/vue3-vite', + options: {}, + }, +}; + +export default config; diff --git a/.storybook/preview.js b/.storybook/preview.js new file mode 100644 index 0000000..da916cf --- /dev/null +++ b/.storybook/preview.js @@ -0,0 +1,13 @@ +/** @type { import('@storybook/vue3-vite').Preview } */ +const preview = { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + }, +}; + +export default preview; diff --git a/404.html b/404.html deleted file mode 100644 index 0e70df4..0000000 --- a/404.html +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default -title: 404 - Page not found ---- - -
-

Vabandame, lehekülge ei leitud.

-

(Viga 404)

-
- - diff --git a/CNAME b/CNAME deleted file mode 100644 index 3a9cb5f..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -www.lapikud.ee \ No newline at end of file diff --git a/LICENSE b/LICENSE index f8ea787..93a8800 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,21 @@ -MIT License - -Copyright (c) 2018 Lapikud - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +MIT License + +Copyright (c) 2018 Lapikud + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 4bc98d8..2a3661e 100644 --- a/README.md +++ b/README.md @@ -1,106 +1,149 @@ -# Lapikute väliveeb - -Tegu on [Jekyll](https://jekyllrb.com/) peale ehitatud uhiuue lehega - -# Development plan - -Materials are on `Google Drive > Lapikud > Tarkvara > Väliveeb` - -# Contribution guide - -## 1. Create Issues - -Easiest way to help would be to create issues about things that are missing and wrong - -## 2. Fork this repo and create a pull request - -Fork this repo to your own account and create a pull request for changes you have done in there - -# How to setup development environment - -Windows: - -0. Install the Windows Subsystem for Linux - - Install Ubuntu - - https://docs.microsoft.com/en-us/windows/wsl/install-win10 - -1. Install Ruby - - sudo apt install build-essential ruby ruby-dev dh-autoreconf - -2. Install Jekyll - - sudo gem install jekyll - -3. Clone repo - - git clone https://github.com/Lapikud/lapikud.github.io.git - -4. Serve the page (Use bash if on Windows) - - cd lapikud.github.io - jekyll serve --host 0.0.0.0 - -5. Image converter usage (requires imagemagick) - - No one wants to download 5MB images that are then shown in a 100x100px box. - - **Always resize images before committing them!** - - sudo apt-get install imagemagick - sh convert-past-management-images.sh - -MacOS: - -0. Install Homebrew if you don't have it already - - If you're using Bash, write `/bin/bash` instead of `/bin/zsh`. - - /bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - -1. Install the latest stable version of Ruby - - brew install ruby - - Also configure your shell environment. - If you're using Bash, replace `.zshrc` with `.bash_profile`. - - if [ -d "/usr/local/opt/ruby/bin" ]; then - export PATH=/usr/local/opt/ruby/bin:$PATH - export PATH=`gem environment gemdir`/bin:$PATH - fi - - Check that Ruby is working. - - ruby -v - -2. Install the latest Jekyll gem - - sudo gem install jekyll - -3. Clone repo - - git clone https://github.com/Lapikud/lapikud.github.io.git - -4. Serve the page - - cd lapikud.github.io - jekyll serve --host 0.0.0.0 - -5. Image converter usage (requires imagemagick) - - No one wants to download 5MB images that are then shown in a 100x100px box. - - **Always resize images before committing them!** - - brew install imagemagick - sh convert-past-management-images.sh - -# Deploy - -Push to master branch and wait for deployment, it could take up to 2h for the page to update. -You can check the progress by clicking on the [environment](https://github.com/Lapikud/lapikud.github.io/deployments) link - -![Deployments link](https://i.imgur.com/26jnh6k.png) +# Lapikud External Website + +![Built with Vue](https://img.shields.io/badge/Vue-3-42B883?logo=vuedotjs&logoColor=white) +![Built with Vite](https://img.shields.io/badge/Vite-646CFF?logo=vite&logoColor=white) +![Deployed on GitHub Pages](https://img.shields.io/badge/Deployed-GitHub%20Pages-222?logo=github) + +Welcome! This is the public-facing website for Lapikud. It's a learning project. If something breaks, that's totally fine. You just get to learn more about git. + +Materials and design files are on **Google Drive → Lapikud → Tarkvara → Väliveeb** + +--- + +## 🙋 How to help + +You don't need to write code to contribute! + +### Option 1 — Report something +Found a bug, typo, or something missing? [Open an issue](https://github.com/Lapikud/lapikud.github.io/issues) and describe what's wrong. That's already super helpful. + +### Option 2 — Fix something yourself +1. **Fork** this repo (button in the top right on GitHub — it copies the project to your account) +2. Make your changes +3. Open a **pull request** back to this repo + +--- + +## 🛠️ Setting up your dev environment + +### What you need first + +- [Node.js](https://nodejs.org/) — v20.19 or higher; use the current **LTS version** when possible + +> Node.js comes with `npm` included, so you don't need to install that separately. + +--- + +### Don't have a code editor yet? + +If you don't have a preferred code editor, [VSCode](https://code.visualstudio.com/) is a solid choice. Download and install it, and you're good to go. + +--- + +### Windows? Set up WSL first (recommended) + +WSL lets you run Linux commands on Windows, which makes everything smoother. + +
+📋 WSL setup steps + +**Step 1** — Enable WSL. Run these two commands in PowerShell as Administrator (this enables the necessary Windows features): + +```bash +dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart +dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart +``` + +**Step 2** — Set WSL to version 2 (the better one): + +```bash +wsl --set-default-version 2 +``` + +**Step 3** — Install [Ubuntu from the Microsoft Store](https://apps.microsoft.com/store/detail/ubuntu/9NBLGGH4MSV6) + +> ⚠️ If WSL doesn't work, check that **Virtualization** is enabled on your machine: open Task Manager → Performance tab → look for "Virtualization: Enabled" + +
+ +--- + +### Installation + +**1. Clone the repo** — this downloads the project to your computer: + +```bash +git clone https://github.com/Lapikud/lapikud.github.io.git +cd lapikud.github.io +``` + +**2. Install dependencies** — this installs the exact package versions recorded by the project: + +```bash +npm ci +``` + +**3. Optimise images** — the optimised image variants are not stored in the repo, so you need to generate them locally before running the site: + +```bash +npm run optimise +``` + +> You only need to run this once after cloning, and again whenever you add or change images in any `original/` folder. + +**4. Start the dev server** — this runs the site locally so you can see your changes live: + +```bash +npm run dev +``` + +Then open the URL it gives you (usually `http://localhost:5173`) in your browser. 🎉 + +--- + +## 🧭 How the project fits together + +The site is a Vue 3 single-page application built with Vite. Vue starts in `src/main.js`, which mounts `src/App.vue`. The app keeps its intentionally small custom router and translation system rather than introducing larger framework plugins. + +- `src/routes/` contains the page components and the bilingual public route table. +- `src/components/` contains reusable UI building blocks; layout primitives live in `src/components/layout/`. +- `src/layout/` contains the site-wide navigation and footer. +- `src/lib/` contains routing, translations, image-path helpers, and the shared YAML loader. +- `src/lib/locales/{est,en}/` contains escaped JSON translation data for each language. +- `public/_data/` contains editable YAML for members, mentors, workshops, projects, partners, and pricing. +- `public/assets/` contains source assets; generated image variants remain ignored. +- `.storybook/` and `src/stories/` provide isolated Vue component previews. + +Page components use Vue's ` diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index ca29e01..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,7 +0,0 @@ - -{% include head.html %} -{% include header.html %} -{{ content }} -{% include footer.html %} -{% include scripts.html %} - diff --git a/_layouts/post.html b/_layouts/post.html deleted file mode 100644 index e39463a..0000000 --- a/_layouts/post.html +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: default ---- - -
- {%- assign date_format = "%F" -%} -

{{ page.title | escape }}

-
{{ page.date | date: date_format }}
- {{ content }} -
diff --git a/_sass/contact.scss b/_sass/contact.scss deleted file mode 100644 index c8f1591..0000000 --- a/_sass/contact.scss +++ /dev/null @@ -1,115 +0,0 @@ -#contact { - - h2 { - margin-top : 1.5rem; - } - - #helpdesk { - display : flex; - justify-content : center; - align-items : center; - - #helpdesk-banner-container { - background : black; - padding : 3rem; - } - - #helpdesk-banner { - display : block; - width : 100%; - height : auto; - } - #helpdesk-banner-container, #helpdesk-info { - flex : 1; - margin : 0 2rem; - } - } - - #management { - - #container { - display : flex; - flex-direction : row; - flex-wrap : wrap; - justify-content : center; - - .person { - margin-left : 2rem; - margin-right : 2rem; - margin-bottom : 5rem; - display : flex; - flex-direction: column; - align-items : center; - - img { - display : block; - width : 150px; - height : auto; - } - - * { - margin : 0.2rem 0; - } - } - - } - } - - #main-wrapper { - width : 100%; - display : flex; - flex-direction : row; - flex-wrap : wrap; - justify-content : center; - align-items : center; - } - - #maparea { - margin : 0 2rem; - min-width : 44.55%; - flex : 1; - - #map { - width : 100%; - float : right; - margin : 0 auto; - height : 60vh; - max-height : 300px; - } - } - - #main { - margin : 0 2rem; - - - h4{ - padding-bottom : 5px; - } - } - - * { - margin : 0.2rem 0; - } - -} -@media (max-width : 900px) { - - #contact { - #helpdesk { - flex-direction : column; - - #helpdesk-banner-container { - margin : 2rem 0; - } - #helpdesk-info { - margin : 0; - } - } - #main-wrapper{ - #maparea{ - flex-direction: column; - margin: 2rem; - } - } - } -} diff --git a/_sass/footer.scss b/_sass/footer.scss deleted file mode 100644 index 56c4701..0000000 --- a/_sass/footer.scss +++ /dev/null @@ -1,42 +0,0 @@ -.main-footer { - background: #fcfcfc; - padding: 2rem 0; - margin-top: 5rem; - - .container { - max-width: 80rem; - } - - .footer-contact { - margin-bottom: 2rem; - p { - margin: 0.2rem 0; - } - } - - .footer-copyright { - text-align: center; - a { - display: inline-block; - padding: 1rem; - } - } - - .footer-nav { - flex-shrink: 1.5; - ul { - list-style-type: none; - - li { - margin: 0; - padding: 0; - a { - padding: .5rem .2rem; - display: inline-block; - width: 100%; - } - } - - } - } -} diff --git a/_sass/header.scss b/_sass/header.scss deleted file mode 100644 index 9da7da3..0000000 --- a/_sass/header.scss +++ /dev/null @@ -1,101 +0,0 @@ -.navigation { - margin-top: .5rem; - margin-left: auto; - margin-right: auto; - margin-bottom: 5rem; - padding: 1rem 2rem; - height: 50px; - background: #ffffff; - color: #f0941d; - max-width: 112.0rem; - - .logo { - height: 32px; - vertical-align: middle; - display: inline; - } - - #header-logo { - height : 8rem; - } - - - .menu { - display: inline; - - @media (max-width: 40.0rem) { - ul, &:active ul { - display: none; - position: absolute; - top: 45px; - right: 20px; - z-index: 10; - background: #fff; - border: 1px solid #DDDDDD; - width: 20rem; - margin: 0; - padding: 0.5rem 0; - - li { - display: block; - margin: 0; - padding: 0; - a { - width: 100%; - display: block; - text-align: center; - padding: 1rem 2rem; - } - } - } - - &:hover ul { - display: inline-block; - } - - #main-menu-button svg { - fill: #000000 - } - - #main-menu-button:hover svg { - fill: $color-secondary; - } - - #main-menu-button:active svg { - fill: $color-primary; - } - } - } - - @media (min-width: 40.1rem) { - #main-menu-button { - display: none; - } - - .menu ul { - margin: 0; - display: inline-block; - float: right; - - li { - display: inline-block; - margin: 0; - padding: 0; - a { - padding: 1rem; - } - } - - .register-button { - border: 0.1rem solid $color-primary; - border-radius: .4rem; - - &:hover { - color: #ffffff; - background-color: $color-secondary; - border-color: $color-secondary; - } - } - } - } -} diff --git a/_sass/helpdesk.scss b/_sass/helpdesk.scss deleted file mode 100644 index e942487..0000000 --- a/_sass/helpdesk.scss +++ /dev/null @@ -1,152 +0,0 @@ -#helpdesk-page { - - #helpdesk-banner { - background : black; - display : flex; - flex-direction : row; - flex : 1; - justify-content : center; - align-items : center; - text-align : center; - margin : 3rem auto; - padding : 2rem; - - h1, h3 { - color : white; - font-weight : 400; - } - - .emphasis-text-bold { - font-weight : bold; - } - - .emphasis-text-color { - color : $color-primary; - } - - #helpdesk-logo { - display : block; - width : 100%; - height : auto; - } - - #helpdesk-logo-container { - flex : 1; - padding : 25px; - - } - - #banner-text { - flex : 2; - } - - } - - #maparea { - display : flex; - align-items : center; - justify-content : center; - - .siema, #map { - width : 50%; - max-height : 300px; - margin : 20px; - } - #map { - height : 60vh; - max-height : 300px; - } - - .siema { - .carousel-image-container { - display : flex; - justify-content : center; - align-items : center; - img { - max-height : 300px; - width : 100%; - height : auto; - object-fit : scale-down; - } - } - } - } - - #pricing { - margin-bottom : 2rem; - p { - margin : 1rem auto; - font-weight : bold; - } - table { - width : auto; - - th td { - font-weight : bold; - } - tr:first-child { - max-width : 40%; - } - } - } - - #location { - h4 { - margin : 0.1rem auto; - } - } - - #contact { - display : flex; - flex-direction : row; - - .subtext { - opacity : 0.7; - } - - #opening-times, #contact-methods { - flex : 1; - padding : 15px; - } - - #contact-methods { - h4 { - margin : 0.1rem auto; - } - } - } -} - -@media (max-width : 900px) { - #helpdesk-page { - #helpdesk-banner { - flex-direction : column; - } - - table { - tr:first-child { - max-width : 30%; - - } - td, th { - padding : 0.5rem 0.5rem; - } - } - - #maparea { - flex-direction : column; - .siema, #map { - width : 100%; - } - } - - #contact { - flex-direction : column; - } - } - -} - - - - diff --git a/_sass/history.scss b/_sass/history.scss deleted file mode 100644 index 1d68bb2..0000000 --- a/_sass/history.scss +++ /dev/null @@ -1,75 +0,0 @@ -#history { - - .management-for-year { - display : flex; - flex-direction : column; - - .year { - display : flex; - flex-direction : row; - justify-content : center; - flex-wrap : wrap; - - .person { - display : flex; - flex-direction : column; - align-items : center; - margin : 0 2rem; - - h5 { - margin-top : 0.5rem; - } - .img-container { - height : 150px; - width : 150px; - display : flex; - justify-content : center; - align-items : center; - overflow : hidden; - - img { - width : 150px; - height : auto; - } - - } - - } - } - } - -} - -@media (max-width : 900px) { - - #history { - - h1 { - font-size : 4rem; - } - - .management-for-year { - .year { - flex-direction : column; - - .person { - .img-container { - height : 200px; - width : 200px; - - img { - height : auto; - width : 200px; - - } - } - - h5 { - font-size : 2.3rem; - } - } - } - } - } - -} diff --git a/_sass/home.scss b/_sass/home.scss deleted file mode 100644 index b96ad0d..0000000 --- a/_sass/home.scss +++ /dev/null @@ -1,104 +0,0 @@ -.home { - - @media (max-width : 900px) { - h1 { - font-size : 3.6rem; - } - } - - .logo_container { - display : flex; - flex-direction : row; - flex-wrap : wrap; - align-items : center; - justify-content : center; - text-align : center; - margin : 4rem 0; - - #logo { - max-width : 60rem; - width : 100%; - padding : 50px 90px; - } - } - - .lg-icon-container { - justify-content : flex-start; - align-content : flex-start; - align-items : flex-start; - margin : 0; - margin-top : 4rem; - display:flex; - - a { - flex-direction : row; - justify-content : center; - align-items : center; - align-content : flex-start; - text-align : center; - margin : auto; - flex : 2; - - .lg-icon { - fill : #f0941d; - width : 10rem; - height : 10rem; - flex : 1; - } - - .regularText { - color: #1e1e1e; - } - } - - @media (min-width : 40.0rem) { - .column { - flex-direction : column; - justify-content : flex-start; - align-items : center; - align-content : flex-start; - text-align : center; - } - } - } - .description { - margin-top : 1em; - } - @media (min-width : 40.0rem) { - .description { - margin-top : 3em; - } - } - - .partners { - #partners-container { - display : flex; - flex-wrap : wrap; - justify-content : space-evenly; - align-items : center; - - a { - color : #1e1e1e; - img { - max-width : 300px; - max-height : 150px; - width : 100%; - height : auto; - object-fit : scale-down; - margin : 1rem auto; - } - h4 { - text-align : center; - } - } - } - - @media (max-width : 900px) { - #partners-container { - - flex-direction : column - } - } - } - -} diff --git a/_sass/members.scss b/_sass/members.scss deleted file mode 100644 index 4f1becc..0000000 --- a/_sass/members.scss +++ /dev/null @@ -1,34 +0,0 @@ -#members { - #banner-container-link { - margin : 0 auto; - - h3 { - padding : 1rem 4rem; - } - } - - .members-container { - ul { - columns : 4; - } - } -} - -@media (max-width : 900px) { - #members { - #banner-container-link { - margin : unset; - - h3 { - padding : 1rem 0; - } - } - - .members-container { - ul { - columns : 1; - } - } - } - -} diff --git a/_sass/mentors.scss b/_sass/mentors.scss deleted file mode 100644 index 65297f6..0000000 --- a/_sass/mentors.scss +++ /dev/null @@ -1,76 +0,0 @@ -#mentors { - - .mentor { - display : flex; - width : 100%; - flex-direction : row; - margin : 4rem auto; - - .photo-container { - flex : 1; - - img { - display : block; - height : auto; - width : 100%; - margin-top : 2rem; - } - } - - .description { - flex : 2; - - display : flex; - flex-direction : row; - - * { - margin : 0.1rem 0; - } - - h1, h4 { - margin : 1rem 0; - } - - .general { - flex : 2; - margin : 0 3rem; - } - - .varia { - flex : 3; - margin : 1rem 3rem 0; - } - } - - .mentor-info-text { - flex : 3; - display : flex; - flex-direction : column; - padding-left : 5rem; - padding-right : 3rem; - } - - } - -} - -@media (max-width : 900px) { - #mentors { - .mentor { - flex-direction : column; - - .description { - flex-direction : column; - .general, .varia { - margin : 0; - } - } - .photo-container { - img { - max-height : 75vh; - max-width : 75vh; - } - } - } - } -} diff --git a/_sass/ourwork.scss b/_sass/ourwork.scss deleted file mode 100644 index ab55ba5..0000000 --- a/_sass/ourwork.scss +++ /dev/null @@ -1,67 +0,0 @@ -#ourwork-banner { - margin : 5rem 0; - - a { - display : flex; - justify-content : center; - } - -} - -#ourwork-done { - - .work-item { - padding : 1rem; - margin : 7rem 0; - display : flex; - flex-direction : row; - max-height : 75vh; - - .description { - flex : 2; - - h3 { - overflow : hidden; - text-overflow : ellipsis; - } - } - - .thumbnail { - flex : 3; - display : flex; - justify-content : center; - align-items : center; - } - - img { - display : block; - width : auto; - height : auto; - max-height : 50vh; - } - - h2, h3 { - text-align : center; - margin-bottom : 0.3rem; - } - - } -} - -@media (max-width : 900px) { - - #ourwork-done { - - .work-item { - flex-direction : column; - max-height : none; - } - } - - #ourwork-banner { - h1 { - font-size : 3.6rem; - } - - } -} diff --git a/_sass/shared.scss b/_sass/shared.scss deleted file mode 100644 index 14d0abe..0000000 --- a/_sass/shared.scss +++ /dev/null @@ -1,22 +0,0 @@ - -.banner { - background : #f0941d; - color : white; - font-weight : bold; - padding : 2rem; - border-radius : 8rem; -} - -.page { - display : flex; - flex-direction : column; - flex : 1; - width : 85vw; - max-width : 1200px; - min-height : 50vh; - margin : 0 auto 0; -} - -.centered-text { - text-align : center; -} diff --git a/_sass/statute.scss b/_sass/statute.scss deleted file mode 100644 index a849d1d..0000000 --- a/_sass/statute.scss +++ /dev/null @@ -1,12 +0,0 @@ -#statute { - p, ul { - margin-bottom: 0.5rem; - } - li { - margin-bottom: 0.1rem; - } - - h4 { - margin-top: 2.5rem; - } -} diff --git a/_sass/striim.scss b/_sass/striim.scss deleted file mode 100644 index c3c7102..0000000 --- a/_sass/striim.scss +++ /dev/null @@ -1,6 +0,0 @@ -.stream { - .video { - padding: 5px; - flex: 1 1 400px; - } -} diff --git a/_sass/student.scss b/_sass/student.scss deleted file mode 100644 index cde8c87..0000000 --- a/_sass/student.scss +++ /dev/null @@ -1,35 +0,0 @@ -.activities-info { - display : flex; - flex-direction : row; - margin : 3rem auto; - - .desc { - flex : 1; - padding-right : 3rem; - - } - .promo-image { - display : flex; - align-items : center; - flex : 1; - - img { - display : block; - width : 100%; - height : auto; - } - } -} - -@media (max-width : 900px) { - .activities-info { - flex-direction : column; - - .desc { - padding : 0; - h1 { - font-size : 3.6rem - } - } - } -} diff --git a/aboutus.html b/aboutus.html deleted file mode 100644 index 80ca383..0000000 --- a/aboutus.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: default -title: Lapikutest - Lapikud ---- -
- -

MTÜ Lapikud

- -
- - -
-
-

Ajalugu

-

Tutvu Lapikute ajalooga!

-
-
-
- -
diff --git a/assets/469521237_1574639476758835_7853856396417097536_n.jpg b/assets/469521237_1574639476758835_7853856396417097536_n.jpg new file mode 100644 index 0000000..d2d33d3 Binary files /dev/null and b/assets/469521237_1574639476758835_7853856396417097536_n.jpg differ diff --git a/assets/IMG_20251006_183820.jpg b/assets/IMG_20251006_183820.jpg new file mode 100644 index 0000000..f78d44f Binary files /dev/null and b/assets/IMG_20251006_183820.jpg differ diff --git a/assets/IMG_20260311_202141.jpg b/assets/IMG_20260311_202141.jpg new file mode 100644 index 0000000..0dfead3 Binary files /dev/null and b/assets/IMG_20260311_202141.jpg differ diff --git a/assets/main.scss b/assets/main.scss deleted file mode 100644 index c93e0ec..0000000 --- a/assets/main.scss +++ /dev/null @@ -1,35 +0,0 @@ ---- ---- -$color-primary: #f0941d; -$color-secondary: #ffa80d; - -body { - color: #1e1e1e; - font-family: 'Lato', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif; - font-weight: 400; -} - -a, a:link, a:visited { - color: $color-primary; -} -a:active, a:hover { - color: $color-secondary; -} - -h4 { - font-weight: 400; -} - -@import 'header'; -@import 'footer'; -@import 'home'; -@import 'mentors'; -@import 'contact'; -@import 'helpdesk'; -@import 'ourwork'; -@import 'student'; -@import 'shared'; -@import 'statute'; -@import 'history'; -@import 'members'; -@import 'striim'; diff --git a/assets/mentors-images/convert-mentors-images.sh b/assets/mentors-images/convert-mentors-images.sh deleted file mode 100755 index 7f7a008..0000000 --- a/assets/mentors-images/convert-mentors-images.sh +++ /dev/null @@ -1,11 +0,0 @@ -mkdir -p optimised -for file in original/*; do - echo $file - base_name=$(basename $file) - if [[ $base_name == *"airiin"* ]] || [[ $base_name == *"lembitu"* ]] ; then - gravity=north - else - gravity=center - fi - convert ${file} -resize "400x400^>" -gravity $gravity -extent 400x400 optimised/${base_name%} -done diff --git a/assets/mentors-images/optimised/agnes_triin_saga_mentor.jpg b/assets/mentors-images/optimised/agnes_triin_saga_mentor.jpg deleted file mode 100644 index c05d7e1..0000000 Binary files a/assets/mentors-images/optimised/agnes_triin_saga_mentor.jpg and /dev/null differ diff --git a/assets/mentors-images/optimised/christopher_rammul_mentor.jpg b/assets/mentors-images/optimised/christopher_rammul_mentor.jpg deleted file mode 100644 index 599e53d..0000000 Binary files a/assets/mentors-images/optimised/christopher_rammul_mentor.jpg and /dev/null differ diff --git a/assets/mentors-images/optimised/erki_lasberg_mentor.jpg b/assets/mentors-images/optimised/erki_lasberg_mentor.jpg deleted file mode 100644 index 5998551..0000000 Binary files a/assets/mentors-images/optimised/erki_lasberg_mentor.jpg and /dev/null differ diff --git a/assets/mentors-images/optimised/jürjo_eibak_mentor.jpg b/assets/mentors-images/optimised/jürjo_eibak_mentor.jpg deleted file mode 100644 index 7251c61..0000000 Binary files a/assets/mentors-images/optimised/jürjo_eibak_mentor.jpg and /dev/null differ diff --git a/assets/mentors-images/optimised/katri_lotamõis_mentor.jpg b/assets/mentors-images/optimised/katri_lotamõis_mentor.jpg deleted file mode 100644 index 0bcd154..0000000 Binary files a/assets/mentors-images/optimised/katri_lotamõis_mentor.jpg and /dev/null differ diff --git a/assets/mentors-images/optimised/kerdo_käärma_mentor.jpg b/assets/mentors-images/optimised/kerdo_käärma_mentor.jpg deleted file mode 100644 index 33450da..0000000 Binary files a/assets/mentors-images/optimised/kerdo_käärma_mentor.jpg and /dev/null differ diff --git a/assets/mentors-images/optimised/lembitu_valdmets_mentor.jpg b/assets/mentors-images/optimised/lembitu_valdmets_mentor.jpg deleted file mode 100644 index 3a4ef86..0000000 Binary files a/assets/mentors-images/optimised/lembitu_valdmets_mentor.jpg and /dev/null differ diff --git a/assets/mentors-images/optimised/reio_opromei_mentor.jpg b/assets/mentors-images/optimised/reio_opromei_mentor.jpg deleted file mode 100644 index 7e03e43..0000000 Binary files a/assets/mentors-images/optimised/reio_opromei_mentor.jpg and /dev/null differ diff --git a/assets/mentors-images/optimised/rene_arumetsa_mentor.jpg b/assets/mentors-images/optimised/rene_arumetsa_mentor.jpg deleted file mode 100644 index ef1df2e..0000000 Binary files a/assets/mentors-images/optimised/rene_arumetsa_mentor.jpg and /dev/null differ diff --git a/assets/ourwork-images/convert-ourwork-images.sh b/assets/ourwork-images/convert-ourwork-images.sh deleted file mode 100644 index 68aa733..0000000 --- a/assets/ourwork-images/convert-ourwork-images.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -mkdir -p optimised -for file in original-jpg-converted/*; do - echo $file - base_name=$(basename $file) - convert ${file} -resize "1000x1000>" -quality 89 optimised/${base_name} -done diff --git a/assets/ourwork-images/optimised/eesti_noorteühenduste_liit.jpg b/assets/ourwork-images/optimised/eesti_noorteühenduste_liit.jpg deleted file mode 100644 index 7a826c0..0000000 Binary files a/assets/ourwork-images/optimised/eesti_noorteühenduste_liit.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/isic.jpg b/assets/ourwork-images/optimised/isic.jpg deleted file mode 100644 index e252925..0000000 Binary files a/assets/ourwork-images/optimised/isic.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/jalgrattaveeb.jpg b/assets/ourwork-images/optimised/jalgrattaveeb.jpg deleted file mode 100644 index 32df53f..0000000 Binary files a/assets/ourwork-images/optimised/jalgrattaveeb.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/nauticalcrew.jpg b/assets/ourwork-images/optimised/nauticalcrew.jpg deleted file mode 100644 index e9e5aef..0000000 Binary files a/assets/ourwork-images/optimised/nauticalcrew.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/nommetenniseklubi.jpg b/assets/ourwork-images/optimised/nommetenniseklubi.jpg deleted file mode 100644 index 6a63d60..0000000 Binary files a/assets/ourwork-images/optimised/nommetenniseklubi.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/orkester.jpg b/assets/ourwork-images/optimised/orkester.jpg deleted file mode 100644 index 67085a0..0000000 Binary files a/assets/ourwork-images/optimised/orkester.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/osaluskogud_eestis.jpg b/assets/ourwork-images/optimised/osaluskogud_eestis.jpg deleted file mode 100644 index 6890bc8..0000000 Binary files a/assets/ourwork-images/optimised/osaluskogud_eestis.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/remondikohvik.jpg b/assets/ourwork-images/optimised/remondikohvik.jpg deleted file mode 100644 index 0cd78bc..0000000 Binary files a/assets/ourwork-images/optimised/remondikohvik.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/sallivkool.jpg b/assets/ourwork-images/optimised/sallivkool.jpg deleted file mode 100644 index f598fe2..0000000 Binary files a/assets/ourwork-images/optimised/sallivkool.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/sporditrennid.jpg b/assets/ourwork-images/optimised/sporditrennid.jpg deleted file mode 100644 index 8d5ca7f..0000000 Binary files a/assets/ourwork-images/optimised/sporditrennid.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/studentlife.jpg b/assets/ourwork-images/optimised/studentlife.jpg deleted file mode 100644 index f439c85..0000000 Binary files a/assets/ourwork-images/optimised/studentlife.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/taksod-net-android.jpg b/assets/ourwork-images/optimised/taksod-net-android.jpg deleted file mode 100644 index 4d526a5..0000000 Binary files a/assets/ourwork-images/optimised/taksod-net-android.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/taksod-net-ios.jpg b/assets/ourwork-images/optimised/taksod-net-ios.jpg deleted file mode 100644 index a4882f1..0000000 Binary files a/assets/ourwork-images/optimised/taksod-net-ios.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/tipilan.jpg b/assets/ourwork-images/optimised/tipilan.jpg deleted file mode 100644 index eea9e72..0000000 Binary files a/assets/ourwork-images/optimised/tipilan.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/ttu-ajatelg.jpg b/assets/ourwork-images/optimised/ttu-ajatelg.jpg deleted file mode 100644 index ba6d2b6..0000000 Binary files a/assets/ourwork-images/optimised/ttu-ajatelg.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/ttu_muusem_placeholder.jpg b/assets/ourwork-images/optimised/ttu_muusem_placeholder.jpg deleted file mode 100644 index d7d357a..0000000 Binary files a/assets/ourwork-images/optimised/ttu_muusem_placeholder.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/ukseproff.jpg b/assets/ourwork-images/optimised/ukseproff.jpg deleted file mode 100644 index 5b11aa0..0000000 Binary files a/assets/ourwork-images/optimised/ukseproff.jpg and /dev/null differ diff --git a/assets/ourwork-images/optimised/votitulevikku.jpg b/assets/ourwork-images/optimised/votitulevikku.jpg deleted file mode 100644 index b631ba8..0000000 Binary files a/assets/ourwork-images/optimised/votitulevikku.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/eesti_noorteühenduste_liit.jpg b/assets/ourwork-images/original-jpg-converted/eesti_noorteühenduste_liit.jpg deleted file mode 100644 index 0fa8dd2..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/eesti_noorteühenduste_liit.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/isic.jpg b/assets/ourwork-images/original-jpg-converted/isic.jpg deleted file mode 100644 index 16f93fe..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/isic.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/orkester.jpg b/assets/ourwork-images/original-jpg-converted/orkester.jpg deleted file mode 100644 index 05ebce2..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/orkester.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/osaluskogud_eestis.jpg b/assets/ourwork-images/original-jpg-converted/osaluskogud_eestis.jpg deleted file mode 100644 index 2d8e507..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/osaluskogud_eestis.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/sallivkool.jpg b/assets/ourwork-images/original-jpg-converted/sallivkool.jpg deleted file mode 100644 index 7eb37a0..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/sallivkool.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/studentlife.jpg b/assets/ourwork-images/original-jpg-converted/studentlife.jpg deleted file mode 100644 index 5c570c1..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/studentlife.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/taksod-net-android.jpg b/assets/ourwork-images/original-jpg-converted/taksod-net-android.jpg deleted file mode 100644 index 11e2b49..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/taksod-net-android.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/taksod-net-ios.jpg b/assets/ourwork-images/original-jpg-converted/taksod-net-ios.jpg deleted file mode 100644 index 39ad5b7..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/taksod-net-ios.jpg and /dev/null differ diff --git a/assets/ourwork-images/original-jpg-converted/ttu_muusem_placeholder.jpg b/assets/ourwork-images/original-jpg-converted/ttu_muusem_placeholder.jpg deleted file mode 100644 index 664e91e..0000000 Binary files a/assets/ourwork-images/original-jpg-converted/ttu_muusem_placeholder.jpg and /dev/null differ diff --git a/assets/ourwork-images/original/jalgrattaveeb.jpg b/assets/ourwork-images/original/jalgrattaveeb.jpg deleted file mode 100644 index 22fcabd..0000000 Binary files a/assets/ourwork-images/original/jalgrattaveeb.jpg and /dev/null differ diff --git a/assets/ourwork-images/original/nauticalcrew.jpg b/assets/ourwork-images/original/nauticalcrew.jpg deleted file mode 100644 index fd554f6..0000000 Binary files a/assets/ourwork-images/original/nauticalcrew.jpg and /dev/null differ diff --git a/assets/ourwork-images/original/nommetenniseklubi.jpg b/assets/ourwork-images/original/nommetenniseklubi.jpg deleted file mode 100644 index 87258c9..0000000 Binary files a/assets/ourwork-images/original/nommetenniseklubi.jpg and /dev/null differ diff --git a/assets/ourwork-images/original/sporditrennid.jpg b/assets/ourwork-images/original/sporditrennid.jpg deleted file mode 100644 index 1690de1..0000000 Binary files a/assets/ourwork-images/original/sporditrennid.jpg and /dev/null differ diff --git a/assets/ourwork-images/original/ttu-ajatelg.jpg b/assets/ourwork-images/original/ttu-ajatelg.jpg deleted file mode 100644 index aea56ec..0000000 Binary files a/assets/ourwork-images/original/ttu-ajatelg.jpg and /dev/null differ diff --git a/assets/ourwork-images/original/ukseproff.jpg b/assets/ourwork-images/original/ukseproff.jpg deleted file mode 100644 index 577d3a7..0000000 Binary files a/assets/ourwork-images/original/ukseproff.jpg and /dev/null differ diff --git a/assets/ourwork-images/original/votitulevikku.jpg b/assets/ourwork-images/original/votitulevikku.jpg deleted file mode 100644 index 4e3ee07..0000000 Binary files a/assets/ourwork-images/original/votitulevikku.jpg and /dev/null differ diff --git a/assets/past-management-images/convert-past-management-images.sh b/assets/past-management-images/convert-past-management-images.sh deleted file mode 100644 index 4e2ad3b..0000000 --- a/assets/past-management-images/convert-past-management-images.sh +++ /dev/null @@ -1,6 +0,0 @@ -mkdir -p optimised -for file in original/*; do - echo $file - base_name=$(basename $file) - convert ${file} -resize "200x200^>" -gravity center -crop 200x200+0+0 -quality 89 optimised/${base_name} -done diff --git a/assets/past-management-images/optimised/aive_uus.jpg b/assets/past-management-images/optimised/aive_uus.jpg deleted file mode 100644 index 100dc84..0000000 Binary files a/assets/past-management-images/optimised/aive_uus.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/aleksandr_požidajev.jpg b/assets/past-management-images/optimised/aleksandr_požidajev.jpg deleted file mode 100644 index 2d78942..0000000 Binary files a/assets/past-management-images/optimised/aleksandr_požidajev.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/ann-claire_utt.jpg b/assets/past-management-images/optimised/ann-claire_utt.jpg deleted file mode 100644 index 673fbb3..0000000 Binary files a/assets/past-management-images/optimised/ann-claire_utt.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/asko_närep.jpg b/assets/past-management-images/optimised/asko_närep.jpg deleted file mode 100644 index 205a11b..0000000 Binary files a/assets/past-management-images/optimised/asko_närep.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/ave_tarend.jpg b/assets/past-management-images/optimised/ave_tarend.jpg deleted file mode 100644 index ccbfda7..0000000 Binary files a/assets/past-management-images/optimised/ave_tarend.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/berta_harsing.jpg b/assets/past-management-images/optimised/berta_harsing.jpg deleted file mode 100644 index b87a3ac..0000000 Binary files a/assets/past-management-images/optimised/berta_harsing.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/christopher_rammul.jpg b/assets/past-management-images/optimised/christopher_rammul.jpg deleted file mode 100644 index dfbb1b8..0000000 Binary files a/assets/past-management-images/optimised/christopher_rammul.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/eret_rääk.jpg b/assets/past-management-images/optimised/eret_rääk.jpg deleted file mode 100644 index afb0f6e..0000000 Binary files a/assets/past-management-images/optimised/eret_rääk.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/erki_lasberg.jpg b/assets/past-management-images/optimised/erki_lasberg.jpg deleted file mode 100644 index d1e5f93..0000000 Binary files a/assets/past-management-images/optimised/erki_lasberg.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/hanno_vene.jpg b/assets/past-management-images/optimised/hanno_vene.jpg deleted file mode 100644 index 004232c..0000000 Binary files a/assets/past-management-images/optimised/hanno_vene.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/helen_tiitma.jpg b/assets/past-management-images/optimised/helen_tiitma.jpg deleted file mode 100644 index de032fe..0000000 Binary files a/assets/past-management-images/optimised/helen_tiitma.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/jaak_lember.jpg b/assets/past-management-images/optimised/jaak_lember.jpg deleted file mode 100644 index 04df39a..0000000 Binary files a/assets/past-management-images/optimised/jaak_lember.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/janne_raudsepp.jpg b/assets/past-management-images/optimised/janne_raudsepp.jpg deleted file mode 100644 index db30dd0..0000000 Binary files a/assets/past-management-images/optimised/janne_raudsepp.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/kaarel_pärtel.jpg b/assets/past-management-images/optimised/kaarel_pärtel.jpg deleted file mode 100644 index e5ca8ea..0000000 Binary files a/assets/past-management-images/optimised/kaarel_pärtel.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/karin_viil.jpg b/assets/past-management-images/optimised/karin_viil.jpg deleted file mode 100644 index 264ecf5..0000000 Binary files a/assets/past-management-images/optimised/karin_viil.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/karli_oruste.jpg b/assets/past-management-images/optimised/karli_oruste.jpg deleted file mode 100644 index 6f9ba66..0000000 Binary files a/assets/past-management-images/optimised/karli_oruste.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/kertu_nurmberg.jpg b/assets/past-management-images/optimised/kertu_nurmberg.jpg deleted file mode 100644 index 6a84d6d..0000000 Binary files a/assets/past-management-images/optimised/kertu_nurmberg.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/kertu_pikk_2015.png b/assets/past-management-images/optimised/kertu_pikk_2015.png deleted file mode 100644 index 5ec0da3..0000000 Binary files a/assets/past-management-images/optimised/kertu_pikk_2015.png and /dev/null differ diff --git a/assets/past-management-images/optimised/kertu_pikk_2016.jpg b/assets/past-management-images/optimised/kertu_pikk_2016.jpg deleted file mode 100644 index 7b4def5..0000000 Binary files a/assets/past-management-images/optimised/kertu_pikk_2016.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/kristjan_haavik_2007.jpg b/assets/past-management-images/optimised/kristjan_haavik_2007.jpg deleted file mode 100644 index 2a5b64f..0000000 Binary files a/assets/past-management-images/optimised/kristjan_haavik_2007.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/kristjan_haavik_2008.jpg b/assets/past-management-images/optimised/kristjan_haavik_2008.jpg deleted file mode 100644 index 65c0d7e..0000000 Binary files a/assets/past-management-images/optimised/kristjan_haavik_2008.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/lauri_till.jpg b/assets/past-management-images/optimised/lauri_till.jpg deleted file mode 100644 index 0c6a4b7..0000000 Binary files a/assets/past-management-images/optimised/lauri_till.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/lembitu_valdmets.jpg b/assets/past-management-images/optimised/lembitu_valdmets.jpg deleted file mode 100644 index fe85a11..0000000 Binary files a/assets/past-management-images/optimised/lembitu_valdmets.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/margus_mahler.jpg b/assets/past-management-images/optimised/margus_mahler.jpg deleted file mode 100644 index 0d80fe5..0000000 Binary files a/assets/past-management-images/optimised/margus_mahler.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/martin_oblikas.jpg b/assets/past-management-images/optimised/martin_oblikas.jpg deleted file mode 100644 index 05e0adf..0000000 Binary files a/assets/past-management-images/optimised/martin_oblikas.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/meelik_gornoi.jpg b/assets/past-management-images/optimised/meelik_gornoi.jpg deleted file mode 100644 index 7eec46c..0000000 Binary files a/assets/past-management-images/optimised/meelik_gornoi.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/märt_lepik.jpg b/assets/past-management-images/optimised/märt_lepik.jpg deleted file mode 100644 index df7202f..0000000 Binary files a/assets/past-management-images/optimised/märt_lepik.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/nansy_ly_endma.jpg b/assets/past-management-images/optimised/nansy_ly_endma.jpg deleted file mode 100644 index 1f94888..0000000 Binary files a/assets/past-management-images/optimised/nansy_ly_endma.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/oole_tuurmaa.png b/assets/past-management-images/optimised/oole_tuurmaa.png deleted file mode 100644 index 568db41..0000000 Binary files a/assets/past-management-images/optimised/oole_tuurmaa.png and /dev/null differ diff --git a/assets/past-management-images/optimised/petri_behm.jpg b/assets/past-management-images/optimised/petri_behm.jpg deleted file mode 100644 index 7b64242..0000000 Binary files a/assets/past-management-images/optimised/petri_behm.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/priit_lepp.jpg b/assets/past-management-images/optimised/priit_lepp.jpg deleted file mode 100644 index e42275b..0000000 Binary files a/assets/past-management-images/optimised/priit_lepp.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/pärlin_luhila.png b/assets/past-management-images/optimised/pärlin_luhila.png deleted file mode 100644 index cb7c5cc..0000000 Binary files a/assets/past-management-images/optimised/pärlin_luhila.png and /dev/null differ diff --git a/assets/past-management-images/optimised/rasmus_koit.jpg b/assets/past-management-images/optimised/rasmus_koit.jpg deleted file mode 100644 index d98bbb1..0000000 Binary files a/assets/past-management-images/optimised/rasmus_koit.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/raul_aassalu.jpg b/assets/past-management-images/optimised/raul_aassalu.jpg deleted file mode 100644 index 3509b00..0000000 Binary files a/assets/past-management-images/optimised/raul_aassalu.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/rene_arumetsa.jpg b/assets/past-management-images/optimised/rene_arumetsa.jpg deleted file mode 100644 index 617de35..0000000 Binary files a/assets/past-management-images/optimised/rene_arumetsa.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/risto_leesmäe.jpg b/assets/past-management-images/optimised/risto_leesmäe.jpg deleted file mode 100644 index e4fcd08..0000000 Binary files a/assets/past-management-images/optimised/risto_leesmäe.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/risto_maasing.jpg b/assets/past-management-images/optimised/risto_maasing.jpg deleted file mode 100644 index 3deed4e..0000000 Binary files a/assets/past-management-images/optimised/risto_maasing.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/roel_rahkema.jpg b/assets/past-management-images/optimised/roel_rahkema.jpg deleted file mode 100644 index 915ed92..0000000 Binary files a/assets/past-management-images/optimised/roel_rahkema.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/roosi-ann_tõlgu.jpg b/assets/past-management-images/optimised/roosi-ann_tõlgu.jpg deleted file mode 100644 index e5eeefa..0000000 Binary files a/assets/past-management-images/optimised/roosi-ann_tõlgu.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/sigrid_kirss.jpg b/assets/past-management-images/optimised/sigrid_kirss.jpg deleted file mode 100644 index 12cf669..0000000 Binary files a/assets/past-management-images/optimised/sigrid_kirss.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/siim_talts.jpg b/assets/past-management-images/optimised/siim_talts.jpg deleted file mode 100644 index e4ce068..0000000 Binary files a/assets/past-management-images/optimised/siim_talts.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/siim_valgeväli.jpg b/assets/past-management-images/optimised/siim_valgeväli.jpg deleted file mode 100644 index 9562876..0000000 Binary files a/assets/past-management-images/optimised/siim_valgeväli.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/tõnis_märtmaa.jpg b/assets/past-management-images/optimised/tõnis_märtmaa.jpg deleted file mode 100644 index 4049723..0000000 Binary files a/assets/past-management-images/optimised/tõnis_märtmaa.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/tõnis_piirits.jpg b/assets/past-management-images/optimised/tõnis_piirits.jpg deleted file mode 100644 index 549ad13..0000000 Binary files a/assets/past-management-images/optimised/tõnis_piirits.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/tõnis_trumaa.jpg b/assets/past-management-images/optimised/tõnis_trumaa.jpg deleted file mode 100644 index e32205a..0000000 Binary files a/assets/past-management-images/optimised/tõnis_trumaa.jpg and /dev/null differ diff --git a/assets/past-management-images/optimised/õnne_laanmets.jpg b/assets/past-management-images/optimised/õnne_laanmets.jpg deleted file mode 100644 index 5ad3c1d..0000000 Binary files a/assets/past-management-images/optimised/õnne_laanmets.jpg and /dev/null differ diff --git a/assets/past-management-images/original/andrei_guzovski.jpg b/assets/past-management-images/original/andrei_guzovski.jpg deleted file mode 100644 index d45a1ba..0000000 Binary files a/assets/past-management-images/original/andrei_guzovski.jpg and /dev/null differ diff --git a/assets/past-management-images/original/anet_mitt.jpg b/assets/past-management-images/original/anet_mitt.jpg deleted file mode 100644 index 80a8f42..0000000 Binary files a/assets/past-management-images/original/anet_mitt.jpg and /dev/null differ diff --git a/assets/past-management-images/original/carina_ruut.jpg b/assets/past-management-images/original/carina_ruut.jpg deleted file mode 100644 index 31b4f6a..0000000 Binary files a/assets/past-management-images/original/carina_ruut.jpg and /dev/null differ diff --git a/assets/past-management-images/original/coming-soon.jpg b/assets/past-management-images/original/coming-soon.jpg deleted file mode 100644 index 1c755be..0000000 Binary files a/assets/past-management-images/original/coming-soon.jpg and /dev/null differ diff --git a/assets/past-management-images/original/ingrid_regina_vahi.jpg b/assets/past-management-images/original/ingrid_regina_vahi.jpg deleted file mode 100644 index efab521..0000000 Binary files a/assets/past-management-images/original/ingrid_regina_vahi.jpg and /dev/null differ diff --git a/assets/past-management-images/original/karl_eric_mottus.jpg b/assets/past-management-images/original/karl_eric_mottus.jpg deleted file mode 100644 index e5a019d..0000000 Binary files a/assets/past-management-images/original/karl_eric_mottus.jpg and /dev/null differ diff --git a/assets/past-management-images/original/kristjan_koiv.png b/assets/past-management-images/original/kristjan_koiv.png deleted file mode 100644 index db1b62c..0000000 Binary files a/assets/past-management-images/original/kristjan_koiv.png and /dev/null differ diff --git a/assets/past-management-images/original/laura_anni.jpg b/assets/past-management-images/original/laura_anni.jpg deleted file mode 100644 index 8a8747f..0000000 Binary files a/assets/past-management-images/original/laura_anni.jpg and /dev/null differ diff --git a/assets/past-management-images/original/peter-sten_annus.jpg b/assets/past-management-images/original/peter-sten_annus.jpg deleted file mode 100644 index 7cbd6f2..0000000 Binary files a/assets/past-management-images/original/peter-sten_annus.jpg and /dev/null differ diff --git a/assets/past-management-images/original/taeri_saar.jpg b/assets/past-management-images/original/taeri_saar.jpg deleted file mode 100644 index af7b75e..0000000 Binary files a/assets/past-management-images/original/taeri_saar.jpg and /dev/null differ diff --git a/assets/student-images/image_2.jpg b/assets/student-images/image_2.jpg deleted file mode 100644 index 76a0051..0000000 Binary files a/assets/student-images/image_2.jpg and /dev/null differ diff --git a/assets/student-images/image_3.jpg b/assets/student-images/image_3.jpg deleted file mode 100644 index 85df6f8..0000000 Binary files a/assets/student-images/image_3.jpg and /dev/null differ diff --git a/blog.html b/blog.html deleted file mode 100644 index 04bdf09..0000000 --- a/blog.html +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default -title: Blogi - Lapikud ---- - -
- {%- for post in site.posts -%} - {%- assign date_format = "%F" -%} -

- - {{ post.title | escape }} - -

- {{ post.excerpt }} -
{{ post.date | date: date_format }} -
- {%- endfor -%} -
- diff --git a/contact.html b/contact.html deleted file mode 100644 index 899f582..0000000 --- a/contact.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -layout: default -title: Kontakt - Lapikud ---- -
-

Kontakt

- -

Helpdesk

-
-
-

E-mail: helpdesk@lapikud.ee

-

Telefon: +372 58 160 799

-

Facebook: Lapikud Helpdesk

-
- - - -
- -

MTÜ Lapikud

-
-
-

Aadress: Akadeemia tee 5, 12616 Tallinn

-

E-post: lapikud@lapikud.ee

-

Telefon: +372 58 160 799

-

Reg. kood: 801 67 145

-

Swedbank EE812200221019551756

-
-
-
-
-
- - -
-

Juhatus

-
- {% for person in site.data.management %} -
- {{ person.name }} -

{{ person.name }}

-

{{ person.role }}

-

{{ person.subrole }}

-

E-post:

- {{ person.email }} - {% if person.phone %} -

Telefon:

- {{ person.phone }} - {% endif %} -
- {% endfor %} -
-
-
- - - - - - diff --git a/docs/merge-master-2026-07.md b/docs/merge-master-2026-07.md new file mode 100644 index 0000000..ce640a5 --- /dev/null +++ b/docs/merge-master-2026-07.md @@ -0,0 +1,54 @@ +# Master merge, July 2026 + +This merge keeps the Vue/Vite application as the deployed site while carrying forward every current content change from `master`. The resolution was replayed as small commits so each decision remains reviewable. + +## Path mapping + +The Vite build copies `public/` into the deployment artifact. Master’s content therefore keeps its original relative structure beneath that served root: + +| Master path | Vue path | +| --- | --- | +| `_data/*.yml` | `public/_data/*.yml` | +| `assets/management-images/*` | `public/assets/management-images/original/*` | +| `assets/mentors-images/original/*` | `public/assets/mentors-images/original/*` | +| `assets/ourwork-images/original/*` | `public/assets/ourwork-images/original/*` | +| `assets/partners/*` | `public/assets/partners/*` | +| `assets/past-management-images/*` | `public/assets/past-management-images/original/*` | + +Image filenames and content wording from `master` remain unchanged. The Vue image helper accepts filename extensions and resolves generated variants by stem. + +## Resolution sequence + +1. Imported the current mentor roster, Katri Lotamõis’s revised wording, and Lembitu Valdmets’s profile. +2. Preserved Karina Reisel’s refactor-only profile as inactive data while keeping her off the current mentor page. +3. Imported master’s membership promotions, additions, corrections, and graduate transitions. +4. Preserved refactor-only member names under `inactive` rather than guessing a new membership tier. +5. Imported the 2026 board, board history, placeholder, and referenced historical portraits. +6. Retained master’s exact portfolio image references; the source images were already byte-identical. +7. Added the TalTech engineering faculty partner and exact logo. +8. Restored master’s exact Estonian homepage and student-page wording in the locale files. +9. Represented project URLs as structured links and restored the mentor onboarding callout without raw HTML. +10. Applied master’s fixed board-portrait sizing in the Vue component. + +## Files not restored + +The old root Jekyll pages, layouts, includes, Sass tree, and `_config.yml` are not consumed by Vite or copied into `dist/`. Restoring them would create a second, stale application beside Vue. + +The old shell image converters and committed `optimised/` images are also omitted. `scripts/optimise-images.js` generates the deployment variants from each `public/assets/*/original/` directory, so keeping both pipelines would create competing outputs. + +No source record was discarded to satisfy a current roster change. Superseded mentor and member records remain explicitly inactive, and prior portraits remain in their source directories. + +## Verification + +Run these checks after resolving or changing the imported content: + +```sh +npm ci +npm run optimise +npm run build +npm run build-storybook +npm audit --audit-level=high +git diff --check +``` + +The content audit should also confirm that every active YAML image reference has a matching source image stem under the mapped `public/assets` category. diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index 46c4b4d..0000000 Binary files a/favicon.ico and /dev/null differ diff --git a/helpdesk.html b/helpdesk.html deleted file mode 100644 index 87e8a3a..0000000 --- a/helpdesk.html +++ /dev/null @@ -1,210 +0,0 @@ ---- -layout: default -title: Helpdesk - Lapikud ---- -
- -
-
- -
- - -
- -
-

Mis on HELPDESK?

-

- HELPDESK on MTÜ Lapikute poolt pakutav arvutiabiteenus. Teenus on suunatud tudengitele, õppejõududele ning - kõikidele huvilistele ka väljaspool Tallinna Tehnikaülikooli. Meie meeskond koosneb kogenud ja nutikatest Tallinna Tehnikaülikooli IT-tudengitest. -

-
- -
-

Mis teenuseid osutame?

- -
- -
-

Hinnakiri

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TeenusKogusHind
Arvuti diagnostika15 mintasuta
Arvuti diagnostika (alates 15 min +)tk20 €
Detaili paigaldamine arvutissetk10-15 €
Sülearvuti tolmupuhastus + termopastatk10-20 €
Sülearvuti ekraani paigaldustk15 €
Arvuti komplekteeriminetk20 €
Tarkvara hooldustöö ja paigaldaminetk10-15 €
Muu elektroonika parandustk10-50 €
Andmete taastaminetk10-30 €
Nutiseadmete tarkvarahooldustk15 €
Operatsioonisüsteemi taaspaigaldustk15 €
Nutitelefoni klaasi/display/aku vahetustk15-30 €
-

Jupid tellitakse kliendi enda poolt või kokkuleppel tehnikuga.

-

Vajadusel tuleme üliõpilasküla ja Tehnopoli piires kohale.

-

Oma tudengisõbralike hindade ja personaalse lähenemisega pakume teenust, milles ei pea pettuma!

-
- -
-
-

Asukoht

-

Akadeemia tee 5 ühiselamu

-

ruum 008A

-
-
-
-
- - - - - -
-
-
- -
- -
-

Lahtiolekuajad:

-

E – R 14-19*

-
* Tegu on ajaperioodiga, mil meid on kõige tõenäolisem tabada. Siiski ei saa garanteerida - kohalolekut.
-
- -
-

Kontakt

-
-

E-mail:

-

helpdesk@lapikud.ee

-

Telefon:

-

+372 581 607 99

-

Facebook Messenger:

-

m.me/LapikudHelpdesk

-
-
- - - -
-
- - - - - - - - - - diff --git a/history.html b/history.html deleted file mode 100644 index 7013d8b..0000000 --- a/history.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: default -title: Ajalugu - Lapikud ---- -
-

Ajalugu

-

MTÜ Lapikud loodi 2002. aasta 23. veebruaril. Organisatsiooni lõi sõpruskond informaatikuid, kellele meeldis koos - aega viita. Põhjus, miks üldse MTÜ tehti seisnes selles, et saada .ee domeen. Nimi “Lapikud” tuleneb sellest, et - siis oli informaatikute erialatähiseks “LAP”. Organisatsioon tegutses aastatel 2002 kuni 2010 eesmärgiga sisustada - IT tudengite vaba aega ning toetada IT õpinguid. Aastast 2011 tituleerisid Lapikud ennast Tarkvaraarenduse klubiks, - ning organisatsiooni fookus on suunatud tudengite kaasamisse erinevatesse tarkvaraarenduse projektidesse. 2012. - aasta kevadel kaitsti ära esimene Lapikutest koorunud lõputöö hindele 5.

- -

Organisatsiooni juhtinud inimesed läbi aegade

- - {% for management in site.data.past_management %} -
-

{{management.year}}

-
- {% for member in management.members %} -
-
- {{ member.name }} -
-
{{ member.name }}
-
- {% endfor %} -
-
- {% endfor %} - -
diff --git a/index.html b/index.html index af4a499..e78589a 100644 --- a/index.html +++ b/index.html @@ -1,98 +1,32 @@ ---- -layout: default -title: Lapikud ---- - - -
-
- -
- - -
- -
- - - -
-

Tudengile

-

Tule arenda oma oskuseid ja saa ägedaid sõpru

-

Uuri edasi meie tegevuste kohta ->

-
-
-
- - -
- - - -
-

Helpdesk

-

Tudengisõbralik arvutiparandus!

-

Tööde hinnakiri ->

-
-
-
- - -
- - - -
-

Ettevõttele

-

Aitame sinu ideed ellu viia!

-

Tehtud tööd ->

-
-
-
-
- -
-

Kes me oleme?

-

- MTÜ Lapikud on Tallinna Tehnikaülikooli Tarkvaraarendusklubi, mis ühendab endisi ja praegusi IT huvilisi - tudengeid. Organisatsioon - loodi 2002. aastal informaatika tudengite poolt, kelle erialatunnuseks oli “LAP”. Targad mehed otsustasid, et - järelikult on nad “Lapikud”. -

- -

Millega tegeleme?

-

- Meie põhieesmärgiks on Tallinna Tehnikaülikooli IT tudengitele erialase lisandväärtuse loomine. Kaasame tudengeid - huvitavatesse IT - projektidesse ning anname tudengitele võimaluse midagi reaalset oma käega ära teha. Aktiivsetel - tudengitel on võimalus saada meie juures esimene - töökogemus. Meie projektidest - kooruvad välja huvitavad ja tarvilikud lõputööd ning meie liikmeskonnast on tulnud ka lõputöö juhendaja. -

-

- Lapikud ei ole ainult IT tudengite organisatsioon – püüame kaasata oma tegevusse ka teiste teaduskondade - tudengeid. Näiteks - sobiksid inseneeria tudengid hästi meie Helpdeski meeskonda või majandusteaduskonna tudengid tegelema meie - projektides ärilise poolega või turundamisega. -

-

- - -
-

Koostööpartnerid

-
- {% for partner in site.data.partners %} - - {{ partner.name }} - {% if partner.additionalText != null %} -

{{ partner.additionalText}}

- {% endif %} -
- {% endfor %} -
- -
- -
+ + + + + + + + + + + + + + + + + Lapikud + + + +
+ + + diff --git a/join.html b/join.html deleted file mode 100644 index 14d3e1a..0000000 --- a/join.html +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: default -title: Liitu - Lapikud ---- - -
- -
diff --git a/kalender.md b/kalender.md deleted file mode 100644 index 0b5287f..0000000 --- a/kalender.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: post ---- - -# Kalender - - diff --git a/liitu.html b/liitu.html deleted file mode 120000 index 62de690..0000000 --- a/liitu.html +++ /dev/null @@ -1 +0,0 @@ -join.html \ No newline at end of file diff --git a/members.html b/members.html deleted file mode 100644 index f64342c..0000000 --- a/members.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -layout: default -title: Liikmed - Lapikud ---- -
-

Tahad, et ka sinu nimi ilmuks siia?

- - -
-

MTÜ Lapikud noorliikmed:

- -
- -
-

MTÜ Lapikud vanemliikmed:

- -
- -
-

Lapikute vilistlased:

- -
- -
diff --git a/mentors.html b/mentors.html deleted file mode 100644 index 617d33b..0000000 --- a/mentors.html +++ /dev/null @@ -1,107 +0,0 @@ ---- -layout: default -title: Mentorid - Lapikud ---- -
-

Mentorid

- -

Siin on meie 2025. aasta mentorid. Nemad on õiged inimesed, kelle poole pöörduda küsimuste tekkimisel seoses liitumise või Lapikutega üldiselt!

- - {% for mentor in site.data.mentors %} - -
-
- {{ mentor.name }} -
-
-
-

{{ mentor.name }}

-

Vanus: {{ mentor.age }}

- - {% if mentor.speciality != null %} -

Eriala: {{ mentor.speciality }}

- {% endif %} - - {% if mentor.term != null %} -

Kursus: {{ mentor.term }}

- {% endif %} - -

Tiimid:

-
    - {% for team in mentor.teams %} -
  • {{ team }}
  • - {% endfor %} -
- - {% if mentor.contactMethods != null %} -

Kontaktid:

- {% endif %} -
    - {% for contactMethod in mentor.contactMethods %} - - {% if contactMethod.name == 'Telefon' %} -
  • - Telefon: {{ contactMethod.value }} -
  • - {% elsif contactMethod.name == 'E-mail' %} -
  • - E-mail: {{ contactMethod.value }} -
  • - {% elsif contactMethod.name == 'Messenger' %} -
  • - Messenger: {{ contactMethod.value }} -
  • - {% elsif contactMethod.name == 'Telegram' %} -
  • - Telegram: {{ contactMethod.value }} -
  • - {% elsif contactMethod.name == 'Facebook' %} - - - - -
  • - Facebook -
  • - {% else %} -
  • - {{ contactMethod.name }}: {{ contactMethod.value }} -
  • - {% endif %} - - {% endfor %} -
-
- -
-

Milliseid inimesi ootan oma piksliteks?

- {% if mentor.description.first %} - {% for descriptionLine in mentor.description %} - {% if descriptionLine == '' %} -
- {% else %} -

{{ descriptionLine }}

- {% endif %} - {% endfor %} - {% else %} -

{{ mentor.description }}

- {% endif %} -

Milline Lapik olen ise?

- {% if mentor.activities.first %} - {% for activitiesLine in mentor.activities %} - {% if activitiesLine == '' %} -
- {% else %} -

{{ activitiesLine }}

- {% endif %} - {% endfor %} - {% else %} -

{{ mentor.activities }}

- {% endif %} -
-
-
- - {% endfor %} - -
diff --git a/ourwork.html b/ourwork.html deleted file mode 100644 index 18c9bb4..0000000 --- a/ourwork.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: default -title: Tehtud tööd - Lapikud ---- -
-
-

Vajad head, kvaliteetset arendusteenust?

- -

- Võta meiega ühendust! -

-
- -
-

Tehtud tööd:

-
- - {% for work in site.data.ourwork %} -
-
-

{{ work.title }}

-

{{ work.description }}

-
- {% if work.url == null %} -
- {{ work.title }} -
- {% else %} - - {{ work.title }} - - {% endif %} -
- {% endfor %} - -
- -
diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a4b5c5f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5235 @@ +{ + "name": "lapikud.github.io", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "lapikud.github.io", + "version": "0.0.0", + "dependencies": { + "@lucide/vue": "^1.23.0", + "@tailwindcss/vite": "^4.1.17", + "js-yaml": "^4.1.1", + "maplibre-gl": "^5.19.0", + "sharp": "^0.34.5", + "tailwindcss": "^4.1.17" + }, + "devDependencies": { + "@storybook/vue3-vite": "^10.2.15", + "@types/js-yaml": "^4.0.9", + "@vitejs/plugin-vue": "^6.0.2", + "storybook": "^10.2.15", + "vite": "npm:rolldown-vite@7.2.5", + "vue": "^3.5.25" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", + "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lucide/vue": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@lucide/vue/-/vue-1.23.0.tgz", + "integrity": "sha512-9SIYeY5K+R1iv8F8JUKMGSL7Pck/86BJ8djtZz/lnYsoHtKFUj1H2z6+PvKnC/8blZ8tqTDeDXAoTKobuX80hg==", + "license": "ISC", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "license": "ISC", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-1.1.0.tgz", + "integrity": "sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.7.tgz", + "integrity": "sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-2.0.4.tgz", + "integrity": "sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~1.1.0", + "@types/geojson": "^7946.0.16", + "pbf": "^4.0.1" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "license": "ISC", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/geojson-vt": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@maplibre/geojson-vt/-/geojson-vt-5.0.4.tgz", + "integrity": "sha512-KGg9sma45S+stfH9vPCJk1J0lSDLWZgCT9Y8u8qWZJyjFlP8MNP1WGTxIMYJZjDvVT3PDn05kN1C95Sut1HpgQ==", + "license": "ISC" + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "24.5.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-24.5.0.tgz", + "integrity": "sha512-55sPMCtWAZY7r7ftU2at1SsBJfhJyIE5X16Tbl+uFcnTuiCxEuh6839iq/hgjLM8zUEjXdRu2V30bfsYCNB1Qg==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^3.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/mlt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@maplibre/mlt/-/mlt-1.1.6.tgz", + "integrity": "sha512-rgtY3x65lrrfXycLf6/T22ZnjTg5WgIOsptOIoCaMZy4O4UAKTyZlYY0h6v8le721pTptF94U65yMDQkug+URw==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "@mapbox/point-geometry": "^1.1.0" + } + }, + "node_modules/@maplibre/vt-pbf": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/vt-pbf/-/vt-pbf-4.3.0.tgz", + "integrity": "sha512-jIvp8F5hQCcreqOOpEt42TJMUlsrEcpf/kI1T2v85YrQRV6PPXUcEXUg5karKtH6oh47XJZ4kHu56pUkOuqA7w==", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/vector-tile": "^2.0.4", + "@maplibre/geojson-vt": "^5.0.4", + "@types/geojson": "^7946.0.16", + "@types/supercluster": "^7.1.3", + "pbf": "^4.0.1", + "supercluster": "^8.0.1" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", + "integrity": "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@tybys/wasm-util": "^0.10.1" + } + }, + "node_modules/@oxc-parser/binding-android-arm-eabi": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.127.0.tgz", + "integrity": "sha512-0LC7ye4hvqbIKxAzThzvswgHLFu2AURKzYLeSVvLdu2TBOYWQDmHnTqPLeA597BcUCxiLqLsS4CJ5uoI5WYWCQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-android-arm64": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.127.0.tgz", + "integrity": "sha512-b5jtVTH6AU5CJXHNdj7Jj9IEiR9yVjjnwHzPJhGyHGPdcsZSzBCkS9GBbV33niRMvKthDwQRFRJfI4a+k4PvYg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-darwin-arm64": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.127.0.tgz", + "integrity": "sha512-obCE8B7ISKkJidjlhv9xRGJPOSDG2Yu6PRga9Ruaz35uintHxbp1Ki/Yc71wx4rj3Edrm0a1kzG1TAwit0wFpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-darwin-x64": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.127.0.tgz", + "integrity": "sha512-JL6Xb5IwPQT8rUzlpsX7E+AgfcdNklXNPFp8pjCQQ5MQOQo5rtEB2ui+3Hgg9Sn7Y9Egj6YOLLiHhLpdAe12Aw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-freebsd-x64": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.127.0.tgz", + "integrity": "sha512-SDQ/3MQFw58fqQz3Z1PhSKFF3JoCF4gmlNjziDm8X02tTahCw0qJbd7FGPDKw1i4VTBZene9JPyC3mHtSvi+wA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.127.0.tgz", + "integrity": "sha512-Av+D1MIqzV0YMGPT9we2SIZaMKD7Cxs4CvXSx/yxaWHewZjYEjScpOf5igc8IILASViw4WTnjlwUdI1KzVtDHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.127.0.tgz", + "integrity": "sha512-Cs2fdJ8cPpFdeebj6p4dag8A4+56hPvZ0AhQQzlaLswGz1tz7bXt1nETLeorrM9+AMcWFFkqxcXwDGfTVidY8g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-gnu": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.127.0.tgz", + "integrity": "sha512-qdOfTcT6SY8gsJrrV92uyEUyjqMGPpIB5JZUG6QN5dukYd+7/j0kX6MwK1DgQj39jtUYixxPiaRUiEN1+0CXgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-musl": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.127.0.tgz", + "integrity": "sha512-EoTCZneNFU/P2qrpEM+RHmQwt+CvDkyGESG6qhr7KaegXLZwePfbrkCDfAk8/rhxbDUVGsZILX+2tqPzFtoFWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.127.0.tgz", + "integrity": "sha512-zALjmZYgxFLHjXeudcDF0xFGNydTAtkAeXAr2EuC17ywCyFxcmQra4w0BMde0Yi/re4Bi4iwEoEXtYN7l6eBLQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.127.0.tgz", + "integrity": "sha512-fPP8M6zQLS7Jz7o9d5ArUSuAuSK3e+WCYVrCpdzeCOejidtZExJ9tjhDrAd3HEPqARBCPmdpqxESPFqy44vkBQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-musl": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.127.0.tgz", + "integrity": "sha512-7IcC4Ao02oGpfnjt+X/oF4U2mllo2qoSkw5xxiXNKL9MCTsTiAC6616beOuehdxGcnz1bRoPC1RQ2f1GQDdN+g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-s390x-gnu": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.127.0.tgz", + "integrity": "sha512-pbXIhiNFHoqWeqDNLiJ9JkpHz1IM9k4DXa66x+1GTWMG7iLxtkXgE53iiuKSXwmk3zIYmaPVfBvgcAhS583K4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-gnu": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.127.0.tgz", + "integrity": "sha512-MYCguB9RvBvlSd6gbuNI7QwiLoCCAlGnlRJFPrzLI6U1/9wkC/WK6LtBAUln55H1Ctqw45PWmqrobKoMhsYQzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-musl": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.127.0.tgz", + "integrity": "sha512-5eY0B/bxf1xIUxb4NOTvOI3KWtBQfPWYyKAzgcrCt0mDibSZygVpO1Pz8bkeiSZ5Jj9+M09dkggG3H8I5d0Uyg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-openharmony-arm64": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.127.0.tgz", + "integrity": "sha512-Gld0ajrFTUXNtdw20fVBuTQx66FA75nIVg+//pPfR3sXkuABB4mTBhl3r9JNzrJpgW//qiwxf0nWXUWGJSL3UQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-wasm32-wasi": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.127.0.tgz", + "integrity": "sha512-T6KVD7rhLzFlwGRXMnxUFfkCZD8FHnb968wVXW1mXzgRFc5RNXOBY2mPPDZ77x5Ln76ltLMgtPg0cOkU1NSrEQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@oxc-parser/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", + "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-parser/binding-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@oxc-parser/binding-win32-arm64-msvc": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.127.0.tgz", + "integrity": "sha512-Ujvw4X+LD1CCGULcsQcvb4YNVoBGqt+JHgNNzGGaCImELiZLk477ifUH53gIbE7EKd933NdTi25JWEr9K2HwXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-win32-ia32-msvc": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.127.0.tgz", + "integrity": "sha512-0cwxKO7KHQQQfo4Uf4B2SQrhgm+cJaP9OvFFhx52Tkg4bezsacu83GB2/In5bC415Ueeym+kXdnge/57rbSfTw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-win32-x64-msvc": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.127.0.tgz", + "integrity": "sha512-rOrnSQSCbhI2kowr9XxE7m9a8oQXnBHjnS6j95LxxAnEZ0+Fz20WlRXG4ondQb+ejjt2KOsa65sE6++L6kUd+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-project/runtime": { + "version": "0.97.0", + "resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.97.0.tgz", + "integrity": "sha512-yH0zw7z+jEws4dZ4IUKoix5Lh3yhqIJWF9Dc8PWvhpo7U7O+lJrv7ZZL4BeRO0la8LBQFwcCewtLBnVV7hPe/w==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.97.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.97.0.tgz", + "integrity": "sha512-lxmZK4xFrdvU0yZiDwgVQTCvh2gHWBJCBk5ALsrtsBWhs0uDIi+FTOnXRQeQfs304imdvTdaakT/lqwQ8hkOXQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxc-resolver/binding-android-arm-eabi": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.23.0.tgz", + "integrity": "sha512-8IJyWRLVAyhTfe9/TIEbQqSQnl5rUqYJrUOS6Dkr+Mq9FGHMxDGeiEmwkBqCvDP5KckpPh/GYSgbag66O6JsCw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@oxc-resolver/binding-android-arm64": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.23.0.tgz", + "integrity": "sha512-pprVojnNhHxupwTT2gdeUlkxll6XEvWWBk3oVicOSNVWQC99OBnDhMQDoirqnzrE1bScQSMS2JgPpqdlrhz/Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@oxc-resolver/binding-darwin-arm64": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.23.0.tgz", + "integrity": "sha512-mbIrWIMAJeytyee36OyUP5XH92TP7FaKaQ2m5AjokKy7STgjrhRt7SMXqpqLjhGm6Xn721Xmsg6H3Rtd9YQETw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oxc-resolver/binding-darwin-x64": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.23.0.tgz", + "integrity": "sha512-UnIphmZ1LazUCr9DXWaKYWtKDefPMbgLsywaoYxRqVCNHhq4MM6d2q1Nz1i9Vzxt5i+cE2nRUYpAUHr/lijNYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oxc-resolver/binding-freebsd-x64": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.23.0.tgz", + "integrity": "sha512-aaZ/cSEYFkSxgS2hOrobT6RQcsWNviOX8dW6CEkVx2/UYkAf9MeHbjl3W0usWV53rVV//ndBdn2nb1y7jsu4lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@oxc-resolver/binding-linux-arm-gnueabihf": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.23.0.tgz", + "integrity": "sha512-IoJLvO5SjLSVMaq83BNTrPCb1FppvoJc1IhZ5CoUVl3PykUBku7D+LK1j0GSurhJcIc6zfjghsvaZNpq5ev6Mg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-arm-musleabihf": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.23.0.tgz", + "integrity": "sha512-vskFpwg44T/LFsfjSCnVZ5ygcuqzPC1yUzVEiKa8BgHAQz0+QLQQW3EGWLPVi8EXFghzjR4EtgPBtOhCjU4jdw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-arm64-gnu": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.23.0.tgz", + "integrity": "sha512-//TcHVhrChyw5RYtgts6WO7KcWq9387c1Z5Zvhqpk/ktAbyaRYgBZrpSY1GDCFq50ASt6B6jhh+JxB1rB45IAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-arm64-musl": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.23.0.tgz", + "integrity": "sha512-ZFqlwiTf7CXLLSGyAR9tYiO33LiaeIEXW+xm42d8mnUGpDgPltyrCGYtQezyMMEXvjhOgCz1X+i7sbDTJEx+bg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-ppc64-gnu": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.23.0.tgz", + "integrity": "sha512-oZ5LeN5+H1R19dRjTAxKrxQguH+AsemHcnthEfFxf4OjmBSty2doHLeSmMunKy3zpTHJQ3lh3Af+dNS+W6dYeA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-riscv64-gnu": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.23.0.tgz", + "integrity": "sha512-O4ciFDyX5ebQd0qkb1bjAIg8IEfiLT03GbSeylwlwlUMK9KwBWaALwrxSbc0Msaz4U6iPj+T9eRXpD5mxBfmvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-riscv64-musl": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.23.0.tgz", + "integrity": "sha512-P3o8Y9kISYjcxadmbO+94ThRwLhwGuDAbA7dcdd4+YLpfeF+mmobz8fXf4NmSdfSqjyRSkceJDBRZha9NVYkiQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-s390x-gnu": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.23.0.tgz", + "integrity": "sha512-oj03m1E3RmTFczKhcKJDzHaEDKJnPIsDcQFVxBJsSdXGSuIPdt5TvcM332FfMQgzI6yDJqyl4InrnFfXrmUTKQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-x64-gnu": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.23.0.tgz", + "integrity": "sha512-BqJxbSC8FdP7mSuSpRePTGHm0hXWV+dfz//f7SjsteZncLaBgWTBmi/OZNv7sX6CyG/Pt/eJkPorP+DkMOhMwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-linux-x64-musl": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.23.0.tgz", + "integrity": "sha512-utmw+VmUrW4K8LI5/6jhg4aGYKJHOIjQ9syYOOA6pF3w7haKu4r4enTe2U0C04/HbUvkq/Zif43xFsKW1Pnq9w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxc-resolver/binding-openharmony-arm64": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-openharmony-arm64/-/binding-openharmony-arm64-11.23.0.tgz", + "integrity": "sha512-V6lbRrthHa4TbvsLjPtg+EkXT1tRY+s4I8rYLXUfiHlZzGx3sLv1EH9CEOOevjvUYHLsbe/gqCIc73XnQfPb9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@oxc-resolver/binding-wasm32-wasi": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.23.0.tgz", + "integrity": "sha512-gRoOxQPdnAmIAjxcuQNBxfihvx+wjTaQM/9/eP12xwnGNawOG/+Zz9RHN4WNSxT45b5CrscK4NB8aPh+oZQXAQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", + "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@oxc-resolver/binding-win32-arm64-msvc": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.23.0.tgz", + "integrity": "sha512-CgTGMYsJVe1eUiCdJTpGw21svXw79ITsemN1h0hcNkiswasDbN5MoibSLY+gRMWP5syfEz5iffrjZnwEP8xeUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@oxc-resolver/binding-win32-x64-msvc": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.23.0.tgz", + "integrity": "sha512-gUGJpr+Rn6zMxm5juApV0K3U845i8t47o8k+rbO0BHbi4PoJIfSPeQmrE2dgohQm2g5k6iviNFyXCGqvmaYUpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.50.tgz", + "integrity": "sha512-XlEkrOIHLyGT3avOgzfTFSjG+f+dZMw+/qd+Y3HLN86wlndrB/gSimrJCk4gOhr1XtRtEKfszpadI3Md4Z4/Ag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.50.tgz", + "integrity": "sha512-+JRqKJhoFlt5r9q+DecAGPLZ5PxeLva+wCMtAuoFMWPoZzgcYrr599KQ+Ix0jwll4B4HGP43avu9My8KtSOR+w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.50.tgz", + "integrity": "sha512-fFXDjXnuX7/gQZQm/1FoivVtRcyAzdjSik7Eo+9iwPQ9EgtA5/nB2+jmbzaKtMGG3q+BnZbdKHCtOacmNrkIDA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.50.tgz", + "integrity": "sha512-F1b6vARy49tjmT/hbloplzgJS7GIvwWZqt+tAHEstCh0JIh9sa8FAMVqEmYxDviqKBaAI8iVvUREm/Kh/PD26Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.50.tgz", + "integrity": "sha512-U6cR76N8T8M6lHj7EZrQ3xunLPxSvYYxA8vJsBKZiFZkT8YV4kjgCO3KwMJL0NOjQCPGKyiXO07U+KmJzdPGRw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.50.tgz", + "integrity": "sha512-ONgyjofCrrE3bnh5GZb8EINSFyR/hmwTzZ7oVuyUB170lboza1VMCnb8jgE6MsyyRgHYmN8Lb59i3NKGrxrYjw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.50.tgz", + "integrity": "sha512-L0zRdH2oDPkmB+wvuTl+dJbXCsx62SkqcEqdM+79LOcB+PxbAxxjzHU14BuZIQdXcAVDzfpMfaHWzZuwhhBTcw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.50.tgz", + "integrity": "sha512-gyoI8o/TGpQd3OzkJnh1M2kxy1Bisg8qJ5Gci0sXm9yLFzEXIFdtc4EAzepxGvrT2ri99ar5rdsmNG0zP0SbIg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.50.tgz", + "integrity": "sha512-zti8A7M+xFDpKlghpcCAzyOi+e5nfUl3QhU023ce5NCgUxRG5zGP2GR9LTydQ1rnIPwZUVBWd4o7NjZDaQxaXA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.50.tgz", + "integrity": "sha512-eZUssog7qljrrRU9Mi0eqYEPm3Ch0UwB+qlWPMKSUXHNqhm3TvDZarJQdTevGEfu3EHAXJvBIe0YFYr0TPVaMA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.50.tgz", + "integrity": "sha512-nmCN0nIdeUnmgeDXiQ+2HU6FT162o+rxnF7WMkBm4M5Ds8qTU7Dzv2Wrf22bo4ftnlrb2hKK6FSwAJSAe2FWLg==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.0.7" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.50.tgz", + "integrity": "sha512-7kcNLi7Ua59JTTLvbe1dYb028QEPaJPJQHqkmSZ5q3tJueUeb6yjRtx8mw4uIqgWZcnQHAR3PrLN4XRJxvgIkA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-ia32-msvc": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.50.tgz", + "integrity": "sha512-lL70VTNvSCdSZkDPPVMwWn/M2yQiYvSoXw9hTLgdIWdUfC3g72UaruezusR6ceRuwHCY1Ayu2LtKqXkBO5LIwg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.50.tgz", + "integrity": "sha512-4qU4x5DXWB4JPjyTne/wBNPqkbQU8J45bl21geERBKtEittleonioACBL1R0PsBu0Aq21SwMK5a9zdBkWSlQtQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz", + "integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==", + "license": "MIT" + }, + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/icons": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.1.0.tgz", + "integrity": "sha512-Fxh9vYpX9bQqFeHRiY8h2ApeRGDzRSMLwJwNZ/AIRqnyOKHxRKL+yFe+ctEkVJmuptRE9u1Hrn8ZZNHyfDKKNg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@storybook/vue3": { + "version": "10.4.6", + "resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-10.4.6.tgz", + "integrity": "sha512-X+rSRuhTeG5lL1Ayg/JugAPauqgi33D+y8vode0U5IdwJQUy0ew0kKoMUPd/WGbjcrZI8Pq9T/syX0aMvaPcNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "type-fest": "^5.6.0", + "vue-component-type-helpers": "^3.2.9" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.4.6", + "vue": "^3.0.0" + } + }, + "node_modules/@storybook/vue3-vite": { + "version": "10.4.6", + "resolved": "https://registry.npmjs.org/@storybook/vue3-vite/-/vue3-vite-10.4.6.tgz", + "integrity": "sha512-XUcBOFsS8Btr9s9rC/kHUIrLGgrnXNmzwFldhA0FMf5ywFICGW1DneJpBwWNXabA2ii0GJqit8gaKNvnTf3UWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/builder-vite": "10.4.6", + "@storybook/vue3": "10.4.6", + "magic-string": "^0.30.0", + "typescript": "^5.9.3", + "vue-component-meta": "^2.0.0", + "vue-docgen-api": "^4.75.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.4.6", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@storybook/vue3-vite/node_modules/@storybook/builder-vite": { + "version": "10.4.6", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.4.6.tgz", + "integrity": "sha512-BHBtD81HiXUiDQz/CaFynLtWmm7AFUQn8VnXuHipZ8KlnUANopa4yqdVuy/Gwz8ub254uFI5NMZsW/KlgWNgNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf-plugin": "10.4.6", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.4.6", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@storybook/vue3-vite/node_modules/@storybook/csf-plugin": { + "version": "10.4.6", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.4.6.tgz", + "integrity": "sha512-NILLxDqpA/JR/AazGWpsz+4fadJwRU4uhHephGtYpVOWnQA/DkJfKT6zpcJVq8+QA8A2zKMLX3GVKsXIrxjuDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "unplugin": "^2.3.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "esbuild": "*", + "rollup": "*", + "storybook": "^10.4.6", + "vite": "*", + "webpack": "*" + }, + "peerDependenciesMeta": { + "esbuild": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@storybook/vue3/node_modules/type-fest": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.7.0.tgz", + "integrity": "sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.17.tgz", + "integrity": "sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.1", + "lightningcss": "1.30.2", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.17" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.17.tgz", + "integrity": "sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==", + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.17", + "@tailwindcss/oxide-darwin-arm64": "4.1.17", + "@tailwindcss/oxide-darwin-x64": "4.1.17", + "@tailwindcss/oxide-freebsd-x64": "4.1.17", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.17", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.17", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.17", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.17", + "@tailwindcss/oxide-linux-x64-musl": "4.1.17", + "@tailwindcss/oxide-wasm32-wasi": "4.1.17", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.17", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.17" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.17.tgz", + "integrity": "sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.17.tgz", + "integrity": "sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.17.tgz", + "integrity": "sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.17.tgz", + "integrity": "sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.17.tgz", + "integrity": "sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.17.tgz", + "integrity": "sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.17.tgz", + "integrity": "sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.17.tgz", + "integrity": "sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.17.tgz", + "integrity": "sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.17.tgz", + "integrity": "sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.6.0", + "@emnapi/runtime": "^1.6.0", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.0.7", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.17.tgz", + "integrity": "sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.17.tgz", + "integrity": "sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.17.tgz", + "integrity": "sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.17", + "@tailwindcss/oxide": "4.1.17", + "tailwindcss": "4.1.17" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.7.tgz", + "integrity": "sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue/node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz", + "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.15" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz", + "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz", + "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.39.tgz", + "integrity": "sha512-16KBTEXAJCpDr0mwlw+AZyhu8iyC7R3S2vBwsI7QnWJU6X3WKc9VKeNEZpiMdZ569qWhz9574L3vV55qRL0Vtw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/shared": "3.5.39", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.39.tgz", + "integrity": "sha512-oQPigALqYbNxTNPvNgSOe+czwVExfbVF02lz8jP0S3AXJiu3jxYDygNUiqSep4ezzW8XgnubqH63My2A7JR/vg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.39", + "@vue/shared": "3.5.39" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.39.tgz", + "integrity": "sha512-d0ki86iOyN8LoZPBmk5SJWNwHP19CnDDCfuo//+2WJa2g5Ke0Jay983PIBIcSSzldC68I8DrD5GrHV3OSDfodg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/compiler-core": "3.5.39", + "@vue/compiler-dom": "3.5.39", + "@vue/compiler-ssr": "3.5.39", + "@vue/shared": "3.5.39", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.15", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/postcss": { + "version": "8.5.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", + "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.39.tgz", + "integrity": "sha512-Ce7/wvwMHai74bdszfXExdazFigYnlF9zgCmEQUcM1j0fOymlouZ7XilTYNo8oUjhlnjYOZbGrcYKuqjz89Ucw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.39", + "@vue/shared": "3.5.39" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.12.tgz", + "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.39.tgz", + "integrity": "sha512-TpsuBJ9gGlZa5d23XcM2y8EXanz9dZeVDQBXRwzy46ItgvM+rWpzs+UVM0wcRLxGvcav0HE5jz2gNL53xlRAog==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.39" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.39.tgz", + "integrity": "sha512-9GLtNyRvPAUMbX+7ono0RC2j0guo2LXVi8LvcmAooImACUKm0oFf0jjwbX8/H0AE/t1nxhAkn8RSl9PMCzzxZw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.39", + "@vue/shared": "3.5.39" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.39.tgz", + "integrity": "sha512-7Y6aAGboKcXAZ3ECuUy7RrS5yy2r47dhTp2SKaJmYxjopImaVFaNa5Ne66NwGovsrxVAl5S5rwc7m22UG7Lmww==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.39", + "@vue/runtime-core": "3.5.39", + "@vue/shared": "3.5.39", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.39.tgz", + "integrity": "sha512-yZSakiAGw85rZfG7UM8akMnIF+FmeiNk47uvHf2nVBBSe+dIKUhZuZq9+XgJhbV3nS5Z4ALH23/MpXofW+mbcw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.39", + "@vue/shared": "3.5.39" + }, + "peerDependencies": { + "vue": "3.5.39" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.39.tgz", + "integrity": "sha512-l1rrBtBfTnmxvtsvdQDXltUUy8S1Y+ZaqdfUzmAnJkTd8Z8rv5v/ytW+TKiqEOWyHPoqtPlNFSs0lhRmYVSHVA==", + "license": "MIT" + }, + "node_modules/@webcontainer/env": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webcontainer/env/-/env-1.1.1.tgz", + "integrity": "sha512-6aN99yL695Hi9SuIk1oC88l9o0gmxL1nGWWQ/kNy81HigJ0FoaoTXpytCj6ItzgyCEwA9kF1wixsTuv5cjsgng==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/alien-signals": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz", + "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/assert-never": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.4.0.tgz", + "integrity": "sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==", + "dev": true, + "license": "MIT" + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/earcut": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", + "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "devOptional": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/esm-resolve": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/esm-resolve/-/esm-resolve-1.0.11.tgz", + "integrity": "sha512-LxF0wfUQm3ldUDHkkV2MIbvvY0TgzIpJ420jHSV1Dm+IlplBEWiJTKWM61GtxUfvjV6iD4OtTYFGAGM2uuIUWg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true, + "license": "MIT" + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-expression/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "license": "MIT" + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, + "node_modules/lightningcss": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16.14" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/maplibre-gl": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.19.0.tgz", + "integrity": "sha512-REhYUN8gNP3HlcIZS6QU2uy8iovl31cXsrNDkCcqWSQbCkcpdYLczqDz5PVIwNH42UQNyvukjes/RoHPDrOUmQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/tiny-sdf": "^2.0.7", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^2.0.4", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/geojson-vt": "^5.0.4", + "@maplibre/maplibre-gl-style-spec": "^24.4.1", + "@maplibre/mlt": "^1.1.6", + "@maplibre/vt-pbf": "^4.2.1", + "@types/geojson": "^7946.0.16", + "@types/supercluster": "^7.1.3", + "earcut": "^3.0.2", + "gl-matrix": "^3.4.4", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^4.0.1", + "potpack": "^2.1.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/oxc-parser": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.127.0.tgz", + "integrity": "sha512-bkgD4qHlN7WxLdX8bLXdaU54TtQtAIg/ZBAfm0aje/mo3MRDo3P0hZSgr4U7O3xfX+fQmR5AP04JS/TGcZLcFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "^0.127.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-parser/binding-android-arm-eabi": "0.127.0", + "@oxc-parser/binding-android-arm64": "0.127.0", + "@oxc-parser/binding-darwin-arm64": "0.127.0", + "@oxc-parser/binding-darwin-x64": "0.127.0", + "@oxc-parser/binding-freebsd-x64": "0.127.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.127.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.127.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.127.0", + "@oxc-parser/binding-linux-arm64-musl": "0.127.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.127.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.127.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.127.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.127.0", + "@oxc-parser/binding-linux-x64-gnu": "0.127.0", + "@oxc-parser/binding-linux-x64-musl": "0.127.0", + "@oxc-parser/binding-openharmony-arm64": "0.127.0", + "@oxc-parser/binding-wasm32-wasi": "0.127.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.127.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.127.0", + "@oxc-parser/binding-win32-x64-msvc": "0.127.0" + } + }, + "node_modules/oxc-parser/node_modules/@oxc-project/types": { + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.127.0.tgz", + "integrity": "sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/oxc-resolver": { + "version": "11.23.0", + "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.23.0.tgz", + "integrity": "sha512-f0+l598CJMOLnYPXsXxttJALH0ljtivdRMKtvHhxRuWa5FYmw5+qODARl8oYjMC/brpzKcrpdORsOBrTqhBZ9A==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-resolver/binding-android-arm-eabi": "11.23.0", + "@oxc-resolver/binding-android-arm64": "11.23.0", + "@oxc-resolver/binding-darwin-arm64": "11.23.0", + "@oxc-resolver/binding-darwin-x64": "11.23.0", + "@oxc-resolver/binding-freebsd-x64": "11.23.0", + "@oxc-resolver/binding-linux-arm-gnueabihf": "11.23.0", + "@oxc-resolver/binding-linux-arm-musleabihf": "11.23.0", + "@oxc-resolver/binding-linux-arm64-gnu": "11.23.0", + "@oxc-resolver/binding-linux-arm64-musl": "11.23.0", + "@oxc-resolver/binding-linux-ppc64-gnu": "11.23.0", + "@oxc-resolver/binding-linux-riscv64-gnu": "11.23.0", + "@oxc-resolver/binding-linux-riscv64-musl": "11.23.0", + "@oxc-resolver/binding-linux-s390x-gnu": "11.23.0", + "@oxc-resolver/binding-linux-x64-gnu": "11.23.0", + "@oxc-resolver/binding-linux-x64-musl": "11.23.0", + "@oxc-resolver/binding-openharmony-arm64": "11.23.0", + "@oxc-resolver/binding-wasm32-wasi": "11.23.0", + "@oxc-resolver/binding-win32-arm64-msvc": "11.23.0", + "@oxc-resolver/binding-win32-x64-msvc": "11.23.0" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/pbf": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz", + "integrity": "sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==", + "license": "BSD-3-Clause", + "dependencies": { + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.13.tgz", + "integrity": "sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/potpack": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz", + "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", + "license": "ISC" + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.1.tgz", + "integrity": "sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==", + "license": "MIT" + }, + "node_modules/pug": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.4.tgz", + "integrity": "sha512-kFfq5mMzrS7+wrl5pLJzZEzemx34OQ0w4SARfhy/3yxTlhbstsudDwJzhf1hP02yHzbjoVMSXUj/Sz6RNfMyXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pug-code-gen": "^3.0.4", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.4.tgz", + "integrity": "sha512-6okWYIKdasTyXICyEtvobmTZAVX57JkzgzIi4iRJlin8kmhG+Xry2dsus+Mun/nGCn6F2U49haHI5mkELXB14g==", + "dev": true, + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.1.0", + "pug-runtime": "^3.0.1", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/recast": { + "version": "0.23.11", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", + "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/rolldown": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.50.tgz", + "integrity": "sha512-JFULvCNl/anKn99eKjOSEubi0lLmNqQDAjyEMME2T4CwezUDL0i6t1O9xZsu2OMehPnV2caNefWpGF+8TnzB6A==", + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.97.0", + "@rolldown/pluginutils": "1.0.0-beta.50" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-beta.50", + "@rolldown/binding-darwin-arm64": "1.0.0-beta.50", + "@rolldown/binding-darwin-x64": "1.0.0-beta.50", + "@rolldown/binding-freebsd-x64": "1.0.0-beta.50", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.50", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.50", + "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.50", + "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.50", + "@rolldown/binding-linux-x64-musl": "1.0.0-beta.50", + "@rolldown/binding-openharmony-arm64": "1.0.0-beta.50", + "@rolldown/binding-wasm32-wasi": "1.0.0-beta.50", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.50", + "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.50", + "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.50" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/storybook": { + "version": "10.4.6", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.4.6.tgz", + "integrity": "sha512-6wkA6LxfDSSilloITsrFOJfsnw0mDUP2h8Ls+lRt8oRsudtz2RWFhLv+Toiwg6NW7hUpdTDc2hzR7DztJid6+A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "@storybook/icons": "^2.0.2", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/user-event": "^14.6.1", + "@vitest/expect": "3.2.4", + "@vitest/spy": "3.2.4", + "@webcontainer/env": "^1.1.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0 || ^0.28.0", + "open": "^10.2.0", + "oxc-parser": "^0.127.0", + "oxc-resolver": "^11.19.1", + "recast": "^0.23.5", + "semver": "^7.7.3", + "use-sync-external-store": "^1.5.0", + "ws": "^8.18.0" + }, + "bin": { + "storybook": "dist/bin/dispatcher.js" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "prettier": "^2 || ^3", + "vite-plus": "^0.1.15" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "prettier": { + "optional": true + }, + "vite-plus": { + "optional": true + } + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.17.tgz", + "integrity": "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-map": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-map/-/ts-map-1.0.3.tgz", + "integrity": "sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "devOptional": true, + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/vite": { + "name": "rolldown-vite", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/rolldown-vite/-/rolldown-vite-7.2.5.tgz", + "integrity": "sha512-u09tdk/huMiN8xwoiBbig197jKdCamQTtOruSalOzbqGje3jdHiV0njQlAW0YvzoahkirFePNQ4RYlfnRQpXZA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@oxc-project/runtime": "0.97.0", + "fdir": "^6.5.0", + "lightningcss": "^1.30.2", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rolldown": "1.0.0-beta.50", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "esbuild": "^0.25.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.39.tgz", + "integrity": "sha512-xmZCYabFGcirU8r0fTuvl/LICc1OU620rnqepaJDL/a141ZigkG7AyaxQLdqJ02ZRYzWe6YPaDHeQx7MfknQfA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.39", + "@vue/compiler-sfc": "3.5.39", + "@vue/runtime-dom": "3.5.39", + "@vue/server-renderer": "3.5.39", + "@vue/shared": "3.5.39" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-meta": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/vue-component-meta/-/vue-component-meta-2.2.12.tgz", + "integrity": "sha512-dQU6/obNSNbennJ1xd+rhDid4g3vQro+9qUBBIg8HMZH2Zs1jTpkFNxuQ3z77bOlU+ew08Qck9sbYkdSePr0Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.15", + "@vue/language-core": "2.2.12", + "path-browserify": "^1.0.1", + "vue-component-type-helpers": "2.2.12" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-meta/node_modules/vue-component-type-helpers": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.2.12.tgz", + "integrity": "sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-component-type-helpers": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-3.3.6.tgz", + "integrity": "sha512-FkljacAwJ9BUoSUdpFe3VDy0sGigNlTH9+2zcXUWmZOjN8swiCkl3t48wOJun0OsUd2cEIda1l04tsxMiKIIrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-docgen-api": { + "version": "4.79.2", + "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.79.2.tgz", + "integrity": "sha512-n9ENAcs+40awPZMsas7STqjkZiVlIjxIKgiJr5rSohDP0/JCrD9VtlzNojafsA1MChm/hz2h3PDtUedx3lbgfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "@vue/compiler-dom": "^3.2.0", + "@vue/compiler-sfc": "^3.2.0", + "ast-types": "^0.16.1", + "esm-resolve": "^1.0.8", + "hash-sum": "^2.0.0", + "lru-cache": "^8.0.3", + "pug": "^3.0.2", + "recast": "^0.23.1", + "ts-map": "^1.0.3", + "vue-inbrowser-compiler-independent-utils": "^4.69.0" + }, + "peerDependencies": { + "vue": ">=2" + } + }, + "node_modules/vue-inbrowser-compiler-independent-utils": { + "version": "4.71.1", + "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-independent-utils/-/vue-inbrowser-compiler-independent-utils-4.71.1.tgz", + "integrity": "sha512-K3wt3iVmNGaFEOUR4JIThQRWfqokxLfnPslD41FDZB2ajXp789+wCqJyGYlIFsvEQ2P61PInw6/ph5iiqg51gg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "vue": ">=2" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5a27a9f --- /dev/null +++ b/package.json @@ -0,0 +1,33 @@ +{ + "name": "lapikud.github.io", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build", + "optimise": "node scripts/optimise-images.js" + }, + "devDependencies": { + "@storybook/vue3-vite": "^10.2.15", + "@types/js-yaml": "^4.0.9", + "@vitejs/plugin-vue": "^6.0.2", + "storybook": "^10.2.15", + "vite": "npm:rolldown-vite@7.2.5", + "vue": "^3.5.25" + }, + "overrides": { + "vite": "npm:rolldown-vite@7.2.5" + }, + "dependencies": { + "@lucide/vue": "^1.23.0", + "@tailwindcss/vite": "^4.1.17", + "js-yaml": "^4.1.1", + "maplibre-gl": "^5.19.0", + "sharp": "^0.34.5", + "tailwindcss": "^4.1.17" + } +} diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..15e05b3 --- /dev/null +++ b/public/404.html @@ -0,0 +1,12 @@ + + + + + Redirecting... + + + + + \ No newline at end of file diff --git a/public/CNAME.example b/public/CNAME.example new file mode 100644 index 0000000..033dd30 --- /dev/null +++ b/public/CNAME.example @@ -0,0 +1 @@ +lapikud.ee \ No newline at end of file diff --git a/public/_data/hinnakiri.yml b/public/_data/hinnakiri.yml new file mode 100644 index 0000000..528a024 --- /dev/null +++ b/public/_data/hinnakiri.yml @@ -0,0 +1,48 @@ +services: + - name: "Arvuti diagnostika" + quantity: "15min" + price: "Tasuta" + + - name: "Arvuti diagnostika (alates +15min)" + quantity: "tk" + price: "20€" + + - name: "Detail paigaldamine arvutisse" + quantity: "tk" + price: "10-15€" + + - name: "Sülearvuti tolmupuhastus + termopasta" + quantity: "tk" + price: "10-20€" + + - name: "Sülearvuti ekraani paigaldus" + quantity: "tk" + price: "15€" + + - name: "Arvuti komplekteerimine" + quantity: "tk" + price: "20€" + + - name: "Tarkvara hooldustöö ja paigaldamine" + quantity: "tk" + price: "10-15€" + + - name: "Muu elektroonika parandus" + quantity: "tk" + price: "10-50€" + + - name: "Andmete taastamine" + quantity: "tk" + price: "10-30€" + + - name: "Nutiseadmete tarkvarahooldus" + quantity: "tk" + price: "15€" + + - name: "Operatsioonisüsteemi taaspaigaldus" + quantity: "tk" + price: "15€" + + - name: "Nutitelefoni klaasi/ekraani/aku vahetus" + quantity: "tk" + price: "15-30€" diff --git a/_data/management.yml b/public/_data/management.yml similarity index 92% rename from _data/management.yml rename to public/_data/management.yml index f78e41a..a6dde75 100644 --- a/_data/management.yml +++ b/public/_data/management.yml @@ -1,35 +1,35 @@ -# Management contact info - -- name: Kerdo Käärma - photo: Kerdo_Kaarma.jpg - role: Juhatuse liige - subrole: Esimees - email: kerdo@lapikud.ee - phone: +372 5807 2867 - -- name: Randel Mandre - photo: coming-soon.jpg - role: Juhatuse liige - subrole: Tarkvaravaldkonna juht - email: randel@lapikud.ee - -- name: Marten Tihanov - photo: coming-soon.jpg - role: Juhatuse liige - subrole: Helpdeski juht - email: marten@lapikud.ee - phone: +372 5349 8947 - -- name: Oluwatobiloba Promise Temitope - photo: coming-soon.jpg - role: Juhatuse liige - subrole: Kultuurivaldkonna juht - email: promise@lapikud.ee - phone: +372 5445 0982 - -- name: Rene Arumetsa - photo: Rene_Arumetsa.jpg - role: Juhatuse liige - subrole: Finantsjuht - email: rene@lapikud.ee - phone: +372 5690 7656 +# Management contact info + +- name: Kerdo Käärma + photo: Kerdo_Kaarma.jpg + role: Juhatuse liige + subrole: Esimees + email: kerdo@lapikud.ee + phone: +372 5807 2867 + +- name: Randel Mandre + photo: coming-soon.jpg + role: Juhatuse liige + subrole: Tarkvaravaldkonna juht + email: randel@lapikud.ee + +- name: Marten Tihanov + photo: coming-soon.jpg + role: Juhatuse liige + subrole: Helpdeski juht + email: marten@lapikud.ee + phone: +372 5349 8947 + +- name: Oluwatobiloba Promise Temitope + photo: coming-soon.jpg + role: Juhatuse liige + subrole: Kultuurivaldkonna juht + email: promise@lapikud.ee + phone: +372 5445 0982 + +- name: Rene Arumetsa + photo: Rene_Arumetsa.jpg + role: Juhatuse liige + subrole: Finantsjuht + email: rene@lapikud.ee + phone: +372 5690 7656 diff --git a/_data/members.yml b/public/_data/members.yml similarity index 94% rename from _data/members.yml rename to public/_data/members.yml index 82346db..1831302 100644 --- a/_data/members.yml +++ b/public/_data/members.yml @@ -1,412 +1,426 @@ -junior: - - - Alexander Rein Robas - - Andres Alexander Jürgenson - - Eerik Abel - - Egert Nilbe - - Gabriel Ilisson - - Henri Karba - - Henry Ilves - - Hugo Reisberg - - Imogen Moon - - Johanna Kasenurm - - Joosep Tomingas - - Karl Erich Kaugeranna - - Karl Künnapas - - Karmen Errapart - - Karoliina Kannik - - Kerdo Vähk - - Kert Roov - - Kreta Liisa Aasamaa - - Laura Teder - - Marek Müürsepp - - Maria-Laurita Laimets - - Marten Laane - - Remi Vilsaar - - Riho-Martin Haavasalu - - Siim Marist - - Silver Slinko - - Uko Poschlin - -senior: - - Agnes Triin Saga - - Aimar Tuul - - Alexander Marsh - - Andres Aleksander Kase - - Christopher Rammul - - Erki Lasberg - - Eva-Marie Alasi - - Hanno Vene - - Jürjo Eibak - - Karel Vuks - - Katri Lotamõis - - Kerdo Käärma - - Lembitu Valdmets - - Liisu Miller - - Maria Jerilova - - Mark Perman - - Marten Tihanov - - Martin Perman - - Mati Pearu Vaalma - - Oliver Ilp - - Oluwatobiloba Promise Temitope - - Priit Roosiväli - - Rainis Randmaa - - Randel Mandre - - Reio Opromei - - Rene Arumetsa - - Siret Sillar - - Taavi Toimetaja - - -graduates: - - Aare Uus - - Aire Kurgpõld - - Airiin Kadakmaa - - Aive Uus - - Aivo Anier - - Aivo Niine - - Alar Noormägi - - Aleksander Tali - - Aleksandr Požidajev - - Aleksandra Budarina - - Aleksei Panov - - Alo Ohmann - - Alvar Sokk - - Anastasia Ljamtseva - - Ando Saabas - - Andreas Alapert - - Andreas Lokko - - Andree Uuetoa - - Andrei Gužovski - - Anet Mitt - - Andres Nigols - - Andres Soop - - Ann-Claire Utt - - Anneli Tuisk - - Annely Välik - - Anti Räis - - Anton Kolisnetšenko - - Argo Tammemäe - - Arti Zirk - - Artjom Juškov - - Artjom Protski - - Artur Rauk - - Arvo Bendi - - Asko Närep - - Asko Ohmann - - Asko Tamm - - Ave Reimann - - Ave Tarend - - Berta Härsing - - Borka-Martin Orlov - - Brenda Uga - - Brigite Kerge - - Britta Pung - - Carina Ruut - - Carmen Unt - - Carel Martten Lechtmets - - Carl Custav Mäeorg - - Danel Ahman - - Danel Laanemets - - Daniel Raissar - - Deivid Drekhan - - Denry Aron - - Diana Christine Tarro - - Diana Rand - - Edgar Miadzieles - - Eero Ringmäe - - Ege Käosaar - - Egert Aia - - Elen Väin - - Elina Kapanen - - Elis-Christina Kuuse - - Elisa Tamm - - Elo Pelovas - - Emil Marvin Mikk - - Enola Sander - - Enrico Kaasik - - Eret Rääk - - Erik Dolotov - - Erik Soekov - - Erki Aas - - Erki Suurjaak - - Erkko Kebbinau - - Erko Salo - - Erko Tiitma - - Erlis Liiva - - Ethel Voites - - Eve Timmerman - - Gleb Engalychev - - Gregor Kaljulaid - - Hannes Pahapill - - Hanno Särg - - Hans Kõll - - Harles-Herman Pilter - - Heidi Korp - - Heidi Taperson - - Heily Hindrea - - Helen Ertis - - Helen Tiitma - - Helen Vaupere - - Helena Grete Lillepalu - - Helena Lissenko - - Hendrik Õunapuu - - Henri Hallik - - Henri Helisma - - Henri Johann Norden - - Henri Kelder - - Henrik Hansson - - Henrik Tomson - - Herman Õunapuu - - Ilmar Lõhmus - - Immo Ilmjärv - - Indrek Sakkeus - - Ingel-Marie Hiiekivi - - Ingmar Trump - - Ingrid Vuks - - Ingrid-Regina Vähi - - Innar Liiv - - Inno Tõlgu - - Ivo Müürsepp - - Jaak Lember - - Jaan Lehismets - - Jaan Sarv - - Jaan Sepp - - Jaanika Metsnik - - Jan-Markus Üprus - - Jane Tamm - - Janika Leisalu - - Janita Raudsepp - - Janne Raudsepp - - Janno Tetsmann - - Jarek Jannait - - Joel Timmerman - - Jolanta Rudus - - Joonas Vali - - Joosep Franz Alviste - - Joosep Noorväli - - Jose Daniel Morales Sööt - - Kaarel Pärtel - - Kadri Kiisk - - Kadri-Ann Valgeväli - - Kaidi Karu - - Kairit Pajula - - Kairit Sirts - - Karl Eric Mõttus - - Karl Lõoväli - - Karl Markus Tarre - - Karl Martin Miil - - Karl Müllerbeck - - Karl Raud - - Karl Ruusmaa - - Kadri Kaus - - Karina Reisel - - Karli Oruste - - Karoliina Rebane - - Kaspar Kask - - Kati Rohtla - - Katre Metsvahi - - Katrin Kihuoja - - Keiti Leppik - - Kenno Parm - - Kenro Endel Üts - - Kertu Nurmberg - - Kertu Pikk - - Kevin Guljajev - - Kevin Laanemägi - - Kirill Demishin - - Kirke Tammpere - - Konstantin Donets - - Krista Kippar - - Krista Kolk - - Kristel Goldsmidt - - Kristel Tarend - - Kristiina Šamanina - - Kristina Krist - - Kristjan Haavik - - Kristjan Kõiv - - Kristjan Noode - - Kristjan Oja - - Kristjan Vaik - - Kristjan Vool - - Kristo Ilula - - Kärte Pärend - - Laura Anni - - Laura Kallas - - Laura Leisberg - - Laura Leon - - Laura Olek - - Lauri Tarend - - Lauri Väin - - Leela Viira - - Leho Kraav - - Lenar Valk - - Lenno Nagel - - Liina Lakur - - Liina Pirsi - - Liina Põlluäär - - Liisa Heinla - - Liisu Miller - - Lukas Pertel - - Madis Eensoo - - Madis Fuks - - Madis Kõosaar - - Madis Müil - - Madis Puju - - Madis Rohtla - - Madis Seppam - - Madis-Siim Rull - - Magnus Mihkel Peterson - - Magnus Teekivi - - Mai-Liis Hütt - - Mai-Liis Valdvee - - Mailis Terno - - Marcus Bindevald - - Marcus Pruks - - Markus Renser - - Marek Rei - - Maret Kaadu - - Margo Sall - - Margus Mahler - - Margus Rannakivi - - Mari-Liis Oldja - - Mari-Liis Põrk - - Maria Jerilova - - Maria Kert - - Maris Terno - - Maris Truuväärt - - Marius Andra - - Mart Kaasik - - Marten Tikman - - Martin Lausmaa - - Martin Meinhart Meindorf - - Martin Mägar - - Martin Oblikas - - Martin Väljaots - - Martti Elias - - Martti Remmelgas - - Mattias Vahtra - - Meelik Gornoi - - Meelimari Aljasmäe - - Meelis Pruks - - Melissa Saviste - - Merike Errit - - Merike Viilmann - - Merli Lall - - Mihkel Kanarik - - Mihkel Kiil - - Mihkel Koks - - Mihkel Nõmmik - - Mihkel Õun - - Mikk Kärner - - Mikkel Paat - - Märt Lepik - - Märten Juhari - - Märten Vuks - - Nansy Ly Endma - - Natalja R??ova - - Nelli-Anett Klippberg - - Norman Garder - - Olga Korovina - - Oliver Vaga - - Oole Tuurmaa - - Oskar Oidsalu - - Oskar Voorel - - Ott-Eerik Õun - - Ott Kändra - - Ott Lints - - Paavo Pudan - - Pearu Pung - - Peeter Karolin - - Peeter Tomberg - - Peter-Sten Annus - - Petri Behm - - Piiu Pilt - - Pirgit Kasemets - - Priit Kirss - - Priit Lepp - - Pärlin Luhila - - Raido Leilop - - Rait Liiv - - Rait Maltsaar - - Rasmus Koit - - Rasmus Raag - - Raul Aassalu - - Raul Pärlist - - Reenika East - - Reivo Türnpuu - - Renee Undrits - - Revo Sirel - - Riin Agur - - Risto Leesmäe - - Risto Maasing - - Risto Novik - - Risto Orr - - Robert Kolk - - Robert Rosimannus - - Robin Väli - - Roel Rahkema - - Roger Kerse - - Romet Tony Jõenurm - - Roosi-Ann Tõlgu - - Sander Aasaväli - - Sander Kornet - - Sander Roosik - - Sander Ruul - - Saskia Rohtla - - Sigrid Kirss - - Siim Kinks - - Siim Koppel - - Siim Märtmaa - - Siim Oselein - - Siim Romanov - - Siim Talts - - Silver David Iling - - Sten Kaasik - - Sten Nurmsalu - - Sten Uuesoo - - Stewe Suursoho - - Sven Kadak - - Sven Põder - - Sven Suursoho - - Sören Tali - - Taaniel Sepp - - Taavi Drenkhan - - Taavi Kalle Kiisler - - Taavi Nõlvak - - Taavi Tali - - Taeri Saar - - Tamor Haabmets - - Tanel Saar - - Taniel Tari - - Targo Nõmmik - - Tarvo Kesküla - - Tarvo Toomeoja - - Tauri Rattam - - Terje Russka - - Theo Efros - - Tiit Hansen - - Tiivi Sirp - - Timo Doan Van - - Triin Nargla - - Triin Vask - - Tõnis Filippov - - Tõnis Jakobsoo - - Tõnis Märtmaa - - Tõnis Piirits - - Tõnis Suurkaev - - Tõnis Truumaa - - Tõnn Vaher - - Uko Nurk - - Uku Luhari - - Urmo Keskel - - Vadim Šved - - Vahur Metsala - - Vahur Sari - - Valli Rennig - - Veiko Soomets - - Venno Viinapuu - - Viktor Ustitš - - Virgo Lepp - - Üllar Soon +junior: + + - Alexander Rein Robas + - Andres Alexander Jürgenson + - Eerik Abel + - Egert Nilbe + - Gabriel Ilisson + - Henri Karba + - Henry Ilves + - Hugo Reisberg + - Imogen Moon + - Johanna Kasenurm + - Joosep Tomingas + - Karl Erich Kaugeranna + - Karl Künnapas + - Karmen Errapart + - Karoliina Kannik + - Kerdo Vähk + - Kert Roov + - Kreta Liisa Aasamaa + - Laura Teder + - Marek Müürsepp + - Maria-Laurita Laimets + - Marten Laane + - Remi Vilsaar + - Riho-Martin Haavasalu + - Siim Marist + - Silver Slinko + - Uko Poschlin + +senior: + - Agnes Triin Saga + - Aimar Tuul + - Alexander Marsh + - Andres Aleksander Kase + - Christopher Rammul + - Erki Lasberg + - Eva-Marie Alasi + - Hanno Vene + - Jürjo Eibak + - Karel Vuks + - Katri Lotamõis + - Kerdo Käärma + - Lembitu Valdmets + - Liisu Miller + - Maria Jerilova + - Mark Perman + - Marten Tihanov + - Martin Perman + - Mati Pearu Vaalma + - Oliver Ilp + - Oluwatobiloba Promise Temitope + - Priit Roosiväli + - Rainis Randmaa + - Randel Mandre + - Reio Opromei + - Rene Arumetsa + - Siret Sillar + - Taavi Toimetaja + +inactive: + - Ardo Raus + - Arne Antov + - Catherine Kaasan + - Daniel Dautov + - Helena Carmen Udu + - Kevin-Kajar Kask + - Maivo Sirelbu + - Rait Parvi + - Rasmus Pertel + - Robin Järlak + - Sten-Tristan Romeikis + - Vladislav Mulgatšov + + +graduates: + - Aare Uus + - Aire Kurgpõld + - Airiin Kadakmaa + - Aive Uus + - Aivo Anier + - Aivo Niine + - Alar Noormägi + - Aleksander Tali + - Aleksandr Požidajev + - Aleksandra Budarina + - Aleksei Panov + - Alo Ohmann + - Alvar Sokk + - Anastasia Ljamtseva + - Ando Saabas + - Andreas Alapert + - Andreas Lokko + - Andree Uuetoa + - Andrei Gužovski + - Anet Mitt + - Andres Nigols + - Andres Soop + - Ann-Claire Utt + - Anneli Tuisk + - Annely Välik + - Anti Räis + - Anton Kolisnetšenko + - Argo Tammemäe + - Arti Zirk + - Artjom Juškov + - Artjom Protski + - Artur Rauk + - Arvo Bendi + - Asko Närep + - Asko Ohmann + - Asko Tamm + - Ave Reimann + - Ave Tarend + - Berta Härsing + - Borka-Martin Orlov + - Brenda Uga + - Brigite Kerge + - Britta Pung + - Carina Ruut + - Carmen Unt + - Carel Martten Lechtmets + - Carl Custav Mäeorg + - Danel Ahman + - Danel Laanemets + - Daniel Raissar + - Deivid Drekhan + - Denry Aron + - Diana Christine Tarro + - Diana Rand + - Edgar Miadzieles + - Eero Ringmäe + - Ege Käosaar + - Egert Aia + - Elen Väin + - Elina Kapanen + - Elis-Christina Kuuse + - Elisa Tamm + - Elo Pelovas + - Emil Marvin Mikk + - Enola Sander + - Enrico Kaasik + - Eret Rääk + - Erik Dolotov + - Erik Soekov + - Erki Aas + - Erki Suurjaak + - Erkko Kebbinau + - Erko Salo + - Erko Tiitma + - Erlis Liiva + - Ethel Voites + - Eve Timmerman + - Gleb Engalychev + - Gregor Kaljulaid + - Hannes Pahapill + - Hanno Särg + - Hans Kõll + - Harles-Herman Pilter + - Heidi Korp + - Heidi Taperson + - Heily Hindrea + - Helen Ertis + - Helen Tiitma + - Helen Vaupere + - Helena Grete Lillepalu + - Helena Lissenko + - Hendrik Õunapuu + - Henri Hallik + - Henri Helisma + - Henri Johann Norden + - Henri Kelder + - Henrik Hansson + - Henrik Tomson + - Herman Õunapuu + - Ilmar Lõhmus + - Immo Ilmjärv + - Indrek Sakkeus + - Ingel-Marie Hiiekivi + - Ingmar Trump + - Ingrid Vuks + - Ingrid-Regina Vähi + - Innar Liiv + - Inno Tõlgu + - Ivo Müürsepp + - Jaak Lember + - Jaan Lehismets + - Jaan Sarv + - Jaan Sepp + - Jaanika Metsnik + - Jan-Markus Üprus + - Jane Tamm + - Janika Leisalu + - Janita Raudsepp + - Janne Raudsepp + - Janno Tetsmann + - Jarek Jannait + - Joel Timmerman + - Jolanta Rudus + - Joonas Vali + - Joosep Franz Alviste + - Joosep Noorväli + - Jose Daniel Morales Sööt + - Kaarel Pärtel + - Kadri Kiisk + - Kadri-Ann Valgeväli + - Kaidi Karu + - Kairit Pajula + - Kairit Sirts + - Karl Eric Mõttus + - Karl Lõoväli + - Karl Markus Tarre + - Karl Martin Miil + - Karl Müllerbeck + - Karl Raud + - Karl Ruusmaa + - Kadri Kaus + - Karina Reisel + - Karli Oruste + - Karoliina Rebane + - Kaspar Kask + - Kati Rohtla + - Katre Metsvahi + - Katrin Kihuoja + - Keiti Leppik + - Kenno Parm + - Kenro Endel Üts + - Kertu Nurmberg + - Kertu Pikk + - Kevin Guljajev + - Kevin Laanemägi + - Kirill Demishin + - Kirke Tammpere + - Konstantin Donets + - Krista Kippar + - Krista Kolk + - Kristel Goldsmidt + - Kristel Tarend + - Kristiina Šamanina + - Kristina Krist + - Kristjan Haavik + - Kristjan Kõiv + - Kristjan Noode + - Kristjan Oja + - Kristjan Vaik + - Kristjan Vool + - Kristo Ilula + - Kärte Pärend + - Laura Anni + - Laura Kallas + - Laura Leisberg + - Laura Leon + - Laura Olek + - Lauri Tarend + - Lauri Väin + - Leela Viira + - Leho Kraav + - Lenar Valk + - Lenno Nagel + - Liina Lakur + - Liina Pirsi + - Liina Põlluäär + - Liisa Heinla + - Liisu Miller + - Lukas Pertel + - Madis Eensoo + - Madis Fuks + - Madis Kõosaar + - Madis Müil + - Madis Puju + - Madis Rohtla + - Madis Seppam + - Madis-Siim Rull + - Magnus Mihkel Peterson + - Magnus Teekivi + - Mai-Liis Hütt + - Mai-Liis Valdvee + - Mailis Terno + - Marcus Bindevald + - Marcus Pruks + - Markus Renser + - Marek Rei + - Maret Kaadu + - Margo Sall + - Margus Mahler + - Margus Rannakivi + - Mari-Liis Oldja + - Mari-Liis Põrk + - Maria Jerilova + - Maria Kert + - Maris Terno + - Maris Truuväärt + - Marius Andra + - Mart Kaasik + - Marten Tikman + - Martin Lausmaa + - Martin Meinhart Meindorf + - Martin Mägar + - Martin Oblikas + - Martin Väljaots + - Martti Elias + - Martti Remmelgas + - Mattias Vahtra + - Meelik Gornoi + - Meelimari Aljasmäe + - Meelis Pruks + - Melissa Saviste + - Merike Errit + - Merike Viilmann + - Merli Lall + - Mihkel Kanarik + - Mihkel Kiil + - Mihkel Koks + - Mihkel Nõmmik + - Mihkel Õun + - Mikk Kärner + - Mikkel Paat + - Märt Lepik + - Märten Juhari + - Märten Vuks + - Nansy Ly Endma + - Natalja R??ova + - Nelli-Anett Klippberg + - Norman Garder + - Olga Korovina + - Oliver Vaga + - Oole Tuurmaa + - Oskar Oidsalu + - Oskar Voorel + - Ott-Eerik Õun + - Ott Kändra + - Ott Lints + - Paavo Pudan + - Pearu Pung + - Peeter Karolin + - Peeter Tomberg + - Peter-Sten Annus + - Petri Behm + - Piiu Pilt + - Pirgit Kasemets + - Priit Kirss + - Priit Lepp + - Pärlin Luhila + - Raido Leilop + - Rait Liiv + - Rait Maltsaar + - Rasmus Koit + - Rasmus Raag + - Raul Aassalu + - Raul Pärlist + - Reenika East + - Reivo Türnpuu + - Renee Undrits + - Revo Sirel + - Riin Agur + - Risto Leesmäe + - Risto Maasing + - Risto Novik + - Risto Orr + - Robert Kolk + - Robert Rosimannus + - Robin Väli + - Roel Rahkema + - Roger Kerse + - Romet Tony Jõenurm + - Roosi-Ann Tõlgu + - Sander Aasaväli + - Sander Kornet + - Sander Roosik + - Sander Ruul + - Saskia Rohtla + - Sigrid Kirss + - Siim Kinks + - Siim Koppel + - Siim Märtmaa + - Siim Oselein + - Siim Romanov + - Siim Talts + - Silver David Iling + - Sten Kaasik + - Sten Nurmsalu + - Sten Uuesoo + - Stewe Suursoho + - Sven Kadak + - Sven Põder + - Sven Suursoho + - Sören Tali + - Taaniel Sepp + - Taavi Drenkhan + - Taavi Kalle Kiisler + - Taavi Nõlvak + - Taavi Tali + - Taeri Saar + - Tamor Haabmets + - Tanel Saar + - Taniel Tari + - Targo Nõmmik + - Tarvo Kesküla + - Tarvo Toomeoja + - Tauri Rattam + - Terje Russka + - Theo Efros + - Tiit Hansen + - Tiivi Sirp + - Timo Doan Van + - Triin Nargla + - Triin Vask + - Tõnis Filippov + - Tõnis Jakobsoo + - Tõnis Märtmaa + - Tõnis Piirits + - Tõnis Suurkaev + - Tõnis Truumaa + - Tõnn Vaher + - Uko Nurk + - Uku Luhari + - Urmo Keskel + - Vadim Šved + - Vahur Metsala + - Vahur Sari + - Valli Rennig + - Veiko Soomets + - Venno Viinapuu + - Viktor Ustitš + - Virgo Lepp + - Üllar Soon diff --git a/_data/mentors.yml b/public/_data/mentors.yml similarity index 83% rename from _data/mentors.yml rename to public/_data/mentors.yml index 10f179a..4472157 100644 --- a/_data/mentors.yml +++ b/public/_data/mentors.yml @@ -1,159 +1,180 @@ -# Mentors - -- name: Agnes Triin Saga - age: 28 - photo: agnes_triin_saga_mentor.jpg - speciality: Süsteemi administaator - teams: ['Helpdesk'] - term: 3 - contactMethods: - - name: Discord - value: dragons4president - description: > - Arvuti huvilisi ja motiveeritud inimesi. - activities: > - Abivalmis, nõus töötama nõu ja jõuga. - Mulle meeldib star trek ja üldiselt sci-fi ning fantaasia, mind huvitavad reisimine, viipekeel ja strateegilised lauamängud. Tegelenud põhiliselt windowsi süsteemide (administreerimisega). - -- name: Christopher Rammul - age: 23 - photo: christopher_rammul_mentor.jpg - speciality: Mehhatroonika - teams: ['Kultuur', 'Juhatus'] - contactMethods: - - name: Discord - value: lummarc - - name: Facebook - value: https://www.facebook.com/profile.php?id=100009719855131 - description: > - Ootan endale piksleid, kes on rohkem aktiivsed ja tahaksid teha tegevusi ka väljaspool tava LAP-i üritusi. Minu pikslitel võiks olla ka tahtmine edasi areneda ja üksteist vajadusel aidata ja toetada. - Olgu su huvid õppimisele keskendunud või otsid lihtsalt head seltskonda, minu piksel leiab alati viisi, kuidas elu nauditavaks muuta. - activities: > - Olen 5. aasta elektroenergeetika ja mehhatroonika tudeng. Mulle meeldivad spontaansed ideed ja casual chillimine. Väga ei meeldi igavus, seega üritan seda igal võimalusel ära hoida. - -- name: Erki Lasberg - age: 23 - photo: erki_lasberg_mentor.jpg - speciality: IT süsteemide administreerimine - teams: ['Helpdesk', 'Juhatus'] - term: 3 - contactMethods: - - name: Discord - value: the_legend_27__ - - name: Messenger - value: https://m.me/erki.lasberg - description: > - Ma ootan piksliteks inimesi kellel lööb silma särama kui nad katkist tehnikat näevad. - activities: > - Ma olen väga hands on inimene kes püüab probleemidele läheneda mitmel erineval viisil ja ei anna alla kui mõni nendest viisidest ei tööta. - -- name: Jürjo Eibak - age: 26 - photo: jürjo_eibak_mentor.jpg - speciality: Salastatud - teams: ['Kultuur'] - contactMethods: - - name: Discord - value: edgar5407 - - name: Messenger - value: https://m.me/jürjo.eibak - description: > - Minu pikselile meeldib Lapikute kontoris sotsialiseerida ja tegevuste kõrvale külma õlut nautida. - Üheskoos filmide vaatamine, lauamängude, arvutimängude ja DnD mängimine on alati meelepärane viis üksikute õhtute sisustamiseks. - activities: > - Lapikute liikmetega olen seltskondlik ja jutukas. Meeldib kõigiga kontori ruumides filme vaadata ja erinevaid mänge mängida. - Nende seast on alati kõige huvitavamad DnD kampaaniaid. Olen juba mitu aastat dungeon masteri rolli kandnud ja olen selles päris osav. Kõik minu pikslid on oodatud minu kampaaniatega liituma ;) - - Minuga ei hakka kunagi igav, sest mul on alati mõni naljakas tähelepanek või põnev lugu varuks. - - -- name: Katri Lotamõis - age: 29 - photo: katri_lotamõis_mentor.jpg - speciality: Tarkvaraarendus - teams: ['Kultuur', 'Tarkvara'] - term: - contactMethods: - - name: Discord - value: swagmuffin88 - description: > - Kedagi, kellele pakub suurt huvi kõik tarkvara ja -arendusega seonduv, aga ka arvutite kokku-lahti lammutamine. Samuti tahan koos oma pikslitega korraldada ägedaid üritusi teistele Lapikutele. Ootan uudishimulikke piksleid, kes ei karda palju küsimusi küsida, because we're all in it together 🙂. - activities: > - Tegelen Lapikutes põhiliselt kultuuritiimis ürituste korraldamisega ja turundamisega ning olen ka tarkvaratiimis, kus aitan arendada erinevaid tarkvaraprojekte. Erinen teistest lapikutest veidi selle poolest, et õpin hetkel hoopis Tallinna Tööstushariduskeskuses nooremtarkvaraarendaja erialal esimesel aastal. Minu tee IT-sse avas Java, mis on siiani minu lemmikuim keel tarkvaraprojektides kasutamiseks. Lapikutes olemise juures meeldib mulle kõige enam ühiste tegevuste planeerimine ning erinevate projektide kallal töötamine tiimina. - -- name: Kerdo Käärma - age: 22 - photo: kerdo_käärma_mentor.jpg - speciality: IT süsteemide arendus - teams: ['Kultuur', 'Tarkvara', 'Juhatus'] - term: 3 - contactMethods: - - name: Discord - value: krooles - - name: Messenger - value: https://m.me/kerdo.kaarma - description: > - Minu piksel on huvitatud nii enda kui ka tarkvara arendamisest. - Ta julgeb tunnistada enda vigu ja ei karda juurde õppida seda, mis esmapilgul tundub võõras. - Ta esitab küsimusi, kui ei saa aru, ning ei anna alla, kui tekib ootamatuid takistusi. - activities: > - Olen alati valmis aitama. Olgu küsimus ülikooli, Lapikute või millegi muuga seoses, küll koos leiame vastused. - Meeldib metsas jalutamas käia, jõusaalis raskuseid ringi liigutada ja sulgpalli mängida. Mind huvitab ka filosoofia. - FromSoftware fanboy ja anime enjoyer. - -- name: Reio Opromei - age: 24 - photo: reio_opromei_mentor.jpg - speciality: IT süsteemide arendus - teams: ['Kultuur', 'Juhatus'] - term: - contactMethods: - - name: Discord - value: vispel - - name: Messenger - value: https://m.me/reio.opromei - description: > - Kõige mugavam on minuga iseseisvatel pikslitel, kes tahavad veits hullu panna ning süda võiks ka õige koha peal olla. - activities: > - Kultuuritiimi "patrioot", diplomiga täiskohaga arendaja. - Üksikule saarele võtaksin progekeeltest kaasa Java või C# ning opsüsteemidest mõne Linuxilise. - - -- name: Rene Arumetsa - age: 29 - photo: rene_arumetsa_mentor.jpg - speciality: IT süsteemide administeerimine - teams: ['Helpdesk', 'Tarkvara', 'Juhatus'] - term: 3 - contactMethods: - - name: Discord - value: renxik - - name: Messenger - value: https://m.me/rene.arumetsa - - name: Telefoninumber - value: '+372 5690 7656' - - name: Telegram - value: https://t.me/Renkarus - description: > - Suht vahet ei ole, ole sa ise.. saan sellesmõttes kõigiga läbi. - activities: > - Olen IT-entusiast, kelle igapäev möödub Helpdeski tööde, LAN-ürituste korraldamise ja aeg-ajalt ka veebilehtede arendamisega. Olen olnud abiõppejõud operatsioonisüsteemide aines, tunnen end koduselt Linuxi maailmas ning vabal ajal naudin mängimist – viimasel ajal peamiselt Path of Exile’i – ja praktiliste projektide ehitamist. - - -- name: Lembitu Valdmets - age: 31 - photo: lembitu_valdmets_mentor.jpg - speciality: Arvutisüsteemid (Lõpetanud) - teams: ['Helpdesk'] - term: null - contactMethods: - - name: Messenger - value: https://m.me/lemps.valdmets - - name: Discord - value: lempspc - description: > - Ole mu piksel, kui sind huvitab arvutite remont, arvutitehnika riistvara, vanad arvutid, helitehnika, autoremont ja mudelism. - activities: > - Olen hetkel pikima staažiga Lapik, kes on näinud mitmeid juhatusi ja - pikaaegselt aidanud kaasa Lapikute edendamisele. Kui soovid coach'ingut selles osas, - kuidas ka ise juhatuse liikmeks saada, võid minuga ühendust võtta. +# Mentors + +- name: Agnes Triin Saga + age: 28 + photo: agnes_triin_saga_mentor.jpg + speciality: Süsteemi administaator + teams: ['Helpdesk'] + term: 3 + contactMethods: + - name: Discord + value: dragons4president + description: > + Arvuti huvilisi ja motiveeritud inimesi. + activities: > + Abivalmis, nõus töötama nõu ja jõuga. + Mulle meeldib star trek ja üldiselt sci-fi ning fantaasia, mind huvitavad reisimine, viipekeel ja strateegilised lauamängud. Tegelenud põhiliselt windowsi süsteemide (administreerimisega). + +- name: Christopher Rammul + age: 23 + photo: christopher_rammul_mentor.jpg + speciality: Mehhatroonika + teams: ['Kultuur', 'Juhatus'] + contactMethods: + - name: Discord + value: lummarc + - name: Facebook + value: https://www.facebook.com/profile.php?id=100009719855131 + description: > + Ootan endale piksleid, kes on rohkem aktiivsed ja tahaksid teha tegevusi ka väljaspool tava LAP-i üritusi. Minu pikslitel võiks olla ka tahtmine edasi areneda ja üksteist vajadusel aidata ja toetada. + Olgu su huvid õppimisele keskendunud või otsid lihtsalt head seltskonda, minu piksel leiab alati viisi, kuidas elu nauditavaks muuta. + activities: > + Olen 5. aasta elektroenergeetika ja mehhatroonika tudeng. Mulle meeldivad spontaansed ideed ja casual chillimine. Väga ei meeldi igavus, seega üritan seda igal võimalusel ära hoida. + +- name: Erki Lasberg + age: 23 + photo: erki_lasberg_mentor.jpg + speciality: IT süsteemide administreerimine + teams: ['Helpdesk', 'Juhatus'] + term: 3 + contactMethods: + - name: Discord + value: the_legend_27__ + - name: Messenger + value: https://m.me/erki.lasberg + description: > + Ma ootan piksliteks inimesi kellel lööb silma särama kui nad katkist tehnikat näevad. + activities: > + Ma olen väga hands on inimene kes püüab probleemidele läheneda mitmel erineval viisil ja ei anna alla kui mõni nendest viisidest ei tööta. + +- name: Jürjo Eibak + age: 26 + photo: jürjo_eibak_mentor.jpg + speciality: Salastatud + teams: ['Kultuur'] + contactMethods: + - name: Discord + value: edgar5407 + - name: Messenger + value: https://m.me/jürjo.eibak + description: > + Minu pikselile meeldib Lapikute kontoris sotsialiseerida ja tegevuste kõrvale külma õlut nautida. + Üheskoos filmide vaatamine, lauamängude, arvutimängude ja DnD mängimine on alati meelepärane viis üksikute õhtute sisustamiseks. + activities: > + Lapikute liikmetega olen seltskondlik ja jutukas. Meeldib kõigiga kontori ruumides filme vaadata ja erinevaid mänge mängida. + Nende seast on alati kõige huvitavamad DnD kampaaniaid. Olen juba mitu aastat dungeon masteri rolli kandnud ja olen selles päris osav. Kõik minu pikslid on oodatud minu kampaaniatega liituma ;) + + Minuga ei hakka kunagi igav, sest mul on alati mõni naljakas tähelepanek või põnev lugu varuks. + +- name: Karina Reisel + active: false + age: 22 + photo: karina_reisel_mentor + speciality: Riistvara arendus ja programmeerimine + teams: ['Kultuur', 'Tarkvara'] + term: 4 + contactMethods: + - name: Discord + value: rinsan5781 + - name: Messenger + value: https://m.me/karina.reisel + description: > + Ootan ägedaid pixleid. Kes soovivad lapi ürituste turundamisega tegutseda. + Kirjanikud, disainerid, fotograafid jne. Õpihimulised. + Lapiga liitumiseks ei ole tarvis olla proff. + Ootan kõiki, kes tahavad aktiivselt Lapis tegutseda. + activities: > + Ma olen jube tegus inimene. Tõenäoliselt näed sa mind tihti ülikooli ja Lapi üritustel 🤟 + Mulle meeldib käsitööga tegeleda: kudumine, heegeldamine, kunst, õmblus, tikkand jms. + + +- name: Katri Lotamõis + age: 29 + photo: katri_lotamõis_mentor.jpg + speciality: Tarkvaraarendus + teams: ['Kultuur', 'Tarkvara'] + term: + contactMethods: + - name: Discord + value: swagmuffin88 + description: > + Kedagi, kellele pakub suurt huvi kõik tarkvara ja -arendusega seonduv, aga ka arvutite kokku-lahti lammutamine. Samuti tahan koos oma pikslitega korraldada ägedaid üritusi teistele Lapikutele. Ootan uudishimulikke piksleid, kes ei karda palju küsimusi küsida, because we're all in it together 🙂. + activities: > + Tegelen Lapikutes põhiliselt kultuuritiimis ürituste korraldamisega ja turundamisega ning olen ka tarkvaratiimis, kus aitan arendada erinevaid tarkvaraprojekte. Erinen teistest lapikutest veidi selle poolest, et õpin hetkel hoopis Tallinna Tööstushariduskeskuses nooremtarkvaraarendaja erialal esimesel aastal. Minu tee IT-sse avas Java, mis on siiani minu lemmikuim keel tarkvaraprojektides kasutamiseks. Lapikutes olemise juures meeldib mulle kõige enam ühiste tegevuste planeerimine ning erinevate projektide kallal töötamine tiimina. + +- name: Kerdo Käärma + age: 22 + photo: kerdo_käärma_mentor.jpg + speciality: IT süsteemide arendus + teams: ['Kultuur', 'Tarkvara', 'Juhatus'] + term: 3 + contactMethods: + - name: Discord + value: krooles + - name: Messenger + value: https://m.me/kerdo.kaarma + description: > + Minu piksel on huvitatud nii enda kui ka tarkvara arendamisest. + Ta julgeb tunnistada enda vigu ja ei karda juurde õppida seda, mis esmapilgul tundub võõras. + Ta esitab küsimusi, kui ei saa aru, ning ei anna alla, kui tekib ootamatuid takistusi. + activities: > + Olen alati valmis aitama. Olgu küsimus ülikooli, Lapikute või millegi muuga seoses, küll koos leiame vastused. + Meeldib metsas jalutamas käia, jõusaalis raskuseid ringi liigutada ja sulgpalli mängida. Mind huvitab ka filosoofia. + FromSoftware fanboy ja anime enjoyer. + +- name: Reio Opromei + age: 24 + photo: reio_opromei_mentor.jpg + speciality: IT süsteemide arendus + teams: ['Kultuur', 'Juhatus'] + term: + contactMethods: + - name: Discord + value: vispel + - name: Messenger + value: https://m.me/reio.opromei + description: > + Kõige mugavam on minuga iseseisvatel pikslitel, kes tahavad veits hullu panna ning süda võiks ka õige koha peal olla. + activities: > + Kultuuritiimi "patrioot", diplomiga täiskohaga arendaja. + Üksikule saarele võtaksin progekeeltest kaasa Java või C# ning opsüsteemidest mõne Linuxilise. + + +- name: Rene Arumetsa + age: 29 + photo: rene_arumetsa_mentor.jpg + speciality: IT süsteemide administeerimine + teams: ['Helpdesk', 'Tarkvara', 'Juhatus'] + term: 3 + contactMethods: + - name: Discord + value: renxik + - name: Messenger + value: https://m.me/rene.arumetsa + - name: Telefoninumber + value: '+372 5690 7656' + - name: Telegram + value: https://t.me/Renkarus + description: > + Suht vahet ei ole, ole sa ise.. saan sellesmõttes kõigiga läbi. + activities: > + Olen IT-entusiast, kelle igapäev möödub Helpdeski tööde, LAN-ürituste korraldamise ja aeg-ajalt ka veebilehtede arendamisega. Olen olnud abiõppejõud operatsioonisüsteemide aines, tunnen end koduselt Linuxi maailmas ning vabal ajal naudin mängimist – viimasel ajal peamiselt Path of Exile’i – ja praktiliste projektide ehitamist. + + +- name: Lembitu Valdmets + age: 31 + photo: lembitu_valdmets_mentor.jpg + speciality: Arvutisüsteemid (Lõpetanud) + teams: ['Helpdesk'] + term: null + contactMethods: + - name: Messenger + value: https://m.me/lemps.valdmets + - name: Discord + value: lempspc + description: > + Ole mu piksel, kui sind huvitab arvutite remont, arvutitehnika riistvara, vanad arvutid, helitehnika, autoremont ja mudelism. + activities: > + Olen hetkel pikima staažiga Lapik, kes on näinud mitmeid juhatusi ja + pikaaegselt aidanud kaasa Lapikute edendamisele. Kui soovid coach'ingut selles osas, + kuidas ka ise juhatuse liikmeks saada, võid minuga ühendust võtta. diff --git a/_data/ourwork.yml b/public/_data/ourwork.yml similarity index 97% rename from _data/ourwork.yml rename to public/_data/ourwork.yml index cc78300..0978b96 100644 --- a/_data/ourwork.yml +++ b/public/_data/ourwork.yml @@ -1,104 +1,104 @@ -# Our work -# -- title: Tipilan - photo: tipilan.jpg - url: http://tipilan.ee/ - description: Tipilan on Eesti suurim üliõpilaste korraldatav LAN-üritus. Lapikud tagas ürituse IT-infrastruktuuri ja veebilehe toimimise. - -- title: Remondikohvik - photo: remondikohvik.jpg - url: https://remondikohvik.lapikud.ee/ - description: Remondikohvik on Lapikute poolt algatatud ja korraldatud projekt, mis annab asjadele teise elu läbi parandamise. Projekt hõlmab nii ürituste korraldamist kui ka veebilehe väljatöötamist. - -- title: Tallinna Tehnikaülikooli Muuseumi eksponaadid - photo: ttu_muusem_placeholder.jpg - url: - description: Töö valmis september 2018. - -- title: ENLi koduleht - photo: eesti_noorteühenduste_liit.jpg - url: http://enl.ee/ - description: Tegime Eesti Noorteühenduste Liidule uue landing lehe, samuti tegime pluginatega seotud parandusi. - -# TODO site is gone, need pics -#- title: Koduleht firmale tuumfilm -# photo: kertult saab pilte küsida nkn -# url: -# description: Valmistasime väiksele filmi ja montaaži firmale kodulehe - -# TODO get pics -#- title: Hitmani mäng tudengipäevadel -# photo: edgarilt saab prolly, kirjutasin -# url: -# description: Tartus toimus IRL Hitmani mäng mille veebirakenduse me valmistasime - -- title: Taksod.net Android äpp - photo: taksod-net-android.jpg - url: https://play.google.com/store/apps/details?id=net.taksod.android - description: Androidi äpp, milles on võimalik taksofirma otsida ning läbi äpi kohe helistada ja takso tellida. - -- title: Taksod.net iOS äpp - photo: taksod-net-ios.jpg - url: https://itunes.apple.com/ee/app/taksod-net/id1230208509?mt=8 - description: iOS äpp, milles on võimalik taksofirma otsida ning läbi äpi kohe helistada ja takso tellida. - -- title: Osaluskogud Eestis - photo: osaluskogud_eestis.jpg - url: - description: Teostasime lehel täiendusi. Tänaseks on portaali omanikud selle sulgenud. - -- title: Tallinna Tehnikaülikooli Puhkpilliorkester - photo: orkester.jpg - url: http://orkester.ee - description: Andsime lehele kaasaegse väljanägemise. - -- title: Tallinna Tehnikaülikooli Studentlife - photo: studentlife.jpg - url: - description: Arendasime WordPressi platvormil kliendi ettenägemise järgi uue keskkonna, kus tudengid saavad blogipostitusi kirjutada/lugeda ning ka tulevaste ürituste ja organisatsioonide tegevustega kursis olla. Aegajalt viime lehel ka läbi uuendustöid. Tänaseks on portaali omanikud selle sulgenud. - -- title: Eesti Üliõpilasesinduse Liit - photo: sallivkool.jpg - url: - description: - -- title: ISIC - photo: isic.jpg - url: - description: WordPressi platvormil arendatud veebileht, kust leiab kõik vajaliku info ISIC kaardi kohta (soodustused, tellimine jpm). - - -- title: Eesti Jalgratta Virtuaalmuuseum - photo: jalgrattaveeb.jpg - url: http://www.velomuseum.ee/ - description: - - -- title: Meremeeste tööotsingu portaal - photo: nauticalcrew.jpg - url: - description: Tänaseks on portaali omanikud selle sulgenud. - - -- title: Võti Tulevikku 2013 infoveeb - photo: votitulevikku.jpg - url: - description: - - -- title: Ukseproff - photo: ukseproff.jpg - url: - description: Tänaseks on portaali omanikud selle sulgenud. - - -- title: Nõmme Tenniseklubi koduleht - photo: nommetenniseklubi.jpg - url: - description: Tänaseks on portaali omanikud selle sulgenud. - - -- title: Sporditrennid.ee trenni otsinguportaal - photo: sporditrennid.jpg - url: - description: Tänaseks on portaali omanikud selle sulgenud. +# Our work +# +- title: Tipilan + photo: tipilan.jpg + url: http://tipilan.ee/ + description: Tipilan on Eesti suurim üliõpilaste korraldatav LAN-üritus. Lapikud tagas ürituse IT-infrastruktuuri ja veebilehe toimimise. + +- title: Remondikohvik + photo: remondikohvik.jpg + url: https://remondikohvik.lapikud.ee/ + description: Remondikohvik on Lapikute poolt algatatud ja korraldatud projekt, mis annab asjadele teise elu läbi parandamise. Projekt hõlmab nii ürituste korraldamist kui ka veebilehe väljatöötamist. + +- title: Tallinna Tehnikaülikooli Muuseumi eksponaadid + photo: ttu_muusem_placeholder.jpg + url: + description: Töö valmis september 2018. + +- title: ENLi koduleht + photo: eesti_noorteühenduste_liit.jpg + url: http://enl.ee/ + description: Tegime Eesti Noorteühenduste Liidule uue landing lehe, samuti tegime pluginatega seotud parandusi. + +# TODO site is gone, need pics +#- title: Koduleht firmale tuumfilm +# photo: kertult saab pilte küsida nkn +# url: +# description: Valmistasime väiksele filmi ja montaaži firmale kodulehe + +# TODO get pics +#- title: Hitmani mäng tudengipäevadel +# photo: edgarilt saab prolly, kirjutasin +# url: +# description: Tartus toimus IRL Hitmani mäng mille veebirakenduse me valmistasime + +- title: Taksod.net Android äpp + photo: taksod-net-android.jpg + url: https://play.google.com/store/apps/details?id=net.taksod.android + description: Androidi äpp, milles on võimalik taksofirma otsida ning läbi äpi kohe helistada ja takso tellida. + +- title: Taksod.net iOS äpp + photo: taksod-net-ios.jpg + url: https://itunes.apple.com/ee/app/taksod-net/id1230208509?mt=8 + description: iOS äpp, milles on võimalik taksofirma otsida ning läbi äpi kohe helistada ja takso tellida. + +- title: Osaluskogud Eestis + photo: osaluskogud_eestis.jpg + url: + description: Teostasime lehel täiendusi. Tänaseks on portaali omanikud selle sulgenud. + +- title: Tallinna Tehnikaülikooli Puhkpilliorkester + photo: orkester.jpg + url: http://orkester.ee + description: Andsime lehele kaasaegse väljanägemise. + +- title: Tallinna Tehnikaülikooli Studentlife + photo: studentlife.jpg + url: + description: Arendasime WordPressi platvormil kliendi ettenägemise järgi uue keskkonna, kus tudengid saavad blogipostitusi kirjutada/lugeda ning ka tulevaste ürituste ja organisatsioonide tegevustega kursis olla. Aegajalt viime lehel ka läbi uuendustöid. Tänaseks on portaali omanikud selle sulgenud. + +- title: Eesti Üliõpilasesinduse Liit + photo: sallivkool.jpg + url: + description: + +- title: ISIC + photo: isic.jpg + url: + description: WordPressi platvormil arendatud veebileht, kust leiab kõik vajaliku info ISIC kaardi kohta (soodustused, tellimine jpm). + + +- title: Eesti Jalgratta Virtuaalmuuseum + photo: jalgrattaveeb.jpg + url: http://www.velomuseum.ee/ + description: + + +- title: Meremeeste tööotsingu portaal + photo: nauticalcrew.jpg + url: + description: Tänaseks on portaali omanikud selle sulgenud. + + +- title: Võti Tulevikku 2013 infoveeb + photo: votitulevikku.jpg + url: + description: + + +- title: Ukseproff + photo: ukseproff.jpg + url: + description: Tänaseks on portaali omanikud selle sulgenud. + + +- title: Nõmme Tenniseklubi koduleht + photo: nommetenniseklubi.jpg + url: + description: Tänaseks on portaali omanikud selle sulgenud. + + +- title: Sporditrennid.ee trenni otsinguportaal + photo: sporditrennid.jpg + url: + description: Tänaseks on portaali omanikud selle sulgenud. diff --git a/_data/partners.yml b/public/_data/partners.yml similarity index 96% rename from _data/partners.yml rename to public/_data/partners.yml index 1becbc3..f5cf155 100644 --- a/_data/partners.yml +++ b/public/_data/partners.yml @@ -1,30 +1,30 @@ -- name: Tehnopol - image: tehnopollogo.png - url: https://www.tehnopol.ee/ - additionalText: - -- name: Tallinna Tehnikaülikool - image: taltech_logo.jpg - url: https://www.ttu.ee/ - additionalText: - -- name: Eesti Üliõpilaskondade Liit - image: eyl_logo.png - url: https://eyl.ee/ - additionalText: - -- name: Tallinna Tehnikaülikooli Robotiklubi - image: robotiklubi_logo.png - url: https://www.robotiklubi.ee/ - additionalText: - -- name: Tallinna Tehnikaülikooli Infotehnoloogia teaduskond - image: taltech_IT_teaduskond_logo.png - url: https://taltech.ee/et/infotehnoloogia-teaduskond - additionalText: - -- name: Tallinna Tehnikaülikooli Inseneri teaduskond - image: TalTech_Insener_EST_gradient.png - url: https://taltech.ee/inseneriteaduskond - additionalText: - +- name: Tehnopol + image: tehnopollogo.png + url: https://www.tehnopol.ee/ + additionalText: + +- name: Tallinna Tehnikaülikool + image: taltech_logo.jpg + url: https://www.ttu.ee/ + additionalText: + +- name: Eesti Üliõpilaskondade Liit + image: eyl_logo.png + url: https://eyl.ee/ + additionalText: + +- name: Tallinna Tehnikaülikooli Robotiklubi + image: robotiklubi_logo.png + url: https://www.robotiklubi.ee/ + additionalText: + +- name: Tallinna Tehnikaülikooli Infotehnoloogia teaduskond + image: taltech_IT_teaduskond_logo.png + url: https://taltech.ee/et/infotehnoloogia-teaduskond + additionalText: + +- name: Tallinna Tehnikaülikooli Inseneri teaduskond + image: TalTech_Insener_EST_gradient.png + url: https://taltech.ee/inseneriteaduskond + additionalText: + diff --git a/_data/past_management.yml b/public/_data/past_management.yml similarity index 94% rename from _data/past_management.yml rename to public/_data/past_management.yml index 9b1953d..50ef331 100644 --- a/_data/past_management.yml +++ b/public/_data/past_management.yml @@ -1,385 +1,385 @@ -- year: 2025/2026 - members: - - name: Christopher Rammul - image: christopher_rammul.jpg - - - name: Erki Lasberg - image: erki_lasberg.jpg - - - name: Kerdo Käärma - image: kerdo_kaarma.jpg - - - name: Reio Opromei - image: reio_opromei.jpg - - - name: Rene Arumetsa - image: rene_arumetsa.jpg - -- year: 2025 (talv, kevad) - members: - - name: Christopher Rammul - image: christopher_rammul_1.jpg - - - name: Erki Lasberg - image: erki_lasberg_1.jpg - - - name: Rene Arumetsa - image: rene_arumetsa_1.jpg - - - name: Hanno Vene - image: hanno_vene2.jpg - - -- year: 2024 (suvi, sügis, talv) - members: - - name: Eva-Marie Alasi - image: Eva-Marie_Alasi.jpg - - - name: Erki Lasberg - image: erki_lasberg_1.jpg - - - name: Rene Arumetsa - image: rene_arumetsa_1.jpg - - - name: Christopher Rammul - image: christopher_rammul_1.jpg - - - name: Karina Reisel - image: karina_reisel.jpg - -- year: 2023 - members: - - name: Lembitu Valdmets - image: lembitu_valdmets2.jpg - - - name: Ott-Eerik Õun - image: ott-eerik_oun.jpg - - - name: Andree Uuetoa - image: andree_uuetoa.jpg - - - name: Pearu Vaalma - image: siinus.jpg - - - name: Karina Reisel - image: karina_reisel.jpg - -- year: 2022 - members: - - name: Carina Ruut - image: carina_ruut.jpg - - - name: Karl Eric Mõttus - image: karl_eric_mottus.jpg - - - name: Laura Anni - image: laura_anni.jpg - - - name: Anet Mitt - image: anet_mitt.jpg - - - name: Taeri Saar - image: taeri_saar.jpg - -- year: 2021 - members: - - name: Carina Ruut - image: carina_ruut.jpg - - - name: Andrei Gužovski - image: andrei_guzovski.jpg - - - name: Kristjan Kõiv - image: kristjan_koiv.png - - - name: Ingrid-Regina Vähi - image: ingrid_regina_vahi.jpg - - - name: Marcus Pruks - image: marcus_pruks.JPG - -- year: 2020 - members: - - name: Liisa Heinla - image: liisa_heinla.jpg - - - name: Andrei Gužovski - image: andrei_guzovski.jpg - - - name: Mattias Vahtra - image: mattias_vahtra.jpg - - - name: Sander Kornet - image: sander_kornet.jpg - - - -- year: 2019 - members: - - name: Risto Leesmäe - image: risto_leesmäe.jpg - - - name: Lembitu Valdmets - image: lembitu_valdmets.jpg - - - name: Hanno Vene - image: hanno_vene.jpg - - - name: Peter-Sten Annus - image: peter-sten_annus.jpg - - - name: Roosi-Ann Tõlgu - image: roosi-ann_tõlgu.jpg - - - -- year: 2018 - members: - - name: Hanno Vene - image: hanno_vene.jpg - - - name: Kaarel Pärtel - image: kaarel_pärtel.jpg - - - name: Martin Oblikas - image: martin_oblikas.jpg - - - name: Risto Leesmäe - image: risto_leesmäe.jpg - - - name: Asko Närep - image: asko_närep.jpg - - - -- year: 2017 - members: - - name: Kertu Nurmberg - image: kertu_nurmberg.jpg - - - name: Tõnis Piirits - image: tõnis_piirits.jpg - - - name: Lembitu Valdmets - image: lembitu_valdmets.jpg - - - name: Rasmus Koit - image: rasmus_koit.jpg - - - name: Sigrid Kirss - image: sigrid_kirss.jpg - - - -- year: 2016 - members: - - name: Kertu Pikk - image: kertu_pikk_2016.jpg - - - name: Kertu Nurmberg - image: kertu_nurmberg.jpg - - - name: Lembitu Valdmets - image: lembitu_valdmets.jpg - - - name: Nansy Ly Endma - image: nansy_ly_endma.jpg - - -- year: 2015 - members: - - name: Berta Härsing - image: berta_harsing.jpg - - - name: Ann-Claire Utt - image: ann-claire_utt.jpg - - - name: Oole Tuurmaa - image: oole_tuurmaa.png - - - name: Pärlin Luhila - image: pärlin_luhila.png - - - name: Kertu Pikk - image: kertu_pikk_2015.png - - - - -- year: 2014 - members: - - name: Karli Oruste - image: karli_oruste.jpg - - - name: Berta Härsing - image: berta_harsing.jpg - - - name: Siim Talts - image: siim_talts.jpg - - - -- year: 2013 - members: - - name: Märt Lepik - image: märt_lepik.jpg - - - name: Karli Oruste - image: karli_oruste.jpg - - - name: Aleksandr Požidajev - image: aleksandr_požidajev.jpg - - -- year: 2012 - members: - - name: Märt Lepik - image: märt_lepik.jpg - - - name: Helen Tiitma - image: helen_tiitma.jpg - - - name: Raul Aassalu - image: raul_aassalu.jpg - -- year: 2011 - members: - - name: Märt Lepik - image: märt_lepik.jpg - - - name: Risto Maasing - image: risto_maasing.jpg - - - name: Roel Rahkema - image: roel_rahkema.jpg - - -- year: 2010 - members: - - name: Margus Mahler - image: margus_mahler.jpg - - - name: Janne Raudsepp - image: janne_raudsepp.jpg - - - name: Tõnis Märtmaa - image: tõnis_märtmaa.jpg - - - -- year: 2009 - members: - - name: Margus Mahler - image: margus_mahler.jpg - - - name: Risto Maasing - image: risto_maasing.jpg - - - name: Tõnis Trumaa - image: tõnis_trumaa.jpg - - - name: Tõnis Märtmaa - image: tõnis_märtmaa.jpg - - - name: Janne Raudsepp - image: janne_raudsepp.jpg - - -- year: 2008 - members: - - name: Tõnis Märtmaa - image: tõnis_märtmaa.jpg - - - name: Kristjan Haavik - image: kristjan_haavik_2008.jpg - - - name: Risto Maasing - image: risto_maasing.jpg - - - name: Karin Viil - image: karin_viil.jpg - - - name: Petri Behm - image: petri_behm.jpg - - -- year: 2007 - members: - - name: Kristjan Haavik - image: kristjan_haavik_2007.jpg - - - name: Priit Lepp - image: priit_lepp.jpg - - - name: Ave Tarend - image: ave_tarend.jpg - - - name: Õnne Laanmets - image: õnne_laanmets.jpg - - - name: Tõnis Märtmaa - image: tõnis_märtmaa.jpg - - - name: Margus Mahler - image: margus_mahler.jpg - - -- year: 2006 - members: - - name: Aive Uus - image: aive_uus.jpg - - - name: Margus Mahler - image: margus_mahler.jpg - - - name: Kristjan Haavik - image: kristjan_haavik_2007.jpg - - -- year: 2005 - members: - - name: Aive Uus - image: aive_uus.jpg - - - name: Eret Rääk - image: eret_rääk.jpg - - - name: Kristjan Haavik - image: kristjan_haavik_2007.jpg - -- year: 2004 - members: - - name: Aive Uus - image: aive_uus.jpg - - - name: Eret Rääk - image: eret_rääk.jpg - - - name: Kristjan Haavik - image: kristjan_haavik_2007.jpg - - -- year: 2003 - members: - - name: Aive Uus - image: aive_uus.jpg - - - name: Jaak Lember - image: jaak_lember.jpg - - - name: Siim Valgeväli - image: siim_valgeväli.jpg - - -- year: 2002 - members: - - name: Lauri Till - image: lauri_till.jpg - - - name: Jaak Lember - image: jaak_lember.jpg - - - name: Meelik Gornoi - image: meelik_gornoi.jpg - - +- year: 2025/2026 + members: + - name: Christopher Rammul + image: christopher_rammul.jpg + + - name: Erki Lasberg + image: erki_lasberg.jpg + + - name: Kerdo Käärma + image: kerdo_kaarma.jpg + + - name: Reio Opromei + image: reio_opromei.jpg + + - name: Rene Arumetsa + image: rene_arumetsa.jpg + +- year: 2025 (talv, kevad) + members: + - name: Christopher Rammul + image: christopher_rammul_1.jpg + + - name: Erki Lasberg + image: erki_lasberg_1.jpg + + - name: Rene Arumetsa + image: rene_arumetsa_1.jpg + + - name: Hanno Vene + image: hanno_vene2.jpg + + +- year: 2024 (suvi, sügis, talv) + members: + - name: Eva-Marie Alasi + image: Eva-Marie_Alasi.jpg + + - name: Erki Lasberg + image: erki_lasberg_1.jpg + + - name: Rene Arumetsa + image: rene_arumetsa_1.jpg + + - name: Christopher Rammul + image: christopher_rammul_1.jpg + + - name: Karina Reisel + image: karina_reisel.jpg + +- year: 2023 + members: + - name: Lembitu Valdmets + image: lembitu_valdmets2.jpg + + - name: Ott-Eerik Õun + image: ott-eerik_oun.jpg + + - name: Andree Uuetoa + image: andree_uuetoa.jpg + + - name: Pearu Vaalma + image: siinus.jpg + + - name: Karina Reisel + image: karina_reisel.jpg + +- year: 2022 + members: + - name: Carina Ruut + image: carina_ruut.jpg + + - name: Karl Eric Mõttus + image: karl_eric_mottus.jpg + + - name: Laura Anni + image: laura_anni.jpg + + - name: Anet Mitt + image: anet_mitt.jpg + + - name: Taeri Saar + image: taeri_saar.jpg + +- year: 2021 + members: + - name: Carina Ruut + image: carina_ruut.jpg + + - name: Andrei Gužovski + image: andrei_guzovski.jpg + + - name: Kristjan Kõiv + image: kristjan_koiv.png + + - name: Ingrid-Regina Vähi + image: ingrid_regina_vahi.jpg + + - name: Marcus Pruks + image: marcus_pruks.JPG + +- year: 2020 + members: + - name: Liisa Heinla + image: liisa_heinla.jpg + + - name: Andrei Gužovski + image: andrei_guzovski.jpg + + - name: Mattias Vahtra + image: mattias_vahtra.jpg + + - name: Sander Kornet + image: sander_kornet.jpg + + + +- year: 2019 + members: + - name: Risto Leesmäe + image: risto_leesmäe.jpg + + - name: Lembitu Valdmets + image: lembitu_valdmets.jpg + + - name: Hanno Vene + image: hanno_vene.jpg + + - name: Peter-Sten Annus + image: peter-sten_annus.jpg + + - name: Roosi-Ann Tõlgu + image: roosi-ann_tõlgu.jpg + + + +- year: 2018 + members: + - name: Hanno Vene + image: hanno_vene.jpg + + - name: Kaarel Pärtel + image: kaarel_pärtel.jpg + + - name: Martin Oblikas + image: martin_oblikas.jpg + + - name: Risto Leesmäe + image: risto_leesmäe.jpg + + - name: Asko Närep + image: asko_närep.jpg + + + +- year: 2017 + members: + - name: Kertu Nurmberg + image: kertu_nurmberg.jpg + + - name: Tõnis Piirits + image: tõnis_piirits.jpg + + - name: Lembitu Valdmets + image: lembitu_valdmets.jpg + + - name: Rasmus Koit + image: rasmus_koit.jpg + + - name: Sigrid Kirss + image: sigrid_kirss.jpg + + + +- year: 2016 + members: + - name: Kertu Pikk + image: kertu_pikk_2016.jpg + + - name: Kertu Nurmberg + image: kertu_nurmberg.jpg + + - name: Lembitu Valdmets + image: lembitu_valdmets.jpg + + - name: Nansy Ly Endma + image: nansy_ly_endma.jpg + + +- year: 2015 + members: + - name: Berta Härsing + image: berta_harsing.jpg + + - name: Ann-Claire Utt + image: ann-claire_utt.jpg + + - name: Oole Tuurmaa + image: oole_tuurmaa.png + + - name: Pärlin Luhila + image: pärlin_luhila.png + + - name: Kertu Pikk + image: kertu_pikk_2015.png + + + + +- year: 2014 + members: + - name: Karli Oruste + image: karli_oruste.jpg + + - name: Berta Härsing + image: berta_harsing.jpg + + - name: Siim Talts + image: siim_talts.jpg + + + +- year: 2013 + members: + - name: Märt Lepik + image: märt_lepik.jpg + + - name: Karli Oruste + image: karli_oruste.jpg + + - name: Aleksandr Požidajev + image: aleksandr_požidajev.jpg + + +- year: 2012 + members: + - name: Märt Lepik + image: märt_lepik.jpg + + - name: Helen Tiitma + image: helen_tiitma.jpg + + - name: Raul Aassalu + image: raul_aassalu.jpg + +- year: 2011 + members: + - name: Märt Lepik + image: märt_lepik.jpg + + - name: Risto Maasing + image: risto_maasing.jpg + + - name: Roel Rahkema + image: roel_rahkema.jpg + + +- year: 2010 + members: + - name: Margus Mahler + image: margus_mahler.jpg + + - name: Janne Raudsepp + image: janne_raudsepp.jpg + + - name: Tõnis Märtmaa + image: tõnis_märtmaa.jpg + + + +- year: 2009 + members: + - name: Margus Mahler + image: margus_mahler.jpg + + - name: Risto Maasing + image: risto_maasing.jpg + + - name: Tõnis Trumaa + image: tõnis_trumaa.jpg + + - name: Tõnis Märtmaa + image: tõnis_märtmaa.jpg + + - name: Janne Raudsepp + image: janne_raudsepp.jpg + + +- year: 2008 + members: + - name: Tõnis Märtmaa + image: tõnis_märtmaa.jpg + + - name: Kristjan Haavik + image: kristjan_haavik_2008.jpg + + - name: Risto Maasing + image: risto_maasing.jpg + + - name: Karin Viil + image: karin_viil.jpg + + - name: Petri Behm + image: petri_behm.jpg + + +- year: 2007 + members: + - name: Kristjan Haavik + image: kristjan_haavik_2007.jpg + + - name: Priit Lepp + image: priit_lepp.jpg + + - name: Ave Tarend + image: ave_tarend.jpg + + - name: Õnne Laanmets + image: õnne_laanmets.jpg + + - name: Tõnis Märtmaa + image: tõnis_märtmaa.jpg + + - name: Margus Mahler + image: margus_mahler.jpg + + +- year: 2006 + members: + - name: Aive Uus + image: aive_uus.jpg + + - name: Margus Mahler + image: margus_mahler.jpg + + - name: Kristjan Haavik + image: kristjan_haavik_2007.jpg + + +- year: 2005 + members: + - name: Aive Uus + image: aive_uus.jpg + + - name: Eret Rääk + image: eret_rääk.jpg + + - name: Kristjan Haavik + image: kristjan_haavik_2007.jpg + +- year: 2004 + members: + - name: Aive Uus + image: aive_uus.jpg + + - name: Eret Rääk + image: eret_rääk.jpg + + - name: Kristjan Haavik + image: kristjan_haavik_2007.jpg + + +- year: 2003 + members: + - name: Aive Uus + image: aive_uus.jpg + + - name: Jaak Lember + image: jaak_lember.jpg + + - name: Siim Valgeväli + image: siim_valgeväli.jpg + + +- year: 2002 + members: + - name: Lauri Till + image: lauri_till.jpg + + - name: Jaak Lember + image: jaak_lember.jpg + + - name: Meelik Gornoi + image: meelik_gornoi.jpg + + diff --git a/public/_data/workshops.yml b/public/_data/workshops.yml new file mode 100644 index 0000000..c1a9977 --- /dev/null +++ b/public/_data/workshops.yml @@ -0,0 +1,36 @@ +# Workshops & courses conducted by Lapikud members +# +- title: + en: C workshop + est: C koolitus + description: + en: Three-part introductory C workshop series for beginners and early-stage programmers. Covered core programming foundations and practical C basics in Estonian at TalTech IT College. + est: Kolmeosaline C programmeerimiskeele koolitus algajatele ja varasema kogemusega huvilistele. Käsitleti programmeerimise alusteadmisi ja C keele põhiteemasid praktiliste näidete kaudu TalTech IT Kolledžis. + mentor: + en: Lapikud mentors + est: MTÜ Lapikud mentorid + duration: + en: 3 × 1h 30min + est: 3 × 1h 30min + date: 2026-03 + gallery: + - temp1 + - temp2 + +- title: + en: C workshop + est: C koolitus + description: + en: Three-part introductory C workshop series for beginners and early-stage programmers. Covered core programming foundations and practical C basics in Estonian at TalTech IT College. + est: Kolmeosaline C programmeerimiskeele koolitus algajatele ja varasema kogemusega huvilistele. Käsitleti programmeerimise alusteadmisi ja C keele põhiteemasid praktiliste näidete kaudu TalTech IT Kolledžis. + mentor: + en: Lapikud mentors + est: MTÜ Lapikud mentorid + duration: + en: 3 × 1h 30min + est: 3 × 1h 30min + date: 2026-03 + gallery: + - temp1 + - temp2 + - temp3 diff --git a/_posts/2019-04-15-talve-kokkuvote.md b/public/_posts/2019-04-15-talve-kokkuvote.md similarity index 98% rename from _posts/2019-04-15-talve-kokkuvote.md rename to public/_posts/2019-04-15-talve-kokkuvote.md index b8171f4..d1e12d0 100644 --- a/_posts/2019-04-15-talve-kokkuvote.md +++ b/public/_posts/2019-04-15-talve-kokkuvote.md @@ -1,45 +1,45 @@ ---- -layout: post -title: "2019 Talve kokkuvõte!" -date: 2019-04-16 09:01:31 +0200 -categories: blog ---- - -Lapikute viimased paar kuud on taaskord möödunud tegusalt, ning jälle oleks hea aeg toimunud üritusi ja teisi sündmusi meenutada. - -Detsembri alguses toimus koostöös Tallinna Ülikooli tudengkonnaga kauaoodatud (ja korraldatud) suurüritus LAN ruudus, kuhu tuli kohale tervelt 50 inimest. LANil toimus mitu turniiri, sealhulgas Age of Empires, Dota 2, Mortal Kombat, FIFA2019 ja beerpongi turniirid. Nädalavahetuse peamine tõmbepunkt oli siiski CS:GO turniir, mis kestis varahommikuni. Peaauhinna sai tiim Akatsuki. - -![LAN ruudus](https://i.imgur.com/hebNkCs.jpg "LAN ruudus") - -Detsembris toimus Lapikute kontoris ka jõulude ja uusaasta tähistamine. Traditsiooniliselt pidulik jõulupidu veedeti sellel aastal incognito, sest peo teemaks oli maskiball. Jõulupeol said ka tublimad sügisesed pixlid kätte oma liikmestaatuse. - -![Jõulud](https://i.imgur.com/laZWkMZ.jpg "Jõulud") - -Uusaasta sai vastu võetud suure võileivalaua buffeega. Käisime ka Nõmme mäel, et vaadata ilutulestikku ning hiljem põgenesime tagasi sooja kontorisse teed jooma. - -![Toidulaud enne](https://i.imgur.com/IB5ZZ8F.png "Toidulaud enne") ![Toidulaud pärast](https://i.imgur.com/xcwKLlW.png "Toidulaud pärast") - -23. Veebruari õhtul pidasid Lapikud oma sünnipäeva, seekord saime 17 aastaseks. Pidu möödus lõbusalt, saime kinke nii BESTi, T-Teatri, eelmise juhatuse, Robotiklubi kui ka DigiTechi poolt. Ametlik osa lõppes musikaalse etteastega mõndade andekate liikmete poolt ning Live muusika saatel rahvatantsuga. Järgmisel hommikul läksime nagu igal aastal Toompeale Tipikate marsile. - -![Tuleshow](https://i.imgur.com/xOUHo6w.jpg "Tuleshow") ![Heade mõtete purk](https://i.imgur.com/BioJajO.jpg "Heade mõtete purk") - -Talvepäevadeks sõitsime veebruari alguses Valtu spordimajja. Saime terve päeva jooksul olla hästi sportlikud: võrkpalli ja saalihokit mängida, ujuda ja jõusaalis käia. - -![Talvepäevad](https://i.imgur.com/cqUtXZD.jpg "Talvepäevad") - -Peale suurte, tervet organisatsiooni puudutavate ürituste oleme korraldanud ka väiksemaid motivatsiooniüritusi. Sellel semestril oleme jälle filmiõhtute lainel - vaadatud on erineva temaatikaga kultuurseid filme, näiteks Armastus Kolme Apelsini vastu ja New Kidsi filmid. Varsti on tulemas ka muusikaliõhtu. -Turunduse tiim on jälle edukalt chillimas käinud: korra bowlingus ja korra Mack BBQs söömas, lisaks veel All You Can Eat-buffees koos paari toreda BESTi liikmega suhete soojendamiseks. - -Pikka aega planeeritud Lapikuid tutvustava video võtted toimusid ühel hiljutisel nädalavahetusel. Läbi higi, pisarate ja päris mitmete katsete valminud videot saab vaadata [siit](https://www.youtube.com/watch?v=mUlFEO-wbPc) - -Toimus ka hulgaliselt erinevaid ägedaid koolitusi. Lapikute staarfotograaf Tõnis Filippov on kõiki huvilisi harinud fotokoolituste seeriaga. Oleme õppinud inimeste pildistamise põhimõtteid, õiget valgustust, piltide töötlemist ja ise poseerimist. Kõik said kindlasti palju targemaks! - -Peale päriselu pildistamise õppisime ka Laura Leoni käe läbi UI koolitusel ise piltide tekitamist Illustratoris, kus tegime ürituste plakateid. Koolituse teises osas (UX) saime tekitada kasutajakogemuse põhimõtete järgi ühe landing page’i prototüübi. - -![Turunduse bowling](https://i.imgur.com/o5envGN.png "Turunduse bowling") - -Samuti käis meil külas Aive Uus, kes rääkis IT-inimeste jaoks väga huvitaval ja vajalikul teemal - kuidas inimesi mõista. Saime väärtuslikke teadmisi sellest, kuidas erinevatest inimestest aru saada ja kuidas neid tõeliselt kuulata. - -![Koolitus](https://i.imgur.com/ZsWIIcS.jpg "Koolitus kuidas erinevaid inimesi mõista ning tõeliselt kuulata") - -Lapikute talv on olnud tõeliselt tegus ja täname nii tublisid pixleid, aktiivseid liikmeid kui ka suurepäraseid koostööpartnereid, kes kõik on aidanud Lapikutel luua tudengielule lisandväärtust. +--- +layout: post +title: "2019 Talve kokkuvõte!" +date: 2019-04-16 09:01:31 +0200 +categories: blog +--- + +Lapikute viimased paar kuud on taaskord möödunud tegusalt, ning jälle oleks hea aeg toimunud üritusi ja teisi sündmusi meenutada. + +Detsembri alguses toimus koostöös Tallinna Ülikooli tudengkonnaga kauaoodatud (ja korraldatud) suurüritus LAN ruudus, kuhu tuli kohale tervelt 50 inimest. LANil toimus mitu turniiri, sealhulgas Age of Empires, Dota 2, Mortal Kombat, FIFA2019 ja beerpongi turniirid. Nädalavahetuse peamine tõmbepunkt oli siiski CS:GO turniir, mis kestis varahommikuni. Peaauhinna sai tiim Akatsuki. + +![LAN ruudus](https://i.imgur.com/hebNkCs.jpg "LAN ruudus") + +Detsembris toimus Lapikute kontoris ka jõulude ja uusaasta tähistamine. Traditsiooniliselt pidulik jõulupidu veedeti sellel aastal incognito, sest peo teemaks oli maskiball. Jõulupeol said ka tublimad sügisesed pixlid kätte oma liikmestaatuse. + +![Jõulud](https://i.imgur.com/laZWkMZ.jpg "Jõulud") + +Uusaasta sai vastu võetud suure võileivalaua buffeega. Käisime ka Nõmme mäel, et vaadata ilutulestikku ning hiljem põgenesime tagasi sooja kontorisse teed jooma. + +![Toidulaud enne](https://i.imgur.com/IB5ZZ8F.png "Toidulaud enne") ![Toidulaud pärast](https://i.imgur.com/xcwKLlW.png "Toidulaud pärast") + +23. Veebruari õhtul pidasid Lapikud oma sünnipäeva, seekord saime 17 aastaseks. Pidu möödus lõbusalt, saime kinke nii BESTi, T-Teatri, eelmise juhatuse, Robotiklubi kui ka DigiTechi poolt. Ametlik osa lõppes musikaalse etteastega mõndade andekate liikmete poolt ning Live muusika saatel rahvatantsuga. Järgmisel hommikul läksime nagu igal aastal Toompeale Tipikate marsile. + +![Tuleshow](https://i.imgur.com/xOUHo6w.jpg "Tuleshow") ![Heade mõtete purk](https://i.imgur.com/BioJajO.jpg "Heade mõtete purk") + +Talvepäevadeks sõitsime veebruari alguses Valtu spordimajja. Saime terve päeva jooksul olla hästi sportlikud: võrkpalli ja saalihokit mängida, ujuda ja jõusaalis käia. + +![Talvepäevad](https://i.imgur.com/cqUtXZD.jpg "Talvepäevad") + +Peale suurte, tervet organisatsiooni puudutavate ürituste oleme korraldanud ka väiksemaid motivatsiooniüritusi. Sellel semestril oleme jälle filmiõhtute lainel - vaadatud on erineva temaatikaga kultuurseid filme, näiteks Armastus Kolme Apelsini vastu ja New Kidsi filmid. Varsti on tulemas ka muusikaliõhtu. +Turunduse tiim on jälle edukalt chillimas käinud: korra bowlingus ja korra Mack BBQs söömas, lisaks veel All You Can Eat-buffees koos paari toreda BESTi liikmega suhete soojendamiseks. + +Pikka aega planeeritud Lapikuid tutvustava video võtted toimusid ühel hiljutisel nädalavahetusel. Läbi higi, pisarate ja päris mitmete katsete valminud videot saab vaadata [siit](https://www.youtube.com/watch?v=mUlFEO-wbPc) + +Toimus ka hulgaliselt erinevaid ägedaid koolitusi. Lapikute staarfotograaf Tõnis Filippov on kõiki huvilisi harinud fotokoolituste seeriaga. Oleme õppinud inimeste pildistamise põhimõtteid, õiget valgustust, piltide töötlemist ja ise poseerimist. Kõik said kindlasti palju targemaks! + +Peale päriselu pildistamise õppisime ka Laura Leoni käe läbi UI koolitusel ise piltide tekitamist Illustratoris, kus tegime ürituste plakateid. Koolituse teises osas (UX) saime tekitada kasutajakogemuse põhimõtete järgi ühe landing page’i prototüübi. + +![Turunduse bowling](https://i.imgur.com/o5envGN.png "Turunduse bowling") + +Samuti käis meil külas Aive Uus, kes rääkis IT-inimeste jaoks väga huvitaval ja vajalikul teemal - kuidas inimesi mõista. Saime väärtuslikke teadmisi sellest, kuidas erinevatest inimestest aru saada ja kuidas neid tõeliselt kuulata. + +![Koolitus](https://i.imgur.com/ZsWIIcS.jpg "Koolitus kuidas erinevaid inimesi mõista ning tõeliselt kuulata") + +Lapikute talv on olnud tõeliselt tegus ja täname nii tublisid pixleid, aktiivseid liikmeid kui ka suurepäraseid koostööpartnereid, kes kõik on aidanud Lapikutel luua tudengielule lisandväärtust. diff --git a/_posts/2019-09-25-suve-kokkuvote.md b/public/_posts/2019-09-25-suve-kokkuvote.md similarity index 99% rename from _posts/2019-09-25-suve-kokkuvote.md rename to public/_posts/2019-09-25-suve-kokkuvote.md index f89df69..b239568 100644 --- a/_posts/2019-09-25-suve-kokkuvote.md +++ b/public/_posts/2019-09-25-suve-kokkuvote.md @@ -1,44 +1,44 @@ ---- -layout: post -title: "2019 Suve kokkuvõte!" -date: 2019-09-25 16:30:31 +0200 -categories: blog ---- - -Septembrikuu on mööda tuhisenud, kool käib juba täies hoos ja samamoodi ka Lapikute töö. Selles tegusas õhkkonnas mõtlesime, et võiks heita pilgu tagasi meie kevadistele ja suvistele tegemistele, et ei ununeks, kui toredalt see aeg möödus. - -Kevade suursündmus LAPhack toimus seekord juba kolmandat korda! Selle aasta teema oli tervis ja pitchiti mitu huvitavat ideed - õhureostuse tabloodest kuni hambaarstide broneerimisäpini välja. Peavõidu sai tiim Recovery Companion, kelle idee oli äpp, mis teeb rasketest haigustest taastujatel teekonna kergemaks. Lisaks jaotati välja mitmeid eriauhindu meie sponsorite (Tehnopol, Concise, Ultrahack) poolt. Aitäh kõigile sponsoritele, et nad ürituse võimalikuks tegid! Ürituse korraldamine oli meie jaoks väga vahva ning organiseerime LAPhack’i tuleval kevadel uuesti! - -![LAPhack](https://i.imgur.com/6S8px2T.jpg "LAPhack") -![LAPhacki tublid osalejad](https://i.imgur.com/yAtm5AW.jpg "LAPhacki tublid osalejad") -![LAPhacki mentorid](https://i.imgur.com/sZ1kFi2.jpg "LAPhacki mentorid") - -Mais toimus üldkoosolek, kus andsime kõigile liikmetele ülevaate möödunud aastast, valisime omale uue juhatuse ja võtsime vastu mõned uued liikmed. Õhtu lõppes peoga, kus vana juhatus kostitas traditsiooniliselt uue juhatuse liikmeid mõningase kangema joogiga. - -![Üldkoosolek](https://i.imgur.com/te9uLel.jpg "Üldkoosolek") -![Lapikute juhatus 2019](https://i.imgur.com/FHVbrsY.jpg "Lapikute juhatus 2019") - -Tegusasse kevadesse mahtus ka ASI karika-nimeline üritus. Tegu on programmeerimisvõistlusega, mis on suunatud kooliõpilastele. Taaselustasime selle ürituse (mis on mitmeid aastaid unustuses olnud) koos Arvutisüsteemide Instituudiga. - -![ASI karikas](https://i.imgur.com/wsHyJnK.jpg "ASI karikas") -![Programmeeritav riistvara](https://i.imgur.com/T8Z0jOj.jpg "Programmeeritav riistvara") - -Juulis veetsime koos toreda nädalavahetuse Pätsuloigu puhketalus, mis oli uue juhatuse jaoks esimene ülesanne ja üritus, mida koos korraldada. Saime grillida, chillida, saunas käia ja ka Klooga järves ujuda. Pidasime maha ühe suurema koosoleku, kus arutasime koos uue semestri algust ja kontori remonti. - -![Suvepäevad](https://i.imgur.com/lJV8E54.jpg "Suvepäevad") - -Sellel suvel jõudis lõpule ka fotokoolituste seeria neljanda osaga. Terve kooliaasta vältel olime õppinud pildistamise teooriat, valgustamist, poseerimist ja kõike muud vajalikku, et teha häid pilte. Neljandaks osaks korraldasime väljasõidu metsa, kus kõige tõsisemad huvilised said harjutada nii pildistamist kui ka poseerimist. Aitäh Tõnis Filippovile koolituste läbiviimise eest! Sellel semestril algab ka uus koolituste seeria, ära seda maha maga! - -![Fotokoolitus](https://i.imgur.com/bc4kWyG.jpg "Fotokoolitus") -![Fotokoolitus](https://i.imgur.com/0Qduzd7.jpg "Fotokoolitus") - -Uue juhatuse üks eesmärkidest uueks aastaks oli teha meie kontor mõnusamaks paigaks, kus olla. Haarasimegi härjal sarvist ja hakkasime suvel kontorit remontima. Esiteks tegime põhjaliku koristuse, mille käigus viskasime välja suure osa aastate jooksul kogunenud ebavajalikust kraamist, et kontorisse olemise-ruumi juurde saada. Peale seda lükkasime kogu mööbli keset tuba ja hakkasime seinu värvima! Ühe seina tegime täiesti oranžiks, et meie ametlikke värve peegeldada, joonistatud sai ka kaks logo. Oleme rahul tehtud tööga, sest kontor näeb palju ilusam ja modernsem välja! - -![Remontimine](https://i.imgur.com/pfhi5Z1.jpg "Remontimine") -![Lapikute logo](https://i.imgur.com/lRChhPp.jpg "Lapikute logo") - -Nähes esimest korda toimuva Tudengi Bowlinguliiga kuulutust, otsustasid lapikutest asjaarmastajad tiimi kokku ajada. Eesmärgiks oli lihtsalt lõbutseda ja nautida mängu. Turniiri moodustasid neli vooru, kus mängiti neljastes gruppides üksteise vastu. Juba esimeses voorus viskas Tõnis Filippov oma isikliku rekordi, 257! See tõstis tervel tiimil motivatsiooni ka järgmistes voorudes edasi pingutada. Turniiri viimane voor oli närvekõditav. Võitja ei olnud teada kuni viimase mängu viimaste viseteni. Lapikud pidid kõrvalt vaatama vastaste mängu, mis otsustas kõik. Õnneks esikoha konkurendid kaotasid ja lapikud said kirja turniirivõidu koos rohkete auhindadega. See sügis toimub uus Tudengi Bowlinguliiga, näeme seal! - -![Bowling](https://i.imgur.com/Zk1IZ2Q.jpg "Bowling") - -Sellega lõppes ka meie suvi. Loe juba järgmisest blogist, mida sügisel teinud oleme! +--- +layout: post +title: "2019 Suve kokkuvõte!" +date: 2019-09-25 16:30:31 +0200 +categories: blog +--- + +Septembrikuu on mööda tuhisenud, kool käib juba täies hoos ja samamoodi ka Lapikute töö. Selles tegusas õhkkonnas mõtlesime, et võiks heita pilgu tagasi meie kevadistele ja suvistele tegemistele, et ei ununeks, kui toredalt see aeg möödus. + +Kevade suursündmus LAPhack toimus seekord juba kolmandat korda! Selle aasta teema oli tervis ja pitchiti mitu huvitavat ideed - õhureostuse tabloodest kuni hambaarstide broneerimisäpini välja. Peavõidu sai tiim Recovery Companion, kelle idee oli äpp, mis teeb rasketest haigustest taastujatel teekonna kergemaks. Lisaks jaotati välja mitmeid eriauhindu meie sponsorite (Tehnopol, Concise, Ultrahack) poolt. Aitäh kõigile sponsoritele, et nad ürituse võimalikuks tegid! Ürituse korraldamine oli meie jaoks väga vahva ning organiseerime LAPhack’i tuleval kevadel uuesti! + +![LAPhack](https://i.imgur.com/6S8px2T.jpg "LAPhack") +![LAPhacki tublid osalejad](https://i.imgur.com/yAtm5AW.jpg "LAPhacki tublid osalejad") +![LAPhacki mentorid](https://i.imgur.com/sZ1kFi2.jpg "LAPhacki mentorid") + +Mais toimus üldkoosolek, kus andsime kõigile liikmetele ülevaate möödunud aastast, valisime omale uue juhatuse ja võtsime vastu mõned uued liikmed. Õhtu lõppes peoga, kus vana juhatus kostitas traditsiooniliselt uue juhatuse liikmeid mõningase kangema joogiga. + +![Üldkoosolek](https://i.imgur.com/te9uLel.jpg "Üldkoosolek") +![Lapikute juhatus 2019](https://i.imgur.com/FHVbrsY.jpg "Lapikute juhatus 2019") + +Tegusasse kevadesse mahtus ka ASI karika-nimeline üritus. Tegu on programmeerimisvõistlusega, mis on suunatud kooliõpilastele. Taaselustasime selle ürituse (mis on mitmeid aastaid unustuses olnud) koos Arvutisüsteemide Instituudiga. + +![ASI karikas](https://i.imgur.com/wsHyJnK.jpg "ASI karikas") +![Programmeeritav riistvara](https://i.imgur.com/T8Z0jOj.jpg "Programmeeritav riistvara") + +Juulis veetsime koos toreda nädalavahetuse Pätsuloigu puhketalus, mis oli uue juhatuse jaoks esimene ülesanne ja üritus, mida koos korraldada. Saime grillida, chillida, saunas käia ja ka Klooga järves ujuda. Pidasime maha ühe suurema koosoleku, kus arutasime koos uue semestri algust ja kontori remonti. + +![Suvepäevad](https://i.imgur.com/lJV8E54.jpg "Suvepäevad") + +Sellel suvel jõudis lõpule ka fotokoolituste seeria neljanda osaga. Terve kooliaasta vältel olime õppinud pildistamise teooriat, valgustamist, poseerimist ja kõike muud vajalikku, et teha häid pilte. Neljandaks osaks korraldasime väljasõidu metsa, kus kõige tõsisemad huvilised said harjutada nii pildistamist kui ka poseerimist. Aitäh Tõnis Filippovile koolituste läbiviimise eest! Sellel semestril algab ka uus koolituste seeria, ära seda maha maga! + +![Fotokoolitus](https://i.imgur.com/bc4kWyG.jpg "Fotokoolitus") +![Fotokoolitus](https://i.imgur.com/0Qduzd7.jpg "Fotokoolitus") + +Uue juhatuse üks eesmärkidest uueks aastaks oli teha meie kontor mõnusamaks paigaks, kus olla. Haarasimegi härjal sarvist ja hakkasime suvel kontorit remontima. Esiteks tegime põhjaliku koristuse, mille käigus viskasime välja suure osa aastate jooksul kogunenud ebavajalikust kraamist, et kontorisse olemise-ruumi juurde saada. Peale seda lükkasime kogu mööbli keset tuba ja hakkasime seinu värvima! Ühe seina tegime täiesti oranžiks, et meie ametlikke värve peegeldada, joonistatud sai ka kaks logo. Oleme rahul tehtud tööga, sest kontor näeb palju ilusam ja modernsem välja! + +![Remontimine](https://i.imgur.com/pfhi5Z1.jpg "Remontimine") +![Lapikute logo](https://i.imgur.com/lRChhPp.jpg "Lapikute logo") + +Nähes esimest korda toimuva Tudengi Bowlinguliiga kuulutust, otsustasid lapikutest asjaarmastajad tiimi kokku ajada. Eesmärgiks oli lihtsalt lõbutseda ja nautida mängu. Turniiri moodustasid neli vooru, kus mängiti neljastes gruppides üksteise vastu. Juba esimeses voorus viskas Tõnis Filippov oma isikliku rekordi, 257! See tõstis tervel tiimil motivatsiooni ka järgmistes voorudes edasi pingutada. Turniiri viimane voor oli närvekõditav. Võitja ei olnud teada kuni viimase mängu viimaste viseteni. Lapikud pidid kõrvalt vaatama vastaste mängu, mis otsustas kõik. Õnneks esikoha konkurendid kaotasid ja lapikud said kirja turniirivõidu koos rohkete auhindadega. See sügis toimub uus Tudengi Bowlinguliiga, näeme seal! + +![Bowling](https://i.imgur.com/Zk1IZ2Q.jpg "Bowling") + +Sellega lõppes ka meie suvi. Loe juba järgmisest blogist, mida sügisel teinud oleme! diff --git a/_posts/2020-01-27-sugise-kokkuvote.md b/public/_posts/2020-01-27-sugise-kokkuvote.md similarity index 99% rename from _posts/2020-01-27-sugise-kokkuvote.md rename to public/_posts/2020-01-27-sugise-kokkuvote.md index bc89f2d..e134cdd 100644 --- a/_posts/2020-01-27-sugise-kokkuvote.md +++ b/public/_posts/2020-01-27-sugise-kokkuvote.md @@ -1,44 +1,44 @@ ---- -layout: post -title: "2019 Sügise kokkuvõte!" -date: 2020-01-27 09:01:31 +0200 -categories: blog ---- - -Sügissemester ongi läbi saamas ja Lapikud on jõudnud selle aja sees palju ära teha! Semestri avalöögist kuni aastavahetuseni välja oleme korraldanud koolitusi, suuremaid ja väiksemaid üritusi, ka niisama kokkusaamisi… Loe edasi, et rohkem teada saada! - -Avalöök möödus kõigi, nii rebaste kui ka Lapikute jaoks kiirelt ja tegusalt. Meie kontorist käis läbi mitusada inimest, kes määrasid arvutijuppidele nimetusi, kirjutasid kaugjuhtimisega Pythonit, vastasid IT teemalistele küsimustele ja said ka natuke Lapikutest teada. Nagu juba traditsiooniks on kujunenud, siis pakkusime läbikäijatele kosutuseks vahvlit ja õuna. - -Semestri esimese paari nädala jooksul korraldasime kaks infoõhtut ja igale valdkonnale eraldi valdkonnaõhtu. Infoõhtutel jagasime Lapikute kohta üldist informatsiooni ja rääkisime siin avalduvatest võimalustest, lisaks oli võimalus saada ka kehakinnitust ja värskendusi. Täiendavaks tutvustamiseks said rebased lahendada iga valdkonna välja mõeldud ülesandeid. Valdkonnaõhtutel tutvusime lähemalt rebastega ning ka nemad ülejäänud tiimidega. - -![Lapikute infoõhtu](https://i.imgur.com/DAO9ltx.png "Lapikute infoõhtu") - -Nagu ikka IT-organisatsioonile kohane, oleme korraldanud ka LANe. Suve lõpus toimus traditsiooniline LAPlan, kus mängisime Minecrafti ja Wreckfesti. Lisaks tegime jooksvalt veel eraldi Factorio ja CIV 5-e LANe. - -Oleme juba alustanud ettevalmistustega kahe kevadel toimuva suurürituse korraldamiseks. Esimene neist on LAN ruudus, mida korraldame teist korda koos Tallinna Ülikooli DigiTechiga. Eelmisel aastal käis mängimas üle 200 inimese, kindlasti tuleb seekord veel rohkem! Turniirid toimuvad CS:GO-s, FIFAs ja Mortal Kombatis, aga võimalik on siseneda ka VR-maailmasse ja mängida lauamänge. -Valmistume usinalt ka aprillis toimuvaks LAPhackiks. Pikkade läbirääkimiste käigus otsustasime selle aasta teema - kultuur. Ootame huviga, milliseid huvitavaid ideid sellel aastal pitchitakse. - -![LAN ruudus korraldustiim](https://i.imgur.com/RHY6nOA.png "LAN ruudus korraldustiim") - -Aeg-ajalt on hea kuulda, et kõik inimesed teevad elus vigu. Selleks said ühel sügisõhtul kokku mitmed endised ja praegused lapikud ja rääkisid oma eksimustest tööl või koolis. Teemaks oli seekord IT-alased eksimused. Paljud lood olid humoorikalt edasi antud ja kindlasti said kõik osavõtjad kaasa teadmisi sellest, kuidas vältida probleemide tekkimist ja mida teha nende lahendamiseks. - -Turunduse valdkond ei ole samuti semestri jooksul käed rüpes istunud. Esimese koolituse, turunduskoolituse, korraldasime koostöös TalTech turundusklubiga, mille eestvedajad rääkisid meile sotsiaalmeediast ja Instagramist. Fotokoolitusel rääkis meie oma liige Tõnis pildistamise põhitõdedest ning katsetasime oma telefonide ja fotokaamerate peal ise valgustust ja kompositsiooni. Õhtu lõppes üksteise piltide arvustamisega. Disaini koolitust tuli taas meile andma Laura Leon. Õppisime ürituste postrite kujundamist, mille käigus saime teadmisi fontidest, värvidest ja kõigest muust, mis disaini juurde kuulub. Õppisime põhitõdesid Figma rakenduse põhjal. -Turunduse tiim töötab lisaks veel Lapikute kalendri kallal. Oleme ohverdanud mitu pühapäeva, et kaamera ette tüüpilisi Lapikuid manada, ning oleme jõudnud endaga lõpusirgele! - -![Kalendri pildistamine](https://i.imgur.com/N3fgCGU.png "Kalendri pildistamine") - - -Meelelahutuseks igasuguste koolituste ja koosolekute vahele oleme ka sisustanud oma sügisõhtud erisuguste üritustega. Karaokeõhtuks muretsesime mikrid, stendid ja muud vajalikud asjad. Hääl sai ära lauldud ja nostalgia äratatud! Ürituste tiimi juht Peter käis välja mõtte, et teha üks niisamane koosistumine, ja tegimegi. Kohale tuli ka inimesi Filmiklubist, kuulda sai live-miksi DJ Siinuse poolt ja pidu ise kestis varaste hommikutundideni. - -Mõtlesime, et oleks tore tutvuda ka teiste ülikooli organisatsioonide ja nende liikmetega. Selleks sai peetud saunaõhtu koos Robotiklubiga. Kuna Lapikute kontoriga samas majas asub mõnus hubane saun, siis oli asukoha leidmine lihtne. Kohale tuli 14 inimest ja saunale puhkust ei antud. Saun oli hea ja seltskond veel parem. Rääkisime ülikoolist, robotitest, ajaloost, sõjast, maailmast ja tervisest. Mängisime ka mänge ja sõime palju snäkke. - -Ühel reedesel päeval oktoobrikuus saime kokku, et pidada üks suur Halloweeni pidu. Selle aasta teema oli arvutimängud, seega oli kontoris näha nii Tomb Raidereid, Pikachusid kui ka Endermane. Hirmsasti kaunistatud kontoris mängisime otsimismänge ja Kahooti. Võidu kostüümiks oli seekord hoolega valmistatud Tetrise block, mis on kontoris siiamaani aukohal. - -![Lapikute Halloween](https://i.imgur.com/ks1BUTY.png "Lapikute Halloween") - - -Eduka aasta lõpetasime jõulupeo ja aastavahetuse tähistamisega. Jõulupidu oli, nagu ikka, väga pidulik. Juhatus võttis kokku sellel aastal toimunu, võtsime vastu ka uued liikmed. Seekord oli neid lausa 22! Aastavahetuse ilutulestikku vaatasime ühiselt Nõmme silla pealt. - -![Lapikute jõulupidu](https://i.imgur.com/JFLOR3P.jpg "Lapikute jõulupidu") - -Selline oli Lapikute 2019. Aasta sügissemester. Loodame, et kevadel saame sama tegusad olla! +--- +layout: post +title: "2019 Sügise kokkuvõte!" +date: 2020-01-27 09:01:31 +0200 +categories: blog +--- + +Sügissemester ongi läbi saamas ja Lapikud on jõudnud selle aja sees palju ära teha! Semestri avalöögist kuni aastavahetuseni välja oleme korraldanud koolitusi, suuremaid ja väiksemaid üritusi, ka niisama kokkusaamisi… Loe edasi, et rohkem teada saada! + +Avalöök möödus kõigi, nii rebaste kui ka Lapikute jaoks kiirelt ja tegusalt. Meie kontorist käis läbi mitusada inimest, kes määrasid arvutijuppidele nimetusi, kirjutasid kaugjuhtimisega Pythonit, vastasid IT teemalistele küsimustele ja said ka natuke Lapikutest teada. Nagu juba traditsiooniks on kujunenud, siis pakkusime läbikäijatele kosutuseks vahvlit ja õuna. + +Semestri esimese paari nädala jooksul korraldasime kaks infoõhtut ja igale valdkonnale eraldi valdkonnaõhtu. Infoõhtutel jagasime Lapikute kohta üldist informatsiooni ja rääkisime siin avalduvatest võimalustest, lisaks oli võimalus saada ka kehakinnitust ja värskendusi. Täiendavaks tutvustamiseks said rebased lahendada iga valdkonna välja mõeldud ülesandeid. Valdkonnaõhtutel tutvusime lähemalt rebastega ning ka nemad ülejäänud tiimidega. + +![Lapikute infoõhtu](https://i.imgur.com/DAO9ltx.png "Lapikute infoõhtu") + +Nagu ikka IT-organisatsioonile kohane, oleme korraldanud ka LANe. Suve lõpus toimus traditsiooniline LAPlan, kus mängisime Minecrafti ja Wreckfesti. Lisaks tegime jooksvalt veel eraldi Factorio ja CIV 5-e LANe. + +Oleme juba alustanud ettevalmistustega kahe kevadel toimuva suurürituse korraldamiseks. Esimene neist on LAN ruudus, mida korraldame teist korda koos Tallinna Ülikooli DigiTechiga. Eelmisel aastal käis mängimas üle 200 inimese, kindlasti tuleb seekord veel rohkem! Turniirid toimuvad CS:GO-s, FIFAs ja Mortal Kombatis, aga võimalik on siseneda ka VR-maailmasse ja mängida lauamänge. +Valmistume usinalt ka aprillis toimuvaks LAPhackiks. Pikkade läbirääkimiste käigus otsustasime selle aasta teema - kultuur. Ootame huviga, milliseid huvitavaid ideid sellel aastal pitchitakse. + +![LAN ruudus korraldustiim](https://i.imgur.com/RHY6nOA.png "LAN ruudus korraldustiim") + +Aeg-ajalt on hea kuulda, et kõik inimesed teevad elus vigu. Selleks said ühel sügisõhtul kokku mitmed endised ja praegused lapikud ja rääkisid oma eksimustest tööl või koolis. Teemaks oli seekord IT-alased eksimused. Paljud lood olid humoorikalt edasi antud ja kindlasti said kõik osavõtjad kaasa teadmisi sellest, kuidas vältida probleemide tekkimist ja mida teha nende lahendamiseks. + +Turunduse valdkond ei ole samuti semestri jooksul käed rüpes istunud. Esimese koolituse, turunduskoolituse, korraldasime koostöös TalTech turundusklubiga, mille eestvedajad rääkisid meile sotsiaalmeediast ja Instagramist. Fotokoolitusel rääkis meie oma liige Tõnis pildistamise põhitõdedest ning katsetasime oma telefonide ja fotokaamerate peal ise valgustust ja kompositsiooni. Õhtu lõppes üksteise piltide arvustamisega. Disaini koolitust tuli taas meile andma Laura Leon. Õppisime ürituste postrite kujundamist, mille käigus saime teadmisi fontidest, värvidest ja kõigest muust, mis disaini juurde kuulub. Õppisime põhitõdesid Figma rakenduse põhjal. +Turunduse tiim töötab lisaks veel Lapikute kalendri kallal. Oleme ohverdanud mitu pühapäeva, et kaamera ette tüüpilisi Lapikuid manada, ning oleme jõudnud endaga lõpusirgele! + +![Kalendri pildistamine](https://i.imgur.com/N3fgCGU.png "Kalendri pildistamine") + + +Meelelahutuseks igasuguste koolituste ja koosolekute vahele oleme ka sisustanud oma sügisõhtud erisuguste üritustega. Karaokeõhtuks muretsesime mikrid, stendid ja muud vajalikud asjad. Hääl sai ära lauldud ja nostalgia äratatud! Ürituste tiimi juht Peter käis välja mõtte, et teha üks niisamane koosistumine, ja tegimegi. Kohale tuli ka inimesi Filmiklubist, kuulda sai live-miksi DJ Siinuse poolt ja pidu ise kestis varaste hommikutundideni. + +Mõtlesime, et oleks tore tutvuda ka teiste ülikooli organisatsioonide ja nende liikmetega. Selleks sai peetud saunaõhtu koos Robotiklubiga. Kuna Lapikute kontoriga samas majas asub mõnus hubane saun, siis oli asukoha leidmine lihtne. Kohale tuli 14 inimest ja saunale puhkust ei antud. Saun oli hea ja seltskond veel parem. Rääkisime ülikoolist, robotitest, ajaloost, sõjast, maailmast ja tervisest. Mängisime ka mänge ja sõime palju snäkke. + +Ühel reedesel päeval oktoobrikuus saime kokku, et pidada üks suur Halloweeni pidu. Selle aasta teema oli arvutimängud, seega oli kontoris näha nii Tomb Raidereid, Pikachusid kui ka Endermane. Hirmsasti kaunistatud kontoris mängisime otsimismänge ja Kahooti. Võidu kostüümiks oli seekord hoolega valmistatud Tetrise block, mis on kontoris siiamaani aukohal. + +![Lapikute Halloween](https://i.imgur.com/ks1BUTY.png "Lapikute Halloween") + + +Eduka aasta lõpetasime jõulupeo ja aastavahetuse tähistamisega. Jõulupidu oli, nagu ikka, väga pidulik. Juhatus võttis kokku sellel aastal toimunu, võtsime vastu ka uued liikmed. Seekord oli neid lausa 22! Aastavahetuse ilutulestikku vaatasime ühiselt Nõmme silla pealt. + +![Lapikute jõulupidu](https://i.imgur.com/JFLOR3P.jpg "Lapikute jõulupidu") + +Selline oli Lapikute 2019. Aasta sügissemester. Loodame, et kevadel saame sama tegusad olla! diff --git a/_posts/2022-03-28-asi-karikas.md b/public/_posts/2022-03-28-asi-karikas.md similarity index 99% rename from _posts/2022-03-28-asi-karikas.md rename to public/_posts/2022-03-28-asi-karikas.md index df42124..480326d 100644 --- a/_posts/2022-03-28-asi-karikas.md +++ b/public/_posts/2022-03-28-asi-karikas.md @@ -1,23 +1,23 @@ ---- -layout: post -title: "ASI Karikas 2022" -date: 2022-03-30 16:45:31 +0200 -categories: blog ---- - -19\. märtsil toimus Mektorys ASI Karika [(asikarikas.ee)](https://asikarikas.ee/) finaalvoor. ASI karikas on kooliõpilastele suunatud programmeerimisvõistlus, mille viisid ühiselt läbi TalTechi tudengiorganisatsioon Lapikud ning Arvutisüsteemide Instituut (ASI). - -Eelvoor toimus novembrist veebruarini virtuaalselt - võistlejad said eelvooru ülesandeid mugavalt kodus lahendada ning need seejärel korraldajatele saata. -Eelvoorust kutsuti finaali Tallinna Tehnikagümnaasiumi ning Tartu Jaan Poska gümnaasiumi võistkonnad. Nii nagu on traditsiooniks kujunenud, osales ka sel aastal võistluse finaalis TalTechi I kursuse tudengitest koosnev meeskond. Tudengimeeskonda küll kohtade jagamisel arvesse ei võeta, kuid võistlejad saavad nendega mõõtu võtta ning nende abil tudengieluga lähemalt tutvuda. - -![ASI Karikas 2022 osalejad ja korraldajad](https://i.imgur.com/3iNVQhn.jpg "ASI Karikas 2022 osalejad ja korraldajad") - -Tallinna Tehnikagümnaasium on ASI Karikal edukalt osalenud juba mitu aastat, sel aastal olid võistkonna liikmeteks Rainis Randmaa, Karl-Mihkel Ott, Gregor Suurvarik ning Robin Teaste. Tartu Jaan Poska osales võistluse finaalis esimest korda koosseisuga Sten Marcus Oja, Kaur Tenson, Kaaren Tenson ja Tristan Tõruke. - -2022\. aasta karika viis koju taas Tallinna Tehnikagümnaasium. Kuigi üldarvestuses tudengimeeskonda ei arvestata, jäid Tallinna Tehnikagümnaasium ning tudengite meeskond punktide poolest viiki. - -![ASI Karikas 2022 karikas ja diplom](https://i.imgur.com/tMQCzWI.jpg "ASI Karikas 2022 karikas ja diplom") - -Selleaastase finaalvooru toimumist toetasid mitmed sponsorid - Tallinna Tehnikaülikooli Ametiliit, Baskin-Robbins, Zone, ERPLY ning Mektory - tegu oli siiani kõige rohkem sponsoreid kogunud ASI karika finaaliga. Oleme väga tänulikud kõigile sponsoritele, kes enda panuse andsid. Võistlejate lemmikuks sponsoriks kujunes ilmselt Baskin-Robbins oma jäätistega - igal vabal hetkel käidi jäätisetopse haaramas. Eriti kasulikuks auhinnaks oli diskreetse matemaatika õpik, mille autoriks on TalTechi enda õppejõud - Harri Lensen ja Margus Kruus. Raamatu esilehte ilmestas Margus Kruusi kirjutatud pühendus. Toredat elamust pakkus ka Starshipi robot, kes võistluse korraldajatele toidu kohale tõi. - -Peale neljatunnist ajude ragistamist viis tudengite meeskond võistlejad ringkäigule mööda Mektoryt ning TalTechi Infotehnoloogia Maja, et leevendada tulemuste ootusärevust ning mõistusele pisut puhkust anda. Võistlejad jäid üritusega igati rahule ning peale paarikuulist puhkust saab korraldusmeeskond teha algust ASI Karikas 2023 võistlusega. +--- +layout: post +title: "ASI Karikas 2022" +date: 2022-03-30 16:45:31 +0200 +categories: blog +--- + +19\. märtsil toimus Mektorys ASI Karika [(asikarikas.ee)](https://asikarikas.ee/) finaalvoor. ASI karikas on kooliõpilastele suunatud programmeerimisvõistlus, mille viisid ühiselt läbi TalTechi tudengiorganisatsioon Lapikud ning Arvutisüsteemide Instituut (ASI). + +Eelvoor toimus novembrist veebruarini virtuaalselt - võistlejad said eelvooru ülesandeid mugavalt kodus lahendada ning need seejärel korraldajatele saata. +Eelvoorust kutsuti finaali Tallinna Tehnikagümnaasiumi ning Tartu Jaan Poska gümnaasiumi võistkonnad. Nii nagu on traditsiooniks kujunenud, osales ka sel aastal võistluse finaalis TalTechi I kursuse tudengitest koosnev meeskond. Tudengimeeskonda küll kohtade jagamisel arvesse ei võeta, kuid võistlejad saavad nendega mõõtu võtta ning nende abil tudengieluga lähemalt tutvuda. + +![ASI Karikas 2022 osalejad ja korraldajad](https://i.imgur.com/3iNVQhn.jpg "ASI Karikas 2022 osalejad ja korraldajad") + +Tallinna Tehnikagümnaasium on ASI Karikal edukalt osalenud juba mitu aastat, sel aastal olid võistkonna liikmeteks Rainis Randmaa, Karl-Mihkel Ott, Gregor Suurvarik ning Robin Teaste. Tartu Jaan Poska osales võistluse finaalis esimest korda koosseisuga Sten Marcus Oja, Kaur Tenson, Kaaren Tenson ja Tristan Tõruke. + +2022\. aasta karika viis koju taas Tallinna Tehnikagümnaasium. Kuigi üldarvestuses tudengimeeskonda ei arvestata, jäid Tallinna Tehnikagümnaasium ning tudengite meeskond punktide poolest viiki. + +![ASI Karikas 2022 karikas ja diplom](https://i.imgur.com/tMQCzWI.jpg "ASI Karikas 2022 karikas ja diplom") + +Selleaastase finaalvooru toimumist toetasid mitmed sponsorid - Tallinna Tehnikaülikooli Ametiliit, Baskin-Robbins, Zone, ERPLY ning Mektory - tegu oli siiani kõige rohkem sponsoreid kogunud ASI karika finaaliga. Oleme väga tänulikud kõigile sponsoritele, kes enda panuse andsid. Võistlejate lemmikuks sponsoriks kujunes ilmselt Baskin-Robbins oma jäätistega - igal vabal hetkel käidi jäätisetopse haaramas. Eriti kasulikuks auhinnaks oli diskreetse matemaatika õpik, mille autoriks on TalTechi enda õppejõud - Harri Lensen ja Margus Kruus. Raamatu esilehte ilmestas Margus Kruusi kirjutatud pühendus. Toredat elamust pakkus ka Starshipi robot, kes võistluse korraldajatele toidu kohale tõi. + +Peale neljatunnist ajude ragistamist viis tudengite meeskond võistlejad ringkäigule mööda Mektoryt ning TalTechi Infotehnoloogia Maja, et leevendada tulemuste ootusärevust ning mõistusele pisut puhkust anda. Võistlejad jäid üritusega igati rahule ning peale paarikuulist puhkust saab korraldusmeeskond teha algust ASI Karikas 2023 võistlusega. diff --git a/_posts/2023-04-10-asi-karikas.md b/public/_posts/2023-04-10-asi-karikas.md similarity index 98% rename from _posts/2023-04-10-asi-karikas.md rename to public/_posts/2023-04-10-asi-karikas.md index 3b1f71c..c498c9e 100644 --- a/_posts/2023-04-10-asi-karikas.md +++ b/public/_posts/2023-04-10-asi-karikas.md @@ -1,48 +1,48 @@ ---- -layout: post -title: "ASI Karikas 2023" -date: 2023-04-10 +0200 -categories: blog ---- - -Möödunud talve jooksul toimus tarkvaraarenduse klubi Lapikud ja Tallinna Tehnikaülikooli Arvutisüsteemide -Instituudi -koostöös korraldatud programmeerimisvõistlus ASI Karikas, mis on juba mitmendat aastat kutsunud kooliõpilasi üle -Eesti -võistu programmeerima. - -![ASI Karikas 2022 osalejad ja korraldajad](/assets/asi-karikas-2023-images/group_picture.jpeg "ASI Karikas 2022 osalejad ja korraldajad") - -Mitu aastat on Lapikute korraldatud üritustest olnud ASI Karikas neist üks kõige suuremaid. Lapikute eesmärgiks - on - olnud võistluse raames kutsuda põhi- ja keskkoolis õppivaid tarkvarahuvilisi ja innukaid programmeerijaid - koostöös - nuputama ja mõõtu võtma. Aastate jooksul on võistlusel osalenud õpilasi mitmest Eesti koolist, sealhulgas - Tallinna - Tehnikagümnaasiumist, Tallinna Reaalkoolist, Tartu Tamme Gümnaasiumist ja Tartu Jaan Poska Gümnaasiumist. - -Võistlus koosneb kahest voorust. Esimeses voorus töötavad õpilased koos kasvõi enda kodust, et etteantud - nõuetele - realiseerida teatud programm. Võistkondadest kaks parimat pääsevad edasi võistluse lõppvooru, kus ühineb - võistlustulle ka Tehnikaülikooli enda välja pandud etalontiim, mis koosneb ülikooli tudengitest. Võistluse - lõppvoorus osalenutel loetakse sooritatuks kaks olulist ainet TTÜ inseneeria õppekavas ja neile kingitakse - ülikooli - õppejõudude Margus Kruusi ja Harri Lenseni kirjutatud diskreetse matemaatika õpik. - -![Miina Härma tiim](/assets/asi-karikas-2023-images/miina_harma.jpeg "Miina Härma tiim") ![Tallinna Ühisgümnaasiumi tiim](/assets/asi-karikas-2023-images/tallinna_yhisgymnaasium.jpeg "Tallinna Ühisgümnaasiumi tiim") ![Etalontiim](/assets/asi-karikas-2023-images/etalontiim.jpeg "Etalontiim") - -Võistluse finaalvoorus osalenud tiimid. Vasakult paremale: Miina Härma Gümnaasiumi, Tallinna Ühisgümnaasiumi ja - etalonvõistkond. - -Tänavu, 18. märtsil Tallinna Tehnikaülikooli Mektory majas toimunud võistluse lõppvoorus kohtusid Tallinna - Ühisgümnaasiumi - ja Tartu Miina Härma Gümnaasiumi õpilased, kellest viimased pälvisid võistluse võitjate tiitli ja kelle tulemus - oli - märgatavalt üle nii Ühisgümnaasiumi esindajate kui ka etalontiimi liikmete omast. Pärast lõppvooru lubasid - Lapikud, et järgmisel aastal saadetakse TTÜ poolt lõppvooru võistkond, kes on eelnevalt end paremini ette - valmistanud - ja suudavad teha võistluse veel pingelisemaks ja kaasahaaravamaks. - -Võistlust ASI Karikas korraldavad MTÜ Lapikud ja Tallinna Tehnikaülikooli Arvutisüsteemide Instituut, sel aastal - olid võistluse ASI Karikas peatoetajad TTÜ Akadeemiline Ametiliit ja Mektory. Läbi aastate on võistlust +--- +layout: post +title: "ASI Karikas 2023" +date: 2023-04-10 +0200 +categories: blog +--- + +Möödunud talve jooksul toimus tarkvaraarenduse klubi Lapikud ja Tallinna Tehnikaülikooli Arvutisüsteemide +Instituudi +koostöös korraldatud programmeerimisvõistlus ASI Karikas, mis on juba mitmendat aastat kutsunud kooliõpilasi üle +Eesti +võistu programmeerima. + +![ASI Karikas 2022 osalejad ja korraldajad](/assets/asi-karikas-2023-images/group_picture.jpeg "ASI Karikas 2022 osalejad ja korraldajad") + +Mitu aastat on Lapikute korraldatud üritustest olnud ASI Karikas neist üks kõige suuremaid. Lapikute eesmärgiks + on + olnud võistluse raames kutsuda põhi- ja keskkoolis õppivaid tarkvarahuvilisi ja innukaid programmeerijaid + koostöös + nuputama ja mõõtu võtma. Aastate jooksul on võistlusel osalenud õpilasi mitmest Eesti koolist, sealhulgas + Tallinna + Tehnikagümnaasiumist, Tallinna Reaalkoolist, Tartu Tamme Gümnaasiumist ja Tartu Jaan Poska Gümnaasiumist. + +Võistlus koosneb kahest voorust. Esimeses voorus töötavad õpilased koos kasvõi enda kodust, et etteantud + nõuetele + realiseerida teatud programm. Võistkondadest kaks parimat pääsevad edasi võistluse lõppvooru, kus ühineb + võistlustulle ka Tehnikaülikooli enda välja pandud etalontiim, mis koosneb ülikooli tudengitest. Võistluse + lõppvoorus osalenutel loetakse sooritatuks kaks olulist ainet TTÜ inseneeria õppekavas ja neile kingitakse + ülikooli + õppejõudude Margus Kruusi ja Harri Lenseni kirjutatud diskreetse matemaatika õpik. + +![Miina Härma tiim](/assets/asi-karikas-2023-images/miina_harma.jpeg "Miina Härma tiim") ![Tallinna Ühisgümnaasiumi tiim](/assets/asi-karikas-2023-images/tallinna_yhisgymnaasium.jpeg "Tallinna Ühisgümnaasiumi tiim") ![Etalontiim](/assets/asi-karikas-2023-images/etalontiim.jpeg "Etalontiim") + +Võistluse finaalvoorus osalenud tiimid. Vasakult paremale: Miina Härma Gümnaasiumi, Tallinna Ühisgümnaasiumi ja + etalonvõistkond. + +Tänavu, 18. märtsil Tallinna Tehnikaülikooli Mektory majas toimunud võistluse lõppvoorus kohtusid Tallinna + Ühisgümnaasiumi + ja Tartu Miina Härma Gümnaasiumi õpilased, kellest viimased pälvisid võistluse võitjate tiitli ja kelle tulemus + oli + märgatavalt üle nii Ühisgümnaasiumi esindajate kui ka etalontiimi liikmete omast. Pärast lõppvooru lubasid + Lapikud, et järgmisel aastal saadetakse TTÜ poolt lõppvooru võistkond, kes on eelnevalt end paremini ette + valmistanud + ja suudavad teha võistluse veel pingelisemaks ja kaasahaaravamaks. + +Võistlust ASI Karikas korraldavad MTÜ Lapikud ja Tallinna Tehnikaülikooli Arvutisüsteemide Instituut, sel aastal + olid võistluse ASI Karikas peatoetajad TTÜ Akadeemiline Ametiliit ja Mektory. Läbi aastate on võistlust sponsoreerinud ka Mektory, Zone, Erply, CGI, Baskin Robbins ja teised austatud ettevõtted. \ No newline at end of file diff --git a/_posts/2999-12-26-postitus.md b/public/_posts/2999-12-26-postitus.md similarity index 96% rename from _posts/2999-12-26-postitus.md rename to public/_posts/2999-12-26-postitus.md index b5f511b..7f7b249 100644 --- a/_posts/2999-12-26-postitus.md +++ b/public/_posts/2999-12-26-postitus.md @@ -1,13 +1,13 @@ ---- -layout: post -title: "Pealkiri!" -date: 2999-12-26 11:50:31 +0200 -categories: jekyll update ---- -See on näidis postitus. Selle postituse kuupäev on tulevikus ja seetõttu seda postitust lehel ei kuvata. - -Kui postitusel puudub kuupäev või pealkiri siis need loetakse faili nimest - -Postitusti saab kirjutada Markdownis. -https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet - +--- +layout: post +title: "Pealkiri!" +date: 2999-12-26 11:50:31 +0200 +categories: jekyll update +--- +See on näidis postitus. Selle postituse kuupäev on tulevikus ja seetõttu seda postitust lehel ei kuvata. + +Kui postitusel puudub kuupäev või pealkiri siis need loetakse faili nimest + +Postitusti saab kirjutada Markdownis. +https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet + diff --git a/assets/asi-karikas-2023-images/etalontiim.jpeg b/public/assets/asi-karikas-2023-images/etalontiim.jpeg similarity index 100% rename from assets/asi-karikas-2023-images/etalontiim.jpeg rename to public/assets/asi-karikas-2023-images/etalontiim.jpeg diff --git a/assets/asi-karikas-2023-images/group_picture.jpeg b/public/assets/asi-karikas-2023-images/group_picture.jpeg similarity index 100% rename from assets/asi-karikas-2023-images/group_picture.jpeg rename to public/assets/asi-karikas-2023-images/group_picture.jpeg diff --git a/assets/asi-karikas-2023-images/tallinna_yhisgymnaasium.jpeg b/public/assets/asi-karikas-2023-images/tallinna_yhisgymnaasium.jpeg similarity index 100% rename from assets/asi-karikas-2023-images/tallinna_yhisgymnaasium.jpeg rename to public/assets/asi-karikas-2023-images/tallinna_yhisgymnaasium.jpeg diff --git a/assets/carousel-images/1.jpg b/public/assets/carousel-images/1.jpg similarity index 100% rename from assets/carousel-images/1.jpg rename to public/assets/carousel-images/1.jpg diff --git a/assets/carousel-images/2.jpg b/public/assets/carousel-images/2.jpg similarity index 100% rename from assets/carousel-images/2.jpg rename to public/assets/carousel-images/2.jpg diff --git a/assets/carousel-images/3.jpg b/public/assets/carousel-images/3.jpg similarity index 100% rename from assets/carousel-images/3.jpg rename to public/assets/carousel-images/3.jpg diff --git a/assets/carousel-images/4.jpg b/public/assets/carousel-images/4.jpg similarity index 100% rename from assets/carousel-images/4.jpg rename to public/assets/carousel-images/4.jpg diff --git a/assets/carousel-images/5.jpg b/public/assets/carousel-images/5.jpg similarity index 100% rename from assets/carousel-images/5.jpg rename to public/assets/carousel-images/5.jpg diff --git a/assets/favicon/android-chrome-192x192.png b/public/assets/favicon/android-chrome-192x192.png similarity index 100% rename from assets/favicon/android-chrome-192x192.png rename to public/assets/favicon/android-chrome-192x192.png diff --git a/assets/favicon/android-chrome-512x512.png b/public/assets/favicon/android-chrome-512x512.png similarity index 100% rename from assets/favicon/android-chrome-512x512.png rename to public/assets/favicon/android-chrome-512x512.png diff --git a/assets/favicon/apple-touch-icon.png b/public/assets/favicon/apple-touch-icon.png similarity index 100% rename from assets/favicon/apple-touch-icon.png rename to public/assets/favicon/apple-touch-icon.png diff --git a/assets/favicon/browserconfig.xml b/public/assets/favicon/browserconfig.xml similarity index 96% rename from assets/favicon/browserconfig.xml rename to public/assets/favicon/browserconfig.xml index dc2563d..7d0ee53 100644 --- a/assets/favicon/browserconfig.xml +++ b/public/assets/favicon/browserconfig.xml @@ -1,9 +1,9 @@ - - - - - - #da532c - - - + + + + + + #da532c + + + diff --git a/assets/favicon/favicon-16x16.png b/public/assets/favicon/favicon-16x16.png similarity index 100% rename from assets/favicon/favicon-16x16.png rename to public/assets/favicon/favicon-16x16.png diff --git a/assets/favicon/favicon-32x32.png b/public/assets/favicon/favicon-32x32.png similarity index 100% rename from assets/favicon/favicon-32x32.png rename to public/assets/favicon/favicon-32x32.png diff --git a/assets/favicon/favicon.ico b/public/assets/favicon/favicon.ico similarity index 100% rename from assets/favicon/favicon.ico rename to public/assets/favicon/favicon.ico diff --git a/assets/favicon/mstile-150x150.png b/public/assets/favicon/mstile-150x150.png similarity index 100% rename from assets/favicon/mstile-150x150.png rename to public/assets/favicon/mstile-150x150.png diff --git a/assets/favicon/safari-pinned-tab.svg b/public/assets/favicon/safari-pinned-tab.svg similarity index 100% rename from assets/favicon/safari-pinned-tab.svg rename to public/assets/favicon/safari-pinned-tab.svg diff --git a/assets/favicon/site.webmanifest b/public/assets/favicon/site.webmanifest similarity index 96% rename from assets/favicon/site.webmanifest rename to public/assets/favicon/site.webmanifest index 95a8f73..24647c8 100644 --- a/assets/favicon/site.webmanifest +++ b/public/assets/favicon/site.webmanifest @@ -1,19 +1,19 @@ -{ - "name": "", - "short_name": "", - "icons": [ - { - "src": "/assets/favicon/android-chrome-192x192.png?v=LbyW42We5z", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/assets/favicon/android-chrome-512x512.png?v=LbyW42We5z", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/assets/favicon/android-chrome-192x192.png?v=LbyW42We5z", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/assets/favicon/android-chrome-512x512.png?v=LbyW42We5z", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/public/assets/helpdesk-page-images/helpdesk-icon.svg b/public/assets/helpdesk-page-images/helpdesk-icon.svg new file mode 100644 index 0000000..428ff7f --- /dev/null +++ b/public/assets/helpdesk-page-images/helpdesk-icon.svg @@ -0,0 +1,46 @@ + + diff --git a/assets/helpdesk-on-black.png b/public/assets/helpdesk-page-images/helpdesk-on-black.png similarity index 100% rename from assets/helpdesk-on-black.png rename to public/assets/helpdesk-page-images/helpdesk-on-black.png diff --git a/public/assets/helpdesk-page-images/original/helpdesk_bg.jpg b/public/assets/helpdesk-page-images/original/helpdesk_bg.jpg new file mode 100644 index 0000000..14976ad Binary files /dev/null and b/public/assets/helpdesk-page-images/original/helpdesk_bg.jpg differ diff --git a/public/assets/home-page-images/original/about_us.png b/public/assets/home-page-images/original/about_us.png new file mode 100644 index 0000000..23692ba Binary files /dev/null and b/public/assets/home-page-images/original/about_us.png differ diff --git a/assets/asi-karikas-2023-images/miina_harma.jpeg b/public/assets/home-page-images/original/company_temp.jpeg similarity index 100% rename from assets/asi-karikas-2023-images/miina_harma.jpeg rename to public/assets/home-page-images/original/company_temp.jpeg diff --git a/public/assets/home-page-images/original/helpdesk.jpg b/public/assets/home-page-images/original/helpdesk.jpg new file mode 100644 index 0000000..d392e00 Binary files /dev/null and b/public/assets/home-page-images/original/helpdesk.jpg differ diff --git a/public/assets/home-page-images/original/hero.jpg b/public/assets/home-page-images/original/hero.jpg new file mode 100644 index 0000000..eed4181 Binary files /dev/null and b/public/assets/home-page-images/original/hero.jpg differ diff --git a/assets/student-images/image_1.jpg b/public/assets/home-page-images/original/student_temp.jpg similarity index 100% rename from assets/student-images/image_1.jpg rename to public/assets/home-page-images/original/student_temp.jpg diff --git a/public/assets/home-page-images/original/temp.png b/public/assets/home-page-images/original/temp.png new file mode 100644 index 0000000..78df594 Binary files /dev/null and b/public/assets/home-page-images/original/temp.png differ diff --git a/assets/logo.svg b/public/assets/logo.svg similarity index 91% rename from assets/logo.svg rename to public/assets/logo.svg index b76ca0a..a806627 100644 --- a/assets/logo.svg +++ b/public/assets/logo.svg @@ -1,497 +1,497 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/management-images/original/Christopher_Rammul.jpg b/public/assets/management-images/original/Christopher_Rammul.jpg new file mode 100644 index 0000000..e37567c Binary files /dev/null and b/public/assets/management-images/original/Christopher_Rammul.jpg differ diff --git a/public/assets/management-images/original/Erki_Lasberg.jpg b/public/assets/management-images/original/Erki_Lasberg.jpg new file mode 100644 index 0000000..1e64ad1 Binary files /dev/null and b/public/assets/management-images/original/Erki_Lasberg.jpg differ diff --git a/assets/management-images/Kerdo_Kaarma.jpg b/public/assets/management-images/original/Kerdo_Kaarma.jpg similarity index 100% rename from assets/management-images/Kerdo_Kaarma.jpg rename to public/assets/management-images/original/Kerdo_Kaarma.jpg diff --git a/assets/past-management-images/optimised/reio_opromei.jpg b/public/assets/management-images/original/Reio_Opromei.jpg similarity index 100% rename from assets/past-management-images/optimised/reio_opromei.jpg rename to public/assets/management-images/original/Reio_Opromei.jpg diff --git a/assets/management-images/Rene_Arumetsa.jpg b/public/assets/management-images/original/Rene_Arumetsa.jpg similarity index 100% rename from assets/management-images/Rene_Arumetsa.jpg rename to public/assets/management-images/original/Rene_Arumetsa.jpg diff --git a/assets/management-images/coming-soon.jpg b/public/assets/management-images/original/coming-soon.jpg similarity index 100% rename from assets/management-images/coming-soon.jpg rename to public/assets/management-images/original/coming-soon.jpg diff --git a/assets/mentors-images/original/agnes_triin_saga_mentor.jpg b/public/assets/mentors-images/original/agnes_triin_saga_mentor.jpg similarity index 100% rename from assets/mentors-images/original/agnes_triin_saga_mentor.jpg rename to public/assets/mentors-images/original/agnes_triin_saga_mentor.jpg diff --git a/assets/mentors-images/original/christopher_rammul_mentor.jpg b/public/assets/mentors-images/original/christopher_rammul_mentor.jpg similarity index 100% rename from assets/mentors-images/original/christopher_rammul_mentor.jpg rename to public/assets/mentors-images/original/christopher_rammul_mentor.jpg diff --git a/assets/mentors-images/original/erki_lasberg_mentor.jpg b/public/assets/mentors-images/original/erki_lasberg_mentor.jpg similarity index 100% rename from assets/mentors-images/original/erki_lasberg_mentor.jpg rename to public/assets/mentors-images/original/erki_lasberg_mentor.jpg diff --git a/assets/mentors-images/original/jürjo_eibak_mentor.jpg b/public/assets/mentors-images/original/jürjo_eibak_mentor.jpg similarity index 100% rename from assets/mentors-images/original/jürjo_eibak_mentor.jpg rename to public/assets/mentors-images/original/jürjo_eibak_mentor.jpg diff --git a/public/assets/mentors-images/original/karina_reisel_mentor.jpg b/public/assets/mentors-images/original/karina_reisel_mentor.jpg new file mode 100644 index 0000000..6b1b716 Binary files /dev/null and b/public/assets/mentors-images/original/karina_reisel_mentor.jpg differ diff --git a/assets/mentors-images/original/katri_lotamõis_mentor.jpg b/public/assets/mentors-images/original/katri_lotamõis_mentor.jpg similarity index 100% rename from assets/mentors-images/original/katri_lotamõis_mentor.jpg rename to public/assets/mentors-images/original/katri_lotamõis_mentor.jpg diff --git a/assets/mentors-images/original/kerdo_käärma_mentor.jpg b/public/assets/mentors-images/original/kerdo_käärma_mentor.jpg similarity index 100% rename from assets/mentors-images/original/kerdo_käärma_mentor.jpg rename to public/assets/mentors-images/original/kerdo_käärma_mentor.jpg diff --git a/assets/mentors-images/original/lembitu_valdmets_mentor.jpg b/public/assets/mentors-images/original/lembitu_valdmets_mentor.jpg similarity index 100% rename from assets/mentors-images/original/lembitu_valdmets_mentor.jpg rename to public/assets/mentors-images/original/lembitu_valdmets_mentor.jpg diff --git a/assets/mentors-images/original/reio_opromei_mentor.jpg b/public/assets/mentors-images/original/reio_opromei_mentor.jpg similarity index 100% rename from assets/mentors-images/original/reio_opromei_mentor.jpg rename to public/assets/mentors-images/original/reio_opromei_mentor.jpg diff --git a/assets/mentors-images/original/rene_arumetsa_mentor.jpg b/public/assets/mentors-images/original/rene_arumetsa_mentor.jpg similarity index 100% rename from assets/mentors-images/original/rene_arumetsa_mentor.jpg rename to public/assets/mentors-images/original/rene_arumetsa_mentor.jpg diff --git a/assets/ourwork-images/original/eesti_noorteühenduste_liit.png b/public/assets/ourwork-images/original/eesti_noorteühenduste_liit.png similarity index 100% rename from assets/ourwork-images/original/eesti_noorteühenduste_liit.png rename to public/assets/ourwork-images/original/eesti_noorteühenduste_liit.png diff --git a/assets/ourwork-images/original/isic.png b/public/assets/ourwork-images/original/isic.png similarity index 100% rename from assets/ourwork-images/original/isic.png rename to public/assets/ourwork-images/original/isic.png diff --git a/assets/ourwork-images/original-jpg-converted/jalgrattaveeb.jpg b/public/assets/ourwork-images/original/jalgrattaveeb.jpg similarity index 100% rename from assets/ourwork-images/original-jpg-converted/jalgrattaveeb.jpg rename to public/assets/ourwork-images/original/jalgrattaveeb.jpg diff --git a/assets/ourwork-images/original-jpg-converted/nauticalcrew.jpg b/public/assets/ourwork-images/original/nauticalcrew.jpg similarity index 100% rename from assets/ourwork-images/original-jpg-converted/nauticalcrew.jpg rename to public/assets/ourwork-images/original/nauticalcrew.jpg diff --git a/assets/ourwork-images/original-jpg-converted/nommetenniseklubi.jpg b/public/assets/ourwork-images/original/nommetenniseklubi.jpg similarity index 100% rename from assets/ourwork-images/original-jpg-converted/nommetenniseklubi.jpg rename to public/assets/ourwork-images/original/nommetenniseklubi.jpg diff --git a/assets/ourwork-images/original/orkester.png b/public/assets/ourwork-images/original/orkester.png similarity index 100% rename from assets/ourwork-images/original/orkester.png rename to public/assets/ourwork-images/original/orkester.png diff --git a/assets/ourwork-images/original/osaluskogud_eestis.png b/public/assets/ourwork-images/original/osaluskogud_eestis.png similarity index 100% rename from assets/ourwork-images/original/osaluskogud_eestis.png rename to public/assets/ourwork-images/original/osaluskogud_eestis.png diff --git a/assets/ourwork-images/original/remondikohvik.png b/public/assets/ourwork-images/original/remondikohvik.png similarity index 100% rename from assets/ourwork-images/original/remondikohvik.png rename to public/assets/ourwork-images/original/remondikohvik.png diff --git a/assets/ourwork-images/original/sallivkool.png b/public/assets/ourwork-images/original/sallivkool.png similarity index 100% rename from assets/ourwork-images/original/sallivkool.png rename to public/assets/ourwork-images/original/sallivkool.png diff --git a/assets/ourwork-images/original-jpg-converted/sporditrennid.jpg b/public/assets/ourwork-images/original/sporditrennid.jpg similarity index 100% rename from assets/ourwork-images/original-jpg-converted/sporditrennid.jpg rename to public/assets/ourwork-images/original/sporditrennid.jpg diff --git a/assets/ourwork-images/original/studentlife.png b/public/assets/ourwork-images/original/studentlife.png similarity index 100% rename from assets/ourwork-images/original/studentlife.png rename to public/assets/ourwork-images/original/studentlife.png diff --git a/assets/ourwork-images/original/taksod-net-android.png b/public/assets/ourwork-images/original/taksod-net-android.png similarity index 100% rename from assets/ourwork-images/original/taksod-net-android.png rename to public/assets/ourwork-images/original/taksod-net-android.png diff --git a/assets/ourwork-images/original/taksod-net-ios.png b/public/assets/ourwork-images/original/taksod-net-ios.png similarity index 100% rename from assets/ourwork-images/original/taksod-net-ios.png rename to public/assets/ourwork-images/original/taksod-net-ios.png diff --git a/assets/ourwork-images/original/tipilan.png b/public/assets/ourwork-images/original/tipilan.png similarity index 100% rename from assets/ourwork-images/original/tipilan.png rename to public/assets/ourwork-images/original/tipilan.png diff --git a/assets/ourwork-images/original-jpg-converted/ttu-ajatelg.jpg b/public/assets/ourwork-images/original/ttu-ajatelg.jpg similarity index 100% rename from assets/ourwork-images/original-jpg-converted/ttu-ajatelg.jpg rename to public/assets/ourwork-images/original/ttu-ajatelg.jpg diff --git a/assets/ourwork-images/original/ttu_muusem_placeholder.png b/public/assets/ourwork-images/original/ttu_muusem_placeholder.png similarity index 100% rename from assets/ourwork-images/original/ttu_muusem_placeholder.png rename to public/assets/ourwork-images/original/ttu_muusem_placeholder.png diff --git a/assets/ourwork-images/original-jpg-converted/ukseproff.jpg b/public/assets/ourwork-images/original/ukseproff.jpg similarity index 100% rename from assets/ourwork-images/original-jpg-converted/ukseproff.jpg rename to public/assets/ourwork-images/original/ukseproff.jpg diff --git a/assets/ourwork-images/original-jpg-converted/votitulevikku.jpg b/public/assets/ourwork-images/original/votitulevikku.jpg similarity index 100% rename from assets/ourwork-images/original-jpg-converted/votitulevikku.jpg rename to public/assets/ourwork-images/original/votitulevikku.jpg diff --git a/assets/partners/TalTech_Insener_EST_gradient.png b/public/assets/partners/TalTech_Insener_EST_gradient.png similarity index 100% rename from assets/partners/TalTech_Insener_EST_gradient.png rename to public/assets/partners/TalTech_Insener_EST_gradient.png diff --git a/assets/partners/eas.svg b/public/assets/partners/eas.svg similarity index 100% rename from assets/partners/eas.svg rename to public/assets/partners/eas.svg diff --git a/assets/partners/eyl_logo.png b/public/assets/partners/eyl_logo.png similarity index 100% rename from assets/partners/eyl_logo.png rename to public/assets/partners/eyl_logo.png diff --git a/assets/partners/hextech_logo.svg b/public/assets/partners/hextech_logo.svg similarity index 98% rename from assets/partners/hextech_logo.svg rename to public/assets/partners/hextech_logo.svg index 758577f..2f41eb3 100644 --- a/assets/partners/hextech_logo.svg +++ b/public/assets/partners/hextech_logo.svg @@ -1,79 +1,79 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/assets/partners/robotiklubi_logo.png b/public/assets/partners/robotiklubi_logo.png similarity index 100% rename from assets/partners/robotiklubi_logo.png rename to public/assets/partners/robotiklubi_logo.png diff --git a/assets/partners/skeemipesa_logo.png b/public/assets/partners/skeemipesa_logo.png similarity index 100% rename from assets/partners/skeemipesa_logo.png rename to public/assets/partners/skeemipesa_logo.png diff --git a/assets/partners/taltech_IT_teaduskond_logo.png b/public/assets/partners/taltech_IT_teaduskond_logo.png similarity index 100% rename from assets/partners/taltech_IT_teaduskond_logo.png rename to public/assets/partners/taltech_IT_teaduskond_logo.png diff --git a/assets/partners/taltech_logo.jpg b/public/assets/partners/taltech_logo.jpg similarity index 100% rename from assets/partners/taltech_logo.jpg rename to public/assets/partners/taltech_logo.jpg diff --git a/assets/partners/tehnopollogo.png b/public/assets/partners/tehnopollogo.png similarity index 100% rename from assets/partners/tehnopollogo.png rename to public/assets/partners/tehnopollogo.png diff --git a/assets/partners/tty_logo_2.png b/public/assets/partners/tty_logo_2.png similarity index 100% rename from assets/partners/tty_logo_2.png rename to public/assets/partners/tty_logo_2.png diff --git a/assets/partners/yli6pilasesindus_logo.png b/public/assets/partners/yli6pilasesindus_logo.png similarity index 100% rename from assets/partners/yli6pilasesindus_logo.png rename to public/assets/partners/yli6pilasesindus_logo.png diff --git a/assets/past-management-images/optimised/Eva-Marie_Alasi.jpg b/public/assets/past-management-images/original/Eva-Marie_Alasi.jpg similarity index 100% rename from assets/past-management-images/optimised/Eva-Marie_Alasi.jpg rename to public/assets/past-management-images/original/Eva-Marie_Alasi.jpg diff --git a/assets/past-management-images/original/aive_uus.jpg b/public/assets/past-management-images/original/aive_uus.jpg similarity index 100% rename from assets/past-management-images/original/aive_uus.jpg rename to public/assets/past-management-images/original/aive_uus.jpg diff --git a/assets/past-management-images/original/aleksandr_požidajev.jpg b/public/assets/past-management-images/original/aleksandr_požidajev.jpg similarity index 100% rename from assets/past-management-images/original/aleksandr_požidajev.jpg rename to public/assets/past-management-images/original/aleksandr_požidajev.jpg diff --git a/assets/past-management-images/optimised/andree_uuetoa.jpg b/public/assets/past-management-images/original/andree_uuetoa.jpg similarity index 100% rename from assets/past-management-images/optimised/andree_uuetoa.jpg rename to public/assets/past-management-images/original/andree_uuetoa.jpg diff --git a/assets/past-management-images/optimised/andrei_guzovski.jpg b/public/assets/past-management-images/original/andrei_guzovski.jpg similarity index 100% rename from assets/past-management-images/optimised/andrei_guzovski.jpg rename to public/assets/past-management-images/original/andrei_guzovski.jpg diff --git a/assets/past-management-images/optimised/anet_mitt.jpg b/public/assets/past-management-images/original/anet_mitt.jpg similarity index 100% rename from assets/past-management-images/optimised/anet_mitt.jpg rename to public/assets/past-management-images/original/anet_mitt.jpg diff --git a/assets/past-management-images/original/ann-claire_utt.jpg b/public/assets/past-management-images/original/ann-claire_utt.jpg similarity index 100% rename from assets/past-management-images/original/ann-claire_utt.jpg rename to public/assets/past-management-images/original/ann-claire_utt.jpg diff --git a/assets/past-management-images/original/asko_närep.jpg b/public/assets/past-management-images/original/asko_närep.jpg similarity index 100% rename from assets/past-management-images/original/asko_närep.jpg rename to public/assets/past-management-images/original/asko_närep.jpg diff --git a/assets/past-management-images/original/ave_tarend.jpg b/public/assets/past-management-images/original/ave_tarend.jpg similarity index 100% rename from assets/past-management-images/original/ave_tarend.jpg rename to public/assets/past-management-images/original/ave_tarend.jpg diff --git a/assets/past-management-images/original/berta_harsing.jpg b/public/assets/past-management-images/original/berta_harsing.jpg similarity index 100% rename from assets/past-management-images/original/berta_harsing.jpg rename to public/assets/past-management-images/original/berta_harsing.jpg diff --git a/assets/past-management-images/optimised/carina_ruut.jpg b/public/assets/past-management-images/original/carina_ruut.jpg similarity index 100% rename from assets/past-management-images/optimised/carina_ruut.jpg rename to public/assets/past-management-images/original/carina_ruut.jpg diff --git a/assets/past-management-images/original/christopher_rammul.jpg b/public/assets/past-management-images/original/christopher_rammul.jpg similarity index 100% rename from assets/past-management-images/original/christopher_rammul.jpg rename to public/assets/past-management-images/original/christopher_rammul.jpg diff --git a/assets/past-management-images/optimised/christopher_rammul_1.jpg b/public/assets/past-management-images/original/christopher_rammul_1.jpg similarity index 100% rename from assets/past-management-images/optimised/christopher_rammul_1.jpg rename to public/assets/past-management-images/original/christopher_rammul_1.jpg diff --git a/assets/past-management-images/optimised/coming-soon.jpg b/public/assets/past-management-images/original/coming-soon.jpg similarity index 100% rename from assets/past-management-images/optimised/coming-soon.jpg rename to public/assets/past-management-images/original/coming-soon.jpg diff --git a/assets/past-management-images/original/eret_rääk.jpg b/public/assets/past-management-images/original/eret_rääk.jpg similarity index 100% rename from assets/past-management-images/original/eret_rääk.jpg rename to public/assets/past-management-images/original/eret_rääk.jpg diff --git a/assets/past-management-images/original/erki_lasberg.jpg b/public/assets/past-management-images/original/erki_lasberg.jpg similarity index 100% rename from assets/past-management-images/original/erki_lasberg.jpg rename to public/assets/past-management-images/original/erki_lasberg.jpg diff --git a/assets/past-management-images/optimised/erki_lasberg_1.jpg b/public/assets/past-management-images/original/erki_lasberg_1.jpg similarity index 100% rename from assets/past-management-images/optimised/erki_lasberg_1.jpg rename to public/assets/past-management-images/original/erki_lasberg_1.jpg diff --git a/assets/past-management-images/original/hanno_vene.jpg b/public/assets/past-management-images/original/hanno_vene.jpg similarity index 100% rename from assets/past-management-images/original/hanno_vene.jpg rename to public/assets/past-management-images/original/hanno_vene.jpg diff --git a/assets/past-management-images/optimised/hanno_vene2.jpg b/public/assets/past-management-images/original/hanno_vene2.jpg similarity index 100% rename from assets/past-management-images/optimised/hanno_vene2.jpg rename to public/assets/past-management-images/original/hanno_vene2.jpg diff --git a/assets/past-management-images/original/helen_tiitma.jpg b/public/assets/past-management-images/original/helen_tiitma.jpg similarity index 100% rename from assets/past-management-images/original/helen_tiitma.jpg rename to public/assets/past-management-images/original/helen_tiitma.jpg diff --git a/assets/past-management-images/optimised/ingrid_regina_vahi.jpg b/public/assets/past-management-images/original/ingrid_regina_vahi.jpg similarity index 100% rename from assets/past-management-images/optimised/ingrid_regina_vahi.jpg rename to public/assets/past-management-images/original/ingrid_regina_vahi.jpg diff --git a/assets/past-management-images/original/jaak_lember.jpg b/public/assets/past-management-images/original/jaak_lember.jpg similarity index 100% rename from assets/past-management-images/original/jaak_lember.jpg rename to public/assets/past-management-images/original/jaak_lember.jpg diff --git a/assets/past-management-images/original/janne_raudsepp.jpg b/public/assets/past-management-images/original/janne_raudsepp.jpg similarity index 100% rename from assets/past-management-images/original/janne_raudsepp.jpg rename to public/assets/past-management-images/original/janne_raudsepp.jpg diff --git a/assets/past-management-images/original/kaarel_pärtel.jpg b/public/assets/past-management-images/original/kaarel_pärtel.jpg similarity index 100% rename from assets/past-management-images/original/kaarel_pärtel.jpg rename to public/assets/past-management-images/original/kaarel_pärtel.jpg diff --git a/assets/past-management-images/original/karin_viil.jpg b/public/assets/past-management-images/original/karin_viil.jpg similarity index 100% rename from assets/past-management-images/original/karin_viil.jpg rename to public/assets/past-management-images/original/karin_viil.jpg diff --git a/assets/past-management-images/optimised/karina_reisel.jpg b/public/assets/past-management-images/original/karina_reisel.jpg similarity index 100% rename from assets/past-management-images/optimised/karina_reisel.jpg rename to public/assets/past-management-images/original/karina_reisel.jpg diff --git a/assets/past-management-images/optimised/karl_eric_mottus.jpg b/public/assets/past-management-images/original/karl_eric_mottus.jpg similarity index 100% rename from assets/past-management-images/optimised/karl_eric_mottus.jpg rename to public/assets/past-management-images/original/karl_eric_mottus.jpg diff --git a/assets/past-management-images/original/karli_oruste.jpg b/public/assets/past-management-images/original/karli_oruste.jpg similarity index 100% rename from assets/past-management-images/original/karli_oruste.jpg rename to public/assets/past-management-images/original/karli_oruste.jpg diff --git a/assets/past-management-images/optimised/kerdo_kaarma.jpg b/public/assets/past-management-images/original/kerdo_kaarma.jpg similarity index 100% rename from assets/past-management-images/optimised/kerdo_kaarma.jpg rename to public/assets/past-management-images/original/kerdo_kaarma.jpg diff --git a/assets/past-management-images/original/kertu_nurmberg.jpg b/public/assets/past-management-images/original/kertu_nurmberg.jpg similarity index 100% rename from assets/past-management-images/original/kertu_nurmberg.jpg rename to public/assets/past-management-images/original/kertu_nurmberg.jpg diff --git a/assets/past-management-images/original/kertu_pikk_2015.png b/public/assets/past-management-images/original/kertu_pikk_2015.png similarity index 100% rename from assets/past-management-images/original/kertu_pikk_2015.png rename to public/assets/past-management-images/original/kertu_pikk_2015.png diff --git a/assets/past-management-images/original/kertu_pikk_2016.jpg b/public/assets/past-management-images/original/kertu_pikk_2016.jpg similarity index 100% rename from assets/past-management-images/original/kertu_pikk_2016.jpg rename to public/assets/past-management-images/original/kertu_pikk_2016.jpg diff --git a/assets/past-management-images/original/kristjan_haavik_2007.jpg b/public/assets/past-management-images/original/kristjan_haavik_2007.jpg similarity index 100% rename from assets/past-management-images/original/kristjan_haavik_2007.jpg rename to public/assets/past-management-images/original/kristjan_haavik_2007.jpg diff --git a/assets/past-management-images/original/kristjan_haavik_2008.jpg b/public/assets/past-management-images/original/kristjan_haavik_2008.jpg similarity index 100% rename from assets/past-management-images/original/kristjan_haavik_2008.jpg rename to public/assets/past-management-images/original/kristjan_haavik_2008.jpg diff --git a/assets/past-management-images/optimised/kristjan_koiv.png b/public/assets/past-management-images/original/kristjan_koiv.png similarity index 100% rename from assets/past-management-images/optimised/kristjan_koiv.png rename to public/assets/past-management-images/original/kristjan_koiv.png diff --git a/assets/past-management-images/optimised/laura_anni.jpg b/public/assets/past-management-images/original/laura_anni.jpg similarity index 100% rename from assets/past-management-images/optimised/laura_anni.jpg rename to public/assets/past-management-images/original/laura_anni.jpg diff --git a/assets/past-management-images/original/lauri_till.jpg b/public/assets/past-management-images/original/lauri_till.jpg similarity index 100% rename from assets/past-management-images/original/lauri_till.jpg rename to public/assets/past-management-images/original/lauri_till.jpg diff --git a/assets/past-management-images/original/lembitu_valdmets.jpg b/public/assets/past-management-images/original/lembitu_valdmets.jpg similarity index 100% rename from assets/past-management-images/original/lembitu_valdmets.jpg rename to public/assets/past-management-images/original/lembitu_valdmets.jpg diff --git a/assets/past-management-images/optimised/lembitu_valdmets2.jpg b/public/assets/past-management-images/original/lembitu_valdmets2.jpg similarity index 100% rename from assets/past-management-images/optimised/lembitu_valdmets2.jpg rename to public/assets/past-management-images/original/lembitu_valdmets2.jpg diff --git a/assets/past-management-images/optimised/liisa_heinla.jpg b/public/assets/past-management-images/original/liisa_heinla.jpg similarity index 100% rename from assets/past-management-images/optimised/liisa_heinla.jpg rename to public/assets/past-management-images/original/liisa_heinla.jpg diff --git a/assets/past-management-images/optimised/marcus_pruks.JPG b/public/assets/past-management-images/original/marcus_pruks.jpg similarity index 100% rename from assets/past-management-images/optimised/marcus_pruks.JPG rename to public/assets/past-management-images/original/marcus_pruks.jpg diff --git a/assets/past-management-images/original/margus_mahler.jpg b/public/assets/past-management-images/original/margus_mahler.jpg similarity index 100% rename from assets/past-management-images/original/margus_mahler.jpg rename to public/assets/past-management-images/original/margus_mahler.jpg diff --git a/assets/past-management-images/original/martin_oblikas.jpg b/public/assets/past-management-images/original/martin_oblikas.jpg similarity index 100% rename from assets/past-management-images/original/martin_oblikas.jpg rename to public/assets/past-management-images/original/martin_oblikas.jpg diff --git a/assets/past-management-images/optimised/mattias_vahtra.jpg b/public/assets/past-management-images/original/mattias_vahtra.jpg similarity index 100% rename from assets/past-management-images/optimised/mattias_vahtra.jpg rename to public/assets/past-management-images/original/mattias_vahtra.jpg diff --git a/assets/past-management-images/original/meelik_gornoi.jpg b/public/assets/past-management-images/original/meelik_gornoi.jpg similarity index 100% rename from assets/past-management-images/original/meelik_gornoi.jpg rename to public/assets/past-management-images/original/meelik_gornoi.jpg diff --git a/assets/past-management-images/original/märt_lepik.jpg b/public/assets/past-management-images/original/märt_lepik.jpg similarity index 100% rename from assets/past-management-images/original/märt_lepik.jpg rename to public/assets/past-management-images/original/märt_lepik.jpg diff --git a/assets/past-management-images/original/nansy_ly_endma.jpg b/public/assets/past-management-images/original/nansy_ly_endma.jpg similarity index 100% rename from assets/past-management-images/original/nansy_ly_endma.jpg rename to public/assets/past-management-images/original/nansy_ly_endma.jpg diff --git a/assets/past-management-images/original/oole_tuurmaa.png b/public/assets/past-management-images/original/oole_tuurmaa.png similarity index 100% rename from assets/past-management-images/original/oole_tuurmaa.png rename to public/assets/past-management-images/original/oole_tuurmaa.png diff --git a/assets/past-management-images/optimised/ott-eerik_oun.jpg b/public/assets/past-management-images/original/ott-eerik_oun.jpg similarity index 100% rename from assets/past-management-images/optimised/ott-eerik_oun.jpg rename to public/assets/past-management-images/original/ott-eerik_oun.jpg diff --git a/assets/past-management-images/optimised/peter-sten_annus.jpg b/public/assets/past-management-images/original/peter-sten_annus.jpg similarity index 100% rename from assets/past-management-images/optimised/peter-sten_annus.jpg rename to public/assets/past-management-images/original/peter-sten_annus.jpg diff --git a/assets/past-management-images/original/petri_behm.jpg b/public/assets/past-management-images/original/petri_behm.jpg similarity index 100% rename from assets/past-management-images/original/petri_behm.jpg rename to public/assets/past-management-images/original/petri_behm.jpg diff --git a/assets/past-management-images/original/priit_lepp.jpg b/public/assets/past-management-images/original/priit_lepp.jpg similarity index 100% rename from assets/past-management-images/original/priit_lepp.jpg rename to public/assets/past-management-images/original/priit_lepp.jpg diff --git a/assets/past-management-images/original/pärlin_luhila.png b/public/assets/past-management-images/original/pärlin_luhila.png similarity index 100% rename from assets/past-management-images/original/pärlin_luhila.png rename to public/assets/past-management-images/original/pärlin_luhila.png diff --git a/assets/past-management-images/original/rasmus_koit.jpg b/public/assets/past-management-images/original/rasmus_koit.jpg similarity index 100% rename from assets/past-management-images/original/rasmus_koit.jpg rename to public/assets/past-management-images/original/rasmus_koit.jpg diff --git a/assets/past-management-images/original/raul_aassalu.jpg b/public/assets/past-management-images/original/raul_aassalu.jpg similarity index 100% rename from assets/past-management-images/original/raul_aassalu.jpg rename to public/assets/past-management-images/original/raul_aassalu.jpg diff --git a/public/assets/past-management-images/original/reio_opromei.jpg b/public/assets/past-management-images/original/reio_opromei.jpg new file mode 100644 index 0000000..f37d60b Binary files /dev/null and b/public/assets/past-management-images/original/reio_opromei.jpg differ diff --git a/assets/past-management-images/original/rene_arumetsa.jpg b/public/assets/past-management-images/original/rene_arumetsa.jpg similarity index 100% rename from assets/past-management-images/original/rene_arumetsa.jpg rename to public/assets/past-management-images/original/rene_arumetsa.jpg diff --git a/assets/past-management-images/optimised/rene_arumetsa_1.jpg b/public/assets/past-management-images/original/rene_arumetsa_1.jpg similarity index 100% rename from assets/past-management-images/optimised/rene_arumetsa_1.jpg rename to public/assets/past-management-images/original/rene_arumetsa_1.jpg diff --git a/assets/past-management-images/original/risto_leesmäe.jpg b/public/assets/past-management-images/original/risto_leesmäe.jpg similarity index 100% rename from assets/past-management-images/original/risto_leesmäe.jpg rename to public/assets/past-management-images/original/risto_leesmäe.jpg diff --git a/assets/past-management-images/original/risto_maasing.jpg b/public/assets/past-management-images/original/risto_maasing.jpg similarity index 100% rename from assets/past-management-images/original/risto_maasing.jpg rename to public/assets/past-management-images/original/risto_maasing.jpg diff --git a/assets/past-management-images/original/roel_rahkema.jpg b/public/assets/past-management-images/original/roel_rahkema.jpg similarity index 100% rename from assets/past-management-images/original/roel_rahkema.jpg rename to public/assets/past-management-images/original/roel_rahkema.jpg diff --git a/assets/past-management-images/original/roosi-ann_tõlgu.jpg b/public/assets/past-management-images/original/roosi-ann_tõlgu.jpg similarity index 100% rename from assets/past-management-images/original/roosi-ann_tõlgu.jpg rename to public/assets/past-management-images/original/roosi-ann_tõlgu.jpg diff --git a/assets/past-management-images/optimised/sander_kornet.jpg b/public/assets/past-management-images/original/sander_kornet.jpg similarity index 100% rename from assets/past-management-images/optimised/sander_kornet.jpg rename to public/assets/past-management-images/original/sander_kornet.jpg diff --git a/assets/past-management-images/original/sigrid_kirss.jpg b/public/assets/past-management-images/original/sigrid_kirss.jpg similarity index 100% rename from assets/past-management-images/original/sigrid_kirss.jpg rename to public/assets/past-management-images/original/sigrid_kirss.jpg diff --git a/assets/past-management-images/original/siim_talts.jpg b/public/assets/past-management-images/original/siim_talts.jpg similarity index 100% rename from assets/past-management-images/original/siim_talts.jpg rename to public/assets/past-management-images/original/siim_talts.jpg diff --git a/assets/past-management-images/original/siim_valgeväli.jpg b/public/assets/past-management-images/original/siim_valgeväli.jpg similarity index 100% rename from assets/past-management-images/original/siim_valgeväli.jpg rename to public/assets/past-management-images/original/siim_valgeväli.jpg diff --git a/assets/past-management-images/optimised/siinus.jpg b/public/assets/past-management-images/original/siinus.jpg similarity index 100% rename from assets/past-management-images/optimised/siinus.jpg rename to public/assets/past-management-images/original/siinus.jpg diff --git a/assets/past-management-images/optimised/taeri_saar.jpg b/public/assets/past-management-images/original/taeri_saar.jpg similarity index 100% rename from assets/past-management-images/optimised/taeri_saar.jpg rename to public/assets/past-management-images/original/taeri_saar.jpg diff --git a/assets/past-management-images/original/tõnis_märtmaa.jpg b/public/assets/past-management-images/original/tõnis_märtmaa.jpg similarity index 100% rename from assets/past-management-images/original/tõnis_märtmaa.jpg rename to public/assets/past-management-images/original/tõnis_märtmaa.jpg diff --git a/assets/past-management-images/original/tõnis_piirits.jpg b/public/assets/past-management-images/original/tõnis_piirits.jpg similarity index 100% rename from assets/past-management-images/original/tõnis_piirits.jpg rename to public/assets/past-management-images/original/tõnis_piirits.jpg diff --git a/assets/past-management-images/original/tõnis_trumaa.jpg b/public/assets/past-management-images/original/tõnis_trumaa.jpg similarity index 100% rename from assets/past-management-images/original/tõnis_trumaa.jpg rename to public/assets/past-management-images/original/tõnis_trumaa.jpg diff --git a/assets/past-management-images/original/õnne_laanmets.jpg b/public/assets/past-management-images/original/õnne_laanmets.jpg similarity index 100% rename from assets/past-management-images/original/õnne_laanmets.jpg rename to public/assets/past-management-images/original/õnne_laanmets.jpg diff --git a/public/assets/workshop-images/temp1.jpg b/public/assets/workshop-images/temp1.jpg new file mode 100644 index 0000000..d2d33d3 Binary files /dev/null and b/public/assets/workshop-images/temp1.jpg differ diff --git a/public/assets/workshop-images/temp2.jpg b/public/assets/workshop-images/temp2.jpg new file mode 100644 index 0000000..5548e28 Binary files /dev/null and b/public/assets/workshop-images/temp2.jpg differ diff --git a/scripts/optimise-images.js b/scripts/optimise-images.js new file mode 100644 index 0000000..75fc5a1 --- /dev/null +++ b/scripts/optimise-images.js @@ -0,0 +1,165 @@ +#!/usr/bin/env node +// optimise-images.js +// Run from project root: node scripts/optimise-images.js +// +// Finds all public/assets/**/original/ folders and generates optimised/ output. +// Category rules defined in CATEGORY_RULES below — add new pages there. +// +// Rule types per image stem (or "*" catch-all): +// { widths: [400, 800, 1200] } → responsive srcset variants + full at original size +// { maxWidth: 400 } → single size resized to maxWidth (full.webp + full.jpg) +// omitted → full at original size only (format conversion only) +// +// Requires: sharp → npm install --save-dev sharp + +import sharp from "sharp"; +import { readdir, mkdir, rm } from "fs/promises"; +import { existsSync } from "fs"; +import path from "path"; +import { fileURLToPath } from "url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const ASSETS_ROOT = path.resolve(__dirname, "../public/assets"); + +const CATEGORY_RULES = { + "home-page-images": { + hero: { widths: [400, 800, 1200] }, + "*": { widths: [400, 800] }, + }, + "helpdesk-page-images": { + "*": { widths: [400, 800, 1200] }, + }, + "mentors-images": { + "*": { maxWidth: 400 }, + }, + "management-images": { + "*": { maxWidth: 400 }, + }, + "past-management-images": { + "*": { maxWidth: 200 }, + }, + "workshop-images": { + "*": { widths: [400, 800] }, + }, + "ourwork-images": { + "*": { widths: [400, 800] }, + }, + // Add future pages here, e.g.: + // "about-page-images": { "*": { widths: [400, 800] } }, +}; + +// Image extensions to process (SVGs are skipped) +const SUPPORTED_EXT = new Set([".jpg", ".jpeg", ".png", ".webp", ".avif", ".tiff"]); + +async function findOriginalDirs(root) { + const results = []; + async function walk(dir) { + const entries = await readdir(dir, { withFileTypes: true }); + for (const entry of entries) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) { + if (entry.name === "original") results.push(full); + else await walk(full); + } + } + } + await walk(root); + return results; +} + +async function getImages(dir) { + const entries = await readdir(dir, { withFileTypes: true }); + return entries + .filter(e => e.isFile() && SUPPORTED_EXT.has(path.extname(e.name).toLowerCase())) + .map(e => e.name); +} + +async function writeVariant(inputPath, outputPath, width, format) { + let pipeline = sharp(inputPath); + if (width) pipeline = pipeline.resize({ width, withoutEnlargement: true }); + if (format === "webp") pipeline = pipeline.webp({ quality: 82 }); + if (format === "jpg") pipeline = pipeline.jpeg({ quality: 85, mozjpeg: true }); + await pipeline.toFile(outputPath); +} + +async function processImage(inputPath, outputDir, rule) { + const name = path.parse(inputPath).name; + const imageDir = path.join(outputDir, name); + + if (existsSync(imageDir)) await rm(imageDir, { recursive: true }); + await mkdir(imageDir, { recursive: true }); + + if (rule?.widths?.length > 0) { + // Responsive: write each breakpoint variant + for (const w of rule.widths) { + await writeVariant(inputPath, path.join(imageDir, `${w}.webp`), w, "webp"); + await writeVariant(inputPath, path.join(imageDir, `${w}.jpg`), w, "jpg"); + console.log(` ✓ ${name}/${w}.webp + ${w}.jpg`); + } + // Full at original size as fallback + await writeVariant(inputPath, path.join(imageDir, "full.webp"), null, "webp"); + await writeVariant(inputPath, path.join(imageDir, "full.jpg"), null, "jpg"); + console.log(` ✓ ${name}/full.webp + full.jpg`); + } else if (rule?.maxWidth) { + // Single size: resize to maxWidth — this is the full + await writeVariant(inputPath, path.join(imageDir, "full.webp"), rule.maxWidth, "webp"); + await writeVariant(inputPath, path.join(imageDir, "full.jpg"), rule.maxWidth, "jpg"); + console.log(` ✓ ${name}/full.webp + full.jpg (capped at ${rule.maxWidth}px)`); + } else { + // No rule: full at original size, format conversion only + await writeVariant(inputPath, path.join(imageDir, "full.webp"), null, "webp"); + await writeVariant(inputPath, path.join(imageDir, "full.jpg"), null, "jpg"); + console.log(` ✓ ${name}/full.webp + full.jpg`); + } +} + +async function processOriginalDir(originalDir) { + const categoryDir = path.dirname(originalDir); + const categoryName = path.basename(categoryDir); + const optimisedDir = path.join(categoryDir, "optimised"); + + if (existsSync(optimisedDir)) await rm(optimisedDir, { recursive: true }); + await mkdir(optimisedDir, { recursive: true }); + + const images = await getImages(originalDir); + if (images.length === 0) { + console.log(` (no supported images found)`); + return; + } + + const categoryRules = CATEGORY_RULES[categoryName] ?? null; + + for (const imgFile of images) { + const inputPath = path.join(originalDir, imgFile); + const stem = path.parse(imgFile).name.toLowerCase(); + const rule = categoryRules + ? (categoryRules[stem] ?? categoryRules["*"] ?? null) + : null; + + await processImage(inputPath, optimisedDir, rule); + } +} + +async function main() { + console.log("🔍 Scanning for original/ folders...\n"); + const originalDirs = await findOriginalDirs(ASSETS_ROOT); + + if (originalDirs.length === 0) { + console.log("No original/ folders found under", ASSETS_ROOT); + process.exit(0); + } + + for (const dir of originalDirs) { + const rel = path.relative(process.cwd(), dir); + console.log(`📁 ${rel}`); + await processOriginalDir(dir); + console.log(); + } + + console.log("✅ Done."); +} + +main().catch(err => { + console.error("Error:", err); + process.exit(1); +}); \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..534e0fb --- /dev/null +++ b/src/App.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..afd8230 --- /dev/null +++ b/src/app.css @@ -0,0 +1,175 @@ +/* Global stylesheet */ + +@import url("https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&display=swap"); +@import "tailwindcss"; + +/* Overwriting tailwindcss specific variables */ +@theme { + --color-orange-500: #f0941d; /* Primary color, use this for most things. */ + --color-orange-300: #ffa80d; /* Use for hover states, accents, and highlights. (lighter than primary) */ + --color-orange-600: #d67d0a; /* Ideally don't use */ + + --color-gray-100: #fffdfa; + --color-gray-900: #0d0d0d; + + --spacing-0: 0px; + --spacing-1: 4px; + --spacing-2: 8px; + --spacing-3: 16px; + --spacing-4: 24px; + --spacing-5: 32px; + --spacing-6: 48px; + + --max-width-2xl: 700px; + --max-width-3xl: 800px; + --max-width-4xl: 900px; +} + +/* Design tokens & theme variables (light defaults) */ +:root { + --page-max-width: calc(1460px * var(--ui-scale)); + --navbar-offset: calc(93px * var(--ui-scale)); + --page-padding-inline: clamp( + calc(1.5rem * var(--ui-scale)), + calc(4vw * var(--ui-scale)), + calc(3rem * var(--ui-scale)) + ); + --ui-scale: 1; + + /* spacing scale */ + --spacing-0: 0px; + --spacing-1: 4px; + --spacing-2: 8px; + --spacing-3: 16px; + --spacing-4: 24px; + --spacing-5: 32px; + --spacing-6: 48px; + + /* type scale (fluid base + modular sizes) */ + --fs-base: clamp(1.1rem, 1vw + 1rem, 1.2rem); + --line-height: 1.6; +} + +/* Global box sizing & accessible defaults */ +*, +*::before, +*::after { + box-sizing: border-box; +} +html { + font-family: "Lato", ui-sans-serif, system-ui, -apple-system, "Segoe UI", + Roboto, "Helvetica Neue", Arial; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: calc(var(--fs-base) * var(--ui-scale)); + -webkit-text-size-adjust: 100%; + scroll-padding-top: var(--navbar-offset); + overflow-x: hidden; +} +body { + margin: 0; + line-height: var(--line-height); + min-height: 100vh; + -webkit-tap-highlight-color: transparent; + transition: background-color 160ms ease, color 160ms ease; + overflow-x: hidden; + font-size: var(--fs-lg); +} + +/* Basic link & button defaults that components inherit */ +a { + text-decoration: none; + font-weight: 550; +} +a:hover { + text-decoration: underline; +} + +button, +input[type="button"], +input[type="submit"] { + font: inherit; + cursor: pointer; +} + +/* Utility: visually hidden (accessible labels) */ +.sr-only, +.visually-hidden { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); + white-space: nowrap; + border: 0; + padding: 0; + margin: -1px; +} + +/* Safe area for content below navbar (94px scaled) */ +.safe-area-navbar { + padding-top: var(--navbar-offset); + scroll-margin-top: var(--navbar-offset); +} + +/* Show/hide helpers for breakpoints */ +.mobile-only { + display: block; +} +.desktop-only { + display: none; +} +@media (min-width: 768px) { + .mobile-only { + display: none; + } + .desktop-only { + display: block; + } +} + +/* Increase overall UI scale on large 4K-class viewports */ +@media (min-width: 2400px), (min-width: 1900px) and (min-resolution: 2dppx) { + :root { + --ui-scale: 1.5; + } +} + +/* Scale down UI for smaller screens */ +@media (max-width: 1280px) { + :root { + --ui-scale: 0.8; + } +} + +/* Accessibility settings */ +@media (prefers-reduced-motion: reduce) { + * { + animation: none !important; + transition: none !important; + scroll-behavior: auto !important; + } + + /* Automatically apply final animation states */ + [data-animation] { /* Everything with animation needs to be marked like this:
Hello World
*/ + all: unset !important; + } +} + +@media (prefers-reduced-transparency: reduce) { + * { + background: solid !important; + backdrop-filter: none !important; + } +} + +@media (forced-colors: active) { + * { + background: Window !important; + color: WindowText !important; + border-color: WindowText !important; + } + a { + color: Highlight !important; + } +} \ No newline at end of file diff --git a/src/components/Button.vue b/src/components/Button.vue new file mode 100644 index 0000000..621b8e5 --- /dev/null +++ b/src/components/Button.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/src/components/Dropdown.vue b/src/components/Dropdown.vue new file mode 100644 index 0000000..a7d2690 --- /dev/null +++ b/src/components/Dropdown.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/components/Image.vue b/src/components/Image.vue new file mode 100644 index 0000000..1d02bf0 --- /dev/null +++ b/src/components/Image.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/components/README.md b/src/components/README.md new file mode 100644 index 0000000..8dbdca1 --- /dev/null +++ b/src/components/README.md @@ -0,0 +1,26 @@ +# Component previews + +Run `npm run storybook` to open the Vue component previews, including every SVG variation. Storybook controls can change the SVG props interactively. + +# Components + +Components in this directory are reusable Vue building blocks that are not layout-specific. They use ` + + + + diff --git a/src/components/Svg.vue b/src/components/Svg.vue new file mode 100644 index 0000000..5648b8e --- /dev/null +++ b/src/components/Svg.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/components/index.js b/src/components/index.js new file mode 100644 index 0000000..0f35e89 --- /dev/null +++ b/src/components/index.js @@ -0,0 +1,14 @@ +// layout components +export { default as Container } from './layout/Container.vue' +export { default as Card } from './layout/Card.vue' +export { default as Stack } from './layout/Stack.vue' +export { default as Grid } from './layout/Grid.vue' +export { default as Center } from './layout/Center.vue' +export { default as Section } from './layout/Section.vue' + +// components +export { default as Button } from './Button.vue' +export { default as Dropdown } from './Dropdown.vue' +export { default as Slideshow } from './Slideshow.vue' +export { default as Svg } from './Svg.vue' +export { default as Image } from './Image.vue' diff --git a/src/components/layout/Card.vue b/src/components/layout/Card.vue new file mode 100644 index 0000000..610c1ad --- /dev/null +++ b/src/components/layout/Card.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/components/layout/Center.vue b/src/components/layout/Center.vue new file mode 100644 index 0000000..c162db5 --- /dev/null +++ b/src/components/layout/Center.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/components/layout/Container.vue b/src/components/layout/Container.vue new file mode 100644 index 0000000..46503f5 --- /dev/null +++ b/src/components/layout/Container.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/components/layout/Grid.vue b/src/components/layout/Grid.vue new file mode 100644 index 0000000..c36c90b --- /dev/null +++ b/src/components/layout/Grid.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/components/layout/Section.vue b/src/components/layout/Section.vue new file mode 100644 index 0000000..6609768 --- /dev/null +++ b/src/components/layout/Section.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/layout/Stack.vue b/src/components/layout/Stack.vue new file mode 100644 index 0000000..e918603 --- /dev/null +++ b/src/components/layout/Stack.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/layout/Footer.vue b/src/layout/Footer.vue new file mode 100644 index 0000000..aa195a2 --- /dev/null +++ b/src/layout/Footer.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/layout/Navbar.vue b/src/layout/Navbar.vue new file mode 100644 index 0000000..b860f0e --- /dev/null +++ b/src/layout/Navbar.vue @@ -0,0 +1,430 @@ + + + + + diff --git a/src/lib/i18n.js b/src/lib/i18n.js new file mode 100644 index 0000000..e3af82a --- /dev/null +++ b/src/lib/i18n.js @@ -0,0 +1,78 @@ +import { computed, onScopeDispose, ref, watch } from 'vue'; +import { getLanguageFromRoute } from '../routes'; + +const localeModules = import.meta.glob('./locales/*/*.json'); +const supportedLanguages = new Set(['est', 'en']); +export const languageLocales = { est: 'et-EE', en: 'en-GB' }; + +function getInitialLanguage() { + if (typeof window === 'undefined') return 'est'; + + const langFromRoute = getLanguageFromRoute(window.location.pathname); + if (langFromRoute) { + localStorage.setItem('language', langFromRoute); + return langFromRoute; + } + + const savedLanguage = localStorage.getItem('language'); + return supportedLanguages.has(savedLanguage) ? savedLanguage : 'est'; +} + +export const currentLang = ref(getInitialLanguage()); +export const currentLocale = computed(() => languageLocales[currentLang.value]); +export const text = ref({}); +let translationRequest = 0; + +async function loadTranslations(lang) { + const request = ++translationRequest; + try { + const translations = {}; + const matchingModules = Object.entries(localeModules).filter(([path]) => + path.includes(`/locales/${lang}/`), + ); + const modules = await Promise.all(matchingModules.map(([, loader]) => loader())); + modules.forEach((module) => Object.assign(translations, module.default || module)); + if (request === translationRequest) text.value = translations; + } catch (error) { + console.error(`Failed to load translations for ${lang}:`, error); + if (request === translationRequest) text.value = {}; + } +} + +watch(currentLang, loadTranslations, { immediate: true }); + +export function usePageText(pageName) { + const pageText = ref({}); + let pageRequest = 0; + const stop = watch(currentLang, async (lang) => { + const request = ++pageRequest; + try { + const loader = localeModules[`./locales/${lang}/${pageName}.json`]; + const module = loader ? await loader() : null; + if (request === pageRequest) pageText.value = module?.default || module || {}; + } catch (error) { + console.error(`Failed to load ${pageName} translations for ${lang}:`, error); + if (request === pageRequest) pageText.value = {}; + } + }, { immediate: true }); + + onScopeDispose(stop); + return pageText; +} + +export function switchLang(lang) { + if (!supportedLanguages.has(lang)) return; + currentLang.value = lang; + if (typeof window !== 'undefined') localStorage.setItem('language', lang); +} + +watch(currentLocale, (locale) => { + if (typeof document !== 'undefined') document.documentElement.lang = locale; +}, { immediate: true }); + +if (typeof window !== 'undefined') { + window.addEventListener('popstate', () => { + const lang = getLanguageFromRoute(window.location.pathname); + if (lang) switchLang(lang); + }); +} diff --git a/src/lib/imageHelpers.js b/src/lib/imageHelpers.js new file mode 100644 index 0000000..8ee4cd0 --- /dev/null +++ b/src/lib/imageHelpers.js @@ -0,0 +1,125 @@ +/** + * Image path helpers for assets under /public/assets. + * + * Optimised convention: + * /assets/{category}/optimised/{imageName}/ + * full.webp, full.jpg + * 400.webp, 800.webp, 1200.webp (optional responsive variants) + */ + +/** + * Get the image name without extension + * @param {string} filename - e.g., "mari.jpg" + * @returns {string} - e.g., "mari" + */ +function getImageName(filename) { + if (!filename) return ""; + const lastDot = filename.lastIndexOf("."); + return lastDot > 0 ? filename.slice(0, lastDot) : filename; +} + +function normaliseFormat(format) { + return String(format || "").toLowerCase() === "webp" ? "webp" : "jpg"; +} + +function getOptimisedBasePath(category, filename) { + const imageName = getImageName(filename); + return `/assets/${category}/optimised/${imageName}`; +} + +function getVariantSrc(category, filename, variant = "full", format = "webp") { + const ext = normaliseFormat(format); + const safeVariant = String(variant || "full").trim() || "full"; + return `${getOptimisedBasePath(category, filename)}/${safeVariant}.${ext}`; +} + +/** + * Get an asset path from category root (e.g. SVG icons). + * @param {string} category - e.g., "helpdesk-page-images" + * @param {string} filename - e.g., "helpdesk-icon.svg" or "helpdesk-icon" + * @param {string} defaultExt - e.g., "svg" + * @returns {string} - e.g., "/assets/helpdesk-page-images/helpdesk-icon.svg" + */ +export function getRootAssetPath(category, filename, defaultExt = "svg") { + const value = String(filename || "").trim(); + if (!value) return ""; + const hasExt = /\.[^./\\]+$/.test(value); + const fileWithExt = hasExt ? value : `${value}.${defaultExt}`; + return `/assets/${category}/${fileWithExt}`; +} + +/** + * Get the optimised image path. + * @param {string} category - e.g., "mentors-images", "past-management-images" + * @param {string} filename - e.g., "mari.jpg" + * @param {string} format - "webp" or "jpg" (default: "webp") + * @param {string} variant - e.g., "full", "400", "800", "1200" (default: "full") + * @returns {string} - e.g., "/assets/mentors-images/optimised/mari/full.webp" + */ +export function getOptimisedImagePath(category, filename, format = "webp", variant = "full") { + return getVariantSrc(category, filename, variant, format); +} + +/** + * Get srcset for responsive variants. + * @param {string} category - e.g., "home-page-images" + * @param {string} filename - e.g., "hero.png" + * @param {number[]} widths - e.g., [400, 800, 1200] + * @param {string} format - "webp" or "jpg" + * @returns {string} - srcset string with width descriptors + */ +export function getResponsiveImageSrcSet(category, filename, widths = [400, 800, 1200], format = "webp") { + return widths + .map((w) => `${getVariantSrc(category, filename, w, format)} ${w}w`) + .join(", "); +} + +/** + * Get srcset for hero/background images with responsive variants + * @param {string} category - e.g., "home-page-images" + * @param {string} filename - e.g., "hero.png" + * @returns {string} - srcset string with 400w, 800w, 1200w variants + */ +export function getHeroImageSrcSet(category, filename) { + return getResponsiveImageSrcSet(category, filename, [400, 800, 1200], "webp"); +} + +/** + * Get the full size image path for hero images + * @param {string} category - e.g., "home-page-images" + * @param {string} filename - e.g., "hero.png" + * @returns {string} - e.g., "/assets/home-page-images/optimised/hero/1200.webp" + */ +export function getHeroImagePath(category, filename) { + return getOptimisedImagePath(category, filename, "webp", "1200"); +} + +/** + * Get the fallback (jpg) path for hero images. + * @param {string} category - e.g., "home-page-images" + * @param {string} filename - e.g., "hero.png" + * @returns {string} - e.g., "/assets/home-page-images/optimised/hero/full.jpg" + */ +export function getHeroImageFallback(category, filename) { + return getOptimisedImagePath(category, filename, "jpg"); +} + +/** + * Get srcset for regular optimised images (full variant only) + * @param {string} category - e.g., "mentors-images" + * @param {string} filename - e.g., "mari.jpg" + * @returns {string} - srcset string with webp and jpg variants + */ +export function getOptimisedImageSrcSet(category, filename) { + return getOptimisedImagePath(category, filename, "webp"); +} + +/** + * Get the fallback jpg for regular optimised images + * @param {string} category - e.g., "mentors-images" + * @param {string} filename - e.g., "mari.jpg" + * @returns {string} - e.g., "/assets/mentors-images/optimised/mari/full.jpg" + */ +export function getOptimisedImageFallback(category, filename) { + return getOptimisedImagePath(category, filename, "jpg"); +} diff --git a/src/lib/index.js b/src/lib/index.js new file mode 100644 index 0000000..0cd4744 --- /dev/null +++ b/src/lib/index.js @@ -0,0 +1,5 @@ +export { navigate, goBack, reload, getPath, getQuery, switchLanguageRoute } from './router/router.js'; +export { default as Router } from './router/Router.vue'; + +export { currentLang, currentLocale, languageLocales, text, switchLang, usePageText } from './i18n.js'; +export { getLangText } from './langHelpers.js'; diff --git a/src/lib/langHelpers.js b/src/lib/langHelpers.js new file mode 100644 index 0000000..5c44428 --- /dev/null +++ b/src/lib/langHelpers.js @@ -0,0 +1,17 @@ +// Helper function to get text with fallback to Estonian +export function getLangText(item, key, lang = 'est') { + const value = item[key]; + + // If it's a simple string, return it + if (typeof value === 'string') { + return value; + } + + // If it's an object with language keys + if (value && typeof value === 'object') { + // Try to get the requested language, fallback to Estonian + return value[lang] || value.est || ''; + } + + return ''; +} diff --git a/src/lib/locales/en/AboutUs.json b/src/lib/locales/en/AboutUs.json new file mode 100644 index 0000000..fb9c4ed --- /dev/null +++ b/src/lib/locales/en/AboutUs.json @@ -0,0 +1,3 @@ +{ + "placeholder": "In development..." +} diff --git a/src/lib/locales/en/Calendar.json b/src/lib/locales/en/Calendar.json new file mode 100644 index 0000000..e7a7fe5 --- /dev/null +++ b/src/lib/locales/en/Calendar.json @@ -0,0 +1,3 @@ +{ + "iframeTitle": "Lapikud Calendar" +} diff --git a/src/lib/locales/en/Contact.json b/src/lib/locales/en/Contact.json new file mode 100644 index 0000000..61e40e4 --- /dev/null +++ b/src/lib/locales/en/Contact.json @@ -0,0 +1,60 @@ +{ + "hero": { + "title": "Get in touch", + "description": "Have questions? Want to join? Or start a collaboration? Feel free to contact us!" + }, + "methods": { + "title": "How to reach us?", + "subtitle": "Choose the method that works for you", + "addressTitle": "Address", + "emailTitle": "Email", + "phoneTitle": "Phone", + "messengerTitle": "Messenger", + "addressSubtitle": "ICT faculty, Raja 15 room 111" + }, + "form": { + "title": "Send us a message", + "subtitle": "Fill in the form and we will get back to you", + "nameLabel": "Name *", + "namePlaceholder": "Your name", + "emailLabel": "Email *", + "emailPlaceholder": "you@email.com", + "subjectLabel": "Subject *", + "subjectPlaceholder": "Message subject", + "messageLabel": "Message *", + "messagePlaceholder": "Write your message here...", + "submit": "Send message", + "mailBody": { + "name": "Name", + "email": "Email", + "message": "Message" + } + }, + "hours": { + "title": "Opening hours", + "weekdays": "Monday - Friday:", + "weekdaysTime": "10:00 - 16:00", + "weekend": "Saturday - Sunday:", + "weekendTime": "Closed", + "note": "* We recommend contacting us before visiting to avoid waiting" + }, + "location": { + "title": "How to find us?", + "addressLabel": "Address:", + "buildingLabel": "Building:", + "roomLabel": "Room:", + "address": "Akadeemia tee 5, 12616 Tallinn", + "building": "ICT faculty (Raja 15)", + "room": "111", + "note": "We are located in TalTech ICT faculty building. If you come by public transport, the nearest stops are \"Mustakivi\" and \"Tehnikaülikool\"." + }, + "social": { + "title": "Follow us on social media" + }, + "organization": { + "title": "Lapikud NGO", + "registryTitle": "Registry code", + "bankTitle": "Bank account", + "bankSubtitle": "Swedbank" + } +} diff --git a/src/lib/locales/en/Footer.json b/src/lib/locales/en/Footer.json new file mode 100644 index 0000000..5ea897a --- /dev/null +++ b/src/lib/locales/en/Footer.json @@ -0,0 +1,13 @@ +{ + "footer": { + "address": "Address: ", + "addressValue": "Akadeemia tee 5, 12616 Tallinn, Estonia", + "mail": "E-mail: ", + "phone": "Phone: ", + "messenger": "Messenger: ", + "reg": "Reg. code: ", + "bank": "Swedbank", + "socials": "Social Media", + "organization": "MTÜ Lapikud" + } +} diff --git a/src/lib/locales/en/Helpdesk.json b/src/lib/locales/en/Helpdesk.json new file mode 100644 index 0000000..081a1e6 --- /dev/null +++ b/src/lib/locales/en/Helpdesk.json @@ -0,0 +1,50 @@ +{ + "hero": { + "title": "HELPDESK" + }, + "whatIs": { + "title": "What is HELPDESK?", + "description": "HELPDESK is a computer support service provided by MTÜ Lapikud. The service is aimed at students, lecturers, and anyone interested both inside and outside Tallinn University of Technology. Our team consists of experienced and smart IT students from Tallinn University of Technology." + }, + "services": { + "title": "What services do we offer?", + "list": [ + "Computer hardware diagnostics and repair", + "Computer hardware maintenance", + "Software diagnostics and configuration", + "Software installation", + "Other electronics repair" + ] + }, + "pricing": { + "title": "Price List", + "tableHeaders": { + "service": "Service", + "quantity": "Quantity/Time", + "price": "Price" + }, + "notes": [ + "Parts are ordered by the client themselves or by agreement with the technician.", + "If needed, we can come to the student village and Technopol area.", + "With our student-friendly prices and personal approach, we offer a service you won't be disappointed with!" + ] + }, + "hours": { + "title": "Opening Hours:", + "schedule": [ + { "emphasis": "M", "text": "onday – " }, + { "emphasis": "F", "text": "riday 14-19*" } + ], + "note": "* This is the time period when we are most likely to be found. However, we cannot guarantee presence." + }, + "location": { + "title": "Location", + "busInfo": [ + { "text": "Accessible via " }, + { "text": "buses 11, 37, 83, 91 from Keemia stop", "highlight": true }, + { "text": " or " }, + { "text": "buses 10, 27, 33, 36, 45 from Tehnikaülikool stop.", "highlight": true } + ], + "address": "Akadeemia tee 5 dormitory, room 008A" + } +} diff --git a/src/lib/locales/en/Home.json b/src/lib/locales/en/Home.json new file mode 100644 index 0000000..bee0b5f --- /dev/null +++ b/src/lib/locales/en/Home.json @@ -0,0 +1,43 @@ +{ + "hero": { + "imageAlt": "Lapikud homepage background image", + "logoAlt": "Lapikud NGO", + "description": "Lapikud is TalTech's software development club, bringing together current and former students interested in IT.", + "joinButton": "Join LAPikud!" + }, + "services": { + "student": { + "title": "For students", + "description": "Develop your skills, make great friends, and gain practical experience through real projects.", + "imageAlt": "For students image" + }, + "helpdesk": { + "title": "Helpdesk", + "description": "HELPDESK is a computer support service provided by Lapikud for students, lecturers, and everyone interested.", + "imageAlt": "Helpdesk image" + }, + "company": { + "title": "For companies", + "description": "We help bring your ideas to life. Our experienced students are ready to deliver your projects.", + "imageAlt": "For companies image" + } + }, + "aboutSection": { + "title": "About us", + "description": "Our main goal is to create professional added value for TalTech IT students. We involve students in practical solutions where ideas can be implemented in real life and technical skills can be used in meaningful ways. Our projects often grow into useful and exciting thesis topics with clear practical value.", + "moreInfo": "More info", + "contact": "Contact", + "imageAlt": "Lapikud students working on a project" + }, + "whatWeDo": { + "title": "What we do", + "description": "We help companies and organizations bring ideas to life by building modern digital and software solutions. Our student-led team works on real projects to deliver practical value while developing the next generation of IT talent.", + "moreInfo": "More info", + "contact": "Contact", + "imageAlt": "Digital solutions created by Lapikud" + }, + "partners": { + "title": "Partners", + "moreInfo": "More info about partnerships" + } +} diff --git a/src/lib/locales/en/Management.json b/src/lib/locales/en/Management.json new file mode 100644 index 0000000..c1b3027 --- /dev/null +++ b/src/lib/locales/en/Management.json @@ -0,0 +1,16 @@ +{ + "hero": { + "eyebrow": "MTÜ Lapikud", + "title": "Management", + "intro": "People who keep the organisation moving forward." + }, + "current": { + "label": "Current board" + }, + "history": { + "label": "People who have led the organisation over time", + "hint": "Thanks to everyone who has helped guide Lapikud" + }, + "loading": "Loading data…", + "error": "Failed to load the management data." +} diff --git a/src/lib/locales/en/Mentors.json b/src/lib/locales/en/Mentors.json new file mode 100644 index 0000000..558328b --- /dev/null +++ b/src/lib/locales/en/Mentors.json @@ -0,0 +1,6 @@ +{ + "hero": { + "title": "Our Mentors", + "intro": "Lapikud who are always ready to support you in your studies and personal development, and with whom it's just nice to spend time together." + } +} \ No newline at end of file diff --git a/src/lib/locales/en/Navbar.json b/src/lib/locales/en/Navbar.json new file mode 100644 index 0000000..57da79d --- /dev/null +++ b/src/lib/locales/en/Navbar.json @@ -0,0 +1,18 @@ +{ + "about": "About Us", + "aboutPages": { + "info": "About Lapikud", + "join": "Join Us", + "mentors": "Mentors", + "board": "Board" + }, + "events": "Events", + "eventsPages": { + "workshops": "Workshops", + "tipilan": "TipiLAN", + "asi": "ASI Karikas", + "repair": "Remondikohvik" + }, + "helpdesk": "Helpdesk", + "contact": "Contact" +} diff --git a/src/lib/locales/en/OurWork.json b/src/lib/locales/en/OurWork.json new file mode 100644 index 0000000..3193d96 --- /dev/null +++ b/src/lib/locales/en/OurWork.json @@ -0,0 +1,111 @@ +{ + "intro": { + "prefix": "Our ", + "emphasis": "work.", + "subtitle": "A selection of projects our members have delivered, from websites to mobile apps." + }, + "hero": { + "title": "For companies", + "description": "We help bring your ideas to life. Our experienced students are ready to deliver your projects." + }, + "services": { + "title": "What do we offer?", + "subtitle": "A wide range of IT services for your business needs", + "items": [ + { + "title": "Web solutions", + "description": "Modern and responsive websites that work on every device" + }, + { + "title": "Mobile applications", + "description": "iOS and Android apps with user-friendly interfaces" + }, + { + "title": "Software development", + "description": "Custom software solutions for your business needs" + }, + { + "title": "Consulting", + "description": "IT consulting and project planning" + } + ] + }, + "whyUs": { + "title": "Why collaborate with us?", + "items": [ + { + "title": "Motivated team", + "description": "Our students are talented, eager, and ready to prove their skills" + }, + { + "title": "Quality results", + "description": "We take every project seriously and aim for the best outcome" + }, + { + "title": "Modern technologies", + "description": "We use up-to-date tools and technologies" + } + ] + }, + "process": { + "title": "How do we work?", + "steps": [ + { + "title": "First meeting", + "description": "We discuss your idea, needs, and goals to understand what you want to achieve." + }, + { + "title": "Planning", + "description": "We prepare a project plan, quote, and timeline, then align on details." + }, + { + "title": "Development", + "description": "Our team works on your project and keeps you regularly updated." + }, + { + "title": "Delivery", + "description": "We deliver the final product with documentation and onboarding." + }, + { + "title": "Support", + "description": "We provide ongoing support and maintenance when needed." + } + ] + }, + "fit": { + "title": "When are we a good fit?", + "items": [ + { + "title": "Startups and small businesses:", + "description": "Our services are cost-effective and flexible, ideal for limited budgets." + }, + { + "title": "Prototype development:", + "description": "Need a working prototype fast? Our agile team can move quickly." + }, + { + "title": "Thesis and projects:", + "description": "Your project can become a thesis topic for our students, ensuring a dedicated team." + }, + { + "title": "Long-term projects:", + "description": "We also offer long-term cooperation for more complex systems." + } + ] + }, + "portfolio": { + "label": "Our Work", + "title": "Projects that speak for themselves.", + "subtitle": "Every project has a story. Here is a selection of work our members have delivered over the years.", + "projectLink": "View project", + "featured": "Featured", + "placeholder": "No image", + "noDescription": "Description coming soon." + }, + "cta": { + "title": "Shall we start working together?", + "description": "Get in touch and let's discuss how we can bring your idea to life.", + "emailButton": "Send email", + "contactButton": "Contact details" + } +} diff --git a/src/lib/locales/en/Striim.json b/src/lib/locales/en/Striim.json new file mode 100644 index 0000000..aad42cf --- /dev/null +++ b/src/lib/locales/en/Striim.json @@ -0,0 +1,7 @@ +{ + "streamAlts": { + "first": "Camera 1 stream", + "second": "Camera 2 stream", + "third": "Camera 3 stream" + } +} diff --git a/src/lib/locales/en/Student.json b/src/lib/locales/en/Student.json new file mode 100644 index 0000000..dcd206e --- /dev/null +++ b/src/lib/locales/en/Student.json @@ -0,0 +1,109 @@ +{ + "hero": { + "bgWord": "Lapikud", + "tagline": "TalTech IT student organization", + "title": "IT student?", + "emphasis": "You have a place here.", + "description": "Lapikud is an organization with three teams where you can do real work — build software, help people with tech, or organize events. Joining does not commit you to anything.", + "cta": "See how to join", + "aside": "or first read what we do ↓" + }, + "teams": { + "kicker": "Three teams", + "title": "Choose what truly fits you.", + "subtitle": "Each team has its own focus. You do not need to do everything — join the team that matches you.", + "items": [ + { + "number": "01", + "title": "Software", + "short": "Real projects, real team.", + "about": [ + "The software team builds things people actually use. We work on external projects like TipLAN, do code reviews, and use the same workflow as in real jobs — Git, PRs, and architecture discussions.", + "This is where your CV gets meaningful content. You do not need to be experienced — senior members will help you get started." + ], + "tags": ["Git & collaboration", "Code review", "Real projects", "Hackathons"], + "whatTitle": "What we do", + "what": [ + "Build new features for external projects", + "Do code reviews and learn from each other", + "Discuss architecture and technical debt", + "Participate in hackathons and external events" + ], + "eventsTitle": "Recurring events", + "events": [ + "Weekly development sessions", + "Demo nights — show what you built", + "Workshops for new members" + ] + }, + { + "number": "02", + "title": "Helpdesk", + "short": "IT support for people who need it.", + "about": [ + "Helpdesk covers what lectures do not teach — diagnostics, hardware, operating system installation, and workstation setup. You work with real issues, not simulations.", + "We also run a public repair event with Remondiköök, where Tallinn residents can bring broken devices." + ], + "tags": ["Diagnostics", "Hardware", "IT support", "Remondiköök"], + "whatTitle": "What we do", + "what": [ + "Diagnose and repair computers and other devices", + "Set up workstations and install software", + "Document solutions in a knowledge base", + "Support events from the IT side" + ], + "eventsTitle": "Recurring events", + "events": [ + "Open support hours on campus", + "Remondiköök — public repair event", + "IT questions Q&A sessions" + ] + }, + { + "number": "03", + "title": "Culture", + "short": "A community does not maintain itself.", + "about": [ + "The culture team handles everything that keeps Lapikud alive outside of code. We plan events, manage social media channels, design materials in Canva and Figma, and organize larger events like ASI Karikas.", + "If you enjoy how organizations operate — communication, logistics, visuals — this is your team." + ], + "tags": ["Event organizing", "Social media", "Figma & Canva"], + "whatTitle": "What we do", + "what": [ + "Plan and run team and public events", + "Manage social media channels", + "Design materials in Canva and Figma", + "Support onboarding for new members" + ], + "eventsTitle": "Recurring events", + "events": [ + "Community evenings and team days", + "ASI Karikas and other major events", + "Public inspiration sessions" + ] + } + ] + }, + "mentor": { + "title": "Mentors", + "description": "There is no need to worry about joining: mentors help new members settle in, explain what each team does, introduce other Lapikud members, and help with first tasks and questions.", + "cta": "Meet our mentors" + }, + "join": { + "bgWord": "Join", + "kicker": "Joining", + "title": "Ready to join?", + "titleLine2": "Fill in the form.", + "description": "No prior experience is required in any team, even if it can be helpful. We try to find tasks suitable for every level, and if needed, we will squeeze some knowledge out of our own brains for you — meaning we will teach you how to do things.", + "cta": "Fill in the form →", + "contactPrefix": "or write to", + "email": "lapikud@lapikud.ee" + }, + "members": { + "kicker": "Our people", + "title": "Members", + "senior": "Senior members", + "junior": "Junior members", + "graduates": "Alumni" + } +} diff --git a/src/lib/locales/en/Workshops.json b/src/lib/locales/en/Workshops.json new file mode 100644 index 0000000..412494e --- /dev/null +++ b/src/lib/locales/en/Workshops.json @@ -0,0 +1,13 @@ +{ + "hero": { + "label": "Our work", + "title": "Workshops", + "titleHighlight": "& courses.", + "subtitle": "A selection of workshops conducted by our members over the years." + }, + "details": { + "mentor": "Mentor", + "duration": "Duration", + "date": "Date" + } +} diff --git a/src/lib/locales/est/AboutUs.json b/src/lib/locales/est/AboutUs.json new file mode 100644 index 0000000..595ec05 --- /dev/null +++ b/src/lib/locales/est/AboutUs.json @@ -0,0 +1,3 @@ +{ + "placeholder": "Arenduses..." +} diff --git a/src/lib/locales/est/Calendar.json b/src/lib/locales/est/Calendar.json new file mode 100644 index 0000000..141c1a8 --- /dev/null +++ b/src/lib/locales/est/Calendar.json @@ -0,0 +1,3 @@ +{ + "iframeTitle": "Lapikute kalender" +} diff --git a/src/lib/locales/est/Contact.json b/src/lib/locales/est/Contact.json new file mode 100644 index 0000000..787a365 --- /dev/null +++ b/src/lib/locales/est/Contact.json @@ -0,0 +1,60 @@ +{ + "hero": { + "title": "Võta ühendust", + "description": "Kas sul on küsimusi? Tahad liituda? Või soovid alustada koostööd? Võta julgelt ühendust!" + }, + "methods": { + "title": "Kuidas meiega ühendust võtta?", + "subtitle": "Vali endale sobiv viis", + "addressTitle": "Aadress", + "emailTitle": "E-post", + "phoneTitle": "Telefon", + "messengerTitle": "Messenger", + "addressSubtitle": "ICT-teaduskond, Raja 15 ruum 111" + }, + "form": { + "title": "Saada meile sõnum", + "subtitle": "Täida vorm ja me võtame sinuga ühendust", + "nameLabel": "Nimi *", + "namePlaceholder": "Sinu nimi", + "emailLabel": "E-post *", + "emailPlaceholder": "sinu@email.ee", + "subjectLabel": "Teema *", + "subjectPlaceholder": "Sõnumi teema", + "messageLabel": "Sõnum *", + "messagePlaceholder": "Kirjuta oma sõnum siia...", + "submit": "Saada sõnum", + "mailBody": { + "name": "Nimi", + "email": "E-post", + "message": "Sõnum" + } + }, + "hours": { + "title": "Lahtiolekuajad", + "weekdays": "Esmaspäev - Reede:", + "weekdaysTime": "10:00 - 16:00", + "weekend": "Laupäev - Pühapäev:", + "weekendTime": "Suletud", + "note": "* Soovitame enne külastamist võtta ühendust, et vältida ootamist" + }, + "location": { + "title": "Kuidas meid leida?", + "addressLabel": "Aadress:", + "buildingLabel": "Hoone:", + "roomLabel": "Ruum:", + "address": "Akadeemia tee 5, 12616 Tallinn", + "building": "ICT-teaduskond (Raja 15)", + "room": "111", + "note": "Asume Tallinna Tehnikaülikooli ICT-teaduskonna hoones. Kui tuled ühistranspordiga, on lähimad peatused \"Mustakivi\" ja \"Tehnikaülikool\"." + }, + "social": { + "title": "Jälgi meid sotsiaalmeedias" + }, + "organization": { + "title": "MTÜ Lapikud", + "registryTitle": "Registrikood", + "bankTitle": "Pangakonto", + "bankSubtitle": "Swedbank" + } +} diff --git a/src/lib/locales/est/Footer.json b/src/lib/locales/est/Footer.json new file mode 100644 index 0000000..0fbbc83 --- /dev/null +++ b/src/lib/locales/est/Footer.json @@ -0,0 +1,13 @@ +{ + "footer": { + "address": "Aadress: ", + "addressValue": "Akadeemia tee 5, 12616 Tallinn, Eesti", + "mail": "E-post: ", + "phone": "Tel: ", + "messenger": "Messenger: ", + "reg": "Reg. kood: ", + "bank": "Swedbank", + "socials": "Sotsiaalmeedia", + "organization": "MTÜ Lapikud" + } +} diff --git a/src/lib/locales/est/Helpdesk.json b/src/lib/locales/est/Helpdesk.json new file mode 100644 index 0000000..7d5e8dc --- /dev/null +++ b/src/lib/locales/est/Helpdesk.json @@ -0,0 +1,50 @@ +{ + "hero": { + "title": "HELPDESK" + }, + "whatIs": { + "title": "Mis on HELPDESK?", + "description": "HELPDESK on MTÜ Lapikute poolt pakutav arvutiabiteenus. Teenus on suunatud tudengitele, õppejõududele ning kõikidele huvilistele ka väljaspool Tallinna Tehnikaülikooli. Meie meeskond koosneb kogenud ja nutikatest Tallinna Tehnikaülikooli IT-tudengitest." + }, + "services": { + "title": "Mis teenuseid osutame?", + "list": [ + "Arvuti riistvara diagnostika ja remont", + "Arvuti riistvara hooldus", + "Tarkvara diagnostika ja seadistamine", + "Tarkvara paigaldamine", + "Muu elektroonika parandamine" + ] + }, + "pricing": { + "title": "Hinnakiri", + "tableHeaders": { + "service": "Teenus", + "quantity": "Kogus/Aeg", + "price": "Hind" + }, + "notes": [ + "Jupid tellitakse kliendi enda poolt või kokkuleppel tehnikuga.", + "Vajadusel tuleme üliõpilasküla ja Tehnopoli piires kohale.", + "Oma tudengisõbralike hindade ja personaalse lähenemisega pakume teenust, milles ei pea pettuma!" + ] + }, + "hours": { + "title": "Lahtiolekuajad:", + "schedule": [ + { "emphasis": "E", "text": "smaspäevast – " }, + { "emphasis": "R", "text": "eedeni 14-19*" } + ], + "note": "* Tegu on ajaperioodiga, mil meid on kõige tõenäolisem tabada. Siiski ei saa garanteerida kohalolekut." + }, + "location": { + "title": "Asukoht", + "busInfo": [ + { "text": "Saab " }, + { "text": "11, 37, 83, 91 bussiga Keemia peatusest", "highlight": true }, + { "text": " või " }, + { "text": "Tehnikaülikool peatusest 10, 27, 33, 36, 45 bussiga.", "highlight": true } + ], + "address": "Akadeemia tee 5 ühiselamu, ruum 008A" + } +} diff --git a/src/lib/locales/est/Home.json b/src/lib/locales/est/Home.json new file mode 100644 index 0000000..1571648 --- /dev/null +++ b/src/lib/locales/est/Home.json @@ -0,0 +1,43 @@ +{ + "hero": { + "imageAlt": "Lapikute avalehe taustapilt", + "logoAlt": "MTÜ Lapikud", + "description": "MTÜ Lapikud on Tallinna Tehnikaülikooli Tarkvaraarendusklubi, mis ühendab endisi ja praegusi IT huvilisi tudengeid.", + "joinButton": "Liitu LAPikutega!" + }, + "services": { + "student": { + "title": "Tudengile", + "description": "Tule arenda oma oskuseid ja saa ägedaid sõpru! Omanda praktilist kogemust reaalsetest projektidest.", + "imageAlt": "Tudengile pilt" + }, + "helpdesk": { + "title": "Helpdesk", + "description": "HELPDESK on MTÜ Lapikute poolt pakutav arvutiabiteenus. Teenus on suunatud tudengitele, õppejõududele ning kõikidele huvilistele.", + "imageAlt": "Helpdeski pilt" + }, + "company": { + "title": "Ettevõttele", + "description": "Aitame sinu ideed ellu viia! Meie kogenud tudengid on valmis teie projekte realiseerima.", + "imageAlt": "Ettevõttele pilt" + } + }, + "aboutSection": { + "title": "Meist", + "description": "Meie põhieesmärgiks on Tallinna Tehnikaülikooli IT tudengitele erialase lisandväärtuse loomine. Kaasame tudengeid huvitavatesse IT projektidesse ning anname tudengitele võimaluse midagi reaalset oma käega ära teha. Aktiivsetel tudengitel on võimalus saada meie juures esimene töökogemus. Meie projektidest kooruvad välja huvitavad ja tarvilikud lõputööd ning meie liikmeskonnast on tulnud ka lõputöö juhendaja.", + "moreInfo": "Rohkem infot", + "contact": "Kontakt", + "imageAlt": "Lapikute tudengid projekti kallal" + }, + "whatWeDo": { + "title": "Keda ja kuidas kaasame", + "description": "Lapikud ei ole ainult IT tudengite organisatsioon – püüame kaasata oma tegevusse ka teiste teaduskondade tudengeid. Näiteks sobiksid inseneeria tudengid hästi meie Helpdeski meeskonda või majandusteaduskonna tudengid tegelema meie projektides ärilise poolega või turundamisega.", + "moreInfo": "Rohkem infot", + "contact": "Liitu meiega", + "imageAlt": "Lapikud parandamas riistvara" + }, + "partners": { + "title": "Koostööpartnerid", + "moreInfo": "Rohkem infot partnerluste kohta" + } +} diff --git a/src/lib/locales/est/Management.json b/src/lib/locales/est/Management.json new file mode 100644 index 0000000..c2dc9ca --- /dev/null +++ b/src/lib/locales/est/Management.json @@ -0,0 +1,16 @@ +{ + "hero": { + "eyebrow": "MTÜ Lapikud", + "title": "Juhtkond", + "intro": "Inimesed, kes viivad organisatsiooni edasi." + }, + "current": { + "label": "Praegune juhtkond" + }, + "history": { + "label": "Organisatsiooni juhtinud inimesed läbi aegade", + "hint": "Tänu kõigile, kes on Lapikuid juhtinud" + }, + "loading": "Laadin andmeid…", + "error": "Juhtkonna andmete laadimine ebaõnnestus." +} diff --git a/src/lib/locales/est/Mentors.json b/src/lib/locales/est/Mentors.json new file mode 100644 index 0000000..76e1cf6 --- /dev/null +++ b/src/lib/locales/est/Mentors.json @@ -0,0 +1,6 @@ +{ + "hero": { + "title": "Meie Mentorid", + "intro": "Lapikud, kes on alati valmis olema sinu toeks nii õpingutes kui ka isiklikus arengus ja kellega on lihtsalt tore koos aega veeta." + } +} \ No newline at end of file diff --git a/src/lib/locales/est/Navbar.json b/src/lib/locales/est/Navbar.json new file mode 100644 index 0000000..6a330ff --- /dev/null +++ b/src/lib/locales/est/Navbar.json @@ -0,0 +1,18 @@ +{ + "about": "Meist", + "aboutPages": { + "info": "Lapikutest", + "join": "Liitu Meiega", + "mentors": "Mentorid", + "board": "Juhatus" + }, + "events": "Üritused", + "eventsPages": { + "workshops": "Koolitused", + "tipilan": "TipiLAN", + "asi": "ASI Karikas", + "repair": "Remondikohvik" + }, + "helpdesk": "Helpdesk", + "contact": "Kontakt" +} diff --git a/src/lib/locales/est/OurWork.json b/src/lib/locales/est/OurWork.json new file mode 100644 index 0000000..22f6df7 --- /dev/null +++ b/src/lib/locales/est/OurWork.json @@ -0,0 +1,111 @@ +{ + "intro": { + "prefix": "Meie tehtud ", + "emphasis": "tööd.", + "subtitle": "Valik projekte, mida meie liikmed on teostanud, veebilehtedest mobiilirakendusteni." + }, + "hero": { + "title": "Ettevõttele", + "description": "Aitame sinu ideed ellu viia! Meie kogenud tudengid on valmis teie projekte realiseerima." + }, + "services": { + "title": "Mida me pakume?", + "subtitle": "Laia valik IT-teenuseid teie ärivajaduste täitmiseks", + "items": [ + { + "title": "Veebilahendused", + "description": "Kaasaegsed ja responsiivsed veebilehed, mis toimivad igal seadmel" + }, + { + "title": "Mobiilirakendused", + "description": "iOS ja Android rakendused kasutajasõbralike liidestega" + }, + { + "title": "Tarkvara arendus", + "description": "Kohandatud tarkvaralahendused teie ärivajadusteks" + }, + { + "title": "Konsultatsioon", + "description": "IT-nõustamine ja projekti planeerimine" + } + ] + }, + "whyUs": { + "title": "Miks meiega koostööd teha?", + "items": [ + { + "title": "Motiveeritud meeskond", + "description": "Meie tudengid on andekad, õhevil ja tahavad tõestada oma oskuseid" + }, + { + "title": "Kvaliteetne tulemus", + "description": "Võtame iga projekti tõsiselt ja pingutame parima tulemuse nimel" + }, + { + "title": "Kaasaegsed tehnoloogiad", + "description": "Kasutame uusimaid tööriistu ja tehnoloogiaid" + } + ] + }, + "process": { + "title": "Kuidas töötame?", + "steps": [ + { + "title": "Esimene kohtumine", + "description": "Arutame teie ideed, vajadusi ja eesmärke. Mõistame, mida soovite saavutada." + }, + { + "title": "Planeerimine", + "description": "Koostame projekti plaani, hinnapakkumise ja ajakava. Lepime kokku detailides." + }, + { + "title": "Arendus", + "description": "Meie meeskond töötab teie projekti kallal. Hoiame teid regulaarselt kursis." + }, + { + "title": "Üleandmine", + "description": "Anname valmis toote üle koos dokumentatsiooni ja juhendamisega." + }, + { + "title": "Tugi", + "description": "Pakume vajadusel jätkuvat tuge ja hooldust." + } + ] + }, + "fit": { + "title": "Millal meie sobime?", + "items": [ + { + "title": "Startup ja väikeettevõtted:", + "description": "Meie teenused on hinnaefektiivsed ja paindlikud, sobides hästi piiratud eelarvega projektidele." + }, + { + "title": "Prototüüpide arendus:", + "description": "Vajate kiiresti töökorras prototüüpi? Meie agile meeskond suudab kiiresti teie idee ellu viia." + }, + { + "title": "Lõputööd ja projektid:", + "description": "Teie projekt võib saada meie tudengite lõputöö teemaks, mis tagab motiveeritud ja pühendunud meeskonna." + }, + { + "title": "Pikaajalised projektid:", + "description": "Pakume ka pikemaajalisi koostöövõimalusi keerulisemate süsteemide arendamiseks." + } + ] + }, + "portfolio": { + "label": "Tehtud tööd", + "title": "Projektid, mis räägivad enda eest.", + "subtitle": "Igal projektil on oma lugu. Siin on valik töödest, mida meie liikmed on aastate jooksul ellu viinud.", + "projectLink": "Vaata projekti", + "featured": "Esile tõstetud", + "placeholder": "Pilt puudub", + "noDescription": "Kirjeldus lisamisel." + }, + "cta": { + "title": "Alustame koostööd?", + "description": "Võta ühendust ja arutame, kuidas saame sinu ideed ellu viia!", + "emailButton": "Saada e-kiri", + "contactButton": "Kontaktandmed" + } +} diff --git a/src/lib/locales/est/Striim.json b/src/lib/locales/est/Striim.json new file mode 100644 index 0000000..3d45f73 --- /dev/null +++ b/src/lib/locales/est/Striim.json @@ -0,0 +1,7 @@ +{ + "streamAlts": { + "first": "Kaamera 1 voog", + "second": "Kaamera 2 voog", + "third": "Kaamera 3 voog" + } +} diff --git a/src/lib/locales/est/Student.json b/src/lib/locales/est/Student.json new file mode 100644 index 0000000..0c0a10c --- /dev/null +++ b/src/lib/locales/est/Student.json @@ -0,0 +1,120 @@ +{ + "hero": { + "bgWord": "Lapikud", + "tagline": "TalTech IT tudengite organisatsioon", + "title": "IT-tudeng?", + "emphasis": "Sul on koht siin.", + "description": "Lapikute põhieesmärk on ühendada IT-st ja arvutitest huvitatud tudengeid, et üheskoos tegeleda tarkvaraprojektidega ning arvutite ja nende parandamisega. Tahame anda tudengitele ülikooli kõrvalt lisakogemust ja tööl kasulikuks osutuvaid oskuseid. Teine oluline eesmärk on pakkuda tudengitele toetavat ja lõbusat seltskonda, et ülikoolis veedetud aastad oleks ikka meeldejäävad. Selleks korraldame üritusi ja veedame koos toredalt aega.", + "cta": "Vaata, kuidas liituda", + "aside": "või loe esmalt, mida me teeme ↓" + }, + "teams": { + "kicker": "Kolm tiimi", + "title": "Vali, mis sind päriselt kõnetab.", + "subtitle": "Igal tiimil on oma fookus. Sa ei pea kõigega tegelema — liitud tiimiga, mis sobib.", + "items": [ + { + "title": "Tarkvara", + "short": "Päris projektid, päris meeskond.", + "about": [ + "Tarkvaratiimiga liitudes saad praktilise kogemuse tarkvara arendamisest. Selleks on meil erinevad koolitused ja projektid, millega saab liituda. Me arendame veebilehti, nagu näiteks TipiLAN, tegeleme mängude arendusega ja oleme teinud ka palju muud huvitavat, näiteks mikrokontrollereid programmeerinud.", + "Ootame alati uusi ideid, mida võiks järgmisena teha, kuid saame ka Lapikutest väljapoolt projekte, seega tegevust jagub. Korraldame ka iga aasta programmeerimisvõistlust ASI Karikas, kus on võimalik välja mõelda programmeerimisülesandeid.", + "Tarkvaratiimis õpid kasutama Githubi ja Giti. Saad kogeda, kuidas toimub tarkvara arendamine tiimiga, mis täiustab sinu tehinilisi oskuseid, kuid võib-olla veelgi tähtsamalt, sinu suhtlemisoskust. Õpid töötama erinevate programmeerimiskeeltega ja neile vastavate raamistikega. Soovime kasvatada enda liikmetes julgust ja initsiatiivi, et nende eesmärgid, olgu need kui suured tahes, ei tunduks võimatud.", + "Meie liikmed ka tõdevad, et just Lapikutes saadud oskused ja tutvused on põhjus, miks nad praktikale või tööle said." + ], + "links": [ + { "label": "TipiLAN", "href": "https://tipilan.ee/" }, + { "label": "ASI Karikas", "href": "https://asikarikas.ee/" } + ], + "tags": ["Git & koostöö", "Code review", "Päris projektid", "Hackathonid"], + "whatTitle": "Mida tehakse", + "what": [ + "Arendatakse veebilehti ja rakendusi (nt TipiLAN)", + "Töötatakse välisprojektide ja tellimustega", + "Tehakse koodiülevaatusi ja arutatakse arhitektuuri", + "Arendatakse mikrokontrollerite ja mängude projekte" + ], + "eventsTitle": "Korduvad üritused", + "events": [ + "Iganädalased arendussessioonid", + "Demoõhtud ja projektide esitlused", + "Töötoad ja uute liikmete koolitused" + ] + }, + { + "title": "Helpdesk", + "short": "IT-tugi inimestele, kes seda vajavad.", + "about": [ + "Helpdeski meeskonnaga ühinemine annab sulle võimaluse toimetada arvutite ning muu tehnikaga, nagu kõlarid või raadiod. Arvutitel tuleb diagnoosida probleem ning vajadusel see parandada. Lisaks tegeletakse jootmise, tolmupuhastuse, operatsioonisüsteemi installimise ja seadistamisega ning palju palju muuga.", + "Helpdeski eesmärk on lahendada klientide nii arvutite kui ka muu tehnikaga seonduvaid probleeme (ja olgu mainitud, et seda kõike tudengisõbraliku hinnaga pealekauba). Suur osa tasust läheb ka tegijale, et rahakott nälga ei jääks.", + "Helpdeskiga seonduvalt toimub ka paar korda aastas Remondikohvik. See on kogukonna üritus, kus Tallinna elanikud saavad enda katkise tehnika meile tuua ja koos Lapikute Helpdeski ning ka muude abiliste juhendamisel selle ära parandada." + ], + "links": [ + { "label": "Remondikohvik", "href": "https://remondikohvik.lapikud.ee/" } + ], + "tags": ["Diagnostika", "Riistvara", "IT-tugi", "Remondiköök"], + "whatTitle": "Mida tehakse", + "what": [ + "Diagnoositakse ja parandatakse arvuteid ja seadmeid", + "Installitakse ja seadistatakse operatsioonisüsteeme", + "Teostatakse riistvara hooldust (jootmine, puhastus)", + "Hallatakse IT-tuge ja kasutajate probleeme" + ], + "eventsTitle": "Korduvad üritused", + "events": [ + "Ava-abi tunnid campus'es", + "Remondiköök – avalik remondiüritus", + "IT-küsimuste ja abi sessioonid" + ] + }, + { + "title": "Kultuur", + "short": "Kogukond ei püsi ise üleval.", + "about": [ + "Kultuuritiim ühendab enda alla ürituste korraldamise ja turundustegevuse. Kultuuritiim vastutab selle eest, et Lapikute meel oleks lahutatud ja nädal sisustatud ning et peale ülikoolis veedetud pikka ja uusi teadmisi täis päeva saaks teistega koos mõnusalt aega veeta.", + "Näiteks oleme korraldanud videomängude LAN-e, filmiõhtuid ja seriaalide ühisvaatamisi, käinud Tallinna tunneleid avastamas, talisuplemas, ronimas, airsofti mängimas ning korraldanud pidusid, nagu pikslipidu ja vikermasetsus.", + "Lisaks tegeleb kultuuritiim ka mõne suurürituse turundamisega, olgu selleks siis programmeerimisvõistlus ASI Karikas või Helpdeski Remondikohvik. Muidugi ka Lapikute enda turundusega.", + "Saad õppida, kuidas kasutada Facebooki ja Instagrami ürituste turundamiseks ja Lapikute tegevuste kajastamiseks, kuidas luua silmajäävat plakatit/bannerit Canvas ja Figmas ning kuidas sponsoritega tegeleda. Usume, et need oskused võivad kasuks tulla nii tööotsingutel ja enda turundamisel, kui ka oma lähedastega ürituste planeerimisel." + ], + "links": [ + { "label": "ASI Karikas", "href": "https://asikarikas.ee/" }, + { "label": "Remondikohvik", "href": "https://remondikohvik.lapikud.ee/" } + ], + "tags": ["Ürituste korraldus", "Turundus", "Sotsiaalmeedia", "Figma & Canva"], + "whatTitle": "Mida tehakse", + "what": [ + "Planeeritakse ja korraldatakse üritusi", + "Hallatakse turundust ja sotsiaalmeediat", + "Disainitakse visuaale ja materjale" + ], + "eventsTitle": "Näited üritustest", + "events": [ + "LAN-id ja mänguõhtud", + "Filmi- ja seriaalide ühisvaatamised", + "Väljasõidud ja avastusretked", + "Temaatilised peod" + ] + } + ] + }, + "mentor": { + "title": "Mentorid", + "description": "Kui tahad meie organisatsiooniga liituda, siis pole midagi karta, sest algset sisseelamist abistavad mentorid. Liitudes saad omale mentori, kes räägib täpsemalt, mida iga tiim teeb, tutvustab sind teistele Lapikutele ja aitab esimeste ülesannetega ja igasuguste tekkinud küsimustega.", + "cta": "Tutvu meie mentoritega!" + }, + "join": { + "bgWord": "Liitu", + "kicker": "Liitumine", + "title": "Valmis liituma?", + "titleLine2": "Täida avaldus.", + "description": "Üheski tiimis pole varasemat kogemust vaja, isegi kui see tuleks kasuks. Üritame leida igale tasemele vastavaid ülesandeid ning vajadusel pigistame teie jaoks enda ajudest ka tarkust välja ehk õpetame, kuidas midagi teha.", + "cta": "Täida avaldus →" + }, + "members": { + "kicker": "Meie inimesed", + "title": "Liikmed", + "senior": "Vanemliikmed", + "junior": "Noorliikmed", + "graduates": "Vilistlased" + } +} diff --git a/src/lib/locales/est/Workshops.json b/src/lib/locales/est/Workshops.json new file mode 100644 index 0000000..1e1b9f8 --- /dev/null +++ b/src/lib/locales/est/Workshops.json @@ -0,0 +1,13 @@ +{ + "hero": { + "label": "Meie tehtud", + "title": "Koolitused", + "titleHighlight": "& töötoad.", + "subtitle": "Valik koolitusi, mida meie liikmed on aastate jooksul läbi viinud." + }, + "details": { + "mentor": "Juhendaja", + "duration": "Kestus", + "date": "Toimumisaeg" + } +} diff --git a/src/lib/router/Router.vue b/src/lib/router/Router.vue new file mode 100644 index 0000000..ec1bc7e --- /dev/null +++ b/src/lib/router/Router.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/lib/router/router.js b/src/lib/router/router.js new file mode 100644 index 0000000..209da11 --- /dev/null +++ b/src/lib/router/router.js @@ -0,0 +1,84 @@ +import { getTranslatedRoute, getLanguageFromRoute } from '../../routes'; +import { switchLang } from '../i18n.js'; + +/** + * Navigate to a path (internal or external) + * @param {string} path - The path or URL to navigate to + * @param {Object} options - Navigation options + * @param {boolean} options.external - Whether this is an external link + */ +export function navigate(path, options = {}) { + const { external = false } = options; + + if (external) { + window.open(path, '_blank', 'noopener,noreferrer'); + } else { + const url = new URL(path, window.location.origin); + if (url.origin !== window.location.origin) { + window.location.assign(url.href); + return; + } + + const selectedLang = + getLanguageFromRoute(window.location.pathname) || + localStorage.getItem('language') || + 'est'; + url.pathname = getTranslatedRoute(url.pathname, selectedLang); + commitNavigation(`${url.pathname}${url.search}${url.hash}`); + } +} + +function commitNavigation(path) { + window.history.pushState({}, '', path); + window.scrollTo(0, 0); + window.dispatchEvent(new PopStateEvent('popstate')); + + const lang = getLanguageFromRoute(new URL(path, window.location.origin).pathname); + if (lang) switchLang(lang); +} + +/** + * Switch language and navigate to translated route + * @param {string} targetLang - Target language ('est' or 'en') + */ +export function switchLanguageRoute(targetLang) { + const currentPath = window.location.pathname; + const translatedPath = getTranslatedRoute(currentPath, targetLang); + + switchLang(targetLang); + + if (translatedPath !== currentPath) { + commitNavigation(translatedPath); + } +} + +/** + * Go back in browser history + */ +export function goBack() { + window.history.back(); +} + +/** + * Reload the current page + */ +export function reload() { + window.location.reload(); +} + +/** + * Get the current pathname + * @returns {string} Current path + */ +export function getPath() { + return window.location.pathname; +} + +/** + * Get URL query parameters as an object + * @returns {Object} Query parameters + */ +export function getQuery() { + const params = new URLSearchParams(window.location.search); + return Object.fromEntries(params.entries()); +} diff --git a/src/lib/yaml.js b/src/lib/yaml.js new file mode 100644 index 0000000..dab8867 --- /dev/null +++ b/src/lib/yaml.js @@ -0,0 +1,18 @@ +import yaml from 'js-yaml'; + +export async function loadYaml(path, fallback) { + try { + const response = await fetch(path); + if (!response.ok) throw new Error(`HTTP ${response.status}`); + const value = yaml.load(await response.text()); + const matchesFallback = Array.isArray(fallback) + ? Array.isArray(value) + : typeof fallback === 'object' && fallback !== null + ? typeof value === 'object' && value !== null && !Array.isArray(value) + : value !== undefined && value !== null; + return matchesFallback ? value : fallback; + } catch (error) { + console.warn(`Failed to load YAML from ${path}:`, error); + return fallback; + } +} diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..bb90c33 --- /dev/null +++ b/src/main.js @@ -0,0 +1,8 @@ +import { createApp } from 'vue' +import './app.css' +import App from './App.vue' + +const app = createApp(App) +app.mount('#app') + +export default app diff --git a/src/routes/AboutUs.vue b/src/routes/AboutUs.vue new file mode 100644 index 0000000..c248efd --- /dev/null +++ b/src/routes/AboutUs.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/routes/Calendar.vue b/src/routes/Calendar.vue new file mode 100644 index 0000000..34887d2 --- /dev/null +++ b/src/routes/Calendar.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/routes/Contact.vue b/src/routes/Contact.vue new file mode 100644 index 0000000..d6992a9 --- /dev/null +++ b/src/routes/Contact.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/routes/Helpdesk.vue b/src/routes/Helpdesk.vue new file mode 100644 index 0000000..37a7707 --- /dev/null +++ b/src/routes/Helpdesk.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/src/routes/Home.vue b/src/routes/Home.vue new file mode 100644 index 0000000..4069673 --- /dev/null +++ b/src/routes/Home.vue @@ -0,0 +1,401 @@ + + + diff --git a/src/routes/Managment.vue b/src/routes/Managment.vue new file mode 100644 index 0000000..d566a76 --- /dev/null +++ b/src/routes/Managment.vue @@ -0,0 +1,175 @@ + + + diff --git a/src/routes/Mentors.vue b/src/routes/Mentors.vue new file mode 100644 index 0000000..41ba6d3 --- /dev/null +++ b/src/routes/Mentors.vue @@ -0,0 +1,187 @@ + + + diff --git a/src/routes/OurWork.vue b/src/routes/OurWork.vue new file mode 100644 index 0000000..95c5611 --- /dev/null +++ b/src/routes/OurWork.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/src/routes/Striim.vue b/src/routes/Striim.vue new file mode 100644 index 0000000..7d243c8 --- /dev/null +++ b/src/routes/Striim.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/routes/Student.vue b/src/routes/Student.vue new file mode 100644 index 0000000..6a9c1f9 --- /dev/null +++ b/src/routes/Student.vue @@ -0,0 +1,205 @@ + + + diff --git a/src/routes/Workshops.vue b/src/routes/Workshops.vue new file mode 100644 index 0000000..a82f285 --- /dev/null +++ b/src/routes/Workshops.vue @@ -0,0 +1,142 @@ + + + diff --git a/src/routes/index.js b/src/routes/index.js new file mode 100644 index 0000000..d171244 --- /dev/null +++ b/src/routes/index.js @@ -0,0 +1,113 @@ +// ADD PAGES HERE TO REGISTER ROUTES +// examples: '/page', '/page/:id' + +const loadHome = () => import('./Home.vue'); +const loadStudent = () => import('./Student.vue'); +const loadMentors = () => import('./Mentors.vue'); +const loadHelpdesk = () => import('./Helpdesk.vue'); +const loadOurWork = () => import('./OurWork.vue'); +const loadAboutUs = () => import('./AboutUs.vue'); +const loadContact = () => import('./Contact.vue'); +const loadManagment = () => import('./Managment.vue'); +const loadStriim = () => import('./Striim.vue'); +const loadCalendar = () => import('./Calendar.vue'); +const loadWorkshops = () => import('./Workshops.vue'); + +// Route mapping for language switching +export const routeMap = { + // Home + '/': { est: '/', en: '/' }, + + // Student/Tudengile + '/tudengile': { est: '/tudengile', en: '/student' }, + '/student': { est: '/tudengile', en: '/student' }, + + // Mentors/Mentorid + '/mentorid': { est: '/mentorid', en: '/mentors' }, + '/mentors': { est: '/mentorid', en: '/mentors' }, + + // Helpdesk + '/helpdesk': { est: '/helpdesk', en: '/helpdesk' }, + + // OurWork/Ettevõttele + '/ettevottele': { est: '/ettevottele', en: '/ourwork' }, + '/ourwork': { est: '/ettevottele', en: '/ourwork' }, + + // AboutUs/Lapikutest + '/lapikutest': { est: '/lapikutest', en: '/aboutus' }, + '/aboutus': { est: '/lapikutest', en: '/aboutus' }, + + // Contact/Kontakt + '/kontakt': { est: '/kontakt', en: '/contact' }, + '/contact': { est: '/kontakt', en: '/contact' }, + + // Juhatus/Managment + '/juhatus': { est: '/juhatus', en: '/management' }, + '/management': { est: '/juhatus', en: '/management' }, + + // Workshops/Koolitused + '/koolitused': { est: '/koolitused', en: '/workshops' }, + '/workshops': { est: '/koolitused', en: '/workshops' }, + + // Calendar/Kalender + '/kalender': { est: '/kalender', en: '/calendar' }, + '/calendar': { est: '/kalender', en: '/calendar' }, +}; + +// Detect language from route +export function getLanguageFromRoute(path) { + const estRoutes = [ + '/tudengile', + '/mentorid', + '/ettevottele', + '/lapikutest', + '/kontakt', + '/juhatus', + '/koolitused', + '/kalender', + ]; + const enRoutes = [ + '/student', + '/mentors', + '/ourwork', + '/aboutus', + '/contact', + '/management', + '/workshops', + '/calendar', + ]; + + if (estRoutes.includes(path)) return 'est'; + if (enRoutes.includes(path)) return 'en'; + + return null; +} + +// Get translated route +export function getTranslatedRoute(currentPath, targetLang) { + const mapping = routeMap[currentPath]; + if (!mapping) return currentPath; + return mapping[targetLang] || currentPath; +} + +export const routes = { + '/': loadHome, + '/tudengile': loadStudent, + '/student': loadStudent, + '/mentorid': loadMentors, + '/mentors': loadMentors, + '/helpdesk': loadHelpdesk, + '/ettevottele': loadOurWork, + '/ourwork': loadOurWork, + '/lapikutest': loadAboutUs, + '/aboutus': loadAboutUs, + '/kontakt': loadContact, + '/contact': loadContact, + '/juhatus': loadManagment, + '/management': loadManagment, + '/koolitused': loadWorkshops, + '/workshops': loadWorkshops, + '/striim': loadStriim, + '/kalender': loadCalendar, + '/calendar': loadCalendar, +} diff --git a/src/stories/Svg.stories.js b/src/stories/Svg.stories.js new file mode 100644 index 0000000..2255e0c --- /dev/null +++ b/src/stories/Svg.stories.js @@ -0,0 +1,13 @@ +import Svg, { VARIANTS } from '../components/Svg.vue'; + +export default { + title: 'Components/Svg', + component: Svg, + argTypes: { + type: { control: 'select', options: VARIANTS }, + }, +}; + +export const Preview = { + args: { type: VARIANTS[0] }, +}; diff --git a/statute.html b/statute.html deleted file mode 100644 index db4d64e..0000000 --- a/statute.html +++ /dev/null @@ -1,200 +0,0 @@ ---- -layout: default -title: Põhikiri - Lapikud ---- -
-

MTÜ Lapikud põhikiri

- - -
-

1 ÜLDSÄTTED

-

1.1 Mittetulundusühingu (edaspidi “Ühing”) nimeks on mittetulundusühing Lapikud (lühendatult MTÜ Lapikud).
- 1.1.1 Ühingu mitteametlik nimi on Tallinna Tehnikaülikooli Tarkvaraarenduse klubi.
- 1.2 Ühingu asukohaks on Eesti Vabariik, Tallinn.
- 1.3 Ühing on mittetulundusühinguna eraõiguslik juriidiline isik, mis oma tegevuses juhindub Eesti Vabariigi - seadustest, käesolevast põhikirjast ja muudest õigusaktidest.
- 1.4 Ühingu missiooniks on tegeleda tudengiteadusega infotehnoloogia valdkonnas Tallinna Tehnikaülikoolis.
- 1.4.1 Ühingu ülesanneteks on:

- -

1.4.2 Ühingu tegevuse põhimõteteks on:

- -

1.4.3 Ühingu põhitegevuseks ei ole majandustegevuse kaudu tulu saamine.
- 1.5 Ühing võib omada varalisi ja mittevaralisi õigusi ning võtta kohustusi, tal on oma vara, iseseisev bilanss - ning oma sümboolika.
- 1.6 Ühing vastutab oma kohustuste täitmise eest kogu oma varaga. Ühingu liige vastutab Ühingu kohustuste täitmise - eest vaid tasutud liikmemaksu (sisseastumismaksu ja aastamaksude) ulatuses.
- 1.7 Ühing on asutatud määramata ajaks.
- 1.8 Ühingu majandusaasta algus on 1. jaanuaril ja lõpp 31. detsembril.
- 1.9 Ühingu töökeeleks on eesti keel.

-

2 LIIKMELISUS. LIIKMETE ÕIGUSED JA KOHUSTUSED

-

2.1 Kui käesolevas põhikirjas ei ole sätestatud teisiti, võib Ühingu liikmeks astuda iga füüsiline isik, kes on - õppinud või õpib Tallinna Tehnikaülikoolis. Liikmeks vastuvõtu otsustab - juhatus 1 kuu jooksul alates avalduse esitamisest. Juhatus peab liikmete registrit.
- 2.2 Üldkoosolek võib erandkorras ja lihthäälteenamusega ühingu liikmeks vastu võtta ka punkti 2.1 nõudmistele - mittevastavaid isikuid.
- 2.3 Liikmetel on õigus:

- -

2.4 Kui ühingu juhatus ei ole mingil põhjusel võimeline sisseastumis- või lahkumisavaldust ettenähtud aja jooksul - rahuldama, otsustab liikme sisse- või väljaastumise üldkoosolek.
- 2.5 Ühingu auliikmeks võib olla iga füüsiline või juriidiline isik.
- 2.6 Ühingu auliikmeks vastu võtmise või auliikme staatuse tühistamise otsustab üldkoosolek.
- 2.7 Ühingu auliige ei ole hääleõiguslik ega või olla valitud juhatuse ega revisjonikomisjoni liikmeks.
- 2.8 Ühingu liikmelisus on seotud sisseastumismaksuga ja aastamaksuga. Liikmed tasuvad sisseastumismaksu ja - aastamaksu ühingu pangaarvele üldkoosoleku poolt kindlaksmääratud suuruses ja tähtajaks.
- 2.9 Ühingu auliikmele sisseastumismaksu ja aastamaksu ei rakendata.
- 2.10 Ühingu liige võidakse ühingust välja arvata:

- -

2.11 Juhatuse otsuse liikme väljaarvamise kohta võib liige edasi kaevata ühingu üldkoosolekule seaduses - ettenähtud korras ja nõuda enda väljaarvamise otsustamist üldkoosoleku poolt.
- 2.12 Isikul, kelle liikmelisus ühingus on lõppenud, ei ole õigusi ühingu vara suhtes.
- 2.13 Ühingu liige on kohustatud:

- -

3 JUHTIMINE

-

3.1 Ühingu kõrgeimaks organiks on selle liikmete üldkoosolek, kus võivad osaleda kõik ühingu liikmed. Üldkoosolek - tuleb kokku vähemalt 1 kord aastas.
- 3.2 Üldkoosolek võtab vastu otsuseid kõikides ühingu juhtimise küsimustes, mida ei ole seaduse või käesoleva - põhikirjaga antud juhatuse või ühingu muu organi pädevusse.
- 3.3 Üldkoosoleku pädevusse kuulub:

- -

3.4 Üldkoosoleku otsused on avalikud ja avaldatakse Ühingu koduleheküljel.
- 3.5 Ühingu põhikirja või tegevuse eesmärkide muutmiseks on vajalik vähemalt 50% ühingu liikmete või nende - esindajate osavõtt üldkoosolekul. Põhikirja või eesmärkide muutmise otsus on vastu võetud, kui selle poolt - hääletavad üle 50% koosolekul osalenud liikmetest või nende lihtkirjalikult volitatud esindajatest.
- 3.6 Ühingu juhtorganiks on juhatus, kes üldkoosolekute vahelisel ajal esindab Ühingut ja kes juhib Ühingu - põhikirjalist tegevust ja täidab käesoleva põhikirjaga talle pandud ülesandeid ning üldkoosoleku poolt - delegeeritud õiguste ja kohustuste piires.
- 3.7 Üldkoosolek valib demokraatlikel valimistel salajasel hääletamisel kolme- kuni viieliikmelise juhatuse. Ühingu - juhatuse liikmeid saab valida Ühingu liikmete seast. Juhatuse volituse aja ning selleks ajaks valitavate juhatuse - liikmete arvu otsustab üldkoosolek.
- 3.8 Juhatuse ülesanded:

- -

3.9 Üldkoosoleku otsusega võib poolte kokkuleppel Ühingu juhatusele anda täiendavaid ülesandeid.
- 3.10 Juhatus teatab oma otsustest liikmetele, kas suuliselt või kirjalikult, ühe nädala jooksul.
- 3.11 Juhatus on aruandekohustuslik üldkoosoleku ees.
- 3.12 Juhatuse otsused võetakse vastu juhatuse koosolekul lihthäälteenamuse alusel. Juhatuse koosolek on - otsustusvõimeline, kui kohal on vähemalt 2/3 juhatuse liikmetest.
- 3.13 Juhatuse liikmetel on õigus saada tagasivalituks.
- 3.14 Juhatus korraldab ühingu raamatupidamist vastavalt raamatupidamise seadusele ning omab aruandekohustust - üldkoosoleku ees vastavalt seadusele.
- 3.15 Juhatuse igal liikmel on õigus esindada ühingut kõikides õigustoimingutes eraldi.
- 3.16 Juhatuse liikme tagasi kutsumiseks on vajalik vähemalt 50% ühingu liikmete või nende esindajate osavõtt - üldkoosolekul. Tagasikutsumise otsustab üldkoosolek salajasel hääletusel. Juhatuse liikme tagasi kutsumise otsus - on vastu võetud, kui selle poolt hääletavad üle 50% koosolekul osalenud liikmetest või nende esindajatest.
- 3.17 Tagasikutsumist võib algatada, kui seda nõuavad vähemalt 10% Ühingu liikmetest.
- 3.18 Tagasikutsumine tuleb vormistada kirjalikult ning esitada Ühingu juhatusele. Tagasikutsumisavalduse peab - päevakorda võtma esitamisele järgneval üldkoosolekul esimese päevakorrapunktina.
- 3.19 Juhatuse liikme tagasiastumise või ühingust välja arvamise korral valib üldkoosolek uue juhatuse liikme - järgmisel korralisel või erakorralisel üldkoosolekul.

-

4 ÜHINGU TÖÖKORD

-

4.1 Ühingu töö vormiks on koosolek.
- 4.2 Koosoleku kutsub kokku Ühingu juhatus või projektijuht.
- 4.3 Korralisest üldkoosolekust tuleb juhatusel Ühingu liikmeid teavitada vähemalt 3 nädalat enne üldkoosoleku - toimumist ning erakorralisest üldkoosolekust vähemalt 1 nädal enne. Teavitamine käib läbi Ühingu kodulehekülje, - meililisti või e-posti teel.
- 4.4 Koosoleku kokkukutsujal on õigus koosolek kuulutada kinniseks. Kinnise koosoleku ajal võivad koosoleku ruumis - viibida vaid Ühingu liikmed ning koosoleku kokkukutsujalt selleks loa saanud inimesed.
- 4.5 Üldkoosolekuid juhatab üks juhatuse liikmeist.
- 4.6 Juhatus võib soovi korral valida üldkoosolekut juhatama ka teisi Ühingu liikmeid.
- 4.7 Igal Ühingu liikmel on üks hääl. Üldkoosolek on otsustusvõimeline, kui sellel osaleb või on lihtkirjalike - volituste alusel esindatud vähemalt 30% ühingu liikmeist. Otsused võetakse vastu lihthäälteenamuse alusel, kui - konkreetse juhu kohta pole põhikirjas sätestatud teisiti. Kui üldkoosolek ei ole ülalsätestatud kvooruminõude - tõttu pädev otsuseid vastu võtma, kutsub juhatus ühe nädala jooksul kokku uue üldkoosoleku sama päevakorraga. Uus - üldkoosolek on pädev otsuseid vastu võtma, sõltumata üldkoosolekul osalenud või esindatud liikmete arvust, kuid - üksnes juhul, kui üldkoosolekul osaleb või on esindatud vähemalt 7 liiget.
- 4.8 Hääletada saab otsuse poolt, vastu või jääda erapooletuks.
- 4.9 Hääletamine Ühingu koosolekul on avalik, kui käesolevas põhikirjas ei ole ette nähtud teisiti.
- 4.10 Kõik koosolekul toimuvad isikuvalimised on salajased.
- 4.11 Koosoleku kokkukutsuja võib otsustada, et hääletus on salajane, kui seda nõuab vähemalt 5 Ühingu liiget.
- 4.12 Kõiki Ühingu koosolekuid protokollitakse ja vastuvõetud otsused vormistatakse eraldi aktina.
- 4.13 Ühingu koosoleku protokoll ja otsused peavad olema tehtud kättesaadavaks kümne tööpäeva jooksul pärast - koosoleku toimumist.

-

5 MAJANDUSTEGEVUS JA VARA JAOTUS

-

5.1 Ühingu vara tekib liikmete sisseastumismaksudest, aastamaksudest ja muudest maksetest, ühingu vara - kasutamisest ja tegevusest saadavast tulust ning muudest laekumistest või annetustest.
- 5.2 Ühing ekspluateerib ja remondib tema valduses või omandis olevat vara täieliku isemajandamise põhimõttel ja - lepinguvabaduse tingimustes.
- 5.3 Vara valdamist, kasutamist ja säilimist ning rahaliste vahendite käsutamist korraldab Ühingu juhatus - põhikirjaliste ülesannete täitmiseks kooskõlas õigusaktide ja kehtestatud korraga.

-

6 TEADETE AVALIKUSTAMINE

-

6.1 Juhatuse, revisjonikomisjoni ja muude ühingu organite teated ühingu liikmetele avalikustatakse üldkoosolekul.
- 6.2 Edasilükkamatuid ja kiireloomulisi teateid võidakse avalikustada liikmeile ka globaalsete, üleriigiliste või - kohalike meediakanalite kaudu.

-

7 KONTROLL JA REVIDEERIMINE

-

7.1 Üldkoosolek teostab järelvalvet teiste ühingu organite tegevuse üle. Selle ülesande täitmiseks võib määrata - üldkoosolek revisjoni või audiitorkontrolli. Revisjoni volituste aja ning selleks ajaks valitavate - revisjonikomisjoni liikmete arvu otsustab üldkoosolek.
- 7.2 Revisjonikomisjoni liige ei pea olema Ühingu liige.
- 7.3 Revisjonikomisjoni liige ei tohi kuuluda juhatusse.
- 7.4 Revisjonikomisjon on aruandekohustuslik üldkoosoleku ees.
- 7.5 Juhatuse ja muu organi liikmed peavad võimaldama revidendil (revisjonikomisjonil) või audiitoril tutvuda kõigi - revisjoni või audiitorkontrolli läbiviimiseks vajalike dokumentidega ning andma vajalikku teavet.

-

8 LÕPETAMINE, ÜHINEMINE JA JAGUNEMINE

-

8.1 Ühingu lõpetamine, ühinemine ja jagunemine toimub seaduses sätestatud korras.
- 8.2 Ühingu lõpetamise, ühinemise ja jagunemise otsustamiseks on vajalik vähemalt 2/3 ühingu liikmete või nende - esindajate osavõtt üldkoosolekul. Ühingu lõpetamise, ühinemise või jagunemise otsus on vastu võetud, kui selle - poolt hääletavad üle 2/3 koosolekul osalenud liikmetest või nende esindajatest.
- 8.3 Ühingu likvideerijaks on juhatus.
- 8.4 Pärast võlausaldajate kõigi nõuete rahuldamist ja nõuet mitte esitanud teada olevate võlausaldajate raha - deponeerimist jaotatakse ülejäänud vara üldkoosoleku otsusega määratud õigustatud isikute vahel.
- Käesolev põhikiri on vastu võetud mittetulundusühingu Lapikud asutamiskoosolekul 23. veebruaril 2002. a. - ühehäälselt ning täiendatud üldkoosolekul 20. mail 2004. a ja 4.mail 2018 a.

- - -
-
diff --git a/striim.html b/striim.html deleted file mode 100644 index 3226367..0000000 --- a/striim.html +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default ---- - -
-

Striim

-
-
-
- - video0 - - - - video1 - - - - video2 - -
-
diff --git a/striim_front.html b/striim_front.html deleted file mode 100644 index 1344537..0000000 --- a/striim_front.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - -striim ja kell - -

-video0 - diff --git a/student.html b/student.html deleted file mode 100644 index 4d31136..0000000 --- a/student.html +++ /dev/null @@ -1,162 +0,0 @@ ---- -layout: default -title: Tudengile - Lapikud ---- - -
-
-
-

Mida me teeme?

-

Lapikute põhieesmärk on ühendada IT-st ja arvutitest huvitatud tudengeid, et üheskoos tegeleda - tarkvaraprojektidega ning arvutite ja nende parandamisega. - Tahame anda tudengitele ülikooli kõrvalt lisakogemust ja tööl kasulikuks osutuvaid oskuseid. -

-

- Teine oluline eesmärk on pakkuda tudengitele toetavat ja lõbusat - seltskonda, et ülikoolis veedetud aastad oleks ikka meeldejäävad. Selleks korraldame üritusi ja veedame - koos toredalt aega. -

-
-
- -
-
-
-
-

Mida saad sina teha?

-

Meiega - liituda!

-

- Kui tunned, et tahad osa saada meie organisatsioonist ning ennast arendada koos teiste IT - huviliste tudengitega, siis on selleks mitu valikut. - Meil on kolm meeskonda: Tarkvara, Helpdesk ja Kultuur. -

-

- Tarkvara tiimiga liitudes saad praktikat, mida koolis ei pakuta. - Lisaks saad kogenud vanemliikme käe all õppida kõike tarkvara hoomavat, rääkimata meeskonnatöö oskustest - ja ilusast märkest CVsse. -

-

- Helpdeski meeskonnas on võimalik omal käel parandada ja komplekteerida arvuti riistvara ning teha palju - muudki tehnikaga seonduvat. -

-

- Kultuuritiim tegeleb Lapikute siseürituste korraldamise ja nende turundamisega, - lisaks ka mõne suurüritusega (näiteks programmeerimisvõistlus ASI Karikas - või Helpdeski Remondikohvik). -

-

- Kui on huvi, siis võib ühineda ka kõikide tiimidega. Üheski tiimis pole varasemat kogemust vaja, isegi kui see - tuleks kasuks. - Üritame leida igale tasemele vastavaid ülesandeid ning vajadusel pigistame teie jaoks enda ajudest ka tarkust - välja ehk õpetame, - kuidas midagi teha. -

- - - -
-
- -
-
- -
-
-

Mentorid

-

- Kui tahad meie organisatsiooniga liituda, siis pole midagi karta, sest algset sisseelamist abistavad mentorid. - Liitudes saad omale mentori, kes räägib täpsemalt, mida iga tiim teeb, tutvustab sind teistele Lapikutele ja - aitab esimeste ülesannetega ja igasuguste tekkinud küsimustega. -

- - - -
-
- -
-
- -
-
-

Tarkvara

-

- Tarkvaratiimiga liitudes saad praktilise kogemuse tarkvara arendamisest. Selleks on meil erinevad koolitused ja - projektid, millega - saab liituda. Me arendame veebilehti, nagu näiteks TipiLAN, tegeleme mängude - arendusega ja oleme - teinud ka palju muud huvitavat, näiteks mikrokontrollereid programmeerinud.

-

Ootame alati uusi ideid, mida võiks - järgmisena teha, kuid - saame ka Lapikutest väljapoolt projekte, seega tegevust jagub. Korraldame ka iga aasta programmeerimisvõistlust - ASI Karikas, - kus on võimalik välja mõelda programmeerimisülesandeid. -

-

Tarkvaratiimis õpid kasutama Githubi ja Giti. Saad kogeda, - kuidas toimub tarkvara - arendamine tiimiga, mis täiustab sinu tehinilisi oskuseid, kuid võib-olla veelgi tähtsamalt, sinu - suhtlemisoskust. Õpid töötama - erinevate programmeerimiskeeltega ja neile vastavate raamistikega. - Soovime kasvatada enda liikmetes julgust ja initsiatiivi, et nende eesmärgid, olgu need kui suured tahes, ei - tunduks võimatud. -

-

- Meie liikmed ka tõdevad, et just Lapikutes saadud oskused ja tutvused on põhjus, miks nad praktikale või tööle said. -

-
-
- -
-
-

Helpdesk

-

- Helpdeski meeskonnaga ühinemine annab sulle võimaluse toimetada arvutite ning muu tehnikaga, nagu kõlarid või raadiod. - Arvutitel tuleb diagnoosida probleem ning vajadusel see parandada. Lisaks tegeletakse jootmise, - tolmupuhastuse, operatsioonisüsteemi installimise ja seadistamisega ning palju palju muuga. -

-

- Helpdeski eesmärk on lahendada klientide nii arvutite kui ka muu tehnikaga seonduvaid probleeme (ja olgu - mainitud, et seda kõike tudengisõbraliku hinnaga pealekauba). Suur osa tasust läheb ka tegijale, et - rahakott nälga ei jääks. -

-

Helpdeskiga seonduvalt toimub ka paar korda aastas Remondikohvik. See on kogukonna üritus, kus Tallinna - elanikud saavad enda katkise tehnika meile tuua ja koos Lapikute Helpdeski ning ka muude abiliste juhendamisel - selle ära parandada. -

-
- -
- -
-
-

Kultuur

-

- Kultuuritiim ühendab enda alla ürituste korraldamise ja turundustegevuse. Kultuuritiim vastutab selle eest, - et Lapikute meel oleks lahutatud ja nädal sisustatud ning et peale ülikoolis veedetud pikka ja uusi teadmisi - täis päeva - saaks teistega koos mõnusalt aega veeta. -

-

- Näiteks oleme korraldanud videomängude LAN-e, filmiõhtuid ja seriaalide - ühisvaatamisi, - käinud Tallinna tunneleid avastamas, talisuplemas, ronimas, airsofti mängimas ning korraldanud pidusid, nagu - pikslipidu ja vikermasetsus. -

-

- Lisaks tegeleb kultuuritiim ka mõne suurürituse turundamisega, olgu selleks siis - programmeerimisvõistlus ASI Karikas või Helpdeski Remondikohvik. Muidugi ka Lapikute - enda turundusega. -

-

- Saad õppida, kuidas kasutada Facebooki ja Instagrami ürituste turundamiseks ja Lapikute tegevuste - kajastamiseks, - kuidas luua silmajäävat - plakatit/bannerit Canvas ja Figmas ning kuidas sponsoritega tegeleda. Usume, et need oskused võivad kasuks tulla - nii tööotsingutel ja enda turundamisel, - kui ka oma lähedastega ürituste planeerimisel. -

-
-
- -
\ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..2935777 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{svelte,js,ts,jsx,tsx}", + ], + plugins: [], +} diff --git a/test b/test deleted file mode 100644 index e69de29..0000000 diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..23bd11f --- /dev/null +++ b/vite.config.js @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import tailwindcss from '@tailwindcss/vite'; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + tailwindcss(), + vue() + ], + base: '/', + server: { + historyApiFallback: true, + } +})