diff --git a/.vitepress/config.mts b/.vitepress/config.mts
index a07c29b3..59daade8 100644
--- a/.vitepress/config.mts
+++ b/.vitepress/config.mts
@@ -1,6 +1,8 @@
+import tailwindcss from "@tailwindcss/vite";
+import path from "path";
import { defineConfig } from "vitepress";
+import { componentMarkdownUtils } from "./theme/utils/ComponentMarkdownUtils";
-// TODO: Review this links when releasing the site
const links = {
playground:
"https://stackblitz.com/fork/github/nativescript-vue/nativescript-vue/tree/main/packages/stackblitz-template?file=src%2Fcomponents%2FHome.vue&title=NativeScript%20Starter%20Vue3",
@@ -12,13 +14,19 @@ const links = {
nativescriptDocs: "https://docs.nativescript.org/",
};
-// https://vitepress.dev/reference/site-config
export default defineConfig({
+ vite: {
+ plugins: [tailwindcss()],
+ resolve: {
+ alias: {
+ "@components": path.resolve(__dirname, "./theme/components"),
+ "@data": path.resolve(__dirname, "./theme/data"),
+ },
+ },
+ },
srcDir: "content",
title: "NativeScript-Vue",
description: "Delightful mobile app development.",
-
- // todo: remove when content is ready
ignoreDeadLinks: true,
cleanUrls: true,
themeConfig: {
@@ -142,7 +150,11 @@ export default defineConfig({
options: {
_render(src, env, md) {
if (env.path.includes("archived-docs")) return "";
- return md.render(src, env);
+
+ return md.render(
+ componentMarkdownUtils.processSearchableVueContent(src),
+ env
+ );
},
},
},
diff --git a/.vitepress/theme/components/ComponentList.vue b/.vitepress/theme/components/ComponentList.vue
new file mode 100644
index 00000000..21460bd6
--- /dev/null
+++ b/.vitepress/theme/components/ComponentList.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/.vitepress/theme/components/ComponentListItem.vue b/.vitepress/theme/components/ComponentListItem.vue
new file mode 100644
index 00000000..b3184cd8
--- /dev/null
+++ b/.vitepress/theme/components/ComponentListItem.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/.vitepress/theme/components/match_markdown/H2Title.vue b/.vitepress/theme/components/match_markdown/H2Title.vue
new file mode 100644
index 00000000..3e8e43dd
--- /dev/null
+++ b/.vitepress/theme/components/match_markdown/H2Title.vue
@@ -0,0 +1,15 @@
+
+
+
+ {{ title }}
+
+
+
diff --git a/.vitepress/theme/components/match_markdown/HeaderAnchorPermanentLink.vue b/.vitepress/theme/components/match_markdown/HeaderAnchorPermanentLink.vue
new file mode 100644
index 00000000..e517a16d
--- /dev/null
+++ b/.vitepress/theme/components/match_markdown/HeaderAnchorPermanentLink.vue
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/.vitepress/theme/data/DataComponents.ts b/.vitepress/theme/data/DataComponents.ts
new file mode 100644
index 00000000..038c0f56
--- /dev/null
+++ b/.vitepress/theme/data/DataComponents.ts
@@ -0,0 +1,260 @@
+const nativescriptUIbaseUrl = "https://docs.nativescript.org/ui";
+
+export interface DataComponent {
+ name: string;
+ description: string;
+ url: string;
+ vModel?: string;
+ img?: string;
+}
+export interface SectionComponent {
+ name: string;
+ views: DataComponent[];
+}
+
+export const dataComponents: SectionComponent[] = [
+ {
+ name: "Layout Containers",
+ views: [
+ {
+ name: "StackLayout",
+ description: "Stacks views vertically or horizontally",
+ url: `${nativescriptUIbaseUrl}/stack-layout`,
+ img: "https://art.nativescript.org/layouts/wrap_layout_horizontal.svg",
+ },
+ {
+ name: "GridLayout",
+ description: "Arranges views in a grid of rows and columns",
+ url: `${nativescriptUIbaseUrl}/grid-layout`,
+ img: "https://art.nativescript.org/layouts/grid_layout.svg",
+ },
+ {
+ name: "RootLayout",
+ description: "Dynamically positions views relative to parent edges",
+ url: `/docs/elements/components/root-layout`,
+ img: "/images/components/root_layout.png",
+ },
+ {
+ name: "FlexboxLayout",
+ description: "Layouts views with CSS Flexbox properties",
+ url: `${nativescriptUIbaseUrl}/flexbox-layout`,
+ img: "https://art.nativescript.org/layouts/flexbox_layout_row_stretch.svg",
+ },
+ {
+ name: "WrapLayout",
+ description: "Wraps views onto multiple lines",
+ url: `${nativescriptUIbaseUrl}/wrap-layout`,
+ img: "https://art.nativescript.org/layouts/wrap_layout_horizontal.svg",
+ },
+ {
+ name: "DockLayout",
+ description: "Positions views at edges of the container",
+ url: `${nativescriptUIbaseUrl}/dock-layout`,
+ img: "https://art.nativescript.org/layouts/dock_layout_stretch.svg",
+ },
+ {
+ name: "AbsoluteLayout",
+ description: "Places views at explicit x/y coordinates",
+ url: `${nativescriptUIbaseUrl}/absolute-layout`,
+ img: "https://art.nativescript.org/layouts/absolute_layout_grid.svg",
+ },
+ ],
+ },
+ {
+ name: "Navigation Components",
+ views: [
+ {
+ name: "Frame",
+ description: "Root container for app navigation",
+ url: `${nativescriptUIbaseUrl}/frame`,
+ },
+ {
+ name: "Page",
+ description: "Represents a single screen",
+ url: `${nativescriptUIbaseUrl}/page`,
+ },
+ {
+ name: "ActionBar",
+ description: "Top app bar for navigation and actions",
+ url: `${nativescriptUIbaseUrl}/action-bar`,
+ },
+ {
+ name: "ActionItem",
+ description: "Item within ActionBar for specific actions",
+ url: `${nativescriptUIbaseUrl}/action-item`,
+ },
+ {
+ name: "NavigationButton",
+ description: "Button for navigation in ActionBar",
+ url: `${nativescriptUIbaseUrl}/navigation-button`,
+ },
+ ],
+ },
+ {
+ name: "Dialogs",
+ views: [
+ {
+ name: "Alert",
+ description: "Displays an alert message",
+ url: `${nativescriptUIbaseUrl}/alert`,
+ img: "/images/components/alert.png",
+ },
+ {
+ name: "Action",
+ description: "Shows multiple selectable options",
+ url: `${nativescriptUIbaseUrl}/action`,
+ img: "/images/components/action.png",
+ },
+ {
+ name: "Confirm",
+ description: "Requests user confirmation",
+ url: `${nativescriptUIbaseUrl}/confirm`,
+ img: "/images/components/confirm.png",
+ },
+ {
+ name: "Prompt",
+ description: "Requests text input from user",
+ url: `${nativescriptUIbaseUrl}/prompt`,
+ img: "/images/components/prompt.png",
+ },
+ {
+ name: "Login",
+ description: "Dialog for username/password input",
+ url: `${nativescriptUIbaseUrl}/login`,
+ img: "/images/components/login.png",
+ },
+ ],
+ },
+ {
+ name: "Components",
+ views: [
+ {
+ name: "ActivityIndicator",
+ description: "Shows a loading spinner",
+ url: `${nativescriptUIbaseUrl}/activity-indicator`,
+ img: "/images/components/activity_indicator.png",
+ },
+ {
+ name: "Button",
+ description: "Touchable button component",
+ url: `${nativescriptUIbaseUrl}/button`,
+ img: "/images/components/button.png",
+ },
+ {
+ name: "DatePicker",
+ description: "Allows date selection",
+ vModel: "date",
+ url: `${nativescriptUIbaseUrl}/date-picker`,
+ img: "/images/components/date_picker.png",
+ },
+ {
+ name: "HtmlView",
+ description: "Renders HTML content",
+ url: `${nativescriptUIbaseUrl}/html-view`,
+ img: "/images/components/html_view.png",
+ },
+ {
+ name: "Image",
+ description: "Displays an image",
+ url: `${nativescriptUIbaseUrl}/image`,
+ img: "/images/components/image.png",
+ },
+ {
+ name: "Label",
+ description: "Displays text content",
+ url: `${nativescriptUIbaseUrl}/label`,
+ img: "/images/components/label.png",
+ },
+ {
+ name: "ListPicker",
+ description: "Dropdown to pick items",
+ vModel: "selectedIndex",
+ url: `${nativescriptUIbaseUrl}/list-picker`,
+ img: "/images/components/list_picker.png",
+ },
+ {
+ name: "ListView",
+ description: "Scrollable list of items",
+ url: `/docs/elements/components/list-view`,
+ img: "/images/components/list_view.png",
+ },
+ {
+ name: "Placeholder",
+ description: "Container for dynamic views",
+ url: `${nativescriptUIbaseUrl}/placeholder`,
+ img: "/images/components/placeholder.png",
+ },
+ {
+ name: "Progress",
+ description: "Shows progress indicator",
+ url: `${nativescriptUIbaseUrl}/progress`,
+ img: "/images/components/progress.png",
+ },
+ {
+ name: "ScrollView",
+ description: "Scrollable container for content",
+ url: `${nativescriptUIbaseUrl}/scroll-view`,
+ img: "/images/components/scroll_view.png",
+ },
+ {
+ name: "SearchBar",
+ description: "Input for search queries",
+ url: `${nativescriptUIbaseUrl}/search-bar`,
+ img: "/images/components/search_bar.png",
+ },
+ {
+ name: "SegmentedBar",
+ description: "Horizontal bar with segments",
+ url: `${nativescriptUIbaseUrl}/segmented-bar`,
+ img: "/images/components/segmented_bar.png",
+ },
+ {
+ name: "Slider",
+ description: "Lets users pick a value within range",
+ vModel: "value",
+ url: `${nativescriptUIbaseUrl}/slider`,
+ img: "/images/components/slider.png",
+ },
+ {
+ name: "Switch",
+ description: "Toggle switch control",
+ vModel: "checked",
+ url: `${nativescriptUIbaseUrl}/switch`,
+ img: "/images/components/switch.png",
+ },
+ {
+ name: "TabView",
+ description: "View with tab-based navigation",
+ url: `${nativescriptUIbaseUrl}/tab-view`,
+ img: "/images/components/tab_view.png",
+ },
+ {
+ name: "TextField",
+ description: "Single-line text input",
+ vModel: "text",
+ url: `${nativescriptUIbaseUrl}/text-field`,
+ img: "/images/components/text_field.png",
+ },
+ {
+ name: "TextView",
+ description: "Multi-line text input",
+ vModel: "text",
+ url: `${nativescriptUIbaseUrl}/text-view`,
+ img: "/images/components/text_view.png",
+ },
+ {
+ name: "TimePicker",
+ description: "Allows time selection",
+ vModel: "time",
+ url: `${nativescriptUIbaseUrl}/time-picker`,
+ img: "/images/components/time_picker.png",
+ },
+ {
+ name: "WebView",
+ description: "Displays web content",
+ url: `${nativescriptUIbaseUrl}/web-view`,
+ img: "/images/components/web_view.png",
+ },
+ ],
+ },
+];
diff --git a/.vitepress/theme/style.css b/.vitepress/theme/style.css
index 7e2be51e..f24250e8 100644
--- a/.vitepress/theme/style.css
+++ b/.vitepress/theme/style.css
@@ -1,3 +1,17 @@
+@import "tailwindcss";
+@source './components/*.vue';
+@source '../../content/**/*.md';
+:root {
+}
+.dark {
+}
+@theme inline{
+ --color-ns: #65adf1;
+ --color-vue: var(--vp-c-green-1);
+ --color-bg: var(--vp-c-bg);
+ --color-divider: var(--vp-c-divider);
+}
+
/**
* Customize default theme styling by overriding CSS variables:
* https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
@@ -136,3 +150,18 @@
.DocSearch {
--docsearch-primary-color: var(--vp-c-brand-1) !important;
}
+
+/**
+ * Custom CSS
+ * -------------------------------------------------------------------------- */
+
+.text-color{
+ color: var(--vp-c-text-1) !important;
+}
+
+.vp-doc a[href^="https://www.nativescript.org"],
+.vp-doc a[href^="https://nativescript.org"],
+.vp-doc a[href^="https://docs.nativescript.org"],
+.vp-doc a[href^="https://docs.nativescript.org"] code {
+ color: var(--color-ns);
+}
\ No newline at end of file
diff --git a/.vitepress/theme/utils/ComponentMarkdownUtils.ts b/.vitepress/theme/utils/ComponentMarkdownUtils.ts
new file mode 100644
index 00000000..d3c22137
--- /dev/null
+++ b/.vitepress/theme/utils/ComponentMarkdownUtils.ts
@@ -0,0 +1,28 @@
+import { dataComponents } from "../data/DataComponents";
+
+export const componentMarkdownUtils = {
+ buildIdMarkdown: (id: string) => {
+ return id.trim().toLowerCase().replace(/\s/g, "-");
+ },
+ processSearchableVueContent(src: string) {
+ if (src.includes("")) {
+ src = src.replace(
+ "",
+ generateSearchableComponents()
+ );
+ }
+
+ return src;
+ },
+};
+
+function generateSearchableComponents() {
+ let md = "";
+ dataComponents.forEach((section) => {
+ md += `## ${section.name}\n`;
+ section.views.forEach((view) => {
+ md += `### ${view.name}\n${view.description}\n`;
+ });
+ });
+ return md;
+}
diff --git a/content/docs/elements/components/list-view.md b/content/docs/elements/components/list-view.md
index 59966f65..efe2ad18 100644
--- a/content/docs/elements/components/list-view.md
+++ b/content/docs/elements/components/list-view.md
@@ -22,10 +22,9 @@ contributors: [MisterBrownRSA, rigor789, eddyverbruggen, ikoevska, vallemar]
```
---
+
-
-
## Using `` with multiple `` slots
diff --git a/content/docs/elements/components/ns-components.md b/content/docs/elements/components/ns-components.md
index e7c6b22b..f01ebf89 100644
--- a/content/docs/elements/components/ns-components.md
+++ b/content/docs/elements/components/ns-components.md
@@ -1,57 +1,26 @@
---
contributors: [vallemar]
+
---
# NativeScript Components
NativeScript-Vue runs on top of NativeScript, so under the hood the native [NativeScript views](https://docs.nativescript.org/ui/) are used, there are only some differences with some views and these will be the ones you will find in the Components section of this documentation.
-For all other views you will be redirected to the NativeScript documentation, these views are listed below:
-
-## Layout Containers
-* [StackLayout](https://docs.nativescript.org/ui/stack-layout)
-* [GridLayout](https://docs.nativescript.org/ui/grid-layout)
-* [RootLayout](https://docs.nativescript.org/ui/root-layout)
-* [FlexboxLayout](https://docs.nativescript.org/ui/flexbox-layout)
-* [WrapLayout](https://docs.nativescript.org/ui/wrap-layout)
-* [DockLayout](https://docs.nativescript.org/ui/dock-layout)
-* [AbsoluteLayout](https://docs.nativescript.org/ui/absolute-layout)
-
-## Navigation Components
-* [Frame](https://docs.nativescript.org/ui/frame)
-* [Page](https://docs.nativescript.org/ui/page)
-* [ActionBar](https://docs.nativescript.org/ui/action-bar)
-* [ActionItem](https://docs.nativescript.org/ui/action-item)
-* [NavigationButton](https://docs.nativescript.org/ui/navigation-button)
-
-## Dialogs
-* [Alert](https://docs.nativescript.org/ui/alert)
-* [Action](https://docs.nativescript.org/ui/action)
-* [Confirm](https://docs.nativescript.org/ui/confirm)
-* [Prompt](https://docs.nativescript.org/ui/prompt)
-* [Login](https://docs.nativescript.org/ui/login)
-
-## Components
-* [ActivityIndicator](https://docs.nativescript.org/ui/activity-indicator)
-* [Button](https://docs.nativescript.org/ui/button)
-* [DatePicker](https://docs.nativescript.org/ui/date-picker) Prop `date` support `v-model`
-* [HtmlView](https://docs.nativescript.org/ui/html-view)
-* [Image](https://docs.nativescript.org/ui/image)
-* [Label](https://docs.nativescript.org/ui/label)
-* [ListPicker](https://docs.nativescript.org/ui/list-picker) Prop `selectedIndex` support `v-model`
-* [ListView](https://docs.nativescript.org/ui/list-view)
-* [Placeholder](https://docs.nativescript.org/ui/placeholder)
-* [Progress](https://docs.nativescript.org/ui/progress)
-* [ScrollView](https://docs.nativescript.org/ui/scroll-view)
-* [SearchBar](https://docs.nativescript.org/ui/search-bar)
-* [SegmentedBar](https://docs.nativescript.org/ui/segmente-bar)
-* [Slider](https://docs.nativescript.org/ui/slider) Prop `value` support `v-model`
-* [Switch](https://docs.nativescript.org/ui/switch) Prop `checked` support `v-model`
-* [TabView](https://docs.nativescript.org/ui/tab-view)
-* [TextField](https://docs.nativescript.org/ui/text-field) Prop `text` support `v-model`
-* [TextView](https://docs.nativescript.org/ui/text-view) Prop `text` support `v-model`
-* [TimePicker](https://docs.nativescript.org/ui/time-picker) Prop `time` support `v-model`
-* [WebView](https://docs.nativescript.org/ui/web-view)
-
+For all other views you will be redirected to the NativeScript documentation, these views are listed below.
+::: tip Plus
Additional UI components can be created or installed via plugins.
+:::
+
+
+
+
+
\ No newline at end of file
diff --git a/content/public/images/components/action.png b/content/public/images/components/action.png
new file mode 100644
index 00000000..64b7597d
Binary files /dev/null and b/content/public/images/components/action.png differ
diff --git a/content/public/images/components/activity_indicator.png b/content/public/images/components/activity_indicator.png
new file mode 100644
index 00000000..9fde8ea7
Binary files /dev/null and b/content/public/images/components/activity_indicator.png differ
diff --git a/content/public/images/components/alert.png b/content/public/images/components/alert.png
new file mode 100644
index 00000000..e3405db6
Binary files /dev/null and b/content/public/images/components/alert.png differ
diff --git a/content/public/images/components/button.png b/content/public/images/components/button.png
new file mode 100644
index 00000000..94c99e9c
Binary files /dev/null and b/content/public/images/components/button.png differ
diff --git a/content/public/images/components/confirm.png b/content/public/images/components/confirm.png
new file mode 100644
index 00000000..bf16dbe3
Binary files /dev/null and b/content/public/images/components/confirm.png differ
diff --git a/content/public/images/components/date_picker.png b/content/public/images/components/date_picker.png
new file mode 100644
index 00000000..e15fe8ae
Binary files /dev/null and b/content/public/images/components/date_picker.png differ
diff --git a/content/public/images/components/html_view.png b/content/public/images/components/html_view.png
new file mode 100644
index 00000000..1ba955d9
Binary files /dev/null and b/content/public/images/components/html_view.png differ
diff --git a/content/public/images/components/image.png b/content/public/images/components/image.png
new file mode 100644
index 00000000..ac311443
Binary files /dev/null and b/content/public/images/components/image.png differ
diff --git a/content/public/images/components/label.png b/content/public/images/components/label.png
new file mode 100644
index 00000000..c5d0d6aa
Binary files /dev/null and b/content/public/images/components/label.png differ
diff --git a/content/public/images/components/list_picker.png b/content/public/images/components/list_picker.png
new file mode 100644
index 00000000..3b3a5f15
Binary files /dev/null and b/content/public/images/components/list_picker.png differ
diff --git a/content/public/images/components/list_view.png b/content/public/images/components/list_view.png
new file mode 100644
index 00000000..d4626a59
Binary files /dev/null and b/content/public/images/components/list_view.png differ
diff --git a/content/public/images/components/login.png b/content/public/images/components/login.png
new file mode 100644
index 00000000..03fe3424
Binary files /dev/null and b/content/public/images/components/login.png differ
diff --git a/content/public/images/components/placeholder.png b/content/public/images/components/placeholder.png
new file mode 100644
index 00000000..cfd625e8
Binary files /dev/null and b/content/public/images/components/placeholder.png differ
diff --git a/content/public/images/components/progress.png b/content/public/images/components/progress.png
new file mode 100644
index 00000000..5a3830f5
Binary files /dev/null and b/content/public/images/components/progress.png differ
diff --git a/content/public/images/components/prompt.png b/content/public/images/components/prompt.png
new file mode 100644
index 00000000..c24396fb
Binary files /dev/null and b/content/public/images/components/prompt.png differ
diff --git a/content/public/images/components/root_layout.png b/content/public/images/components/root_layout.png
new file mode 100644
index 00000000..fab18851
Binary files /dev/null and b/content/public/images/components/root_layout.png differ
diff --git a/content/public/images/components/scroll_view.png b/content/public/images/components/scroll_view.png
new file mode 100644
index 00000000..61a532ab
Binary files /dev/null and b/content/public/images/components/scroll_view.png differ
diff --git a/content/public/images/components/search_bar.png b/content/public/images/components/search_bar.png
new file mode 100644
index 00000000..6a6dac0a
Binary files /dev/null and b/content/public/images/components/search_bar.png differ
diff --git a/content/public/images/components/segmented_bar.png b/content/public/images/components/segmented_bar.png
new file mode 100644
index 00000000..d588c38b
Binary files /dev/null and b/content/public/images/components/segmented_bar.png differ
diff --git a/content/public/images/components/slider.png b/content/public/images/components/slider.png
new file mode 100644
index 00000000..91a15333
Binary files /dev/null and b/content/public/images/components/slider.png differ
diff --git a/content/public/images/components/switch.png b/content/public/images/components/switch.png
new file mode 100644
index 00000000..13bf661f
Binary files /dev/null and b/content/public/images/components/switch.png differ
diff --git a/content/public/images/components/tab_view.png b/content/public/images/components/tab_view.png
new file mode 100644
index 00000000..5909c789
Binary files /dev/null and b/content/public/images/components/tab_view.png differ
diff --git a/content/public/images/components/text_field.png b/content/public/images/components/text_field.png
new file mode 100644
index 00000000..f1564c3e
Binary files /dev/null and b/content/public/images/components/text_field.png differ
diff --git a/content/public/images/components/text_view.png b/content/public/images/components/text_view.png
new file mode 100644
index 00000000..3cafc117
Binary files /dev/null and b/content/public/images/components/text_view.png differ
diff --git a/content/public/images/components/time_picker.png b/content/public/images/components/time_picker.png
new file mode 100644
index 00000000..dfcf654c
Binary files /dev/null and b/content/public/images/components/time_picker.png differ
diff --git a/content/public/images/components/web_view.png b/content/public/images/components/web_view.png
new file mode 100644
index 00000000..80263345
Binary files /dev/null and b/content/public/images/components/web_view.png differ
diff --git a/content/public/images/vue.png b/content/public/images/vue.png
new file mode 100644
index 00000000..74389d8c
Binary files /dev/null and b/content/public/images/vue.png differ
diff --git a/package-lock.json b/package-lock.json
index 797d7a40..dfe428ca 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,7 +8,12 @@
"name": "nativescript-vue-docs-metalsmith",
"version": "1.0.0",
"license": "MIT",
+ "dependencies": {
+ "@tailwindcss/vite": "^4.0.14",
+ "tailwindcss": "^4.0.14"
+ },
"devDependencies": {
+ "@types/node": "^22.13.10",
"vitepress": "^1.6.3",
"vue": "^3.5.13"
}
@@ -363,7 +368,6 @@
"cpu": [
"ppc64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -380,7 +384,6 @@
"cpu": [
"arm"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -397,7 +400,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -414,7 +416,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -431,7 +432,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -448,7 +448,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -465,7 +464,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -482,7 +480,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -499,7 +496,6 @@
"cpu": [
"arm"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -516,7 +512,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -533,7 +528,6 @@
"cpu": [
"ia32"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -550,7 +544,6 @@
"cpu": [
"loong64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -567,7 +560,6 @@
"cpu": [
"mips64el"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -584,7 +576,6 @@
"cpu": [
"ppc64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -601,7 +592,6 @@
"cpu": [
"riscv64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -618,7 +608,6 @@
"cpu": [
"s390x"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -635,7 +624,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -652,7 +640,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -669,7 +656,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -686,7 +672,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -703,7 +688,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -720,7 +704,6 @@
"cpu": [
"ia32"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -737,7 +720,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -778,7 +760,6 @@
"cpu": [
"arm"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -792,7 +773,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -806,7 +786,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -820,7 +799,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -834,7 +812,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -848,7 +825,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -862,7 +838,6 @@
"cpu": [
"arm"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -876,7 +851,6 @@
"cpu": [
"arm"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -890,7 +864,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -904,7 +877,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -918,7 +890,6 @@
"cpu": [
"loong64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -932,7 +903,6 @@
"cpu": [
"ppc64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -946,7 +916,6 @@
"cpu": [
"riscv64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -960,7 +929,6 @@
"cpu": [
"s390x"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -974,7 +942,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -988,7 +955,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -1002,7 +968,6 @@
"cpu": [
"arm64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -1016,7 +981,6 @@
"cpu": [
"ia32"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -1030,7 +994,6 @@
"cpu": [
"x64"
],
- "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -1124,11 +1087,234 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@tailwindcss/node": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.14.tgz",
+ "integrity": "sha512-Ux9NbFkKWYE4rfUFz6M5JFLs/GEYP6ysxT8uSyPn6aTbh2K3xDE1zz++eVK4Vwx799fzMF8CID9sdHn4j/Ab8w==",
+ "license": "MIT",
+ "dependencies": {
+ "enhanced-resolve": "^5.18.1",
+ "jiti": "^2.4.2",
+ "tailwindcss": "4.0.14"
+ }
+ },
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.14.tgz",
+ "integrity": "sha512-M8VCNyO/NBi5vJ2cRcI9u8w7Si+i76a7o1vveoGtbbjpEYJZYiyc7f2VGps/DqawO56l3tImIbq2OT/533jcrA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.0.14",
+ "@tailwindcss/oxide-darwin-arm64": "4.0.14",
+ "@tailwindcss/oxide-darwin-x64": "4.0.14",
+ "@tailwindcss/oxide-freebsd-x64": "4.0.14",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.14",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.0.14",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.0.14",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.0.14",
+ "@tailwindcss/oxide-linux-x64-musl": "4.0.14",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.0.14",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.0.14"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.14.tgz",
+ "integrity": "sha512-VBFKC2rFyfJ5J8lRwjy6ub3rgpY186kAcYgiUr8ArR8BAZzMruyeKJ6mlsD22Zp5ZLcPW/FXMasJiJBx0WsdQg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.14.tgz",
+ "integrity": "sha512-U3XOwLrefGr2YQZ9DXasDSNWGPZBCh8F62+AExBEDMLDfvLLgI/HDzY8Oq8p/JtqkAY38sWPOaNnRwEGKU5Zmg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.14.tgz",
+ "integrity": "sha512-V5AjFuc3ndWGnOi1d379UsODb0TzAS2DYIP/lwEbfvafUaD2aNZIcbwJtYu2DQqO2+s/XBvDVA+w4yUyaewRwg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.14.tgz",
+ "integrity": "sha512-tXvtxbaZfcPfqBwW3f53lTcyH6EDT+1eT7yabwcfcxTs+8yTPqxsDUhrqe9MrnEzpNkd+R/QAjJapfd4tjWdLg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.14.tgz",
+ "integrity": "sha512-cSeLNWWqIWeSTmBntQvyY2/2gcLX8rkPFfDDTQVF8qbRcRMVPLxBvFVJyfSAYRNch6ZyVH2GI6dtgALOBDpdNA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.14.tgz",
+ "integrity": "sha512-bwDWLBalXFMDItcSXzFk6y7QKvj6oFlaY9vM+agTlwFL1n1OhDHYLZkSjaYsh6KCeG0VB0r7H8PUJVOM1LRZyg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.14.tgz",
+ "integrity": "sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.14.tgz",
+ "integrity": "sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.14.tgz",
+ "integrity": "sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.14.tgz",
+ "integrity": "sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.14.tgz",
+ "integrity": "sha512-rNXXMDJfCJLw/ZaFTOLOHoGULxyXfh2iXTGiChFiYTSgKBKQHIGEpV0yn5N25WGzJJ+VBnRjHzlmDqRV+d//oQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/vite": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.14.tgz",
+ "integrity": "sha512-y69ztPTRFy+13EPS/7dEFVl7q2Goh1pQueVO8IfGeyqSpcx/joNJXFk0lLhMgUbF0VFJotwRSb9ZY7Xoq3r26Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@tailwindcss/node": "4.0.14",
+ "@tailwindcss/oxide": "4.0.14",
+ "lightningcss": "1.29.2",
+ "tailwindcss": "4.0.14"
+ },
+ "peerDependencies": {
+ "vite": "^5.2.0 || ^6"
+ }
+ },
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
"integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
- "dev": true,
"license": "MIT"
},
"node_modules/@types/hast": {
@@ -1176,6 +1362,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/node": {
+ "version": "22.13.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz",
+ "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.20.0"
+ }
+ },
"node_modules/@types/unist": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
@@ -1574,6 +1770,15 @@
"node": ">=6"
}
},
+ "node_modules/detect-libc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/devlop": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
@@ -1595,6 +1800,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/enhanced-resolve": {
+ "version": "5.18.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+ "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
@@ -1612,7 +1830,6 @@
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
"integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
"hasInstallScript": true,
"license": "MIT",
"bin": {
@@ -1668,7 +1885,6 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
@@ -1679,6 +1895,12 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
"node_modules/hast-util-to-html": {
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz",
@@ -1748,6 +1970,243 @@
"url": "https://github.com/sponsors/mesqueeb"
}
},
+ "node_modules/jiti": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
+ "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
+ "license": "MIT",
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
+ }
+ },
+ "node_modules/lightningcss": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz",
+ "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-darwin-arm64": "1.29.2",
+ "lightningcss-darwin-x64": "1.29.2",
+ "lightningcss-freebsd-x64": "1.29.2",
+ "lightningcss-linux-arm-gnueabihf": "1.29.2",
+ "lightningcss-linux-arm64-gnu": "1.29.2",
+ "lightningcss-linux-arm64-musl": "1.29.2",
+ "lightningcss-linux-x64-gnu": "1.29.2",
+ "lightningcss-linux-x64-musl": "1.29.2",
+ "lightningcss-win32-arm64-msvc": "1.29.2",
+ "lightningcss-win32-x64-msvc": "1.29.2"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz",
+ "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz",
+ "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz",
+ "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz",
+ "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz",
+ "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz",
+ "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz",
+ "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz",
+ "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz",
+ "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.29.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz",
+ "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
"node_modules/magic-string": {
"version": "0.30.17",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
@@ -1898,7 +2357,6 @@
"version": "3.3.8",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -1936,14 +2394,12 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
"license": "ISC"
},
"node_modules/postcss": {
"version": "8.5.2",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz",
"integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -2028,7 +2484,6 @@
"version": "4.34.6",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.6.tgz",
"integrity": "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "1.0.6"
@@ -2092,7 +2547,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -2154,6 +2608,21 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/tailwindcss": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.14.tgz",
+ "integrity": "sha512-92YT2dpt671tFiHH/e1ok9D987N9fHD5VWoly1CdPD/Cd1HMglvZwP3nx2yTj2lbXDAHt8QssZkxTLCCTNL+xw==",
+ "license": "MIT"
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/trim-lines": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
@@ -2165,6 +2634,13 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/undici-types": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+ "devOptional": true,
+ "license": "MIT"
+ },
"node_modules/unist-util-is": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
@@ -2272,7 +2748,6 @@
"version": "5.4.14",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz",
"integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"esbuild": "^0.21.3",
diff --git a/package.json b/package.json
index 029bb07a..0b532531 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,12 @@
"author": "Igor Randjelovic",
"license": "MIT",
"devDependencies": {
+ "@types/node": "^22.13.10",
"vitepress": "^1.6.3",
"vue": "^3.5.13"
+ },
+ "dependencies": {
+ "@tailwindcss/vite": "^4.0.14",
+ "tailwindcss": "^4.0.14"
}
}