Compare commits
6 Commits
feat/lazy-
...
feat/appli
| Author | SHA1 | Date | |
|---|---|---|---|
|
26d5c96841
|
|||
|
07fe77f05a
|
|||
|
80344238cd
|
|||
|
239104a9c7
|
|||
|
802536083c
|
|||
|
bd38c2de48
|
20
.github/workflows/protobuf-ci.yaml
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
name: Protobuf CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
types: [opened, synchronize, reopened, labeled, unlabeled]
|
||||||
|
delete:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buf:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: bufbuild/buf-action@v1
|
||||||
|
with:
|
||||||
|
input: schema/protobufs
|
||||||
6
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
# Go
|
|
||||||
*.exe
|
*.exe
|
||||||
*.exe~
|
*.exe~
|
||||||
*.dll
|
*.dll
|
||||||
@@ -7,7 +6,4 @@
|
|||||||
*.test
|
*.test
|
||||||
*.out
|
*.out
|
||||||
go.work
|
go.work
|
||||||
*.env
|
*.env
|
||||||
|
|
||||||
# Misc
|
|
||||||
node_modules
|
|
||||||
85
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
# Contributor Covenant 3.0 Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We pledge to make our community welcoming, safe, and equitable for all.
|
||||||
|
|
||||||
|
We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of characteristics including race, ethnicity, caste, color, age, physical characteristics, neurodiversity, disability, sex or gender, gender identity or expression, sexual orientation, language, philosophy or religion, national or social origin, socio-economic position, level of education, or other status. The same privileges of participation are extended to everyone who participates in good faith and in accordance with this Covenant.
|
||||||
|
|
||||||
|
## Encouraged Behaviors
|
||||||
|
|
||||||
|
While acknowledging differences in social norms, we all strive to meet our community's expectations for positive behavior. We also understand that our words and actions may be interpreted differently than we intend based on culture, background, or native language.
|
||||||
|
|
||||||
|
With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including:
|
||||||
|
|
||||||
|
1. Respecting the **purpose of our community**, our activities, and our ways of gathering.
|
||||||
|
2. Engaging **kindly and honestly** with others.
|
||||||
|
3. Respecting **different viewpoints** and experiences.
|
||||||
|
4. **Taking responsibility** for our actions and contributions.
|
||||||
|
5. Gracefully giving and accepting **constructive feedback**.
|
||||||
|
6. Committing to **repairing harm** when it occurs.
|
||||||
|
7. Behaving in other ways that promote and sustain the **well-being of our community**.
|
||||||
|
|
||||||
|
## Restricted Behaviors
|
||||||
|
|
||||||
|
We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct.
|
||||||
|
|
||||||
|
1. **Harassment.** Violating explicitly expressed boundaries or engaging in unnecessary personal attention after any clear request to stop.
|
||||||
|
2. **Character attacks.** Making insulting, demeaning, or pejorative comments directed at a community member or group of people.
|
||||||
|
3. **Stereotyping or discrimination.** Characterizing anyone’s personality or behavior on the basis of immutable identities or traits.
|
||||||
|
4. **Sexualization.** Behaving in a way that would generally be considered inappropriately intimate in the context or purpose of the community.
|
||||||
|
5. **Violating confidentiality**. Sharing or acting on someone's personal or private information without their permission.
|
||||||
|
6. **Endangerment.** Causing, encouraging, or threatening violence or other harm toward any person or group.
|
||||||
|
7. Behaving in other ways that **threaten the well-being** of our community.
|
||||||
|
|
||||||
|
### Other Restrictions
|
||||||
|
|
||||||
|
1. **Misleading identity.** Impersonating someone else for any reason, or pretending to be someone else to evade enforcement actions.
|
||||||
|
2. **Failing to credit sources.** Not properly crediting the sources of content you contribute.
|
||||||
|
3. **Promotional materials**. Sharing marketing or other commercial content in a way that is outside the norms of the community.
|
||||||
|
4. **Irresponsible communication.** Failing to responsibly present content which includes, links or describes any other restricted behaviors.
|
||||||
|
|
||||||
|
## Reporting an Issue
|
||||||
|
|
||||||
|
Tensions can occur between community members even when they are trying their best to collaborate. Not every conflict represents a code of conduct violation, and this Code of Conduct reinforces encouraged behaviors and norms that can help avoid conflicts and minimize harm.
|
||||||
|
|
||||||
|
When an incident does occur, it is important to report it promptly. To report a possible violation, contact the current lead maintainer [hexolan](https://github.com/hexolan) through email at `dt@hexolan.com`.
|
||||||
|
|
||||||
|
Community Moderators take reports of violations seriously and will make every effort to respond in a timely manner. They will investigate all reports of code of conduct violations, reviewing messages, logs, and recordings, or interviewing witnesses and other participants. Community Moderators will keep investigation and enforcement actions as transparent as possible while prioritizing safety and confidentiality. In order to honor these values, enforcement actions are carried out in private with the involved parties, but communicating to the whole community may be part of a mutually agreed upon resolution.
|
||||||
|
|
||||||
|
## Addressing and Repairing Harm
|
||||||
|
|
||||||
|
**[NOTE: The remedies and repairs outlined below are based on the suggestions for best practices in open-source code of conduct enforcement.]**
|
||||||
|
|
||||||
|
If an investigation by the Community Moderators finds that this Code of Conduct has been violated, the following enforcement ladder may be used to determine how best to repair harm, based on the incident's impact on the individuals involved and the community as a whole. Depending on the severity of a violation, lower rungs on the ladder may be skipped.
|
||||||
|
|
||||||
|
1) Warning
|
||||||
|
1) Event: A violation involving a single incident or series of incidents.
|
||||||
|
2) Consequence: A private, written warning from the Community Moderators.
|
||||||
|
3) Repair: Examples of repair include a private written apology, acknowledgement of responsibility, and seeking clarification on expectations.
|
||||||
|
2) Temporarily Limited Activities
|
||||||
|
1) Event: A repeated incidence of a violation that previously resulted in a warning, or the first incidence of a more serious violation.
|
||||||
|
2) Consequence: A private, written warning with a time-limited cooldown period designed to underscore the seriousness of the situation and give the community members involved time to process the incident. The cooldown period may be limited to particular communication channels or interactions with particular community members.
|
||||||
|
3) Repair: Examples of repair may include making an apology, using the cooldown period to reflect on actions and impact, and being thoughtful about re-entering community spaces after the period is over.
|
||||||
|
3) Temporary Suspension
|
||||||
|
1) Event: A pattern of repeated violation which the Community Moderators have tried to address with warnings, or a single serious violation.
|
||||||
|
2) Consequence: A private written warning with conditions for return from suspension. In general, temporary suspensions give the person being suspended time to reflect upon their behavior and possible corrective actions.
|
||||||
|
3) Repair: Examples of repair include respecting the spirit of the suspension, meeting the specified conditions for return, and being thoughtful about how to reintegrate with the community when the suspension is lifted.
|
||||||
|
4) Permanent Ban
|
||||||
|
1) Event: A pattern of repeated code of conduct violations that other steps on the ladder have failed to resolve, or a violation so serious that the Community Moderators determine there is no way to keep the community safe with this person as a member.
|
||||||
|
2) Consequence: Access to all community spaces, tools, and communication channels is removed. In general, permanent bans should be rarely used, should have strong reasoning behind them, and should only be resorted to if working through other remedies has failed to change the behavior.
|
||||||
|
3) Repair: There is no possible repair in cases of this severity.
|
||||||
|
|
||||||
|
This enforcement ladder is intended as a guideline. It does not limit the ability of Community Managers to use their discretion and judgment, in keeping with the best interests of our community.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public or other spaces. Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the Contributor Covenant, version 3.0, permanently available at [https://www.contributor-covenant.org/version/3/0/](https://www.contributor-covenant.org/version/3/0/).
|
||||||
|
|
||||||
|
Contributor Covenant is stewarded by the Organization for Ethical Source and licensed under CC BY-SA 4.0. To view a copy of this license, visit [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
For answers to common questions about Contributor Covenant, see the FAQ at [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq). Translations are provided at [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations). Additional enforcement and community guideline resources can be found at [https://www.contributor-covenant.org/resources](https://www.contributor-covenant.org/resources). The enforcement ladder was inspired by the work of [Mozilla’s code of conduct team](https://github.com/mozilla/inclusion).
|
||||||
163
CONTRIBUTING.md
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
# Contributing to Stocklet
|
||||||
|
|
||||||
|
First off, thanks for considering to contribute to this repository! ❤️
|
||||||
|
|
||||||
|
All types of contributions are encouraged and valued. Whilst a lot of the wording in these guidelines are rather generalised and based upon a community template, as a personal touch I would like to thank you for considering contributing to this project.
|
||||||
|
|
||||||
|
Again, I wrote this mostly in spare time: partly to experiment myself with building up microservices from scratch using an EDA-approach, but also looks quite good for me to have as a portfolio project which stands out.
|
||||||
|
|
||||||
|
I wrote this project without any assistance of Artifical Intelligence (before I'd personally looked at using AI to assist with development). Ideally I would like to avoid tainting the codebase with any AI code.
|
||||||
|
|
||||||
|
Again thank you for considering to contribute. 🎉
|
||||||
|
|
||||||
|
See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for any maintainers and smooth out the experience for all involved.
|
||||||
|
|
||||||
|
> If you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:
|
||||||
|
>
|
||||||
|
> - Star the project
|
||||||
|
> - Tweet (X) about it
|
||||||
|
> - Refer this project as a useful reference in your project's readme
|
||||||
|
> - Mention the project at local meetups and tell your friends/colleagues
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [Code of Conduct](#code-of-conduct)
|
||||||
|
- [I Have a Question](#i-have-a-question)
|
||||||
|
- [I Want To Contribute](#i-want-to-contribute)
|
||||||
|
- [Reporting Bugs](#reporting-bugs)
|
||||||
|
- [Suggesting Enhancements](#suggesting-enhancements)
|
||||||
|
- [Your First Code Contribution](#your-first-code-contribution)
|
||||||
|
- [Improving The Documentation](#improving-the-documentation)
|
||||||
|
- [Styleguides](#styleguides)
|
||||||
|
- [Commit Messages](#commit-messages)
|
||||||
|
<!-- - [Join The Project Team](#join-the-project-team) -->
|
||||||
|
|
||||||
|
## Code of Conduct
|
||||||
|
|
||||||
|
This project and everyone participating in it is governed by the
|
||||||
|
[Stocklet Code of Conduct](https://github.com/hexolan/stocklet/blob/main/CODE_OF_CONDUCT.md).
|
||||||
|
By participating, you are expected to uphold this code.
|
||||||
|
|
||||||
|
## I Have a Question
|
||||||
|
|
||||||
|
> If you want to ask a question, we assume that you have read the available [Documentation](/docs/README.md).
|
||||||
|
|
||||||
|
Before you ask a question, it is best to search for existing [Issues](https://github.com/hexolan/stocklet/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.
|
||||||
|
|
||||||
|
If you then still feel the need to ask a question and need clarification, we recommend the following:
|
||||||
|
|
||||||
|
- Open an [Issue](https://github.com/hexolan/stocklet/issues/new).
|
||||||
|
- Provide as much context as you can about what you're running into.
|
||||||
|
- Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant.
|
||||||
|
|
||||||
|
We will then take care of the issue as soon as possible.
|
||||||
|
|
||||||
|
<!--
|
||||||
|
You might want to create a separate issue tag for questions and include it in this description. People should then tag their issues accordingly.
|
||||||
|
|
||||||
|
Depending on how large the project is, you may want to outsource the questioning, e.g. to Stack Overflow or Gitter. You may add additional contact and information possibilities:
|
||||||
|
- IRC
|
||||||
|
- Slack
|
||||||
|
- Gitter
|
||||||
|
- Stack Overflow tag
|
||||||
|
- Blog
|
||||||
|
- FAQ
|
||||||
|
- Roadmap
|
||||||
|
- E-Mail List
|
||||||
|
- Forum
|
||||||
|
-->
|
||||||
|
|
||||||
|
## I Want To Contribute
|
||||||
|
|
||||||
|
> ### Legal Notice
|
||||||
|
>
|
||||||
|
> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project licence.
|
||||||
|
|
||||||
|
### Reporting Bugs
|
||||||
|
|
||||||
|
#### Before Submitting a Bug Report
|
||||||
|
|
||||||
|
A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible.
|
||||||
|
|
||||||
|
- Make sure that you are using the latest version.
|
||||||
|
- Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (Make sure that you have read the [documentation](/docs/README.md). If you are looking for support, you might want to check [this section](#i-have-a-question)).
|
||||||
|
- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/hexolan/stocklet/issues?q=label%3Abug).
|
||||||
|
- Also make sure to search the internet (including Stack Overflow) to see if users outside of the GitHub community have discussed the issue.
|
||||||
|
- Collect information about the bug:
|
||||||
|
- Stack trace (Traceback)
|
||||||
|
- OS, Platform and Version (Windows, Linux, macOS, x86, ARM)
|
||||||
|
- Version of the interpreter, compiler, SDK, runtime environment, package manager, depending on what seems relevant.
|
||||||
|
- Possibly your input and the output
|
||||||
|
- Can you reliably reproduce the issue? And can you also reproduce it with older versions?
|
||||||
|
|
||||||
|
#### How Do I Submit a Good Bug Report?
|
||||||
|
|
||||||
|
> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to `dt@hexolan.com`.
|
||||||
|
|
||||||
|
We use GitHub issues to track bugs and errors. If you run into an issue with the project:
|
||||||
|
|
||||||
|
- Open an [Issue](https://github.com/hexolan/stocklet/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.)
|
||||||
|
- Explain the behavior you would expect and the actual behavior.
|
||||||
|
- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case.
|
||||||
|
- Provide the information you collected in the previous section.
|
||||||
|
|
||||||
|
Once it's filed:
|
||||||
|
|
||||||
|
- The project team will label the issue accordingly.
|
||||||
|
- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced.
|
||||||
|
- If the team is able to reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution).
|
||||||
|
|
||||||
|
### Suggesting Enhancements
|
||||||
|
|
||||||
|
This section guides you through submitting an enhancement suggestion for Stocklet, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.
|
||||||
|
|
||||||
|
#### Before Submitting an Enhancement
|
||||||
|
|
||||||
|
- Make sure that you are using the latest version.
|
||||||
|
- Read the [documentation](/docs/README.md) carefully and find out if the functionality is already covered, maybe by an individual configuration.
|
||||||
|
- Perform a [search](https://github.com/hexolan/stocklet/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
|
||||||
|
- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library.
|
||||||
|
|
||||||
|
#### How Do I Submit a Good Enhancement Suggestion?
|
||||||
|
|
||||||
|
Enhancement suggestions are tracked as [GitHub issues](https://github.com/hexolan/stocklet/issues).
|
||||||
|
|
||||||
|
- Use a **clear and descriptive title** for the issue to identify the suggestion.
|
||||||
|
- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.
|
||||||
|
- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you.
|
||||||
|
- You may want to **include screenshots or screen recordings** which help you demonstrate the steps or point out the part which the suggestion is related to.
|
||||||
|
- **Explain why this enhancement would be useful** to most Stocklet users. You may also want to point out the other projects that solved it better and which could serve as inspiration.
|
||||||
|
|
||||||
|
<!-- You might want to create an issue template for enhancement suggestions that can be used as a guide and that defines the structure of the information to be included. If you do so, reference it here in the description. -->
|
||||||
|
|
||||||
|
### Your First Code Contribution
|
||||||
|
<!-- TODO
|
||||||
|
include Setup of env, IDE and typical getting started instructions?
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
Looking to improve some of the documentation about this, though this isn't really a project I am actively working on or contributing to; just maintaining and expanding in spare time when I feel like it.
|
||||||
|
|
||||||
|
The main [README.md](/README.md) has some coverage on deploying the application using [Docker Compose](https://docs.docker.com/compose/).
|
||||||
|
|
||||||
|
A full deployment will, in the nature of microservices being independent (etc), deploy a Postgres instance per microservice type, in addition to an Envoy instance (used as an API gateway) with Kafka and Debezium infrastructure for events messaging.
|
||||||
|
|
||||||
|
### Improving The Documentation
|
||||||
|
|
||||||
|
Feel free to open a PR if you'd like to contribute updates which add to or improve the current documentation. There currently isn't a standard that the documentation is following.
|
||||||
|
|
||||||
|
I do lint my Markdown files using [markdownlint](https://github.com/DavidAnson/markdownlint).
|
||||||
|
|
||||||
|
## Styleguides
|
||||||
|
|
||||||
|
### Commit Messages
|
||||||
|
|
||||||
|
Ideally your commit messages should comply to the [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) specification.
|
||||||
|
|
||||||
|
Here is a [useful gist with a cheatsheet](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716) highlighting examples of how to keep your commits looking in good standard.
|
||||||
|
|
||||||
|
<!-- ## Join The Project Team -->
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This guide is based upon and adapted from the [contributing.md](https://contributing.md/generator) resource.
|
||||||
35
Makefile
@@ -1,38 +1,13 @@
|
|||||||
#
|
|
||||||
# Dev Tools
|
|
||||||
#
|
|
||||||
|
|
||||||
.PHONY: install-tools
|
|
||||||
install-tools:
|
install-tools:
|
||||||
go install github.com/bufbuild/buf/cmd/buf@v1.27.2 && \
|
go install github.com/bufbuild/buf/cmd/buf@v1.27.2
|
||||||
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@v4.17.0 && \
|
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@v4.17.0
|
||||||
npm install
|
|
||||||
|
|
||||||
#
|
generate-protobufs:
|
||||||
# Code Gen
|
|
||||||
#
|
|
||||||
|
|
||||||
.PHONY: gen-protobufs
|
|
||||||
gen-protobufs:
|
|
||||||
buf generate
|
buf generate
|
||||||
|
|
||||||
.PHONY: gen-openapi
|
format:
|
||||||
gen-openapi: gen-protobufs
|
buf format -w
|
||||||
npx openapi-generator-cli generate -g openapi-yaml -i schema/openapi/services.swagger.yaml -o schema/openapi -p outputFile=openapi.yaml
|
|
||||||
|
|
||||||
#
|
|
||||||
# Linting / Formatting
|
|
||||||
#
|
|
||||||
|
|
||||||
.PHONY: format-go
|
|
||||||
format-go:
|
|
||||||
buf format -w && \
|
|
||||||
gofmt -w -s .
|
gofmt -w -s .
|
||||||
|
|
||||||
#
|
|
||||||
# Deployment
|
|
||||||
#
|
|
||||||
|
|
||||||
.PHONY: deploy-docker
|
|
||||||
deploy-docker:
|
deploy-docker:
|
||||||
docker compose -f deploy/docker/compose.yaml -f deploy/docker/compose.override.yaml up --build
|
docker compose -f deploy/docker/compose.yaml -f deploy/docker/compose.override.yaml up --build
|
||||||
@@ -55,15 +55,10 @@ In the nature of open-source software, please consider contributing and giving b
|
|||||||
* [google.golang.org/protobuf](https://pkg.go.dev/google.golang.org/protobuf)
|
* [google.golang.org/protobuf](https://pkg.go.dev/google.golang.org/protobuf)
|
||||||
* [github.com/bufbuild/protovalidate-go](https://pkg.go.dev/github.com/bufbuild/protovalidate-go)
|
* [github.com/bufbuild/protovalidate-go](https://pkg.go.dev/github.com/bufbuild/protovalidate-go)
|
||||||
|
|
||||||
* Frontend
|
|
||||||
* [github.com/sveltejs/kit](https://github.com/sveltejs/kit)
|
|
||||||
* [github.com/tailwindlabs/tailwindcss](https://github.com/tailwindlabs/tailwindcss)
|
|
||||||
|
|
||||||
* Tools
|
* Tools
|
||||||
* [plantuml.com](https://plantuml.com/)
|
* [plantuml.com](https://plantuml.com/)
|
||||||
* [github.com/bufbuild/buf/cmd/buf](https://buf.build/docs/installation)
|
* [github.com/bufbuild/buf/cmd/buf](https://buf.build/docs/installation)
|
||||||
* [github.com/golang-migrate/migrate/v4](https://pkg.go.dev/github.com/golang-migrate/migrate/v4#section-readme)
|
* [github.com/golang-migrate/migrate/v4](https://pkg.go.dev/github.com/golang-migrate/migrate/v4#section-readme)
|
||||||
* [github.com/openapitools/openapi-generator](https://github.com/openapitools/openapi-generator)
|
|
||||||
|
|
||||||
* Miscellaneous
|
* Miscellaneous
|
||||||
* [golang.org/x/crypto/bcrypt](https://pkg.go.dev/golang.org/x/crypto/bcrypt)
|
* [golang.org/x/crypto/bcrypt](https://pkg.go.dev/golang.org/x/crypto/bcrypt)
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
FROM node:24-slim AS base
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Install pnpm
|
|
||||||
RUN npm install -g pnpm
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
COPY package.json ./
|
|
||||||
COPY pnpm-lock.yaml ./
|
|
||||||
RUN pnpm install --frozen-lockfile
|
|
||||||
|
|
||||||
# Prepare application
|
|
||||||
COPY . ./
|
|
||||||
RUN pnpm build
|
|
||||||
|
|
||||||
CMD ["pnpm", "preview", "--host", "'0.0.0.0'", "--port", "5173"]
|
|
||||||
5
go.mod
@@ -1,8 +1,7 @@
|
|||||||
module github.com/hexolan/stocklet
|
module github.com/hexolan/stocklet
|
||||||
|
|
||||||
go 1.23.0
|
go 1.21.1
|
||||||
|
toolchain go1.24.1
|
||||||
toolchain go1.24.3
|
|
||||||
|
|
||||||
require (
|
require (
|
||||||
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20231106192134-1baebb0a1518.2
|
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20231106192134-1baebb0a1518.2
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json",
|
|
||||||
"spaces": 2,
|
|
||||||
"generator-cli": {
|
|
||||||
"version": "7.14.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
2352
package-lock.json
generated
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"devDependencies": {
|
|
||||||
"@openapitools/openapi-generator-cli": "^2.21.4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
3
schema/openapi/.gitignore
vendored
@@ -1,3 +0,0 @@
|
|||||||
.openapi-generator
|
|
||||||
.openapi-generator-ignore
|
|
||||||
README.md
|
|
||||||
11
tests/bruno/auth/AuthService_GetJwks.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: AuthService_GetJwks
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/auth/jwks
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
18
tests/bruno/auth/AuthService_LoginPassword.bru
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
meta {
|
||||||
|
name: AuthService_LoginPassword
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{baseUrl}}/v1/auth/login
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"userId": "",
|
||||||
|
"password": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
18
tests/bruno/auth/AuthService_SetPassword.bru
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
meta {
|
||||||
|
name: AuthService_SetPassword
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{baseUrl}}/v1/auth/password
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"userId": "",
|
||||||
|
"password": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
11
tests/bruno/auth/View information about the service.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: View information about the service.
|
||||||
|
type: http
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/auth/service
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
7
tests/bruno/auth/folder.bru
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
meta {
|
||||||
|
name: auth
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
13
tests/bruno/bruno.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"version": "1",
|
||||||
|
"name": "Stocklet",
|
||||||
|
"type": "collection",
|
||||||
|
"ignore": [
|
||||||
|
"node_modules",
|
||||||
|
".git"
|
||||||
|
],
|
||||||
|
"presets": {
|
||||||
|
"requestType": "http",
|
||||||
|
"requestUrl": "http://localhost/"
|
||||||
|
}
|
||||||
|
}
|
||||||
7
tests/bruno/collection.bru
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
meta {
|
||||||
|
name: Stocklet
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: none
|
||||||
|
}
|
||||||
3
tests/bruno/environments/Environment 1.bru
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
vars {
|
||||||
|
baseUrl: http://localhost
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: Get a list of a customer's orders.
|
||||||
|
If accessed through the gateway - shows the current user's orders.
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/order/list
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:query {
|
||||||
|
~customerId:
|
||||||
|
}
|
||||||
19
tests/bruno/order/OrderService_PlaceOrder.bru
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
meta {
|
||||||
|
name: OrderService_PlaceOrder
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{baseUrl}}/v1/order/place
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:query {
|
||||||
|
~customerId:
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{}
|
||||||
|
}
|
||||||
15
tests/bruno/order/OrderService_ViewOrder.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: OrderService_ViewOrder
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/order/orders/:orderId
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
orderId:
|
||||||
|
}
|
||||||
11
tests/bruno/order/View information about the service.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: View information about the service.
|
||||||
|
type: http
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/order/service
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
7
tests/bruno/order/folder.bru
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
meta {
|
||||||
|
name: order
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
15
tests/bruno/payment/PaymentService_ViewBalance.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: PaymentService_ViewBalance
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/payment/balance/:customerId
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
customerId:
|
||||||
|
}
|
||||||
15
tests/bruno/payment/PaymentService_ViewTransaction.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: PaymentService_ViewTransaction
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/payment/transaction/:transactionId
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
transactionId:
|
||||||
|
}
|
||||||
11
tests/bruno/payment/View information about the service.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: View information about the service.
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/payment/service
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
7
tests/bruno/payment/folder.bru
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
meta {
|
||||||
|
name: payment
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
15
tests/bruno/product/ProductService_ViewProduct.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: ProductService_ViewProduct
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/product/:id
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
id:
|
||||||
|
}
|
||||||
11
tests/bruno/product/ProductService_ViewProducts.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: ProductService_ViewProducts
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/product/list
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
11
tests/bruno/product/View information about the service.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: View information about the service.
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/product/service
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
7
tests/bruno/product/folder.bru
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
meta {
|
||||||
|
name: product
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
15
tests/bruno/shipping/ShippingService_ViewShipment.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: ShippingService_ViewShipment
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/shipping/shipment/:shipmentId
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
shipmentId:
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: ShippingService_ViewShipmentManifest
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/shipping/shipment/:shipmentId/manifest
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
shipmentId:
|
||||||
|
}
|
||||||
11
tests/bruno/shipping/View information about the service.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: View information about the service.
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/shipping/service
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
7
tests/bruno/shipping/folder.bru
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
meta {
|
||||||
|
name: shipping
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
18
tests/bruno/user/UserService_RegisterUser.bru
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
meta {
|
||||||
|
name: UserService_RegisterUser
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{baseUrl}}/v1/user/register
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:query {
|
||||||
|
firstName:
|
||||||
|
lastName:
|
||||||
|
email:
|
||||||
|
password:
|
||||||
|
}
|
||||||
15
tests/bruno/user/UserService_ViewUser.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: UserService_ViewUser
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/user/users/:id
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
id:
|
||||||
|
}
|
||||||
11
tests/bruno/user/View information about the service.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: View information about the service.
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/user/service
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
7
tests/bruno/user/folder.bru
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
meta {
|
||||||
|
name: user
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
11
tests/bruno/warehouse/View information about the service.bru
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
meta {
|
||||||
|
name: View information about the service.
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/warehouse/service
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
15
tests/bruno/warehouse/WarehouseService_ViewProductStock.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: WarehouseService_ViewProductStock
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/warehouse/product/:productId
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
productId:
|
||||||
|
}
|
||||||
15
tests/bruno/warehouse/WarehouseService_ViewReservation.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: WarehouseService_ViewReservation
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{baseUrl}}/v1/warehouse/reservation/:reservationId
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
reservationId:
|
||||||
|
}
|
||||||
7
tests/bruno/warehouse/folder.bru
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
meta {
|
||||||
|
name: warehouse
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -1 +0,0 @@
|
|||||||
PUBLIC_API_URL=http://localhost:80/
|
|
||||||
23
web/.gitignore
vendored
@@ -1,23 +0,0 @@
|
|||||||
node_modules
|
|
||||||
|
|
||||||
# Output
|
|
||||||
.output
|
|
||||||
.vercel
|
|
||||||
.netlify
|
|
||||||
.wrangler
|
|
||||||
/.svelte-kit
|
|
||||||
/build
|
|
||||||
|
|
||||||
# OS
|
|
||||||
.DS_Store
|
|
||||||
Thumbs.db
|
|
||||||
|
|
||||||
# Env
|
|
||||||
.env
|
|
||||||
.env.*
|
|
||||||
!.env.example
|
|
||||||
!.env.test
|
|
||||||
|
|
||||||
# Vite
|
|
||||||
vite.config.js.timestamp-*
|
|
||||||
vite.config.ts.timestamp-*
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
engine-strict=true
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# Package Managers
|
|
||||||
package-lock.json
|
|
||||||
pnpm-lock.yaml
|
|
||||||
yarn.lock
|
|
||||||
bun.lock
|
|
||||||
bun.lockb
|
|
||||||
|
|
||||||
# Miscellaneous
|
|
||||||
/static/
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"useTabs": true,
|
|
||||||
"singleQuote": true,
|
|
||||||
"trailingComma": "none",
|
|
||||||
"printWidth": 100,
|
|
||||||
"plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"],
|
|
||||||
"overrides": [
|
|
||||||
{
|
|
||||||
"files": "*.svelte",
|
|
||||||
"options": {
|
|
||||||
"parser": "svelte"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tailwindStylesheet": "./src/app.css"
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
import prettier from 'eslint-config-prettier';
|
|
||||||
import { includeIgnoreFile } from '@eslint/compat';
|
|
||||||
import js from '@eslint/js';
|
|
||||||
import svelte from 'eslint-plugin-svelte';
|
|
||||||
import globals from 'globals';
|
|
||||||
import { fileURLToPath } from 'node:url';
|
|
||||||
import ts from 'typescript-eslint';
|
|
||||||
import svelteConfig from './svelte.config.js';
|
|
||||||
|
|
||||||
const gitignorePath = fileURLToPath(new URL('./.gitignore', import.meta.url));
|
|
||||||
|
|
||||||
export default ts.config(
|
|
||||||
includeIgnoreFile(gitignorePath),
|
|
||||||
js.configs.recommended,
|
|
||||||
...ts.configs.recommended,
|
|
||||||
...svelte.configs.recommended,
|
|
||||||
prettier,
|
|
||||||
...svelte.configs.prettier,
|
|
||||||
{
|
|
||||||
languageOptions: {
|
|
||||||
globals: { ...globals.browser, ...globals.node }
|
|
||||||
},
|
|
||||||
rules: {
|
|
||||||
// typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects.
|
|
||||||
// see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors
|
|
||||||
'no-undef': 'off'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'],
|
|
||||||
languageOptions: {
|
|
||||||
parserOptions: {
|
|
||||||
projectService: true,
|
|
||||||
extraFileExtensions: ['.svelte'],
|
|
||||||
parser: ts.parser,
|
|
||||||
svelteConfig
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "web",
|
|
||||||
"private": true,
|
|
||||||
"version": "0.0.1",
|
|
||||||
"type": "module",
|
|
||||||
"scripts": {
|
|
||||||
"dev": "vite dev",
|
|
||||||
"build": "vite build",
|
|
||||||
"preview": "vite preview",
|
|
||||||
"prepare": "svelte-kit sync || echo ''",
|
|
||||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
||||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
||||||
"format": "prettier --write .",
|
|
||||||
"lint": "prettier --check . && eslint .",
|
|
||||||
"gen-openapi": "openapi-typescript ../schema/openapi/openapi.yaml -o ./src/lib/api/schema.d.ts"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@eslint/compat": "^1.2.5",
|
|
||||||
"@eslint/js": "^9.18.0",
|
|
||||||
"@sveltejs/adapter-auto": "^6.0.0",
|
|
||||||
"@sveltejs/adapter-node": "^5.2.14",
|
|
||||||
"@sveltejs/adapter-static": "^3.0.9",
|
|
||||||
"@sveltejs/kit": "^2.22.0",
|
|
||||||
"@sveltejs/vite-plugin-svelte": "^6.0.0",
|
|
||||||
"@tailwindcss/typography": "^0.5.15",
|
|
||||||
"@tailwindcss/vite": "^4.0.0",
|
|
||||||
"eslint": "^9.18.0",
|
|
||||||
"eslint-config-prettier": "^10.0.1",
|
|
||||||
"eslint-plugin-svelte": "^3.0.0",
|
|
||||||
"globals": "^16.0.0",
|
|
||||||
"openapi-typescript": "^7.8.0",
|
|
||||||
"prettier": "^3.4.2",
|
|
||||||
"prettier-plugin-svelte": "^3.3.3",
|
|
||||||
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
||||||
"svelte": "^5.0.0",
|
|
||||||
"svelte-check": "^4.0.0",
|
|
||||||
"tailwindcss": "^4.0.0",
|
|
||||||
"typescript": "^5.0.0",
|
|
||||||
"typescript-eslint": "^8.20.0",
|
|
||||||
"vite": "^7.0.4"
|
|
||||||
},
|
|
||||||
"pnpm": {
|
|
||||||
"onlyBuiltDependencies": [
|
|
||||||
"esbuild"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@lucide/svelte": "^0.540.0",
|
|
||||||
"bits-ui": "^2.11.4",
|
|
||||||
"next-translate": "^2.6.2",
|
|
||||||
"openapi-fetch": "^0.14.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
3570
web/pnpm-lock.yaml
generated
209
web/src/app.css
@@ -1,209 +0,0 @@
|
|||||||
@import 'tailwindcss';
|
|
||||||
|
|
||||||
@plugin '@tailwindcss/typography';
|
|
||||||
|
|
||||||
[data-theme='catppuccin'] {
|
|
||||||
--text-scaling: 1.067;
|
|
||||||
--base-font-color: var(--color-surface-700);
|
|
||||||
--base-font-color-dark: var(--color-surface-50);
|
|
||||||
--base-font-family: system-ui;
|
|
||||||
--base-font-size: inherit;
|
|
||||||
--base-line-height: inherit;
|
|
||||||
--base-font-weight: normal;
|
|
||||||
--base-font-style: normal;
|
|
||||||
--base-letter-spacing: 0em;
|
|
||||||
--heading-font-color: var(--color-tertiary-500);
|
|
||||||
--heading-font-color-dark: var(--color-secondary-200);
|
|
||||||
--heading-font-family: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
|
|
||||||
--heading-font-weight: bolder;
|
|
||||||
--heading-font-style: normal;
|
|
||||||
--heading-letter-spacing: inherit;
|
|
||||||
--anchor-font-color: var(--color-secondary-600);
|
|
||||||
--anchor-font-color-dark: var(--color-tertiary-400);
|
|
||||||
--anchor-font-family: inherit;
|
|
||||||
--anchor-font-size: inherit;
|
|
||||||
--anchor-line-height: inherit;
|
|
||||||
--anchor-font-weight: normal;
|
|
||||||
--anchor-font-style: normal;
|
|
||||||
--anchor-letter-spacing: inherit;
|
|
||||||
--anchor-text-decoration: none;
|
|
||||||
--anchor-text-decoration-hover: underline;
|
|
||||||
--anchor-text-decoration-active: none;
|
|
||||||
--anchor-text-decoration-focus: none;
|
|
||||||
--spacing: 0.25rem;
|
|
||||||
--radius-base: 0.75rem;
|
|
||||||
--radius-container: 0.75rem;
|
|
||||||
--default-border-width: 2px;
|
|
||||||
--default-divide-width: 1px;
|
|
||||||
--default-ring-width: 1px;
|
|
||||||
--body-background-color: oklch(1 0 0 / 1);
|
|
||||||
--body-background-color-dark: var(--color-surface-950);
|
|
||||||
--color-primary-50: oklch(97.6% 0.02 212.47deg);
|
|
||||||
--color-primary-100: oklch(91.32% 0.04 257.13deg);
|
|
||||||
--color-primary-200: oklch(84.83% 0.07 268.85deg);
|
|
||||||
--color-primary-300: oklch(78.59% 0.11 272.12deg);
|
|
||||||
--color-primary-400: oklch(72.23% 0.14 273.55deg);
|
|
||||||
--color-primary-500: oklch(66.25% 0.18 273.14deg);
|
|
||||||
--color-primary-600: oklch(63.84% 0.17 273.48deg);
|
|
||||||
--color-primary-700: oklch(61.62% 0.15 273.47deg);
|
|
||||||
--color-primary-800: oklch(59.25% 0.14 273.88deg);
|
|
||||||
--color-primary-900: oklch(57.01% 0.12 273.81deg);
|
|
||||||
--color-primary-950: oklch(54.55% 0.11 274.23deg);
|
|
||||||
--color-primary-contrast-dark: var(--color-primary-950);
|
|
||||||
--color-primary-contrast-light: var(--color-primary-50);
|
|
||||||
--color-primary-contrast-50: var(--color-primary-contrast-dark);
|
|
||||||
--color-primary-contrast-100: var(--color-primary-contrast-dark);
|
|
||||||
--color-primary-contrast-200: var(--color-primary-contrast-dark);
|
|
||||||
--color-primary-contrast-300: var(--color-primary-contrast-dark);
|
|
||||||
--color-primary-contrast-400: var(--color-primary-contrast-light);
|
|
||||||
--color-primary-contrast-500: var(--color-primary-contrast-light);
|
|
||||||
--color-primary-contrast-600: var(--color-primary-contrast-light);
|
|
||||||
--color-primary-contrast-700: var(--color-primary-contrast-light);
|
|
||||||
--color-primary-contrast-800: var(--color-primary-contrast-light);
|
|
||||||
--color-primary-contrast-900: var(--color-primary-contrast-light);
|
|
||||||
--color-primary-contrast-950: var(--color-primary-contrast-light);
|
|
||||||
--color-secondary-50: oklch(87.05% 0.08 336.55deg);
|
|
||||||
--color-secondary-100: oklch(83.93% 0.1 336.74deg);
|
|
||||||
--color-secondary-200: oklch(80.87% 0.12 337.02deg);
|
|
||||||
--color-secondary-300: oklch(78.17% 0.13 337.85deg);
|
|
||||||
--color-secondary-400: oklch(75.29% 0.15 338.19deg);
|
|
||||||
--color-secondary-500: oklch(72.53% 0.17 338.6deg);
|
|
||||||
--color-secondary-600: oklch(66.07% 0.16 338.29deg);
|
|
||||||
--color-secondary-700: oklch(59.56% 0.14 338.49deg);
|
|
||||||
--color-secondary-800: oklch(52.62% 0.12 337.58deg);
|
|
||||||
--color-secondary-900: oklch(45.7% 0.11 337.72deg);
|
|
||||||
--color-secondary-950: oklch(38.38% 0.09 336.89deg);
|
|
||||||
--color-secondary-contrast-dark: var(--color-secondary-950);
|
|
||||||
--color-secondary-contrast-light: var(--color-secondary-50);
|
|
||||||
--color-secondary-contrast-50: var(--color-secondary-contrast-dark);
|
|
||||||
--color-secondary-contrast-100: var(--color-secondary-contrast-dark);
|
|
||||||
--color-secondary-contrast-200: var(--color-secondary-contrast-dark);
|
|
||||||
--color-secondary-contrast-300: var(--color-secondary-contrast-dark);
|
|
||||||
--color-secondary-contrast-400: var(--color-secondary-contrast-dark);
|
|
||||||
--color-secondary-contrast-500: var(--color-secondary-contrast-dark);
|
|
||||||
--color-secondary-contrast-600: var(--color-secondary-contrast-dark);
|
|
||||||
--color-secondary-contrast-700: var(--color-secondary-contrast-light);
|
|
||||||
--color-secondary-contrast-800: var(--color-secondary-contrast-light);
|
|
||||||
--color-secondary-contrast-900: var(--color-secondary-contrast-light);
|
|
||||||
--color-secondary-contrast-950: var(--color-secondary-contrast-light);
|
|
||||||
--color-tertiary-50: oklch(85.8% 0.08 182.85deg);
|
|
||||||
--color-tertiary-100: oklch(80.55% 0.09 187.22deg);
|
|
||||||
--color-tertiary-200: oklch(75.29% 0.09 190.97deg);
|
|
||||||
--color-tertiary-300: oklch(70.14% 0.1 194.28deg);
|
|
||||||
--color-tertiary-400: oklch(65.06% 0.1 197.47deg);
|
|
||||||
--color-tertiary-500: oklch(60.13% 0.1 200.95deg);
|
|
||||||
--color-tertiary-600: oklch(55.26% 0.09 199.74deg);
|
|
||||||
--color-tertiary-700: oklch(50.32% 0.08 199.32deg);
|
|
||||||
--color-tertiary-800: oklch(45.24% 0.07 197.5deg);
|
|
||||||
--color-tertiary-900: oklch(40.06% 0.06 196.51deg);
|
|
||||||
--color-tertiary-950: oklch(34.72% 0.05 193.09deg);
|
|
||||||
--color-tertiary-contrast-dark: var(--color-tertiary-950);
|
|
||||||
--color-tertiary-contrast-light: var(--color-tertiary-50);
|
|
||||||
--color-tertiary-contrast-50: var(--color-tertiary-contrast-dark);
|
|
||||||
--color-tertiary-contrast-100: var(--color-tertiary-contrast-dark);
|
|
||||||
--color-tertiary-contrast-200: var(--color-tertiary-contrast-dark);
|
|
||||||
--color-tertiary-contrast-300: var(--color-tertiary-contrast-dark);
|
|
||||||
--color-tertiary-contrast-400: var(--color-tertiary-contrast-dark);
|
|
||||||
--color-tertiary-contrast-500: var(--color-tertiary-contrast-dark);
|
|
||||||
--color-tertiary-contrast-600: var(--color-tertiary-contrast-light);
|
|
||||||
--color-tertiary-contrast-700: var(--color-tertiary-contrast-light);
|
|
||||||
--color-tertiary-contrast-800: var(--color-tertiary-contrast-light);
|
|
||||||
--color-tertiary-contrast-900: var(--color-tertiary-contrast-light);
|
|
||||||
--color-tertiary-contrast-950: var(--color-tertiary-contrast-light);
|
|
||||||
--color-success-50: oklch(85.77% 0.11 142.7deg);
|
|
||||||
--color-success-100: oklch(81.11% 0.13 141.89deg);
|
|
||||||
--color-success-200: oklch(76.23% 0.14 141.28deg);
|
|
||||||
--color-success-300: oklch(71.66% 0.16 140.48deg);
|
|
||||||
--color-success-400: oklch(66.87% 0.17 140.33deg);
|
|
||||||
--color-success-500: oklch(62.41% 0.18 140.43deg);
|
|
||||||
--color-success-600: oklch(57.85% 0.16 140.84deg);
|
|
||||||
--color-success-700: oklch(52.9% 0.14 141.79deg);
|
|
||||||
--color-success-800: oklch(48.16% 0.12 142.88deg);
|
|
||||||
--color-success-900: oklch(43% 0.1 145.42deg);
|
|
||||||
--color-success-950: oklch(38.04% 0.08 149.33deg);
|
|
||||||
--color-success-contrast-dark: var(--color-success-950);
|
|
||||||
--color-success-contrast-light: var(--color-success-50);
|
|
||||||
--color-success-contrast-50: var(--color-success-contrast-dark);
|
|
||||||
--color-success-contrast-100: var(--color-success-contrast-dark);
|
|
||||||
--color-success-contrast-200: var(--color-success-contrast-dark);
|
|
||||||
--color-success-contrast-300: var(--color-success-contrast-dark);
|
|
||||||
--color-success-contrast-400: var(--color-success-contrast-dark);
|
|
||||||
--color-success-contrast-500: var(--color-success-contrast-dark);
|
|
||||||
--color-success-contrast-600: var(--color-success-contrast-light);
|
|
||||||
--color-success-contrast-700: var(--color-success-contrast-light);
|
|
||||||
--color-success-contrast-800: var(--color-success-contrast-light);
|
|
||||||
--color-success-contrast-900: var(--color-success-contrast-light);
|
|
||||||
--color-success-contrast-950: var(--color-success-contrast-light);
|
|
||||||
--color-warning-50: oklch(91.93% 0.07 86.52deg);
|
|
||||||
--color-warning-100: oklch(87.62% 0.09 81.75deg);
|
|
||||||
--color-warning-200: oklch(83.36% 0.11 78.43deg);
|
|
||||||
--color-warning-300: oklch(79.3% 0.12 76.32deg);
|
|
||||||
--color-warning-400: oklch(75.26% 0.14 72.68deg);
|
|
||||||
--color-warning-500: oklch(71.4% 0.15 67.88deg);
|
|
||||||
--color-warning-600: oklch(65.78% 0.14 69.03deg);
|
|
||||||
--color-warning-700: oklch(60.37% 0.12 70.57deg);
|
|
||||||
--color-warning-800: oklch(54.52% 0.1 72.35deg);
|
|
||||||
--color-warning-900: oklch(48.88% 0.09 74.8deg);
|
|
||||||
--color-warning-950: oklch(42.76% 0.07 78.06deg);
|
|
||||||
--color-warning-contrast-dark: var(--color-warning-950);
|
|
||||||
--color-warning-contrast-light: var(--color-warning-50);
|
|
||||||
--color-warning-contrast-50: var(--color-warning-contrast-dark);
|
|
||||||
--color-warning-contrast-100: var(--color-warning-contrast-dark);
|
|
||||||
--color-warning-contrast-200: var(--color-warning-contrast-dark);
|
|
||||||
--color-warning-contrast-300: var(--color-warning-contrast-dark);
|
|
||||||
--color-warning-contrast-400: var(--color-warning-contrast-dark);
|
|
||||||
--color-warning-contrast-500: var(--color-warning-contrast-dark);
|
|
||||||
--color-warning-contrast-600: var(--color-warning-contrast-dark);
|
|
||||||
--color-warning-contrast-700: var(--color-warning-contrast-light);
|
|
||||||
--color-warning-contrast-800: var(--color-warning-contrast-light);
|
|
||||||
--color-warning-contrast-900: var(--color-warning-contrast-light);
|
|
||||||
--color-warning-contrast-950: var(--color-warning-contrast-light);
|
|
||||||
--color-error-50: oklch(75.56% 0.13 2.78deg);
|
|
||||||
--color-error-100: oklch(70.18% 0.16 4.89deg);
|
|
||||||
--color-error-200: oklch(65.27% 0.18 7.81deg);
|
|
||||||
--color-error-300: oklch(60.81% 0.2 10.57deg);
|
|
||||||
--color-error-400: oklch(57.47% 0.22 14.92deg);
|
|
||||||
--color-error-500: oklch(55.13% 0.22 19.72deg);
|
|
||||||
--color-error-600: oklch(50.99% 0.2 18.37deg);
|
|
||||||
--color-error-700: oklch(46.81% 0.18 16.65deg);
|
|
||||||
--color-error-800: oklch(42.42% 0.16 14.8deg);
|
|
||||||
--color-error-900: oklch(38.31% 0.14 12.11deg);
|
|
||||||
--color-error-950: oklch(34.35% 0.11 8.63deg);
|
|
||||||
--color-error-contrast-dark: var(--color-error-950);
|
|
||||||
--color-error-contrast-light: var(--color-error-50);
|
|
||||||
--color-error-contrast-50: var(--color-error-contrast-dark);
|
|
||||||
--color-error-contrast-100: var(--color-error-contrast-dark);
|
|
||||||
--color-error-contrast-200: var(--color-error-contrast-dark);
|
|
||||||
--color-error-contrast-300: var(--color-error-contrast-dark);
|
|
||||||
--color-error-contrast-400: var(--color-error-contrast-dark);
|
|
||||||
--color-error-contrast-500: var(--color-error-contrast-light);
|
|
||||||
--color-error-contrast-600: var(--color-error-contrast-light);
|
|
||||||
--color-error-contrast-700: var(--color-error-contrast-light);
|
|
||||||
--color-error-contrast-800: var(--color-error-contrast-light);
|
|
||||||
--color-error-contrast-900: var(--color-error-contrast-light);
|
|
||||||
--color-error-contrast-950: var(--color-error-contrast-light);
|
|
||||||
--color-surface-50: oklch(90.64% 0.01 267.4deg);
|
|
||||||
--color-surface-100: oklch(85.79% 0.01 271.31deg);
|
|
||||||
--color-surface-200: oklch(80.91% 0.02 274.81deg);
|
|
||||||
--color-surface-300: oklch(75.63% 0.02 276.88deg);
|
|
||||||
--color-surface-400: oklch(70.59% 0.03 278.21deg);
|
|
||||||
--color-surface-500: oklch(65.43% 0.03 278.8deg);
|
|
||||||
--color-surface-600: oklch(57.8% 0.03 280.9deg);
|
|
||||||
--color-surface-700: oklch(50.1% 0.03 280.32deg);
|
|
||||||
--color-surface-800: oklch(41.9% 0.03 282.54deg);
|
|
||||||
--color-surface-900: oklch(33.48% 0.03 281.97deg);
|
|
||||||
--color-surface-950: oklch(24.29% 0.03 283.92deg);
|
|
||||||
--color-surface-contrast-dark: var(--color-surface-950);
|
|
||||||
--color-surface-contrast-light: var(--color-surface-50);
|
|
||||||
--color-surface-contrast-50: var(--color-surface-contrast-dark);
|
|
||||||
--color-surface-contrast-100: var(--color-surface-contrast-dark);
|
|
||||||
--color-surface-contrast-200: var(--color-surface-contrast-dark);
|
|
||||||
--color-surface-contrast-300: var(--color-surface-contrast-dark);
|
|
||||||
--color-surface-contrast-400: var(--color-surface-contrast-dark);
|
|
||||||
--color-surface-contrast-500: var(--color-surface-contrast-dark);
|
|
||||||
--color-surface-contrast-600: var(--color-surface-contrast-dark);
|
|
||||||
--color-surface-contrast-700: var(--color-surface-contrast-light);
|
|
||||||
--color-surface-contrast-800: var(--color-surface-contrast-light);
|
|
||||||
--color-surface-contrast-900: var(--color-surface-contrast-light);
|
|
||||||
--color-surface-contrast-950: var(--color-surface-contrast-light);
|
|
||||||
}
|
|
||||||
13
web/src/app.d.ts
vendored
@@ -1,13 +0,0 @@
|
|||||||
// See https://svelte.dev/docs/kit/types#app.d.ts
|
|
||||||
// for information about these interfaces
|
|
||||||
declare global {
|
|
||||||
namespace App {
|
|
||||||
// interface Error {}
|
|
||||||
// interface Locals {}
|
|
||||||
// interface PageData {}
|
|
||||||
// interface PageState {}
|
|
||||||
// interface Platform {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export {};
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
||||||
%sveltekit.head%
|
|
||||||
</head>
|
|
||||||
<body data-sveltekit-preload-data="hover">
|
|
||||||
<div style="display: contents">%sveltekit.body%</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import LightDarkMode from './LightDarkMode.svelte';
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<footer class="border-t border-surface-200-800 bg-surface-100-900 fixed bottom-0 w-full z-10">
|
|
||||||
<div class="mx-auto flex w-full max-w-7xl items-center justify-between px-4 py-6 text-sm text-surface-700-300">
|
|
||||||
<span>Stocklet</span>
|
|
||||||
<LightDarkMode />
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import { Label, Switch } from "bits-ui";
|
|
||||||
|
|
||||||
let checked = $state(false);
|
|
||||||
|
|
||||||
$effect(() => {
|
|
||||||
const mode = localStorage.getItem('mode') || 'light';
|
|
||||||
checked = mode === 'dark';
|
|
||||||
document.documentElement.setAttribute('data-mode', mode);
|
|
||||||
});
|
|
||||||
|
|
||||||
const onCheckedChange = (event: { checked: boolean }) => {
|
|
||||||
const mode = event.checked ? 'dark' : 'light';
|
|
||||||
document.documentElement.setAttribute('data-mode', mode);
|
|
||||||
localStorage.setItem('mode', mode);
|
|
||||||
checked = event.checked;
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<svelte:head>
|
|
||||||
<script>
|
|
||||||
const mode = localStorage.getItem('mode') || 'light';
|
|
||||||
document.documentElement.setAttribute('data-mode', mode);
|
|
||||||
</script>
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<div class="flex items-center space-x-3">
|
|
||||||
<Switch.Root
|
|
||||||
id="light-dark"
|
|
||||||
checked={checked}
|
|
||||||
onCheckedChange={(change) => { onCheckedChange({ checked: change }) }}
|
|
||||||
class="focus-visible:ring-foreground focus-visible:ring-offset-background data-[state=checked]:bg-foreground data-[state=unchecked]:bg-dark-10 data-[state=unchecked]:shadow-mini-inset dark:data-[state=checked]:bg-foreground focus-visible:outline-hidden peer inline-flex h-[36px] min-h-[36px] w-[60px] shrink-0 cursor-pointer items-center rounded-full px-[3px] transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
|
|
||||||
>
|
|
||||||
<Switch.Thumb
|
|
||||||
class="bg-background data-[state=unchecked]:shadow-mini dark:border-background/30 dark:bg-foreground dark:shadow-popover pointer-events-none block size-[30px] shrink-0 rounded-full transition-transform data-[state=checked]:translate-x-6 data-[state=unchecked]:translate-x-0 dark:border dark:data-[state=unchecked]:border"
|
|
||||||
/>
|
|
||||||
</Switch.Root>
|
|
||||||
<Label.Root for="light-dark" class="text-sm font-medium">Light / Dark</Label.Root>
|
|
||||||
</div>
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import "../app.css";
|
|
||||||
|
|
||||||
import { ShoppingCart, User } from '@lucide/svelte';
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<header class="border-b border-surface-200-800 bg-surface-100-900">
|
|
||||||
<div class="mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8">
|
|
||||||
<div class="flex h-16 items-center justify-between">
|
|
||||||
<div class="mx-12">
|
|
||||||
<a href="/" class="flex items-center gap-2 font-semibold">
|
|
||||||
<img src="/assets/logo.svg" alt="Stocklet" class="h-8 w-auto dark:hidden" />
|
|
||||||
<img src="/assets/logo-light.svg" alt="Stocklet" class="h-8 w-auto hidden dark:block" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="bg-transparent w-auto p-0 mx-12">
|
|
||||||
<a href="/">Home</a>
|
|
||||||
<a href="/about">About</a>
|
|
||||||
|
|
||||||
<div class="flex flex-row gap-4">
|
|
||||||
<a href="/" title="Cart">
|
|
||||||
<p>Cart</p>
|
|
||||||
<ShoppingCart class="h-6 w-6" />
|
|
||||||
</a>
|
|
||||||
<a href="/" title="User">
|
|
||||||
<p>User</p>
|
|
||||||
<User class="h-6 w-6" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
import createClient from "openapi-fetch";
|
|
||||||
|
|
||||||
import type { paths } from "./schema.d";
|
|
||||||
import { API_URL } from "../config";
|
|
||||||
|
|
||||||
const client = createClient<paths>({ baseUrl: API_URL });
|
|
||||||
|
|
||||||
export default client;
|
|
||||||
1614
web/src/lib/api/schema.d.ts
vendored
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="107" height="128" viewBox="0 0 107 128"><title>svelte-logo</title><path d="M94.157 22.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282 29.608A29.92 29.92 0 0 0 8.764 49.65a31.5 31.5 0 0 0 3.108 20.231 30 30 0 0 0-4.477 11.183 31.9 31.9 0 0 0 5.448 24.116c10.402 14.887 30.942 19.297 45.791 9.835l26.083-16.624A29.92 29.92 0 0 0 98.235 78.35a31.53 31.53 0 0 0-3.105-20.232 30 30 0 0 0 4.474-11.182 31.88 31.88 0 0 0-5.447-24.116" style="fill:#ff3e00"/><path d="M45.817 106.582a20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.503 18 18 0 0 1 .624-2.435l.49-1.498 1.337.981a33.6 33.6 0 0 0 10.203 5.098l.97.294-.09.968a5.85 5.85 0 0 0 1.052 3.878 6.24 6.24 0 0 0 6.695 2.485 5.8 5.8 0 0 0 1.603-.704L69.27 76.28a5.43 5.43 0 0 0 2.45-3.631 5.8 5.8 0 0 0-.987-4.371 6.24 6.24 0 0 0-6.698-2.487 5.7 5.7 0 0 0-1.6.704l-9.953 6.345a19 19 0 0 1-5.296 2.326 20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.502 17.99 17.99 0 0 1 8.13-12.052l26.081-16.623a19 19 0 0 1 5.3-2.329 20.72 20.72 0 0 1 22.237 8.243 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-.624 2.435l-.49 1.498-1.337-.98a33.6 33.6 0 0 0-10.203-5.1l-.97-.294.09-.968a5.86 5.86 0 0 0-1.052-3.878 6.24 6.24 0 0 0-6.696-2.485 5.8 5.8 0 0 0-1.602.704L37.73 51.72a5.42 5.42 0 0 0-2.449 3.63 5.79 5.79 0 0 0 .986 4.372 6.24 6.24 0 0 0 6.698 2.486 5.8 5.8 0 0 0 1.602-.704l9.952-6.342a19 19 0 0 1 5.295-2.328 20.72 20.72 0 0 1 22.237 8.242 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-8.13 12.053l-26.081 16.622a19 19 0 0 1-5.3 2.328" style="fill:#fff"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1,3 +0,0 @@
|
|||||||
import { PUBLIC_API_URL } from "$env/static/public";
|
|
||||||
|
|
||||||
export const API_URL = PUBLIC_API_URL || "http://localhost:80/v1/";
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
// place files you want to import through the `$lib` alias in this folder.
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import Navbar from '../components/Navbar.svelte';
|
|
||||||
import Footer from '../components/Footer.svelte';
|
|
||||||
|
|
||||||
import '../app.css';
|
|
||||||
import favicon from '$lib/assets/favicon.svg';
|
|
||||||
|
|
||||||
let { children } = $props();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<svelte:head>
|
|
||||||
<title>Stocklet</title>
|
|
||||||
|
|
||||||
<link rel="icon" href={favicon} />
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<main data-theme="catppuccin" class="min-h-screen h-full">
|
|
||||||
<div>
|
|
||||||
<Navbar />
|
|
||||||
|
|
||||||
{@render children?.()}
|
|
||||||
|
|
||||||
<Footer />
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<h5 class="text-xl">Homepage</h5>
|
|
||||||
</div>
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import type { components } from '$lib/api/schema';
|
|
||||||
|
|
||||||
const orders: components['schemas']['v1Order'][] = [
|
|
||||||
{
|
|
||||||
id: '1',
|
|
||||||
status: 'ORDER_STATUS_PENDING',
|
|
||||||
items: {
|
|
||||||
'1': 1,
|
|
||||||
'2': 2,
|
|
||||||
},
|
|
||||||
customerId: '1',
|
|
||||||
transactionId: '1',
|
|
||||||
createdAt: Date.now().toString(),
|
|
||||||
updatedAt: Date.now().toString(),
|
|
||||||
},
|
|
||||||
];
|
|
||||||
</script>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import type { PageProps } from './$types';
|
|
||||||
|
|
||||||
let { data }: PageProps = $props();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<h1>Order ID: {data.id}</h1>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
import type { PageLoad } from './$types';
|
|
||||||
|
|
||||||
export const load: PageLoad = ({ params }) => {
|
|
||||||
return {
|
|
||||||
id: params.id
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import type { PageProps } from './$types';
|
|
||||||
|
|
||||||
let { data }: PageProps = $props();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<h1>Product ID: {data.id}</h1>
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
// import { error } from '@sveltejs/kit';
|
|
||||||
import type { PageLoad } from './$types';
|
|
||||||
|
|
||||||
export const load: PageLoad = ({ params }) => {
|
|
||||||
return {
|
|
||||||
id: params.id
|
|
||||||
};
|
|
||||||
|
|
||||||
// error(404, 'Product not found');
|
|
||||||
};
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
import { writable } from 'svelte/store';
|
|
||||||
import type { components } from "$lib/api/schema";
|
|
||||||
|
|
||||||
type AuthStore = {
|
|
||||||
profile: components["schemas"]["v1User"] | null;
|
|
||||||
tokens: components["schemas"]["v1AuthToken"] | null;
|
|
||||||
isLoading: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
const INITIAL_AUTH_STATE: AuthStore = {
|
|
||||||
profile: null,
|
|
||||||
tokens: null,
|
|
||||||
isLoading: false
|
|
||||||
};
|
|
||||||
|
|
||||||
export const authState = writable<AuthStore>(INITIAL_AUTH_STATE);
|
|
||||||
|
|
||||||
export function setTokens(value: components["schemas"]["v1AuthToken"]): void {
|
|
||||||
authState.update((currentState) => {
|
|
||||||
return { ...currentState, tokens: value }
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function setProfile(value: components["schemas"]["v1User"]): void {
|
|
||||||
authState.update((currentState) => {
|
|
||||||
return { ...currentState, profile: value }
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
import { writable } from 'svelte/store';
|
|
||||||
|
|
||||||
function getInitialDark(): boolean {
|
|
||||||
if (typeof window === 'undefined') return false;
|
|
||||||
try {
|
|
||||||
const saved = localStorage.getItem('color-scheme');
|
|
||||||
if (saved === 'dark') return true;
|
|
||||||
if (saved === 'light') return false;
|
|
||||||
return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
||||||
} catch {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export const darkMode = writable<boolean>(getInitialDark());
|
|
||||||
|
|
||||||
export function setDarkMode(value: boolean): void {
|
|
||||||
darkMode.set(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function toggleDarkMode(): void {
|
|
||||||
darkMode.update((v) => !v);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof window !== 'undefined') {
|
|
||||||
darkMode.subscribe((isDark) => {
|
|
||||||
const root = document.documentElement;
|
|
||||||
root.classList.toggle('dark', isDark);
|
|
||||||
try {
|
|
||||||
localStorage.setItem('color-scheme', isDark ? 'dark' : 'light');
|
|
||||||
} catch {
|
|
||||||
// ignore storage write errors
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@@ -1,9 +0,0 @@
|
|||||||
font name: sofiapro-light
|
|
||||||
font link: https://www.fontspring.com/fonts/mostardesign/sofia-pro/sofia-pro-light
|
|
||||||
font author: Mostardesign
|
|
||||||
font author site: http://www.motyfo.com/
|
|
||||||
|
|
||||||
icon designer: N.K.Narasimhan
|
|
||||||
icon designer link: /creator/animnarsi@yahoo.com/
|
|
||||||
|
|
||||||
{"bg":"#F1E2EC","icon-gradient-0":"#8C48D2","icon-gradient-1":"#CF705A","font":"#331B2B","slogan":"#472f3f"}
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
viewBox="0 0 434 90"
|
|
||||||
class="iconLeft"
|
|
||||||
version="1.1"
|
|
||||||
id="svg4"
|
|
||||||
sodipodi:docname="logo-light.svg"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview4"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="2.8018433"
|
|
||||||
inkscape:cx="217"
|
|
||||||
inkscape:cy="44.970395"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1011"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg4" />
|
|
||||||
<g
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
id="7ccbf1f1-d01a-42aa-9755-e9ae79724b7b"
|
|
||||||
fill="#331B2B"
|
|
||||||
transform="matrix(5.7915059834320255,0,0,5.7915059834320255,152.75612078133662,14.999999523162842)"
|
|
||||||
style="fill:#ffffff;fill-opacity:1">
|
|
||||||
<path
|
|
||||||
d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#ffffff;fill-opacity:1" />
|
|
||||||
</g>
|
|
||||||
<defs
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
id="defs2">
|
|
||||||
<linearGradient
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
gradientTransform="rotate(25)"
|
|
||||||
id="e8769ea9-6fdc-46c7-87bb-cf92f23a859c"
|
|
||||||
x1="0%"
|
|
||||||
y1="0%"
|
|
||||||
x2="100%"
|
|
||||||
y2="0%">
|
|
||||||
<stop
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
offset="0%"
|
|
||||||
style="stop-color: rgb(140, 72, 210); stop-opacity: 1;"
|
|
||||||
id="stop1" />
|
|
||||||
<stop
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
offset="100%"
|
|
||||||
style="stop-color: rgb(207, 112, 90); stop-opacity: 1;"
|
|
||||||
id="stop2" />
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
<g
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
id="7665600e-8875-4e76-bddc-4f57bcba1929"
|
|
||||||
transform="matrix(3.635041968759201,0,0,3.635041968759201,0.39221588485064274,-0.0000019073486328125)"
|
|
||||||
stroke="none"
|
|
||||||
fill="url(#e8769ea9-6fdc-46c7-87bb-cf92f23a859c)">
|
|
||||||
<path
|
|
||||||
d="M30.231 8.097h-5.692v7.71h5.692v-7.71zM37.748 8.097h-6.023v7.71h6.023v-7.71z"
|
|
||||||
id="path2" />
|
|
||||||
<path
|
|
||||||
d="M35.647 22.106c0 .249-.026.47-.055.663h2.155v-5.471H13.569a.75.75 0 01-.36-.084.651.651 0 01-.276-.275L3.207 0H0l12.768 22.77h2.266c-.028-.138-.028-.276-.028-.414 0-1.022.359-1.907 1.105-2.625.718-.719 1.575-1.078 2.598-1.078.995 0 1.852.359 2.57 1.078.746.718 1.105 1.603 1.105 2.625 0 .138 0 .276-.028.414h6.024a2.385 2.385 0 01-.083-.663c0-1.021.359-1.906 1.078-2.625.718-.718 1.574-1.078 2.569-1.078 1.023 0 1.907.36 2.626 1.078.719.718 1.077 1.603 1.077 2.624z"
|
|
||||||
id="path3" />
|
|
||||||
<path
|
|
||||||
d="M34.404 22.079a2.37 2.37 0 00-.719-1.74 2.373 2.373 0 00-1.741-.719c-.663 0-1.243.248-1.713.719a2.372 2.372 0 00-.719 1.74c0 .249.028.497.111.69.11.387.304.719.607 1.023.47.47 1.05.719 1.713.719.691 0 1.271-.249 1.741-.719.304-.305.498-.637.635-1.023.058-.193.085-.441.085-.69zM23.047 15.807v-7.71h-5.859v7.71h5.859zM15.696 8.097H9.589l4.422 7.71h1.685v-7.71zM16.221 22.328c0 .139.028.304.056.441.082.471.303.912.663 1.271.497.471 1.077.719 1.74.719.664 0 1.244-.248 1.742-.719.359-.359.58-.801.69-1.271.027-.138.027-.303.027-.441 0-.691-.248-1.271-.718-1.741-.498-.47-1.078-.719-1.742-.719-.663 0-1.243.249-1.74.719a2.384 2.384 0 00-.718 1.741z"
|
|
||||||
id="path4" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 5.1 KiB |
@@ -1,81 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
viewBox="0 0 434 90"
|
|
||||||
class="iconLeft"
|
|
||||||
version="1.1"
|
|
||||||
id="svg4"
|
|
||||||
sodipodi:docname="logo.svg"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview4"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="4.0852535"
|
|
||||||
inkscape:cx="149.56232"
|
|
||||||
inkscape:cy="45.040045"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1011"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg4" />
|
|
||||||
<g
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
id="7ccbf1f1-d01a-42aa-9755-e9ae79724b7b"
|
|
||||||
fill="#331B2B"
|
|
||||||
transform="matrix(5.7915059834320255,0,0,5.7915059834320255,152.75612078133662,14.999999523162842)"
|
|
||||||
style="fill:#000000;fill-opacity:1">
|
|
||||||
<path
|
|
||||||
d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#000000;fill-opacity:1" />
|
|
||||||
</g>
|
|
||||||
<defs
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
id="defs2">
|
|
||||||
<linearGradient
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
gradientTransform="rotate(25)"
|
|
||||||
id="e8769ea9-6fdc-46c7-87bb-cf92f23a859c"
|
|
||||||
x1="0%"
|
|
||||||
y1="0%"
|
|
||||||
x2="100%"
|
|
||||||
y2="0%">
|
|
||||||
<stop
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
offset="0%"
|
|
||||||
style="stop-color: rgb(140, 72, 210); stop-opacity: 1;"
|
|
||||||
id="stop1" />
|
|
||||||
<stop
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
offset="100%"
|
|
||||||
style="stop-color: rgb(207, 112, 90); stop-opacity: 1;"
|
|
||||||
id="stop2" />
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
<g
|
|
||||||
data-v-423bf9ae=""
|
|
||||||
id="7665600e-8875-4e76-bddc-4f57bcba1929"
|
|
||||||
transform="matrix(3.635041968759201,0,0,3.635041968759201,0.39221588485064274,-0.0000019073486328125)"
|
|
||||||
stroke="none"
|
|
||||||
fill="url(#e8769ea9-6fdc-46c7-87bb-cf92f23a859c)">
|
|
||||||
<path
|
|
||||||
d="M30.231 8.097h-5.692v7.71h5.692v-7.71zM37.748 8.097h-6.023v7.71h6.023v-7.71z"
|
|
||||||
id="path2" />
|
|
||||||
<path
|
|
||||||
d="M35.647 22.106c0 .249-.026.47-.055.663h2.155v-5.471H13.569a.75.75 0 01-.36-.084.651.651 0 01-.276-.275L3.207 0H0l12.768 22.77h2.266c-.028-.138-.028-.276-.028-.414 0-1.022.359-1.907 1.105-2.625.718-.719 1.575-1.078 2.598-1.078.995 0 1.852.359 2.57 1.078.746.718 1.105 1.603 1.105 2.625 0 .138 0 .276-.028.414h6.024a2.385 2.385 0 01-.083-.663c0-1.021.359-1.906 1.078-2.625.718-.718 1.574-1.078 2.569-1.078 1.023 0 1.907.36 2.626 1.078.719.718 1.077 1.603 1.077 2.624z"
|
|
||||||
id="path3" />
|
|
||||||
<path
|
|
||||||
d="M34.404 22.079a2.37 2.37 0 00-.719-1.74 2.373 2.373 0 00-1.741-.719c-.663 0-1.243.248-1.713.719a2.372 2.372 0 00-.719 1.74c0 .249.028.497.111.69.11.387.304.719.607 1.023.47.47 1.05.719 1.713.719.691 0 1.271-.249 1.741-.719.304-.305.498-.637.635-1.023.058-.193.085-.441.085-.69zM23.047 15.807v-7.71h-5.859v7.71h5.859zM15.696 8.097H9.589l4.422 7.71h1.685v-7.71zM16.221 22.328c0 .139.028.304.056.441.082.471.303.912.663 1.271.497.471 1.077.719 1.74.719.664 0 1.244-.248 1.742-.719.359-.359.58-.801.69-1.271.027-.138.027-.303.027-.441 0-.691-.248-1.271-.718-1.741-.498-.47-1.078-.719-1.742-.719-.663 0-1.243.249-1.74.719a2.384 2.384 0 00-.718 1.741z"
|
|
||||||
id="path4" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 34 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg data-v-423bf9ae="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 434 90" class="iconLeft"><!----><!----><!----><g data-v-423bf9ae="" id="dd29e1ea-8536-46b0-b33c-374cd452669b" fill="black" transform="matrix(5.7915059834320255,0,0,5.7915059834320255,152.75612078133662,14.999999523162842)"><path d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"></path></g><!----><g data-v-423bf9ae="" id="1f868b94-934e-425c-b97d-c594a0825f88" transform="matrix(3.635041968759201,0,0,3.635041968759201,0.39221588485064274,-0.0000019073486328125)" stroke="none" fill="black"><path d="M30.231 8.097h-5.692v7.71h5.692v-7.71zM37.748 8.097h-6.023v7.71h6.023v-7.71z"></path><path d="M35.647 22.106c0 .249-.026.47-.055.663h2.155v-5.471H13.569a.75.75 0 01-.36-.084.651.651 0 01-.276-.275L3.207 0H0l12.768 22.77h2.266c-.028-.138-.028-.276-.028-.414 0-1.022.359-1.907 1.105-2.625.718-.719 1.575-1.078 2.598-1.078.995 0 1.852.359 2.57 1.078.746.718 1.105 1.603 1.105 2.625 0 .138 0 .276-.028.414h6.024a2.385 2.385 0 01-.083-.663c0-1.021.359-1.906 1.078-2.625.718-.718 1.574-1.078 2.569-1.078 1.023 0 1.907.36 2.626 1.078.719.718 1.077 1.603 1.077 2.624z"></path><path d="M34.404 22.079a2.37 2.37 0 00-.719-1.74 2.373 2.373 0 00-1.741-.719c-.663 0-1.243.248-1.713.719a2.372 2.372 0 00-.719 1.74c0 .249.028.497.111.69.11.387.304.719.607 1.023.47.47 1.05.719 1.713.719.691 0 1.271-.249 1.741-.719.304-.305.498-.637.635-1.023.058-.193.085-.441.085-.69zM23.047 15.807v-7.71h-5.859v7.71h5.859zM15.696 8.097H9.589l4.422 7.71h1.685v-7.71zM16.221 22.328c0 .139.028.304.056.441.082.471.303.912.663 1.271.497.471 1.077.719 1.74.719.664 0 1.244-.248 1.742-.719.359-.359.58-.801.69-1.271.027-.138.027-.303.027-.441 0-.691-.248-1.271-.718-1.741-.498-.47-1.078-.719-1.742-.719-.663 0-1.243.249-1.74.719a2.384 2.384 0 00-.718 1.741z"></path></g><!----></svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg data-v-423bf9ae="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 434 90" class="iconLeft"><!----><!----><!----><g data-v-423bf9ae="" id="1257107e-f0fa-4ca8-afb9-859f8a88e819" fill="white" transform="matrix(5.7915059834320255,0,0,5.7915059834320255,152.75612078133662,14.999999523162842)"><path d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"></path></g><!----><g data-v-423bf9ae="" id="edef95aa-1b99-42ce-a29c-747b164bbefc" transform="matrix(3.635041968759201,0,0,3.635041968759201,0.39221588485064274,-0.0000019073486328125)" stroke="none" fill="white"><path d="M30.231 8.097h-5.692v7.71h5.692v-7.71zM37.748 8.097h-6.023v7.71h6.023v-7.71z"></path><path d="M35.647 22.106c0 .249-.026.47-.055.663h2.155v-5.471H13.569a.75.75 0 01-.36-.084.651.651 0 01-.276-.275L3.207 0H0l12.768 22.77h2.266c-.028-.138-.028-.276-.028-.414 0-1.022.359-1.907 1.105-2.625.718-.719 1.575-1.078 2.598-1.078.995 0 1.852.359 2.57 1.078.746.718 1.105 1.603 1.105 2.625 0 .138 0 .276-.028.414h6.024a2.385 2.385 0 01-.083-.663c0-1.021.359-1.906 1.078-2.625.718-.718 1.574-1.078 2.569-1.078 1.023 0 1.907.36 2.626 1.078.719.718 1.077 1.603 1.077 2.624z"></path><path d="M34.404 22.079a2.37 2.37 0 00-.719-1.74 2.373 2.373 0 00-1.741-.719c-.663 0-1.243.248-1.713.719a2.372 2.372 0 00-.719 1.74c0 .249.028.497.111.69.11.387.304.719.607 1.023.47.47 1.05.719 1.713.719.691 0 1.271-.249 1.741-.719.304-.305.498-.637.635-1.023.058-.193.085-.441.085-.69zM23.047 15.807v-7.71h-5.859v7.71h5.859zM15.696 8.097H9.589l4.422 7.71h1.685v-7.71zM16.221 22.328c0 .139.028.304.056.441.082.471.303.912.663 1.271.497.471 1.077.719 1.74.719.664 0 1.244-.248 1.742-.719.359-.359.58-.801.69-1.271.027-.138.027-.303.027-.441 0-.691-.248-1.271-.718-1.741-.498-.47-1.078-.719-1.742-.719-.663 0-1.243.249-1.74.719a2.384 2.384 0 00-.718 1.741z"></path></g><!----></svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg data-v-423bf9ae="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 434 90" class="iconLeft"><!----><!----><!----><g data-v-423bf9ae="" id="7ccbf1f1-d01a-42aa-9755-e9ae79724b7b" fill="#331B2B" transform="matrix(5.7915059834320255,0,0,5.7915059834320255,152.75612078133662,14.999999523162842)"><path d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"></path></g><defs data-v-423bf9ae=""><linearGradient data-v-423bf9ae="" gradientTransform="rotate(25)" id="e8769ea9-6fdc-46c7-87bb-cf92f23a859c" x1="0%" y1="0%" x2="100%" y2="0%"><stop data-v-423bf9ae="" offset="0%" style="stop-color: rgb(140, 72, 210); stop-opacity: 1;"></stop><stop data-v-423bf9ae="" offset="100%" style="stop-color: rgb(207, 112, 90); stop-opacity: 1;"></stop></linearGradient></defs><g data-v-423bf9ae="" id="7665600e-8875-4e76-bddc-4f57bcba1929" transform="matrix(3.635041968759201,0,0,3.635041968759201,0.39221588485064274,-0.0000019073486328125)" stroke="none" fill="url(#e8769ea9-6fdc-46c7-87bb-cf92f23a859c)"><path d="M30.231 8.097h-5.692v7.71h5.692v-7.71zM37.748 8.097h-6.023v7.71h6.023v-7.71z"></path><path d="M35.647 22.106c0 .249-.026.47-.055.663h2.155v-5.471H13.569a.75.75 0 01-.36-.084.651.651 0 01-.276-.275L3.207 0H0l12.768 22.77h2.266c-.028-.138-.028-.276-.028-.414 0-1.022.359-1.907 1.105-2.625.718-.719 1.575-1.078 2.598-1.078.995 0 1.852.359 2.57 1.078.746.718 1.105 1.603 1.105 2.625 0 .138 0 .276-.028.414h6.024a2.385 2.385 0 01-.083-.663c0-1.021.359-1.906 1.078-2.625.718-.718 1.574-1.078 2.569-1.078 1.023 0 1.907.36 2.626 1.078.719.718 1.077 1.603 1.077 2.624z"></path><path d="M34.404 22.079a2.37 2.37 0 00-.719-1.74 2.373 2.373 0 00-1.741-.719c-.663 0-1.243.248-1.713.719a2.372 2.372 0 00-.719 1.74c0 .249.028.497.111.69.11.387.304.719.607 1.023.47.47 1.05.719 1.713.719.691 0 1.271-.249 1.741-.719.304-.305.498-.637.635-1.023.058-.193.085-.441.085-.69zM23.047 15.807v-7.71h-5.859v7.71h5.859zM15.696 8.097H9.589l4.422 7.71h1.685v-7.71zM16.221 22.328c0 .139.028.304.056.441.082.471.303.912.663 1.271.497.471 1.077.719 1.74.719.664 0 1.244-.248 1.742-.719.359-.359.58-.801.69-1.271.027-.138.027-.303.027-.441 0-.691-.248-1.271-.718-1.741-.498-.47-1.078-.719-1.742-.719-.663 0-1.243.249-1.74.719a2.384 2.384 0 00-.718 1.741z"></path></g><!----></svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.9 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg data-v-fde0c5aa="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" class="iconLeft"><!----><defs data-v-fde0c5aa=""><!----></defs><rect data-v-fde0c5aa="" fill="#F1E2EC" x="0" y="0" width="300px" height="300px" class="logo-background-square"></rect><defs data-v-fde0c5aa=""><!----></defs><g data-v-fde0c5aa="" id="d7c30393-961b-4b3a-9f0c-019d46f9408e" fill="#331B2B" transform="matrix(2.902307689539151,0,0,2.902307689539151,119.52830478166314,134.96604666640133)"><path d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"></path></g><defs data-v-fde0c5aa=""><linearGradient data-v-fde0c5aa="" gradientTransform="rotate(25)" id="e769396b-e7dc-4463-997c-19b23a564bda" x1="0%" y1="0%" x2="100%" y2="0%"><stop data-v-fde0c5aa="" offset="0%" stop-color="#8C48D2" stop-opacity="1"></stop><stop data-v-fde0c5aa="" offset="100%" stop-color="#CF705A" stop-opacity="1"></stop></linearGradient></defs><g data-v-fde0c5aa="" id="278c653e-b7e8-4473-949a-a2d1c8506d27" stroke="none" fill="url(#e769396b-e7dc-4463-997c-19b23a564bda)" transform="matrix(1.821635044133282,0,0,1.821635044133282,40,127.449069999602)"><path d="M30.231 8.097h-5.692v7.71h5.692v-7.71zM37.748 8.097h-6.023v7.71h6.023v-7.71z"></path><path d="M35.647 22.106c0 .249-.026.47-.055.663h2.155v-5.471H13.569a.75.75 0 01-.36-.084.651.651 0 01-.276-.275L3.207 0H0l12.768 22.77h2.266c-.028-.138-.028-.276-.028-.414 0-1.022.359-1.907 1.105-2.625.718-.719 1.575-1.078 2.598-1.078.995 0 1.852.359 2.57 1.078.746.718 1.105 1.603 1.105 2.625 0 .138 0 .276-.028.414h6.024a2.385 2.385 0 01-.083-.663c0-1.021.359-1.906 1.078-2.625.718-.718 1.574-1.078 2.569-1.078 1.023 0 1.907.36 2.626 1.078.719.718 1.077 1.603 1.077 2.624z"></path><path d="M34.404 22.079a2.37 2.37 0 00-.719-1.74 2.373 2.373 0 00-1.741-.719c-.663 0-1.243.248-1.713.719a2.372 2.372 0 00-.719 1.74c0 .249.028.497.111.69.11.387.304.719.607 1.023.47.47 1.05.719 1.713.719.691 0 1.271-.249 1.741-.719.304-.305.498-.637.635-1.023.058-.193.085-.441.085-.69zM23.047 15.807v-7.71h-5.859v7.71h5.859zM15.696 8.097H9.589l4.422 7.71h1.685v-7.71zM16.221 22.328c0 .139.028.304.056.441.082.471.303.912.663 1.271.497.471 1.077.719 1.74.719.664 0 1.244-.248 1.742-.719.359-.359.58-.801.69-1.271.027-.138.027-.303.027-.441 0-.691-.248-1.271-.718-1.741-.498-.47-1.078-.719-1.742-.719-.663 0-1.243.249-1.74.719a2.384 2.384 0 00-.718 1.741z"></path></g><!----></svg>
|
|
||||||
|
Before Width: | Height: | Size: 4.0 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg data-v-fde0c5aa="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" class="font"><!----><defs data-v-fde0c5aa=""><!----></defs><rect data-v-fde0c5aa="" fill="#F1E2EC" x="0" y="0" width="300px" height="300px" class="logo-background-square"></rect><defs data-v-fde0c5aa=""><linearGradient data-v-fde0c5aa="" gradientTransform="rotate(25)" id="55d34800-f110-4512-9699-1f5d7d1d4408" x1="0%" y1="0%" x2="100%" y2="0%"><stop data-v-fde0c5aa="" offset="0%" stop-color="#8C48D2" stop-opacity="1"></stop><stop data-v-fde0c5aa="" offset="100%" stop-color="#CF705A" stop-opacity="1"></stop></linearGradient></defs><g data-v-fde0c5aa="" id="c8ec85ad-7159-4a52-a513-df3587f56c8b" fill="url(#55d34800-f110-4512-9699-1f5d7d1d4408)" transform="matrix(4.618937540760917,0,0,4.618937540760917,36.44341818171332,126.07390433175163)"><path d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"></path></g><!----><!----></svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.6 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg data-v-423bf9ae="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 275.84943617686315 60" class="font"><!----><!----><!----><g data-v-423bf9ae="" id="9e49fb69-d1b0-46ae-beda-1ae5f9d0dd96" fill="black" transform="matrix(5.7915059834320255,0,0,5.7915059834320255,-4.459463019932912,-4.76837158203125e-7)"><path d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"></path></g><!----><!----></svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg data-v-423bf9ae="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 275.84943617686315 60" class="font"><!----><!----><!----><g data-v-423bf9ae="" id="a893fd5a-3adf-4cc3-81b4-6b589464f3c0" fill="white" transform="matrix(5.7915059834320255,0,0,5.7915059834320255,-4.459463019932912,-4.76837158203125e-7)"><path d="M4.00 10.36C6.12 10.36 7.24 8.92 7.24 7.56C7.24 6.16 6.17 5.33 4.65 4.96L3.35 4.65C1.90 4.31 1.76 3.54 1.76 3.09C1.76 2.02 2.79 1.33 3.88 1.33C5.04 1.33 5.92 2.02 5.98 3.08L6.90 3.08C6.85 1.47 5.54 0.46 3.91 0.46C2.31 0.46 0.84 1.50 0.84 3.09C0.84 3.86 1.13 5.03 3.12 5.50L4.42 5.81C5.38 6.05 6.31 6.55 6.31 7.60C6.31 8.51 5.54 9.49 4.00 9.49C2.65 9.49 1.78 8.58 1.68 7.63L0.77 7.63C0.84 9.03 2.11 10.36 4.00 10.36ZM11.82 3.68L10.32 3.68L10.32 1.08L9.44 1.08L9.44 3.68L8.25 3.68L8.25 4.45L9.44 4.45L9.44 10.22L10.32 10.22L10.32 4.45L11.82 4.45ZM16.02 10.36C17.88 10.36 19.45 9.00 19.45 6.93C19.45 4.86 17.88 3.54 16.02 3.54C14.15 3.54 12.60 4.86 12.60 6.93C12.60 9.00 14.15 10.36 16.02 10.36ZM16.02 9.51C14.63 9.51 13.50 8.48 13.50 6.93C13.50 5.39 14.63 4.40 16.02 4.40C17.39 4.40 18.55 5.39 18.55 6.93C18.55 8.48 17.39 9.51 16.02 9.51ZM24.23 10.35C25.17 10.35 26.00 10.01 26.59 9.45L26.03 8.85C25.58 9.25 24.96 9.49 24.26 9.49C22.83 9.49 21.67 8.47 21.67 6.94C21.67 5.40 22.83 4.40 24.26 4.40C24.96 4.40 25.58 4.65 26.03 5.05L26.59 4.44C26.00 3.89 25.17 3.54 24.23 3.54C22.37 3.54 20.78 4.87 20.78 6.94C20.78 9.02 22.37 10.35 24.23 10.35ZM33.66 10.22L30.03 6.52L32.83 3.68L31.58 3.68L29.13 6.19L29.13 0L28.24 0L28.24 10.22L29.13 10.22L29.13 6.86L32.44 10.22ZM34.68 10.22L35.57 10.22L35.57 0L34.68 0ZM43.92 6.93C43.92 4.86 42.56 3.54 40.70 3.54C38.85 3.54 37.37 4.86 37.37 6.93C37.37 9.00 38.85 10.36 40.70 10.36C41.93 10.36 43.05 9.77 43.62 8.72L42.85 8.39C42.42 9.10 41.62 9.51 40.73 9.51C39.41 9.51 38.43 8.72 38.28 7.32L43.90 7.32C43.92 7.20 43.92 7.06 43.92 6.93ZM38.29 6.55C38.46 5.15 39.41 4.40 40.70 4.40C41.97 4.40 42.91 5.19 43.04 6.55ZM48.40 3.68L46.90 3.68L46.90 1.08L46.02 1.08L46.02 3.68L44.83 3.68L44.83 4.45L46.02 4.45L46.02 10.22L46.90 10.22L46.90 4.45L48.40 4.45Z"></path></g><!----><!----></svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB |
@@ -1,3 +0,0 @@
|
|||||||
# allow crawling everything by default
|
|
||||||
User-agent: *
|
|
||||||
Disallow:
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
import adapter from '@sveltejs/adapter-node';
|
|
||||||
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
|
||||||
|
|
||||||
/** @type {import('@sveltejs/kit').Config} */
|
|
||||||
const config = {
|
|
||||||
// Consult https://svelte.dev/docs/kit/integrations
|
|
||||||
// for more information about preprocessors
|
|
||||||
preprocess: vitePreprocess(),
|
|
||||||
|
|
||||||
kit: {
|
|
||||||
// Use static adapter for Docker deployment
|
|
||||||
// adapter: adapter({
|
|
||||||
// pages: 'build',
|
|
||||||
// assets: 'build',
|
|
||||||
// fallback: 'index.html',
|
|
||||||
// precompress: false,
|
|
||||||
// strict: false
|
|
||||||
// })
|
|
||||||
|
|
||||||
adapter: adapter({
|
|
||||||
out: 'build',
|
|
||||||
precompress: false,
|
|
||||||
envPrefix: ''
|
|
||||||
})
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export default config;
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "./.svelte-kit/tsconfig.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"allowJs": true,
|
|
||||||
"checkJs": true,
|
|
||||||
"esModuleInterop": true,
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"resolveJsonModule": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"sourceMap": true,
|
|
||||||
"strict": true,
|
|
||||||
"moduleResolution": "bundler"
|
|
||||||
}
|
|
||||||
// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
|
|
||||||
// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
|
|
||||||
//
|
|
||||||
// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
|
|
||||||
// from the referenced tsconfig.json - TypeScript does not merge them in
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
import tailwindcss from '@tailwindcss/vite';
|
|
||||||
import { sveltekit } from '@sveltejs/kit/vite';
|
|
||||||
import { defineConfig } from 'vite';
|
|
||||||
|
|
||||||
export default defineConfig({
|
|
||||||
plugins: [tailwindcss(), sveltekit()]
|
|
||||||
});
|
|
||||||