@nil-/doc 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/block/Block.svelte +3 -7
- package/components/block/Block.svelte.d.ts +5 -5
- package/components/block/Controls.svelte +1 -1
- package/components/block/Controls.svelte.d.ts +1 -1
- package/components/block/Instance.svelte +1 -1
- package/components/block/Instance.svelte.d.ts +1 -1
- package/components/block/Params.svelte +1 -1
- package/components/block/Params.svelte.d.ts +1 -1
- package/components/block/Template.svelte +1 -1
- package/components/block/Template.svelte.d.ts +1 -1
- package/components/block/context.js +2 -2
- package/components/context.d.ts +1 -1
- package/components/layout/DocLayout.svelte +34 -0
- package/components/layout/DocLayout.svelte.d.ts +38 -0
- package/components/layout/Layout.svelte +4 -15
- package/components/layout/Layout.svelte.d.ts +1 -1
- package/components/layout/ThemeToggle.svelte +17 -0
- package/components/layout/ThemeToggle.svelte.d.ts +17 -0
- package/components/layout/icons/Theme.svelte +1 -3
- package/components/layout/icons/Theme.svelte.d.ts +1 -2
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +4 -6
- package/sveltekit/index.d.ts +0 -37
- package/sveltekit/index.js +0 -51
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
<script>import { initParams, initDefaults, initControls, initOrientation } from "./context";
|
|
2
2
|
import Base from "../Base.svelte";
|
|
3
|
-
import { getTheme
|
|
3
|
+
import { getTheme } from "../context";
|
|
4
4
|
initParams();
|
|
5
5
|
initDefaults();
|
|
6
6
|
initControls();
|
|
7
7
|
const columns = initOrientation();
|
|
8
|
-
|
|
9
|
-
const parentTheme = getTheme();
|
|
10
|
-
const dark = initTheme();
|
|
11
|
-
$:
|
|
12
|
-
$dark = theme === void 0 ? $parentTheme : "dark" === theme;
|
|
8
|
+
const dark = getTheme();
|
|
13
9
|
</script>
|
|
14
10
|
|
|
15
11
|
<!--
|
|
16
|
-
@
|
|
12
|
+
@component3-Block
|
|
17
13
|
See [documentation](https://mono-doc.vercel.app/3-Components/2-Block) for more details.
|
|
18
14
|
-->
|
|
19
15
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
import { type Theme } from "../context";
|
|
3
2
|
declare const __propDef: {
|
|
4
|
-
props:
|
|
5
|
-
theme?: Theme;
|
|
6
|
-
};
|
|
3
|
+
props: Record<string, never>;
|
|
7
4
|
events: {
|
|
8
5
|
[evt: string]: CustomEvent<any>;
|
|
9
6
|
};
|
|
@@ -14,7 +11,10 @@ declare const __propDef: {
|
|
|
14
11
|
export type BlockProps = typeof __propDef.props;
|
|
15
12
|
export type BlockEvents = typeof __propDef.events;
|
|
16
13
|
export type BlockSlots = typeof __propDef.slots;
|
|
17
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* 3-Block
|
|
16
|
+
* See [documentation](https://mono-doc.vercel.app/3-Components/2-Block) for more details.
|
|
17
|
+
*/
|
|
18
18
|
export default class Block extends SvelteComponentTyped<BlockProps, BlockEvents, BlockSlots> {
|
|
19
19
|
}
|
|
20
20
|
export {};
|
|
@@ -13,7 +13,7 @@ declare const __propDef: {
|
|
|
13
13
|
export type ControlsProps = typeof __propDef.props;
|
|
14
14
|
export type ControlsEvents = typeof __propDef.events;
|
|
15
15
|
export type ControlsSlots = typeof __propDef.slots;
|
|
16
|
-
/** See [documentation](https://mono-doc.vercel.app/3-Components/
|
|
16
|
+
/** See [documentation](https://mono-doc.vercel.app/3-Components/3-Block/2-Controls) for more details. */
|
|
17
17
|
export default class Controls extends SvelteComponentTyped<ControlsProps, ControlsEvents, ControlsSlots> {
|
|
18
18
|
}
|
|
19
19
|
export {};
|
|
@@ -64,7 +64,7 @@ const populate = (ext) => {
|
|
|
64
64
|
|
|
65
65
|
<!--
|
|
66
66
|
@component
|
|
67
|
-
See [documentation](https://mono-doc.vercel.app/3-Components/
|
|
67
|
+
See [documentation](https://mono-doc.vercel.app/3-Components/3-Block/1-Content/1-Instance) for more details.
|
|
68
68
|
-->
|
|
69
69
|
|
|
70
70
|
<div
|
|
@@ -18,7 +18,7 @@ declare class __sveltets_Render<PropArgs> {
|
|
|
18
18
|
export type InstanceProps<PropArgs> = ReturnType<__sveltets_Render<PropArgs>['props']>;
|
|
19
19
|
export type InstanceEvents<PropArgs> = ReturnType<__sveltets_Render<PropArgs>['events']>;
|
|
20
20
|
export type InstanceSlots<PropArgs> = ReturnType<__sveltets_Render<PropArgs>['slots']>;
|
|
21
|
-
/** See [documentation](https://mono-doc.vercel.app/3-Components/
|
|
21
|
+
/** See [documentation](https://mono-doc.vercel.app/3-Components/3-Block/1-Content/1-Instance) for more details. */
|
|
22
22
|
export default class Instance<PropArgs> extends SvelteComponentTyped<InstanceProps<PropArgs>, InstanceEvents<PropArgs>, InstanceSlots<PropArgs>> {
|
|
23
23
|
}
|
|
24
24
|
export {};
|
|
@@ -17,5 +17,5 @@ $:
|
|
|
17
17
|
|
|
18
18
|
<!--
|
|
19
19
|
@component
|
|
20
|
-
See [documentation](https://mono-doc.vercel.app/3-Components/
|
|
20
|
+
See [documentation](https://mono-doc.vercel.app/3-Components/3-Block/1-Content/2-Template/1-Params) for more details.
|
|
21
21
|
-->
|
|
@@ -13,7 +13,7 @@ declare const __propDef: {
|
|
|
13
13
|
export type ParamsProps = typeof __propDef.props;
|
|
14
14
|
export type ParamsEvents = typeof __propDef.events;
|
|
15
15
|
export type ParamsSlots = typeof __propDef.slots;
|
|
16
|
-
/** See [documentation](https://mono-doc.vercel.app/3-Components/
|
|
16
|
+
/** See [documentation](https://mono-doc.vercel.app/3-Components/3-Block/1-Content/2-Template/1-Params) for more details. */
|
|
17
17
|
export default class Params extends SvelteComponentTyped<ParamsProps, ParamsEvents, ParamsSlots> {
|
|
18
18
|
}
|
|
19
19
|
export {};
|
|
@@ -20,7 +20,7 @@ const cast = (t) => t;
|
|
|
20
20
|
|
|
21
21
|
<!--
|
|
22
22
|
@component
|
|
23
|
-
See [documentation](https://mono-doc.vercel.app/3-Components/
|
|
23
|
+
See [documentation](https://mono-doc.vercel.app/3-Components/3-Block/1-Content/2-Template) for more details.
|
|
24
24
|
-->
|
|
25
25
|
|
|
26
26
|
{#each $params as param (param.id)}
|
|
@@ -21,7 +21,7 @@ declare class __sveltets_Render<Args> {
|
|
|
21
21
|
export type TemplateProps<Args> = ReturnType<__sveltets_Render<Args>['props']>;
|
|
22
22
|
export type TemplateEvents<Args> = ReturnType<__sveltets_Render<Args>['events']>;
|
|
23
23
|
export type TemplateSlots<Args> = ReturnType<__sveltets_Render<Args>['slots']>;
|
|
24
|
-
/** See [documentation](https://mono-doc.vercel.app/3-Components/
|
|
24
|
+
/** See [documentation](https://mono-doc.vercel.app/3-Components/3-Block/1-Content/2-Template) for more details. */
|
|
25
25
|
export default class Template<Args> extends SvelteComponentTyped<TemplateProps<Args>, TemplateEvents<Args>, TemplateSlots<Args>> {
|
|
26
26
|
}
|
|
27
27
|
export {};
|
|
@@ -15,6 +15,6 @@ export const { init: initDefaults, get: getDefaults } = create(() => ({}));
|
|
|
15
15
|
// prettier-ignore
|
|
16
16
|
export const { init: initOrientation, get: getOrientation } = create(() => false);
|
|
17
17
|
// prettier-ignore
|
|
18
|
-
export const { init: initControlInfo, get: getControlInfo } = create(() =>
|
|
18
|
+
export const { init: initControlInfo, get: getControlInfo } = create(() => null);
|
|
19
19
|
// prettier-ignore
|
|
20
|
-
export const { init: initControlValue, get: getControlValue } = create(() =>
|
|
20
|
+
export const { init: initControlValue, get: getControlValue } = create(() => null);
|
package/components/context.d.ts
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script context="module"></script>
|
|
2
|
+
|
|
3
|
+
<script>import Layout from "./Layout.svelte";
|
|
4
|
+
import ThemeToggle from "./ThemeToggle.svelte";
|
|
5
|
+
export let settings;
|
|
6
|
+
export let sorter = void 0;
|
|
7
|
+
export let renamer = void 0;
|
|
8
|
+
let { data, current, theme, offset, panel, navigate } = settings;
|
|
9
|
+
$: {
|
|
10
|
+
data = settings.data;
|
|
11
|
+
current = settings.current;
|
|
12
|
+
theme = settings.theme;
|
|
13
|
+
offset = settings.offset;
|
|
14
|
+
panel = settings.panel;
|
|
15
|
+
navigate = settings.navigate;
|
|
16
|
+
}
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Layout
|
|
20
|
+
{data}
|
|
21
|
+
{sorter}
|
|
22
|
+
{renamer}
|
|
23
|
+
current={$current}
|
|
24
|
+
bind:theme={$theme}
|
|
25
|
+
bind:offset={$offset}
|
|
26
|
+
bind:panel={$panel}
|
|
27
|
+
on:navigate={navigate}
|
|
28
|
+
>
|
|
29
|
+
<slot slot="title" name="title" />
|
|
30
|
+
<slot slot="title-misc" name="title-misc">
|
|
31
|
+
<ThemeToggle bind:theme={$theme} />
|
|
32
|
+
</slot>
|
|
33
|
+
<slot />
|
|
34
|
+
</Layout>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { Readable, Writable } from "svelte/store";
|
|
3
|
+
type Settings = {
|
|
4
|
+
data: string[];
|
|
5
|
+
current: Readable<string | null>;
|
|
6
|
+
offset: Writable<number>;
|
|
7
|
+
theme: Writable<"dark" | "light">;
|
|
8
|
+
panel: Writable<"bottom" | "right">;
|
|
9
|
+
navigate: (e: {
|
|
10
|
+
detail: string;
|
|
11
|
+
}) => Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
import type { Renamer, Sorter } from "../navigation/types";
|
|
14
|
+
declare const __propDef: {
|
|
15
|
+
props: {
|
|
16
|
+
settings: Settings;
|
|
17
|
+
sorter?: Sorter | undefined;
|
|
18
|
+
renamer?: Renamer | undefined;
|
|
19
|
+
};
|
|
20
|
+
events: {
|
|
21
|
+
[evt: string]: CustomEvent<any>;
|
|
22
|
+
};
|
|
23
|
+
slots: {
|
|
24
|
+
title: {
|
|
25
|
+
slot: string;
|
|
26
|
+
};
|
|
27
|
+
'title-misc': {
|
|
28
|
+
slot: string;
|
|
29
|
+
};
|
|
30
|
+
default: {};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export type DocLayoutProps = typeof __propDef.props;
|
|
34
|
+
export type DocLayoutEvents = typeof __propDef.events;
|
|
35
|
+
export type DocLayoutSlots = typeof __propDef.slots;
|
|
36
|
+
export default class DocLayout extends SvelteComponentTyped<DocLayoutProps, DocLayoutEvents, DocLayoutSlots> {
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
@@ -9,13 +9,12 @@ import Controls from "../block/controls/Controls.svelte";
|
|
|
9
9
|
import Scrollable from "./Scrollable.svelte";
|
|
10
10
|
import VerticalPanel from "./VerticalPanel.svelte";
|
|
11
11
|
import Nav from "../navigation/Nav.svelte";
|
|
12
|
-
import
|
|
12
|
+
import ThemeToggle from "./ThemeToggle.svelte";
|
|
13
13
|
import {
|
|
14
14
|
initControlInfo,
|
|
15
15
|
initControlValue
|
|
16
16
|
} from "../block/context";
|
|
17
17
|
import { getTheme, initTheme } from "../context";
|
|
18
|
-
import ThemeIcon from "./icons/Theme.svelte";
|
|
19
18
|
import { get } from "svelte/store";
|
|
20
19
|
export let data;
|
|
21
20
|
export let current = null;
|
|
@@ -35,29 +34,21 @@ $:
|
|
|
35
34
|
const panelChange = (info) => {
|
|
36
35
|
if (info != null) {
|
|
37
36
|
const i = get(info);
|
|
38
|
-
if (
|
|
37
|
+
if (panelOffset == 4) {
|
|
39
38
|
if (i.props.length > 0) {
|
|
40
39
|
panelOffset = 250;
|
|
41
40
|
mode = "props";
|
|
42
|
-
return;
|
|
43
41
|
} else if (i.events.length > 0) {
|
|
44
42
|
panelOffset = 250;
|
|
45
43
|
mode = "events";
|
|
46
|
-
return;
|
|
47
44
|
}
|
|
48
45
|
}
|
|
46
|
+
return;
|
|
49
47
|
}
|
|
50
48
|
panelOffset = 4;
|
|
51
49
|
};
|
|
52
50
|
$:
|
|
53
51
|
panelChange($activeControl);
|
|
54
|
-
const toggle = () => {
|
|
55
|
-
if (theme !== void 0) {
|
|
56
|
-
theme = $dark ? "light" : "dark";
|
|
57
|
-
} else {
|
|
58
|
-
$dark = !$dark;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
52
|
</script>
|
|
62
53
|
|
|
63
54
|
<!--
|
|
@@ -72,9 +63,7 @@ const toggle = () => {
|
|
|
72
63
|
<slot name="title" />
|
|
73
64
|
</div>
|
|
74
65
|
<slot name="title-misc">
|
|
75
|
-
<
|
|
76
|
-
<ThemeIcon {theme} />
|
|
77
|
-
</Icon>
|
|
66
|
+
<ThemeToggle bind:theme />
|
|
78
67
|
</slot>
|
|
79
68
|
</div>
|
|
80
69
|
<Container bind:offset vertical b>
|
|
@@ -7,7 +7,7 @@ declare const __propDef: {
|
|
|
7
7
|
current?: string | null | undefined;
|
|
8
8
|
sorter?: Sorter | null | undefined;
|
|
9
9
|
renamer?: Renamer | null | undefined;
|
|
10
|
-
theme?: Theme;
|
|
10
|
+
theme?: Theme | undefined;
|
|
11
11
|
offset?: number | undefined;
|
|
12
12
|
panel?: "right" | "bottom" | undefined;
|
|
13
13
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script>import { getTheme } from "../context";
|
|
2
|
+
import Icon from "./icons/Icon.svelte";
|
|
3
|
+
import ThemeIcon from "./icons/Theme.svelte";
|
|
4
|
+
export let theme;
|
|
5
|
+
const dark = getTheme();
|
|
6
|
+
const toggle = () => {
|
|
7
|
+
if (theme !== void 0) {
|
|
8
|
+
theme = $dark ? "light" : "dark";
|
|
9
|
+
} else {
|
|
10
|
+
$dark = !$dark;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<Icon on:click={toggle}>
|
|
16
|
+
<ThemeIcon dark={theme === undefined ? $dark : theme === "dark"} />
|
|
17
|
+
</Icon>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import { type Theme } from "../context";
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
theme: Theme | undefined;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {};
|
|
11
|
+
};
|
|
12
|
+
export type ThemeToggleProps = typeof __propDef.props;
|
|
13
|
+
export type ThemeToggleEvents = typeof __propDef.events;
|
|
14
|
+
export type ThemeToggleSlots = typeof __propDef.slots;
|
|
15
|
+
export default class ThemeToggle extends SvelteComponentTyped<ThemeToggleProps, ThemeToggleEvents, ThemeToggleSlots> {
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
<script context="module">let indexer = 0;
|
|
2
2
|
</script>
|
|
3
3
|
|
|
4
|
-
<script>export let
|
|
4
|
+
<script>export let dark = true;
|
|
5
5
|
const index = indexer++;
|
|
6
|
-
$:
|
|
7
|
-
dark = theme === "dark";
|
|
8
6
|
</script>
|
|
9
7
|
|
|
10
8
|
<svg viewBox="-25 -25 50 50" style:transform={dark ? "rotate(40deg)" : "rotate(180deg)"}>
|
package/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { renamer } from "./components/navigation/utils/renamer";
|
|
|
2
2
|
export { sorter } from "./components/navigation/utils/sorter";
|
|
3
3
|
export type { Prop, Event, PropType, Detailed, Flattened, Unionized } from "./components/block/controls/types";
|
|
4
4
|
export { default as Layout } from "./components/layout/Layout.svelte";
|
|
5
|
+
export { default as DocLayout } from "./components/layout/DocLayout.svelte";
|
|
5
6
|
export { default as Instance } from "./components/block/Instance.svelte";
|
|
6
7
|
export { default as Block } from "./components/block/Block.svelte";
|
|
7
8
|
export { default as Template } from "./components/block/Template.svelte";
|
package/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { renamer } from "./components/navigation/utils/renamer";
|
|
2
2
|
export { sorter } from "./components/navigation/utils/sorter";
|
|
3
3
|
export { default as Layout } from "./components/layout/Layout.svelte";
|
|
4
|
+
export { default as DocLayout } from "./components/layout/DocLayout.svelte";
|
|
4
5
|
export { default as Instance } from "./components/block/Instance.svelte";
|
|
5
6
|
export { default as Block } from "./components/block/Block.svelte";
|
|
6
7
|
export { default as Template } from "./components/block/Template.svelte";
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nil-/doc",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"author": {
|
|
5
5
|
"email": "njaldea@gmail.com",
|
|
6
6
|
"name": "Neil Aldea"
|
|
7
7
|
},
|
|
8
8
|
"license": "ISC",
|
|
9
9
|
"peerDependencies": {
|
|
10
|
-
"@sveltejs/kit": "^1.15.0",
|
|
11
10
|
"svelte": "^3.58.0"
|
|
12
11
|
},
|
|
13
12
|
"keywords": [
|
|
@@ -19,11 +18,10 @@
|
|
|
19
18
|
"exports": {
|
|
20
19
|
"./package.json": "./package.json",
|
|
21
20
|
".": {
|
|
22
|
-
"
|
|
21
|
+
"types": "./index.d.ts",
|
|
23
22
|
"svelte": "./index.js",
|
|
24
|
-
"
|
|
25
|
-
}
|
|
26
|
-
"./sveltekit": "./sveltekit/index.js"
|
|
23
|
+
"default": "./index.js"
|
|
24
|
+
}
|
|
27
25
|
},
|
|
28
26
|
"dependencies": {
|
|
29
27
|
"vanilla-picker": "^2.12.1"
|
package/sveltekit/index.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { type Readable, type Writable } from "svelte/store";
|
|
2
|
-
import type { Theme } from "../components/context";
|
|
3
|
-
type Settings = {
|
|
4
|
-
/**
|
|
5
|
-
* List of routes
|
|
6
|
-
*/
|
|
7
|
-
data: string[];
|
|
8
|
-
/**
|
|
9
|
-
* Current route but removes unneeded group layout in the route
|
|
10
|
-
*/
|
|
11
|
-
current: Readable<string | null>;
|
|
12
|
-
/**
|
|
13
|
-
* Callback to navigate to other pages
|
|
14
|
-
* @param e - event that contains detail about the target url
|
|
15
|
-
*/
|
|
16
|
-
navigate: (e: CustomEvent<string>) => Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* A store that is responsible in keeping the theme in localStorage
|
|
19
|
-
* Default is "dark"
|
|
20
|
-
*/
|
|
21
|
-
theme: Writable<Exclude<Theme, undefined>>;
|
|
22
|
-
/**
|
|
23
|
-
* A store that is responsible in keeping the offset in localStorage
|
|
24
|
-
* offset is the width of the navigation panel.
|
|
25
|
-
* Default is 250px
|
|
26
|
-
*/
|
|
27
|
-
offset: Writable<number>;
|
|
28
|
-
panel: Writable<"bottom" | "right">;
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Dedicated helper method to be used for sveltekit
|
|
32
|
-
* @param detail - vite's `import.meta.glob(...)`
|
|
33
|
-
* @param prefix - only use when layout is not in the root route
|
|
34
|
-
* @returns Settings
|
|
35
|
-
*/
|
|
36
|
-
export declare const sveltekit: (detail: Record<string, unknown>, prefix?: string | null) => Settings;
|
|
37
|
-
export {};
|
package/sveltekit/index.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { derived, writable } from "svelte/store";
|
|
2
|
-
import { page } from "$app/stores";
|
|
3
|
-
import { goto } from "$app/navigation";
|
|
4
|
-
import { browser } from "$app/environment";
|
|
5
|
-
const toRoute = (p) => p.substring(1, p.lastIndexOf("/"));
|
|
6
|
-
const routeHasLayoutGroup = /\(.*\)/;
|
|
7
|
-
const collapseLayout = (p) => p
|
|
8
|
-
.split("/")
|
|
9
|
-
.filter((p) => null == routeHasLayoutGroup.exec(p))
|
|
10
|
-
.join("/");
|
|
11
|
-
const isNotRoot = (p) => p !== "/";
|
|
12
|
-
const routeIsDynamic = /.*\[.*\].*/;
|
|
13
|
-
const isRouteDynamic = (p) => null == routeIsDynamic.exec(p);
|
|
14
|
-
/**
|
|
15
|
-
* Dedicated helper method to be used for sveltekit
|
|
16
|
-
* @param detail - vite's `import.meta.glob(...)`
|
|
17
|
-
* @param prefix - only use when layout is not in the root route
|
|
18
|
-
* @returns Settings
|
|
19
|
-
*/
|
|
20
|
-
export const sveltekit = (detail, prefix = null) => {
|
|
21
|
-
const keyTheme = "@nil-/doc/theme";
|
|
22
|
-
const theme = browser && "light" === localStorage.getItem(keyTheme) ? "light" : "dark";
|
|
23
|
-
const keyOffset = "@nil-/doc/offset";
|
|
24
|
-
const offset = browser ? parseFloat(localStorage.getItem(keyOffset) ?? "250") : 250;
|
|
25
|
-
const keyPos = "@nil-/doc/panel";
|
|
26
|
-
const panelPos = browser ? localStorage.getItem(keyPos) ?? "bottom" : "bottom";
|
|
27
|
-
const result = {
|
|
28
|
-
data: Object.keys(detail)
|
|
29
|
-
.map(toRoute)
|
|
30
|
-
.map(collapseLayout)
|
|
31
|
-
.filter(isNotRoot)
|
|
32
|
-
.filter(isRouteDynamic),
|
|
33
|
-
current: derived(page, ($page) => {
|
|
34
|
-
if ($page.route.id) {
|
|
35
|
-
if (prefix) {
|
|
36
|
-
return collapseLayout($page.route.id.substring(prefix.length));
|
|
37
|
-
}
|
|
38
|
-
return collapseLayout($page.route.id);
|
|
39
|
-
}
|
|
40
|
-
return null;
|
|
41
|
-
}),
|
|
42
|
-
navigate: prefix ? (e) => goto(`${prefix}${e.detail}`) : (e) => goto(e.detail),
|
|
43
|
-
theme: writable(theme),
|
|
44
|
-
offset: writable(offset),
|
|
45
|
-
panel: writable(panelPos)
|
|
46
|
-
};
|
|
47
|
-
browser && result.theme.subscribe((v) => localStorage.setItem(keyTheme, v));
|
|
48
|
-
browser && result.offset.subscribe((v) => localStorage.setItem(keyOffset, `${v}`));
|
|
49
|
-
browser && result.panel.subscribe((v) => localStorage.setItem(keyPos, v));
|
|
50
|
-
return result;
|
|
51
|
-
};
|