diff --git a/README.md b/README.md
index 04a5d58..24f86f7 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ These libraries are different modules of ProzillaOS that can be installed separa
- [`prozilla-os`][prozilla-os]: A bundle containing the core packages and all standard applications of ProzillaOS
- [`@prozilla-os/core`][core]: Core functionality, React components and hooks
-- [`@prozilla-os/skins`](./shared/): Customizable skins for ProzillaOS
+- [`@prozilla-os/skins`][skins]: Customizable skins for ProzillaOS
- [`@prozilla-os/shared`][shared]: Shared functions and utilities
#### Standard applications
@@ -127,6 +127,7 @@ These resources can help you get started with ProzillaOS.
[prozilla]: https://prozilla.dev/
[prozilla-os]: ./packages/prozilla-os/
[core]: ./packages/core/
+[skins]: ./packages/skins/
[shared]: ./packages/shared/
[file-explorer]: ./packages/apps/file-explorer/
[terminal]: ./packages/apps/terminal/
diff --git a/packages/README.md b/packages/README.md
index 716bac5..b9ab29a 100644
--- a/packages/README.md
+++ b/packages/README.md
@@ -1,26 +1,13 @@
-
+# Packages
-## Packages
-
-### Libraries (public)
+## Libraries (public)
- [`prozilla-os`](./prozilla-os/): A bundle containing the core packages and all standard applications of ProzillaOS
- [`@prozilla-os/core`](./core/): Core functionality, React components and hooks
-- [`@prozilla-os/skins`](./shared/): Customizable skins for ProzillaOS
+- [`@prozilla-os/skins`](./skins/): Customizable skins for ProzillaOS
- [`@prozilla-os/shared`](./shared/): Shared functions and utilities
-#### Standard applications
+### Standard applications
- [`@prozilla-os/file-explorer`](./apps/file-explorer/): File explorer app
- [`@prozilla-os/terminal`](./apps/terminal/): Terminal/shell app
@@ -30,11 +17,11 @@
- [`@prozilla-os/browser`](./apps/browser/): Browser app
- [`@prozilla-os/calculator`](./apps/calculator/): Calculator app
-#### Non-standard applications
+### Non-standard applications
- [`@prozilla-os/logic-sim`](./apps/logic-sim/): Logic simulator app
-### Sites (internal)
+## Sites (internal)
- [`@prozilla-os/demo`](./demo/): Demo site
- [`@prozilla-os/docs`](./docs/): Documentation site
\ No newline at end of file
diff --git a/packages/docs/.vitepress/theme/PackageBadge.vue b/packages/docs/.vitepress/theme/PackageBadge.vue
new file mode 100644
index 0000000..c0f63d6
--- /dev/null
+++ b/packages/docs/.vitepress/theme/PackageBadge.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/.vitepress/theme/index.ts b/packages/docs/.vitepress/theme/index.ts
index 2740509..908bc0c 100644
--- a/packages/docs/.vitepress/theme/index.ts
+++ b/packages/docs/.vitepress/theme/index.ts
@@ -2,16 +2,14 @@
import { h } from "vue";
import type { Theme } from "vitepress";
import DefaultTheme from "vitepress/theme";
+import PackageBadge from "./PackageBadge.vue";
import "./style.css";
export default {
extends: DefaultTheme,
- Layout: () => {
+ Layout() {
return h(DefaultTheme.Layout, null, {
- // https://vitepress.dev/guide/extending-default-theme#layout-slots
+ "doc-before": () => h(PackageBadge)
});
- },
- enhanceApp({ app, router, siteData }) {
- // ...
}
} satisfies Theme;
diff --git a/packages/docs/.vitepress/theme/style.css b/packages/docs/.vitepress/theme/style.css
index 6b2354e..b47e040 100644
--- a/packages/docs/.vitepress/theme/style.css
+++ b/packages/docs/.vitepress/theme/style.css
@@ -275,6 +275,7 @@
.custom-block {
border: none;
border-left: 5px solid;
+ padding: 12px 12px 6px;
}
.custom-block > .custom-block-title {
@@ -313,6 +314,14 @@
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z'/%3E%3C/svg%3E")
}
+.custom-block ul {
+ margin: 8px 0;
+}
+
+.custom-block li + li {
+ margin-top: 4px;
+}
+
.VPContent.is-home .vp-doc {
margin: 0;
padding: 0;
@@ -338,4 +347,4 @@
.vp-doc .VPTeamMembers.medium.count-1.center .container {
max-width: 368px !important;
-}
+}
\ No newline at end of file
diff --git a/packages/docs/src/reference/classes/apps/app.md b/packages/docs/src/reference/classes/apps/app.md
index fce2832..e38a689 100644
--- a/packages/docs/src/reference/classes/apps/app.md
+++ b/packages/docs/src/reference/classes/apps/app.md
@@ -1,11 +1,12 @@
---
outline: deep
description: "An application that can be run by ProzillaOS"
+package: "@prozilla-os/core"
---
# Class [`App`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/system/configs/app.tsx)
-An application that can be run by ProzillaOS
+{{ $frontmatter.description }}
Applications can be installed by adding them to the `apps` array in [`AppsConfig`](../system/apps-config#apps-app)
@@ -19,117 +20,192 @@ Applications can be installed by adding them to the `apps` array in [`AppsConfig
### Parameters
-- **name** : `string`
+
-- **id** : `string`
+#### name
-- **windowContent** : `React.FC`
+- **Type:** `string`
-- **windowOptions** : `object` (optional)
+#### id
- - windowOptions.size : [`Vector2`](/reference/classes/utils/vector2)
+- **Type:** `string`
+
+#### windowContent
+
+- **Type:** `React.FC`
+
+#### windowOptions
+
+- **Optional**
+- **Type:** `WindowOptions`
+
+```ts
+interface WindowOptions {
+ size?: Vector2;
+ [key: string]: unknown;
+}
+```
+
+> [!NOTE] References
+> - [Vector2](../utils/vector2)
## Properties
-### name : `string` {#name}
+### name
+
+- **Type:** `string`
+- **Default:** `"App"`
The display name of this application
-> **@default**
-> ```ts
-> "App"
-> ```
+### id
-### id : `string` {#id}
+- **Type:** `string`
+- **Default:** `"app"`
The unique ID of this application
-> **@default**
-> ```ts
-> "app"
-> ```
-
> [!WARNING]
> Every app must have a unique ID that only contains lower case letters (a-z), numbers (0-9) and dashes (-).
-### windowContent : `React.FC` {#window-content}
+### windowContent
+
+- **Type:** `React.FC`
React component that renders this app inside a window when the app is running
-### windowOptions : `object` {#window-options}
+### windowOptions
+
+- **Type:** `WindowOptions`
Default options that get passed to the `windowContent` component
-You can extend this object with any properties
+```ts
+interface WindowOptions {
+ size?: Vector2;
+ [key: string]: unknown;
+}
+```
-#### Properties
+> [!NOTE] References
+> - [Vector2](../utils/vector2)
-- windowOptions.size : [`Vector2`](/reference/classes/utils/vector2)
+### description
-### description : `string | null` {#description}
+- **Type:** `string | null`
Description of this application
-### iconUrl : `string | null` {#icon-url}
+### iconUrl
+
+- **Type:** `string | null`
URL of the icon of this application
-### role : `string | null` {#role}
+### role
+
+- **Type:** `string | null`
Defines what parts of the OS this app is responsible for and how it can be used by other apps
-### associatedExtensions : `string[]` {#associated-extensions}
+### associatedExtensions
+
+- **Type:** `string | null`
An array of file extensions that this application is used to open and read
-### pinnedByDefault : `boolean` {#pinned-by-default}
+### pinnedByDefault
+
+- **Type:** `boolean`
+- **Default:** `true`
Determines whether the app is pinned by default
-> **@default**
-> ```ts
-> true
-> ```
+### launchAtStartup
-### launchAtStartup : `boolean` {#launch-at-startup}
+- **Type:** `boolean`
+- **Default:** `false`
Determines whether the app is launched at startup
-> **@default**
-> ```ts
-> false
-> ```
-
## Methods
-### setName (name : `string`) => `this` {#set-name}
+### setName(name)
+
+- **Parameters**
+ - **name**
+ - **Type:** `string`
+- **Returns**
+ - **Type:** `this`
Set the display name of this application
-### setDescription (description : `string | null`) => `this` {#set-description}
+### setDescription(description)
+
+- **Parameters**
+ - **description**
+ - **Type:** `string`
+- **Returns**
+ - **Type:** `this`
Set the description of this application
-### setIconUrl (iconUrl : `string | null`) => `this` {#set-icon-url}
+### setIconUrl(iconUrl)
+
+- **Parameters**
+ - **iconUrl**
+ - **Type:** `string | null`
+- **Returns**
+ - **Type:** `this`
Set the URL of the icon of this application
-### setRole (role : `string | null`) => `this` {#set-role}
+### setRole(role)
+
+- **Parameters**
+ - **role**
+ - **Type:** `string | null`
+- **Returns**
+ - **Type:** `this`
Set the role of this application
-### setAssociatedExtensions (extensions : `string[] | null`) => `this` {#set-associated-extensions}
+### setAssociatedExtensions(extensions)
+
+- **Parameters**
+ - **extensions**
+ - **Type:** `string[] | null`
+- **Returns**
+ - **Type:** `this`
Set the associated extensions of this application
-### setPinnedByDefault (pinnedByDefault : `boolean`) => `this` {#set-pinned-by-default}
+### setPinnedByDefault(pinnedByDefault)
+
+- **Parameters**
+ - **pinnedByDefault**
+ - **Type:** `boolean`
+- **Returns**
+ - **Type:** `this`
Changes whether this application is pinned by default or not
-### setLaunchAtStartup (launchAtStartup : `boolean`) => `this` {#set-launch-at-startup}
+### setLaunchAtStartup(launchAtStartup)
+
+- **Parameters**
+ - **launchAtStartup**
+ - **Type:** `boolean`
+- **Returns**
+ - **Type:** `this`
Changes whether this application is launched at startup or not
-### WindowContent (props : `AppProps`) => `React.ReactElement` {#Window-content}
+### WindowContent(props)
+
+- **Parameters**
+ - **props**
+ - **Type:** `AppProps`
+- **Returns**
+ - **Type:** `React.ReactElement`
Renders the app as a React component
\ No newline at end of file
diff --git a/packages/docs/src/reference/classes/skins/skin.md b/packages/docs/src/reference/classes/skins/skin.md
index d327c0e..ad3599a 100644
--- a/packages/docs/src/reference/classes/skins/skin.md
+++ b/packages/docs/src/reference/classes/skins/skin.md
@@ -1,11 +1,12 @@
---
outline: deep
description: "Change the look and feel of ProzillaOS"
+package: "@prozilla-os/skins"
---
# Class [`Skin`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/skins/src/core/skin.ts)
-Change the look and feel of ProzillaOS
+{{ $frontmatter.description }}
## Constructor
@@ -105,12 +106,13 @@ interface FolderIcons {
### loadStyleSheet
- **Type:** `() => void`
-- **Example:**
+
+Function that dynamically imports style sheet
+
+- **Example**
```ts
function loadStyleSheet() {
import("../styles/skins/macOs.css");
}
```
-
-Function that dynamically imports style sheet
diff --git a/packages/docs/src/reference/classes/system/apps-config.md b/packages/docs/src/reference/classes/system/apps-config.md
index 0e4669f..d6efc48 100644
--- a/packages/docs/src/reference/classes/system/apps-config.md
+++ b/packages/docs/src/reference/classes/system/apps-config.md
@@ -1,5 +1,6 @@
---
outline: deep
+package: "@prozilla-os/core"
---
# Class [`AppsConfig`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/system/configs/appsConfig.ts)
@@ -14,7 +15,17 @@ outline: deep
#### options
-- options.apps : [`App[]`](../apps/app)
+- **Optional**
+- **Type:** `AppsConfigOptions`
+
+```ts
+interface AppsConfigOptions {
+ apps?: App[];
+}
+```
+
+> [!NOTE] References
+> - [App](/reference/classes/apps/app)
## Properties
diff --git a/packages/docs/src/reference/classes/system/desktop-config.md b/packages/docs/src/reference/classes/system/desktop-config.md
index 835c0c5..2e70642 100644
--- a/packages/docs/src/reference/classes/system/desktop-config.md
+++ b/packages/docs/src/reference/classes/system/desktop-config.md
@@ -1,5 +1,6 @@
---
outline: deep
+package: "@prozilla-os/core"
---
# Class [`DesktopConfig`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/system/configs/desktopConfig.ts)
@@ -14,12 +15,22 @@ outline: deep
#### options
-- options.defaultIconSize : `0 | 1 | 2`
-- options.defaultIconDirection : `0 | 1`
+- **Optional**
+- **Type:** `DesktopConfigOptions`
+
+```ts
+interface DesktopConfigOptions {
+ defaultIconSize?: 0 | 1 | 2;
+ defaultIconDirection?: 0 | 1;
+}
+```
## Properties
-### defaultIconSize : `0 | 1 | 2` {#default-icon-size}
+### defaultIconSize
+
+- **Type:** `0 | 1 | 2`
+- **Default:** `1` (Medium)
The default size of the desktop icons
@@ -29,23 +40,14 @@ The default size of the desktop icons
| 1 | Medium |
| 2 | Large |
-> **@default**
->
-> ```ts
-> 1 // Medium
-> ```
+### defaultIconDirection
-### defaultIconDirection : `0 | 1` {#default-icon-direction}
+- **Type:** `0 | 1`
+- **Default:** `0` (Vertical)
The default direction of the desktop icons
| Value | Description |
| --- | --- |
| 0 | Vertical |
-| 1 | Horizontal |
-
-> **@default**
->
-> ```ts
-> 0 // Vertical
-> ```
\ No newline at end of file
+| 1 | Horizontal |
\ No newline at end of file
diff --git a/packages/docs/src/reference/classes/system/misc-config.md b/packages/docs/src/reference/classes/system/misc-config.md
index 0ad9fd5..88f0616 100644
--- a/packages/docs/src/reference/classes/system/misc-config.md
+++ b/packages/docs/src/reference/classes/system/misc-config.md
@@ -1,5 +1,6 @@
---
outline: deep
+package: "@prozilla-os/core"
---
# Class [`MiscConfig`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/system/configs/miscConfig.ts)
@@ -14,19 +15,23 @@ outline: deep
#### options
-- options.doubleClickDelay : `number`
+- **Optional**
+- **Type:** `MiscConfigOptions`
+
+```ts
+interface MiscConfigOptions {
+ doubleClickDelay?: number;
+}
+```
## Properties
-### doubleClickDelay : `number` {#double-click-delay}
+### doubleClickDelay
+
+- **Type:** `number`
+- **Default:** `250`
The maximum time between two clicks for those clicks to register as a double click in milliseconds
-> **@default**
->
-> ```ts
-> 250
-> ```
-
> [!NOTE]
> Also applies to touch devices.
diff --git a/packages/docs/src/reference/classes/system/modals-config.md b/packages/docs/src/reference/classes/system/modals-config.md
index ce647bb..63f1422 100644
--- a/packages/docs/src/reference/classes/system/modals-config.md
+++ b/packages/docs/src/reference/classes/system/modals-config.md
@@ -1,5 +1,6 @@
---
outline: deep
+package: "@prozilla-os/core"
---
# Class [`ModalsConfig`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/system/configs/modalsConfig.ts)
@@ -14,27 +15,31 @@ outline: deep
#### options
-- options.defaultDialogSize : [`Vector2`](/reference/classes/utils/vector2)
-- options.defaultFileSelectorSize : [`Vector2`](/reference/classes/utils/vector2)
+- **Optional**
+- **Type:** `ModalsConfigOptions`
+
+```ts
+interface ModalsConfigOptions {
+ defaultDialogSize?: Vector2;
+ defaultFileSelectorSize?: Vector2;
+}
+```
+
+> [!NOTE] References
+> - [Vector2](/reference/classes/utils/vector2)
## Properties
-### defaultDialogSize : [`Vector2`](/reference/classes/utils/vector2) {#default-dialog-size}
+### defaultDialogSize
+
+- **Type:** [`Vector2`](/reference/classes/utils/vector2)
+- **Default:** `new Vector2(400, 200)`
Default size of a dialog box
-> **@default**
->
-> ```ts
-> new Vector2(400, 200)
-> ```
+### defaultFileSelectorSize
-### defaultFileSelectorSize : [`Vector2`](/reference/classes/utils/vector2) {#default-file-selector-size}
+- **Type:** [`Vector2`](/reference/classes/utils/vector2)
+- **Default:** `new Vector2(700, 400)`
Default size of a file selector
-
-> **@default**
->
-> ```ts
-> new Vector2(700, 400)
-> ```
\ No newline at end of file
diff --git a/packages/docs/src/reference/classes/system/taskbar-config.md b/packages/docs/src/reference/classes/system/taskbar-config.md
index 63eef4f..649e854 100644
--- a/packages/docs/src/reference/classes/system/taskbar-config.md
+++ b/packages/docs/src/reference/classes/system/taskbar-config.md
@@ -1,5 +1,6 @@
---
outline: deep
+package: "@prozilla-os/core"
---
# Class [`TaskbarConfig`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/system/configs/taskbarConfig.ts)
@@ -14,16 +15,21 @@ outline: deep
#### options
-- options.height : `number`
+- **Optional**
+- **Type:** `TaskbarConfigOptions`
+
+```ts
+interface TaskbarConfigOptions {
+ height?: number;
+}
+```
## Properties
-### height : `number` {#height}
+### height
+
+- **Type:** `number`
+- **Default:** `48`
Height of the taskbar in CSS pixels
-> **@default**
->
-> ```ts
-> 48
-> ```
diff --git a/packages/docs/src/reference/classes/system/tracking-config.md b/packages/docs/src/reference/classes/system/tracking-config.md
index 2bbefee..02da731 100644
--- a/packages/docs/src/reference/classes/system/tracking-config.md
+++ b/packages/docs/src/reference/classes/system/tracking-config.md
@@ -1,5 +1,6 @@
---
outline: deep
+package: "@prozilla-os/core"
---
# Class [`TrackingConfig`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/system/configs/trackingConfig.ts)
@@ -14,22 +15,28 @@ outline: deep
#### options
-- options.enabled : `boolean`
-- options.GAMeasurementId : `string`
+- **Optional**
+- **Type:** `TrackingConfigOptions`
+
+```ts
+interface TrackingConfigOptions {
+ enabled?: boolean;
+ GAMeasurementId?: string;
+}
+```
## Properties
-### enabled : `boolean` {#enabled}
+### enabled
+
+- **Type:** `boolean`
+- **Default:** `true`
Determines whether tracking is enabled
-> **@default**
->
-> ```ts
-> true
-> ```
+### GAMeasurementId
-### GAMeasurementId : `string` {#ga-measurement-id}
+- **Type:** `string`
Google Analytics measurement ID
diff --git a/packages/docs/src/reference/classes/system/windows-config.md b/packages/docs/src/reference/classes/system/windows-config.md
index a85634b..cbde055 100644
--- a/packages/docs/src/reference/classes/system/windows-config.md
+++ b/packages/docs/src/reference/classes/system/windows-config.md
@@ -1,5 +1,6 @@
---
outline: deep
+package: "@prozilla-os/core"
---
# Class [`WindowsConfig`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/system/configs/windowsConfig.ts)
@@ -14,38 +15,42 @@ outline: deep
#### options
-- options.screenMargin : `number`
-- options.titleSeparator : `string`
-- options.minScreenSize : [`Vector2`](/reference/classes/utils/vector2)
+- **Optional**
+- **Type:** `WindowsConfigOptions`
+
+```ts
+interface WindowsConfigOptions {
+ screenMargin?: number;
+ titleSeparator?: string;
+ minScreenSize?: Vector2;
+}
+```
+
+> [!NOTE] References
+> - [Vector2](/reference/classes/utils/vector2)
## Properties
-### screenMargin : `number` {#screen-margin}
+### screenMargin
-The margin that windows will keep between them and the edges of the screen on smaller devices
+- **Type:** `number`
+- **Default:** `32`
-> **@default**
-> ```ts
-> 32
-> ```
+The margin in CSS pixels that windows will keep between them and the edges of the screen on smaller devices
-### titleSeparator : `string` {#title-separator}
+### titleSeparator
+
+- **Type:** `string`
+- **Default:** `"-"`
A string that is placed between different parts of a window title
-> **@default**
-> ```ts
-> "-"
-> ```
+### minScreenSize
-### minScreenSize : [`Vector2`](/reference/classes/utils/vector2) {#min-screen-size}
+- **Type:** [`Vector2`](/reference/classes/utils/vector2)
+- **Default:** `new Vector2(350, 350)`
If the user's screen is smaller than these values, windows will always be maximized
-> **@default**
-> ```ts
-> new Vector2(350, 350)
-> ```
-
> [!WARNING]
> Keep these values as low as possible, as this limits some functionality of the OS on devices with certain screen sizes.
diff --git a/packages/docs/src/reference/classes/utils/vector2.md b/packages/docs/src/reference/classes/utils/vector2.md
index 0cfde3b..4fcb1fb 100644
--- a/packages/docs/src/reference/classes/utils/vector2.md
+++ b/packages/docs/src/reference/classes/utils/vector2.md
@@ -1,83 +1,193 @@
---
outline: deep
+description: "A 2-dimensional vector, set of coordinates or dimensions"
+package: "@prozilla-os/core"
---
# Class [`Vector2`](https://github.com/prozilla-os/ProzillaOS/blob/main/packages/core/src/features/math/vector2.ts)
+{{ $frontmatter.description }}
+
## Constructor
> `new Vector2(x, y)`
### Parameters
-- **x** : `number`
+
-- **y** : `number` (optional)
+#### x
-> [!TIP]
-> If you leave out the parameter `y`, the properties `x` and `y` will be set to the same value, e.g.:
->
-> ```ts
-> new Vector2(10) --> new Vector2(10, 10)
-> ```
+- **Type:** `number`
+
+#### y
+
+- **Optional**
+- **Type:** `number`
+
+### Examples
+
+```ts
+new Vector2(2, 4)
+// Result: Vector2(2, 4)
+
+new Vector2(3)
+// Result: Vector2(3, 3)
+```
## Properties
-### x : `number` {#x}
+### x
-### y : `number` {#y}
+- **Type:** `number`
-### ZERO : `Vector2` {#zero}
+### y
+
+- **Type:** `number`
+
+### ZERO
+
+- **Static**
+- **Type:** `Vector2`
Returns a vector with each value set to zero
-> ```ts
-> Vector2.ZERO --> new Vector2(0, 0)
-> ```
+- **Example**
-### clone : `Vector2` {#clone}
+ ```ts
+ Vector2.ZERO
+ // Result: Vector2(0, 0)
+ ```
+
+### clone
+
+- **Type:** `Vector2`
Returns a clone of this vector
## Methods
-### round () => `this` {#round}
+### round()
-Round the values of this vector to full numbers
+- **Returns**
+ - **Type:** `this`
-> ```ts
-> new Vector2(3.6, 1.3) --> new Vector2(4, 1)
-> ```
+Round the values of this vector to whole numbers
-### getDistance (x : `number`, y : `number`) => `number` {#get-distance}
-### getDistance (vector2 : `Vector2`) => `number`
+- **Example**
+
+ ```ts
+ new Vector2(3.6, 1.3).round()
+ // Result: Vector2(4, 1)
+ ```
+
+### getDistance(x, y)
+
+- **Parameters**
+ - **x**
+ - **Type:** `number`
+ - **y**
+ - **Type:** `number`
+- **Returns**
+ - **Type:** `number`
Get the distance between this vector and another
-### add (vector2A : `Vector2`, vector2B: `Vector2`) => `Vector2` {#add}
+### getDistance(vector2)
+
+- **Parameters**
+ - **vector2**
+ - **Type:** `Vector2`
+- **Returns**
+ - **Type:** `number`
+
+Get the distance between this vector and another
+
+### add(vector2A, vector2B)
+
+- **Static**
+- **Parameters**
+ - **vector2A**
+ - **Type:** `Vector2`
+ - **vector2B**
+ - **Type:** `Vector2`
+- **Returns**
+ - **Type:** `Vector2`
Add two vectors together
-### subtract (vector2A : `Vector2`, vector2B: `Vector2`) => `Vector2` {#subtract}
+### subtract(vector2A, vector2B)
+
+- **Static**
+- **Parameters**
+ - **vector2A**
+ - **Type:** `Vector2`
+ - **vector2B**
+ - **Type:** `Vector2`
+- **Returns**
+ - **Type:** `Vector2`
Subtract two vectors
-### scale (vector2 : `Vector2`, scalar: `number`) => `Vector2` {#scale}
+### scale(vector2, scalar)
+
+- **Static**
+- **Parameters**
+ - **vector2**
+ - **Type:** `Vector2`
+ - **scalar**
+ - **Type:** `number`
+- **Returns**
+ - **Type:** `Vector2`
Scale a vector
-### magnitude (vector2 : `Vector2`) => `number` {#magnitude}
+### magnitude(vector2)
+
+- **Static**
+- **Parameters**
+ - **vector2**
+ - **Type:** `Vector2`
+- **Returns**
+ - **Type:** `number`
Get the magnitude of a vector
-### normalize (vector2 : `Vector2`) => `Vector2` {#normalize}
+### normalize(vector2)
-Get the magnitude of a vector
+- **Static**
+- **Parameters**
+ - **vector2**
+ - **Type:** `Vector2`
+- **Returns**
+ - **Type:** `Vector2`
-### sqrDistance (vector2A : `Vector2`, vector2B : `Vector2`) => `number` {#sqr-distance}
+Normalize a vector
-Get the square distance of two vectors
+### sqrDistance (vector2A, vector2B)
-### lerp (vector2A : `Vector2`, vector2B : `Vector2`, t : `number`) => `Vector2` {#lerp}
+- **Static**
+- **Parameters**
+ - **vector2A**
+ - **Type:** `Vector2`
+ - **vector2B**
+ - **Type:** `Vector2`
+- **Returns**
+ - **Type:** `number`
+
+Get the square distance between two vectors
+
+### lerp(vector2A, vector2B, t)
+
+- **Static**
+- **Parameters**
+ - **vector2A**
+ - **Type:** `Vector2`
+ - **vector2B**
+ - **Type:** `Vector2`
+ - **t**
+ - **Type:** `number`
+- **Returns**
+ - **Type:** `Vector2`
Lerp between two vectors
diff --git a/packages/docs/src/reference/configuration.md b/packages/docs/src/reference/configuration.md
index 4521ccd..cba0c6c 100644
--- a/packages/docs/src/reference/configuration.md
+++ b/packages/docs/src/reference/configuration.md
@@ -6,45 +6,51 @@ outline: deep
To configure ProzillaOS, pass the following properties inside to the `config` prop on the `` component.
-## `` props {#prozillaos}
+## `` props
-### systemName : `string` {#system-name}
+### systemName
-
+- **Optional**
+- **Type:** `string`
+- **Default:** `"ProzillaOS"`
-> **@default**
->
-> ```ts
-> "ProzillaOS"
-> ```
+### tagLine
-### tagLine : `string` {#tag-line}
+- **Optional**
+- **Type:** `string`
+- **Default:** `"Web-based Operating System"`
-
+### skin
-> **@default**
->
-> ```ts
-> "Web-based Operating System"
-> ```
-
-### skin : [`Skin`](./classes/skins/skin) {#skin}
-
-
+- **Optional**
+- **Type:** [`Skin`](/reference/classes/skins/skin)
+- **Default:** `new Skin()`
### config
-
+- **Optional**
+- **Type:** `ConfigOptions`
-#### Properties
+```ts
+interface ConfigOptions {
+ apps?: AppsConfig;
+ desktop?: DesktopConfig;
+ misc?: MiscConfig;
+ modals?: ModalsConfig;
+ taskbar?: TaskbarConfig;
+ tracking?: TrackingConfig;
+ windows?: WindowsConfig;
+}
+```
-- config.apps : [`AppsConfig`](classes/system/apps-config)
-- config.desktop : [`DesktopConfig`](classes/system/desktop-config)
-- config.misc : [`MiscConfig`](classes/system/misc-config)
-- config.modals : [`ModalsConfig`](classes/system/modals-config)
-- config.taskbar : [`TaskbarConfig`](classes/system/taskbar-config)
-- config.tracking : [`TrackingConfig`](classes/system/tracking-config)
-- config.windows : [`WindowsConfig`](classes/system/windows-config)
+> [!NOTE] References
+> - [AppsConfig](/reference/classes/system/apps-config)
+> - [DesktopConfig](/reference/classes/system/desktop-config)
+> - [MiscConfig](/reference/classes/system/misc-config)
+> - [ModalsConfig](/reference/classes/system/modals-config)
+> - [TaskbarConfig](/reference/classes/system/taskbar-config)
+> - [TrackingConfig](/reference/classes/system/tracking-config)
+> - [WindowsConfig](/reference/classes/system/windows-config)
## Example
diff --git a/packages/docs/tsconfig.json b/packages/docs/tsconfig.json
index 641ad36..563d537 100644
--- a/packages/docs/tsconfig.json
+++ b/packages/docs/tsconfig.json
@@ -2,7 +2,7 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"baseUrl": "../..",
- "types": ["node"]
+ "types": ["node", "vitepress/client"]
},
"include": ["src", ".vitepress", "../core/src/**/*", "scripts"],
"exclude": ["node_modules"]