@nil-/doc 0.2.44 → 0.2.45

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @nil-/doc
2
2
 
3
+ ## 0.2.45
4
+
5
+ ### Patch Changes
6
+
7
+ - [doc][fix] keep control state when disabled after tuple/object parent toggles expand #[75](https://github.com/njaldea/mono/issues/75) ([#74](https://github.com/njaldea/mono/pull/74))
8
+
3
9
  ## 0.2.44
4
10
 
5
11
  ### Patch Changes
@@ -85,6 +85,7 @@
85
85
  </style>
86
86
 
87
87
  <script context="module">const defaultSorter = (l, r) => l.localeCompare(r);
88
+ const defaultRenamer = (s) => s;
88
89
  </script>
89
90
  <script>import Container from "./etc/Container.svelte";
90
91
  import Nav from "./navigation/Nav.svelte";
@@ -135,7 +136,7 @@ const toggle = () => {
135
136
  info={data}
136
137
  selected={current ?? ""}
137
138
  sorter={sorter ?? defaultSorter}
138
- renamer={renamer ?? ((s) => s)}
139
+ renamer={renamer ?? defaultRenamer}
139
140
  on:navigate
140
141
  />
141
142
  </div>
@@ -10,19 +10,20 @@ export let value;
10
10
  export let info;
11
11
  export let depth;
12
12
  export let disabled = false;
13
+ export let visible = false;
13
14
  </script>
14
15
  {#if "object" === info.type}
15
- <Object {info} bind:value {depth} {disabled} />
16
+ <Object {info} bind:value {depth} {disabled} {visible} />
16
17
  {:else if "tuple" === info.type}
17
- <Tuple {info} bind:value {depth} {disabled} />
18
+ <Tuple {info} bind:value {depth} {disabled} {visible} />
18
19
  {:else if "text" === info.type}
19
- <Text {info} bind:value {depth} {disabled} />
20
+ <Text {info} bind:value {depth} {disabled} {visible} />
20
21
  {:else if "number" === info.type}
21
- <Number {info} bind:value {depth} {disabled} />
22
+ <Number {info} bind:value {depth} {disabled} {visible} />
22
23
  {:else if "range" === info.type}
23
- <Range {info} bind:value {depth} {disabled} />
24
+ <Range {info} bind:value {depth} {disabled} {visible} />
24
25
  {:else if "select" === info.type}
25
- <Select {info} bind:value {depth} {disabled} />
26
+ <Select {info} bind:value {depth} {disabled} {visible} />
26
27
  {:else if "switch" === info.type}
27
- <Switch {info} bind:value {depth} {disabled} />
28
+ <Switch {info} bind:value {depth} {disabled} {visible} />
28
29
  {/if}
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  info: Control;
7
7
  depth: number;
8
8
  disabled?: boolean | undefined;
9
+ visible?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -8,6 +8,6 @@ export let values;
8
8
  <Styler>
9
9
  <Header />
10
10
  {#each infos as info}
11
- <Component {info} bind:value={values[info.name]} depth={10} disabled={false} />
11
+ <Component {info} bind:value={values[info.name]} depth={10} visible />
12
12
  {/each}
13
13
  </Styler>
@@ -5,13 +5,16 @@ export let value;
5
5
  export let info;
6
6
  export let depth;
7
7
  export let disabled = false;
8
+ export let visible = false;
8
9
  let ivalue = value ?? getDefault(info);
9
10
  let enabled = value !== void 0;
10
11
  $:
11
12
  value = enabled && !disabled ? ivalue : void 0;
12
13
  </script>
13
- <div>
14
- <Name name={info.name} {depth} />
15
- <div><input type="number" bind:value={ivalue} disabled={!enabled || disabled} /></div>
16
- <div><input type="checkbox" bind:checked={enabled} {disabled} /></div>
17
- </div>
14
+ {#if visible}
15
+ <div>
16
+ <Name name={info.name} {depth} />
17
+ <div><input type="number" bind:value={ivalue} disabled={!enabled || disabled} /></div>
18
+ <div><input type="checkbox" bind:checked={enabled} {disabled} /></div>
19
+ </div>
20
+ {/if}
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  info: ControlNumber;
7
7
  depth: number;
8
8
  disabled?: boolean | undefined;
9
+ visible?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -6,22 +6,22 @@ export let value;
6
6
  export let info;
7
7
  export let depth;
8
8
  export let disabled = false;
9
+ export let visible = false;
9
10
  let ivalue = value ?? getDefault(info);
10
11
  let enabled = value !== void 0;
12
+ let expand = info.values.length > 0 ? true : void 0;
11
13
  $:
12
14
  value = !disabled && enabled ? ivalue : void 0;
13
15
  $:
14
16
  values = info.values;
15
- let expand = info.values.length > 0 ? true : void 0;
16
17
  </script>
17
- <Header name={info.name} bind:expand bind:checked={enabled} {depth} {disabled} />
18
- {#if expand && enabled && !disabled}
19
- {#each values as info, i (i)}
20
- <Component
21
- {info}
22
- bind:value={ivalue[info.name]}
23
- depth={depth + 10}
24
- disabled={!enabled || disabled}
25
- />
26
- {/each}
27
- {/if}
18
+ <Header name={info.name} bind:expand bind:checked={enabled} {depth} {disabled} {visible} />
19
+ {#each values as info, i (i)}
20
+ <Component
21
+ {info}
22
+ bind:value={ivalue[info.name]}
23
+ depth={depth + 10}
24
+ disabled={!enabled || disabled}
25
+ visible={visible && expand && enabled && !disabled}
26
+ />
27
+ {/each}
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  info: ControlObject;
8
8
  depth: number;
9
9
  disabled?: boolean | undefined;
10
+ visible?: boolean | undefined;
10
11
  };
11
12
  events: {
12
13
  [evt: string]: CustomEvent<any>;
@@ -38,6 +38,7 @@ export let value;
38
38
  export let info;
39
39
  export let depth;
40
40
  export let disabled = false;
41
+ export let visible = false;
41
42
  let ivalue = value ?? getDefault(info);
42
43
  let enabled = value !== void 0;
43
44
  $:
@@ -45,22 +46,24 @@ $:
45
46
  $:
46
47
  flag = !enabled || disabled;
47
48
  </script>
48
- <div>
49
- <Name name={info.name} {depth} />
50
- <div class="input">
51
- <div class="tooltip" class:disabled={flag}>
52
- Current Value: {ivalue}
49
+ {#if visible}
50
+ <div>
51
+ <Name name={info.name} {depth} />
52
+ <div class="input">
53
+ <div class="tooltip" class:disabled={flag}>
54
+ Current Value: {ivalue}
55
+ </div>
56
+ <div>{ivalue.toFixed(2)}</div>
57
+ <input
58
+ type="range"
59
+ bind:value={ivalue}
60
+ min={info.min}
61
+ max={info.max}
62
+ step={info.step}
63
+ disabled={flag}
64
+ />
53
65
  </div>
54
- <div>{ivalue.toFixed(2)}</div>
55
- <input
56
- type="range"
57
- bind:value={ivalue}
58
- min={info.min}
59
- max={info.max}
60
- step={info.step}
61
- disabled={flag}
62
- />
66
+ <div><input type="checkbox" bind:checked={enabled} {disabled} /></div>
63
67
  </div>
64
- <div><input type="checkbox" bind:checked={enabled} {disabled} /></div>
65
- </div>
68
+ {/if}
66
69
 
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  info: ControlRange;
7
7
  depth: number;
8
8
  disabled?: boolean | undefined;
9
+ visible?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -5,19 +5,22 @@ export let value;
5
5
  export let info;
6
6
  export let depth;
7
7
  export let disabled = false;
8
+ export let visible = false;
8
9
  let ivalue = value ?? getDefault(info);
9
10
  let enabled = value !== void 0;
10
11
  $:
11
12
  value = enabled && !disabled ? ivalue : void 0;
12
13
  </script>
13
- <div>
14
- <Name name={info.name} {depth} />
14
+ {#if visible}
15
15
  <div>
16
- <select bind:value={ivalue} disabled={!enabled || disabled}>
17
- {#each info.values as value}
18
- <option {value}>{value}</option>
19
- {/each}
20
- </select>
16
+ <Name name={info.name} {depth} />
17
+ <div>
18
+ <select bind:value={ivalue} disabled={!enabled || disabled}>
19
+ {#each info.values as value}
20
+ <option {value}>{value}</option>
21
+ {/each}
22
+ </select>
23
+ </div>
24
+ <div><input type="checkbox" bind:checked={enabled} {disabled} /></div>
21
25
  </div>
22
- <div><input type="checkbox" bind:checked={enabled} {disabled} /></div>
23
- </div>
26
+ {/if}
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  info: ControlSelect;
7
7
  depth: number;
8
8
  disabled?: boolean | undefined;
9
+ visible?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -5,13 +5,16 @@ export let value;
5
5
  export let info;
6
6
  export let depth;
7
7
  export let disabled = false;
8
+ export let visible = false;
8
9
  let ivalue = value ?? getDefault(info);
9
10
  let enabled = value !== void 0;
10
11
  $:
11
12
  value = enabled && !disabled ? ivalue : void 0;
12
13
  </script>
13
- <div>
14
- <Name name={info.name} {depth} />
15
- <div><input type="checkbox" bind:checked={ivalue} disabled={!enabled || disabled} /></div>
16
- <div><input type="checkbox" bind:checked={enabled} {disabled} /></div>
17
- </div>
14
+ {#if visible}
15
+ <div>
16
+ <Name name={info.name} {depth} />
17
+ <div><input type="checkbox" bind:checked={ivalue} disabled={!enabled || disabled} /></div>
18
+ <div><input type="checkbox" bind:checked={enabled} {disabled} /></div>
19
+ </div>
20
+ {/if}
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  info: ControlSwitch;
7
7
  depth: number;
8
8
  disabled?: boolean | undefined;
9
+ visible?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -5,13 +5,16 @@ export let value;
5
5
  export let info;
6
6
  export let depth;
7
7
  export let disabled = false;
8
+ export let visible = false;
8
9
  let ivalue = value ?? getDefault(info);
9
10
  let ienabled = value !== void 0;
10
11
  $:
11
12
  value = ienabled && !disabled ? ivalue : void 0;
12
13
  </script>
13
- <div>
14
- <Name name={info.name} {depth} />
15
- <div><input type="text" bind:value={ivalue} disabled={!ienabled || disabled} /></div>
16
- <div><input type="checkbox" bind:checked={ienabled} {disabled} /></div>
17
- </div>
14
+ {#if visible}
15
+ <div>
16
+ <Name name={info.name} {depth} />
17
+ <div><input type="text" bind:value={ivalue} disabled={!ienabled || disabled} /></div>
18
+ <div><input type="checkbox" bind:checked={ienabled} {disabled} /></div>
19
+ </div>
20
+ {/if}
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  info: ControlText;
7
7
  depth: number;
8
8
  disabled?: boolean | undefined;
9
+ visible?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -6,6 +6,7 @@ export let value;
6
6
  export let info;
7
7
  export let depth;
8
8
  export let disabled = false;
9
+ export let visible = false;
9
10
  let ivalue = value ?? getDefault(info);
10
11
  let enabled = value !== void 0;
11
12
  $:
@@ -14,14 +15,13 @@ $:
14
15
  values = info.values;
15
16
  let expand = info.values.length > 0 ? true : void 0;
16
17
  </script>
17
- <Header name={info.name} bind:expand bind:checked={enabled} {depth} {disabled} />
18
- {#if expand && enabled && !disabled}
19
- {#each values as info, i (i)}
20
- <Component
21
- info={{ ...info, name: `${i}` }}
22
- bind:value={ivalue[i]}
23
- depth={depth + 10}
24
- disabled={!enabled || disabled}
25
- />
26
- {/each}
27
- {/if}
18
+ <Header name={info.name} bind:expand bind:checked={enabled} {depth} {disabled} {visible} />
19
+ {#each values as info, i (i)}
20
+ <Component
21
+ info={{ ...info, name: `${i}` }}
22
+ bind:value={ivalue[i]}
23
+ depth={depth + 10}
24
+ disabled={!enabled || disabled}
25
+ visible={visible && expand && enabled && !disabled}
26
+ />
27
+ {/each}
@@ -7,6 +7,7 @@ declare const __propDef: {
7
7
  info: ControlTuple;
8
8
  depth: number;
9
9
  disabled?: boolean | undefined;
10
+ visible?: boolean | undefined;
10
11
  };
11
12
  events: {
12
13
  [evt: string]: CustomEvent<any>;
@@ -10,6 +10,7 @@ export let depth;
10
10
  export let checked;
11
11
  export let disabled = false;
12
12
  export let expand = void 0;
13
+ export let visible = false;
13
14
  const flip = () => {
14
15
  if (!disabled && checked) {
15
16
  if (expand !== void 0) {
@@ -18,15 +19,17 @@ const flip = () => {
18
19
  }
19
20
  };
20
21
  </script>
21
- <div on:click={flip} on:keypress={null}>
22
- <Name
23
- expand={expand === undefined ? undefined : expand && checked && !disabled}
24
- {name}
25
- {depth}
26
- />
27
- <div class="value">-</div>
28
- <div>
29
- <input type="checkbox" {disabled} bind:checked on:click={(e) => e.stopPropagation()} />
22
+ {#if visible}
23
+ <div class="root" on:click={flip} on:keypress={null}>
24
+ <Name
25
+ expand={expand === undefined ? undefined : expand && checked && !disabled}
26
+ {name}
27
+ {depth}
28
+ />
29
+ <div class="value">-</div>
30
+ <div>
31
+ <input type="checkbox" {disabled} bind:checked on:click={(e) => e.stopPropagation()} />
32
+ </div>
30
33
  </div>
31
- </div>
34
+ {/if}
32
35
 
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  checked: boolean;
7
7
  disabled?: boolean | undefined;
8
8
  expand?: boolean | undefined;
9
+ visible?: boolean | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -18,8 +18,8 @@ const dark = getTheme();
18
18
  }
19
19
 
20
20
  div > :global(div) {
21
- width: 100%;
22
21
  display: grid;
22
+ width: 100%;
23
23
  padding: 2px 0px;
24
24
  grid-template-columns: minmax(250px, 1fr) 200px 40px;
25
25
  }
@@ -31,7 +31,7 @@ const dark = getTheme();
31
31
 
32
32
  /* colors */
33
33
  div > :global(div) {
34
- transition: background-color 350ms;
34
+ transition: background-color 150ms;
35
35
  background-color: hsl(0, 0%, 100%);
36
36
  }
37
37
 
@@ -67,6 +67,21 @@ const dark = getTheme();
67
67
  </style>
68
68
 
69
69
 
70
+ <!--
71
+ <div> this component
72
+ <div> Header
73
+ <div></div>
74
+ <div></div>
75
+ <div></div>
76
+ </div>
77
+ <div> Controls
78
+ <div></div>
79
+ <div></div>
80
+ <div></div>
81
+ </div>
82
+ ...
83
+ </div>
84
+ -->
70
85
  <div class:dark={$dark}>
71
86
  <slot />
72
87
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nil-/doc",
3
- "version": "0.2.44",
3
+ "version": "0.2.45",
4
4
  "author": {
5
5
  "email": "njaldea@gmail.com",
6
6
  "name": "Neil Aldea"