@nil-/doc 0.3.3 → 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.
@@ -1,19 +1,15 @@
1
1
  <script>import { initParams, initDefaults, initControls, initOrientation } from "./context";
2
2
  import Base from "../Base.svelte";
3
- import { getTheme, initTheme } from "../context";
3
+ import { getTheme } from "../context";
4
4
  initParams();
5
5
  initDefaults();
6
6
  initControls();
7
7
  const columns = initOrientation();
8
- export let theme = void 0;
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
- @component
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
- /** See [documentation](https://mono-doc.vercel.app/3-Components/2-Block) for more details. */
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 {};
@@ -8,5 +8,5 @@ $:
8
8
 
9
9
  <!--
10
10
  @component
11
- See [documentation](https://mono-doc.vercel.app/3-Components/2-Block/2-Controls) for more details.
11
+ See [documentation](https://mono-doc.vercel.app/3-Components/3-Block/2-Controls) for more details.
12
12
  -->
@@ -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/2-Block/2-Controls) for more details. */
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/2-Block/1-Content/1-Instance) for more details.
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/2-Block/1-Content/1-Instance) for more details. */
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/2-Block/1-Content/2-Template/1-Params) for more details.
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/2-Block/1-Content/2-Template/1-Params) for more details. */
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/2-Block/1-Content/2-Template) for more details.
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/2-Block/1-Content/2-Template) for more details. */
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 {};
@@ -1,4 +1,4 @@
1
1
  import type { Writable } from "svelte/store";
2
- export type Theme = undefined | "light" | "dark";
2
+ export type Theme = "light" | "dark";
3
3
  export declare const getTheme: () => Writable<boolean>;
4
4
  export declare const initTheme: () => Writable<boolean>;
@@ -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 Icon from "./icons/Icon.svelte";
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;
@@ -50,13 +49,6 @@ const panelChange = (info) => {
50
49
  };
51
50
  $:
52
51
  panelChange($activeControl);
53
- const toggle = () => {
54
- if (theme !== void 0) {
55
- theme = $dark ? "light" : "dark";
56
- } else {
57
- $dark = !$dark;
58
- }
59
- };
60
52
  </script>
61
53
 
62
54
  <!--
@@ -71,9 +63,7 @@ const toggle = () => {
71
63
  <slot name="title" />
72
64
  </div>
73
65
  <slot name="title-misc">
74
- <Icon on:click={toggle}>
75
- <ThemeIcon {theme} />
76
- </Icon>
66
+ <ThemeToggle bind:theme />
77
67
  </slot>
78
68
  </div>
79
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 theme = "dark";
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)"}>
@@ -1,8 +1,7 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { Theme } from "../../context";
3
2
  declare const __propDef: {
4
3
  props: {
5
- theme?: Theme;
4
+ dark?: boolean | undefined;
6
5
  };
7
6
  events: {
8
7
  [evt: string]: CustomEvent<any>;
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",
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
- "default": "./index.js",
21
+ "types": "./index.d.ts",
23
22
  "svelte": "./index.js",
24
- "types": "./index.d.ts"
25
- },
26
- "./sveltekit": "./sveltekit/index.js"
23
+ "default": "./index.js"
24
+ }
27
25
  },
28
26
  "dependencies": {
29
27
  "vanilla-picker": "^2.12.1"
@@ -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 {};
@@ -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
- };