@humandialog/forms.svelte 0.5.4 → 0.5.5

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.
Files changed (61) hide show
  1. package/components/Fab.svelte +5 -3
  2. package/components/combo/combo.svelte +1 -1
  3. package/components/document/rich.edit.svelte +30 -7
  4. package/components/document/rich.edit.svelte.d.ts +2 -2
  5. package/components/kanban/Kanban.d.ts +24 -4
  6. package/components/kanban/Kanban.js +60 -4
  7. package/components/kanban/internal/kanban.card.svelte +148 -70
  8. package/components/kanban/internal/kanban.card.svelte.d.ts +2 -5
  9. package/components/kanban/internal/kanban.column.svelte +116 -72
  10. package/components/kanban/internal/kanban.column.svelte.d.ts +9 -9
  11. package/components/kanban/internal/kanban.inserter.svelte +1 -1
  12. package/components/kanban/internal/kanban.move.menu.svelte +11 -8
  13. package/components/kanban/internal/kanban.move.menu.svelte.d.ts +3 -0
  14. package/components/kanban/internal/kanban.props.svelte +140 -0
  15. package/components/kanban/internal/kanban.props.svelte.d.ts +19 -0
  16. package/components/kanban/kanban.callbacks.svelte +2 -8
  17. package/components/kanban/kanban.callbacks.svelte.d.ts +1 -4
  18. package/components/kanban/kanban.column.svelte +8 -8
  19. package/components/kanban/kanban.column.svelte.d.ts +4 -4
  20. package/components/kanban/kanban.combo.svelte +36 -0
  21. package/components/kanban/kanban.combo.svelte.d.ts +24 -0
  22. package/components/kanban/kanban.date.svelte +30 -0
  23. package/components/kanban/kanban.date.svelte.d.ts +21 -0
  24. package/components/kanban/kanban.source.svelte +25 -0
  25. package/components/kanban/kanban.source.svelte.d.ts +23 -0
  26. package/components/kanban/kanban.static.svelte +28 -0
  27. package/components/kanban/kanban.static.svelte.d.ts +20 -0
  28. package/components/kanban/kanban.summary.svelte +4 -0
  29. package/components/kanban/kanban.summary.svelte.d.ts +2 -0
  30. package/components/kanban/kanban.svelte +390 -55
  31. package/components/kanban/kanban.svelte.d.ts +32 -12
  32. package/components/kanban/kanban.tags.svelte +34 -0
  33. package/components/kanban/kanban.tags.svelte.d.ts +23 -0
  34. package/components/kanban/kanban.title.svelte +2 -0
  35. package/components/kanban/kanban.title.svelte.d.ts +1 -0
  36. package/components/list/List.d.ts +8 -1
  37. package/components/list/List.js +9 -0
  38. package/components/list/internal/list.element.summary.svelte +21 -7
  39. package/components/list/internal/list.element.summary.svelte.d.ts +1 -0
  40. package/components/list/internal/list.element.svelte +16 -11
  41. package/components/list/list.svelte +1 -1
  42. package/components/sidebar/sidebar.group.svelte +41 -3
  43. package/components/sidebar/sidebar.group.svelte.d.ts +6 -0
  44. package/components/tag.svelte +40 -0
  45. package/components/tag.svelte.d.ts +19 -0
  46. package/components/tags.svelte +203 -0
  47. package/components/tags.svelte.d.ts +31 -0
  48. package/horizontal.toolbar.svelte +23 -4
  49. package/horizontal.toolbar.svelte.d.ts +2 -0
  50. package/index.d.ts +9 -2
  51. package/index.js +9 -2
  52. package/operations.svelte +52 -23
  53. package/package.json +9 -1
  54. package/page.svelte +3 -3
  55. package/page.svelte.d.ts +2 -2
  56. package/tenant.members.svelte +1 -1
  57. package/updates.d.ts +1 -0
  58. package/updates.js +16 -0
  59. package/utils.js +11 -1
  60. package/vertical.toolbar.svelte +31 -6
  61. package/vertical.toolbar.svelte.d.ts +2 -0
@@ -5,6 +5,7 @@ export let id;
5
5
  export let readonly = false;
6
6
  export let text = "";
7
7
  export let placeholder = false;
8
+ export let active = false;
8
9
  export let editable;
9
10
  export let clickEdit;
10
11
  let user_class = $$props.class ?? "";
@@ -20,14 +21,27 @@ let user_class = $$props.class ?? "";
20
21
  {text}
21
22
  </p>
22
23
  {:else if text}
23
- <p {id} class=" sm:text-xs sm:min-h-[1rem]
24
- text-base min-h-[1.5rem]
25
- text-stone-400
26
- {user_class}"
27
- use:_editable={editable}
28
- on:click>
24
+ {#if active}
25
+ <p {id} class=" sm:text-xs sm:min-h-[1rem]
26
+ text-base min-h-[1.5rem]
27
+ text-stone-400
28
+ {user_class}"
29
+ use:_editable={{
30
+ action: editable,
31
+ active: true
32
+ }}
33
+ on:click>
34
+ {text}
35
+ </p>
36
+ {:else}
37
+ <p {id} class=" sm:text-xs sm:min-h-[1rem]
38
+ text-base min-h-[1.5rem]
39
+ text-stone-400
40
+ {user_class}"
41
+ on:click>
29
42
  {text}
30
- </p>
43
+ </p>
44
+ {/if}
31
45
  {:else if placeholder}
32
46
  <p {id} class="sm:text-xs sm:min-h-[1rem]
33
47
  text-base min-h-[1.5rem]
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  readonly?: boolean | undefined;
7
7
  text?: string | undefined;
8
8
  placeholder?: boolean | undefined;
9
+ active?: boolean | undefined;
9
10
  editable: any;
10
11
  clickEdit: any;
11
12
  };
@@ -201,25 +201,29 @@ async function force_editing(field) {
201
201
  tabindex="0">
202
202
  <div class="block sm:flex sm:flex-row" on:click={(e) => on_active_row_clicked(e, 'top')}>
203
203
 
204
- {#if definition.title_readonly}
205
- <p class=" text-lg font-semibold min-h-[1.75rem]
206
- sm:text-sm sm:font-semibold sm:min-h-[1.25rem]
207
- whitespace-nowrap overflow-clip w-full sm:flex-none sm:w-2/3"
208
- id="__hd_list_ctrl_{item[item_key]}_Title">
209
- {element_title}
210
- </p>
211
- {:else}
204
+ {#if is_row_active}
212
205
  {#key item[title]} <!-- Wymusza pełne wyrenderowanie zwłasza po zmiane z pustego na tekst -->
213
206
  <p class=" text-lg font-semibold min-h-[1.75rem]
214
207
  sm:text-sm sm:font-semibold sm:min-h-[1.25rem]
215
208
  whitespace-nowrap overflow-clip w-full sm:flex-none sm:w-2/3"
216
209
  id="__hd_list_ctrl_{item[item_key]}_Title"
217
- use:editable={(text) => {change_name(text)}}
218
- on:click={edit}>
210
+ use:editable={{
211
+ action: (text) => {change_name(text)},
212
+ active: true,
213
+ readonly: definition.title_readonly,
214
+ }}>
219
215
  {element_title}
220
216
  </p>
221
217
  {/key}
222
- {/if}
218
+ {:else}
219
+ <p class=" text-lg font-semibold min-h-[1.75rem]
220
+ sm:text-sm sm:font-semibold sm:min-h-[1.25rem]
221
+ whitespace-nowrap overflow-clip w-full sm:flex-none sm:w-2/3"
222
+ id="__hd_list_ctrl_{item[item_key]}_Title">
223
+ {element_title}
224
+ </p>
225
+ {/if}
226
+
223
227
 
224
228
 
225
229
  <section class="hidden sm:block w-full sm:flex-none sm:w-1/3">
@@ -237,6 +241,7 @@ async function force_editing(field) {
237
241
  placeholder={placeholder == 'Summary'}
238
242
  editable={(text) => {change_summary(text)}}
239
243
  clickEdit={edit}
244
+ active={is_row_active}
240
245
  />
241
246
  {/if}
242
247
 
@@ -102,8 +102,8 @@ export function reload(data, selectElement = KEEP_SELECTION) {
102
102
  break;
103
103
  case KEEP_OR_SELECT_NEXT:
104
104
  {
105
- selectElementId = currentSelectedItem.Id ?? 0;
106
105
  if (currentSelectedItem) {
106
+ selectElementId = currentSelectedItem.Id ?? 0;
107
107
  const selectedItemIdx = items?.findIndex((e) => e == currentSelectedItem);
108
108
  if (selectedItemIdx != void 0 && selectedItemIdx >= 0 && selectedItemIdx < items.length - 1)
109
109
  altSelectElementId = items[selectedItemIdx + 1].Id ?? 0;
@@ -1,9 +1,47 @@
1
1
  <script>
2
+ import {FaChevronDown, FaChevronUp} from 'svelte-icons/fa'
3
+
2
4
  export let border = false;
5
+ export let title = ''
6
+ export let collapsable = false;
7
+ export let onExpand = undefined
3
8
 
4
9
  let border_class = border ? " pt-4 mt-4 border-t border-stone-200 dark:border-stone-700" : ""
10
+ let title_border = title ? border_class : ""
11
+ let list_border = title ? "" : border_class
12
+ let collapsed = true;
13
+
14
+ function toggleCollapsed()
15
+ {
16
+ if(collapsed && !!onExpand)
17
+ onExpand();
18
+
19
+ collapsed = !collapsed;
20
+ }
5
21
  </script>
6
22
 
7
- <ul class="space-y-2 {border_class}">
8
- <slot/>
9
- </ul>
23
+ {#if title}
24
+ <p class="text-base sm:text-xs uppercase font-semibold {title_border}">
25
+ {title}
26
+ {#if collapsable}
27
+ <button class="inline-block ml-3 sm:ml-2 sm:mt-0.5 w-4 sm:w-3 h-4 sm:h-3" on:click={toggleCollapsed}>
28
+ {#if collapsed}
29
+ <FaChevronDown/>
30
+ {:else}
31
+ <FaChevronUp/>
32
+ {/if}
33
+ </button>
34
+ {/if}
35
+ </p>
36
+ {/if}
37
+
38
+ {#if !collapsable}
39
+ <ul class="space-y-2 {list_border}">
40
+ <slot/>
41
+ </ul>
42
+ {:else if !collapsed}
43
+ <ul class="space-y-2 {list_border}">
44
+ <slot/>
45
+ </ul>
46
+ {/if}
47
+
@@ -2,7 +2,10 @@
2
2
  /** @typedef {typeof __propDef.events} SidebarEvents */
3
3
  /** @typedef {typeof __propDef.slots} SidebarSlots */
4
4
  export default class Sidebar extends SvelteComponentTyped<{
5
+ title?: string | undefined;
5
6
  border?: boolean | undefined;
7
+ collapsable?: boolean | undefined;
8
+ onExpand?: any;
6
9
  }, {
7
10
  [evt: string]: CustomEvent<any>;
8
11
  }, {
@@ -15,7 +18,10 @@ export type SidebarSlots = typeof __propDef.slots;
15
18
  import { SvelteComponentTyped } from "svelte";
16
19
  declare const __propDef: {
17
20
  props: {
21
+ title?: string | undefined;
18
22
  border?: boolean | undefined;
23
+ collapsable?: boolean | undefined;
24
+ onExpand?: any;
19
25
  };
20
26
  events: {
21
27
  [evt: string]: CustomEvent<any>;
@@ -0,0 +1,40 @@
1
+ <script>import FaTimes from "svelte-icons/fa/FaTimes.svelte";
2
+ export let name;
3
+ export let color;
4
+ export let onRemove = void 0;
5
+ export let s = "sm";
6
+ let pr = onRemove ? "pr-1" : "pr-2";
7
+ let font;
8
+ let x_size;
9
+ switch (s) {
10
+ case "md":
11
+ font = "mt-0.5 text-sm font-semibold";
12
+ x_size = "mt-1 w-3 h-3";
13
+ break;
14
+ case "sm":
15
+ font = "mt-0 sm:mt-0.5 text-sm sm:text-xs font-semibold";
16
+ x_size = "ml-3 sm:ml-1 mt-1 sm:mt-1.5 w-3 sm:w-2 h-3 sm:h-2";
17
+ break;
18
+ case "xs":
19
+ font = "mt-0 sm:mt-0 text-xs sm:text-[0.65rem] font-semibold sm:font-normal";
20
+ x_size = "ml-3 sm:ml-1 mt-0.5 sm:mt-1 w-3 sm:w-2 h-3 sm:h-2";
21
+ break;
22
+ }
23
+ </script>
24
+
25
+ <div class="mt-1 pl-2 {pr} rounded text-white flex flex-row" style="background-color:{color}">
26
+ <div class="{font}">{name}</div>
27
+ {#if onRemove}
28
+ <div class="no-print inline-block {x_size} hover:cursor-pointer"
29
+ on:click={onRemove}><FaTimes/></div>
30
+ {/if}
31
+ </div>
32
+
33
+ <style>
34
+ @media print
35
+ {
36
+ .no-print, .no-print *{
37
+ display: none !important;
38
+ }
39
+ }
40
+ </style>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ name: string;
5
+ color: string;
6
+ onRemove?: any | undefined;
7
+ s?: string | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type TagProps = typeof __propDef.props;
15
+ export type TagEvents = typeof __propDef.events;
16
+ export type TagSlots = typeof __propDef.slots;
17
+ export default class Tag extends SvelteComponentTyped<TagProps, TagEvents, TagSlots> {
18
+ }
19
+ export {};
@@ -0,0 +1,203 @@
1
+ <script>import { tick, getContext } from "svelte";
2
+ import Tag from "./tag.svelte";
3
+ import FaPlus from "svelte-icons/fa/FaPlus.svelte";
4
+ import Combo from "./combo/combo.svelte";
5
+ import ComboItem from "./combo/combo.item.svelte";
6
+ import { contextItemsStore, data_tick_store, contextTypesStore } from "../stores.js";
7
+ import { informModification, pushChanges } from "../updates.js";
8
+ export let tags = "";
9
+ export let globalTags = "";
10
+ export let self = null;
11
+ export let a = "";
12
+ export let context = "";
13
+ export let typename = "";
14
+ export let onSelect = void 0;
15
+ export let onCreate = void 0;
16
+ export let compact = true;
17
+ export let inContext = "";
18
+ export let pushChangesImmediately = true;
19
+ export let changed = void 0;
20
+ export let s = "sm";
21
+ let userClass = $$props.class ?? "";
22
+ let item = null;
23
+ let ctx = context ? context : getContext("ctx");
24
+ let tagsTable = [];
25
+ let globalTagsTable = [];
26
+ let isEditable = true;
27
+ $:
28
+ setup($data_tick_store, $contextItemsStore);
29
+ function setup(...args) {
30
+ globalTagsTable = decomposeTags(globalTags);
31
+ if (!tags) {
32
+ item = self ?? $contextItemsStore[ctx];
33
+ if (!typename)
34
+ typename = $contextTypesStore[ctx];
35
+ if (!typename) {
36
+ if (item.$type)
37
+ typename = item.$type;
38
+ else if (item.$ref) {
39
+ let s2 = item.$ref.split("/");
40
+ typename = s2[1];
41
+ }
42
+ }
43
+ if (!item[a])
44
+ tags = "";
45
+ else
46
+ tags = item[a];
47
+ }
48
+ tagsTable = decomposeTags(tags, globalTagsTable);
49
+ if (compact) {
50
+ isEditable = false;
51
+ if (!inContext)
52
+ isEditable = true;
53
+ else {
54
+ let contexts = inContext.split(" ");
55
+ contexts.forEach((ctx2) => {
56
+ const selectedItem = $contextItemsStore[ctx2];
57
+ if (selectedItem && selectedItem.Id == item.Id)
58
+ isEditable = true;
59
+ });
60
+ }
61
+ } else
62
+ isEditable = true;
63
+ }
64
+ let addComboVisible = false;
65
+ let addCombo;
66
+ export async function show(event, hideCallback) {
67
+ if (event) {
68
+ event.stopPropagation();
69
+ event.preventDefault();
70
+ }
71
+ addComboVisible = true;
72
+ await tick();
73
+ const onAfterCloseCombo = () => {
74
+ addComboVisible = false;
75
+ if (hideCallback)
76
+ hideCallback();
77
+ };
78
+ addCombo?.show(void 0, onAfterCloseCombo);
79
+ }
80
+ function applyChange() {
81
+ if (onSelect)
82
+ onSelect(tags);
83
+ else if (item != null) {
84
+ item[a] = tags;
85
+ if (typename)
86
+ informModification(item, a, typename);
87
+ else
88
+ informModification(item, a);
89
+ if (pushChangesImmediately)
90
+ pushChanges();
91
+ }
92
+ if (!!changed)
93
+ changed(value);
94
+ }
95
+ function onSelectTag(itm, key, name) {
96
+ tags += `#${key} `;
97
+ tagsTable = decomposeTags(tags, globalTagsTable);
98
+ applyChange();
99
+ }
100
+ function onRemoveTag(tag) {
101
+ tags = tags.replace(`#${tag}`, "");
102
+ tagsTable = decomposeTags(tags, globalTagsTable);
103
+ applyChange();
104
+ }
105
+ function onNewTagCreated(key, name) {
106
+ tags += `#${key} `;
107
+ globalTags += `#${key} `;
108
+ globalTagsTable = decomposeTags(globalTags);
109
+ tagsTable = decomposeTags(tags, globalTagsTable);
110
+ applyChange();
111
+ onCreate(globalTags);
112
+ }
113
+ function decomposeTags(tags2, referenceTable = void 0) {
114
+ let table = [];
115
+ if (!tags2)
116
+ return table;
117
+ let names = tags2.split("#");
118
+ for (let i = 0; i < names.length; i++) {
119
+ let name = names[i].trim();
120
+ if (!name)
121
+ continue;
122
+ let components = name.split(":");
123
+ let label = components[0];
124
+ if (!label)
125
+ continue;
126
+ let color;
127
+ if (components.length > 1)
128
+ color = components[1];
129
+ if (!color) {
130
+ if (referenceTable && Array.isArray(referenceTable)) {
131
+ const referenceItem = referenceTable.find((e) => e.label == label);
132
+ if (referenceItem)
133
+ color = referenceItem.color;
134
+ }
135
+ if (!color)
136
+ color = "DarkGray";
137
+ }
138
+ table.push({
139
+ label,
140
+ color
141
+ });
142
+ }
143
+ return table;
144
+ }
145
+ function getNotUsedTags() {
146
+ let result = globalTagsTable.filter((e) => {
147
+ const label = e.label;
148
+ let idx = tagsTable.findIndex((f) => f.label == label);
149
+ if (idx < 0)
150
+ return true;
151
+ else
152
+ return false;
153
+ });
154
+ return result;
155
+ }
156
+ let gap = "gap-2";
157
+ switch (s) {
158
+ case "md":
159
+ gap = "gap-3 sm:gap-2";
160
+ break;
161
+ case "sm":
162
+ gap = "gap-2 sm:gap-2";
163
+ break;
164
+ case "xs":
165
+ gap = "gap-2 sm:gap-1";
166
+ break;
167
+ }
168
+ </script>
169
+
170
+ <div class="{userClass} flex flex-row {gap} flex-wrap mr-1 sm:mr-0">
171
+ {#each tagsTable as tag}
172
+ {#if isEditable}
173
+ <Tag name={tag.label} color={tag.color} {s}
174
+ onRemove={(e) => {onRemoveTag(tag.label)}}/>
175
+ {:else}
176
+ <Tag name={tag.label} color={tag.color} {s}/>
177
+ {/if}
178
+ {/each}
179
+
180
+ {#if isEditable}
181
+ {#if !addComboVisible}
182
+ {#if !compact}
183
+ <button class="mt-1 pl-0 pr-1 rounded text-stone-500 flex flex-row border-stone-500 border hover:cursor-pointer"
184
+ on:click={(e) => { show(e, undefined)} }>
185
+ <div class="ml-1 mt-1 w-3 h-3"><FaPlus/></div>
186
+ </button>
187
+ {/if}
188
+ {:else}
189
+ <Combo compact={true}
190
+ inContext='data'
191
+ onSelect={onSelectTag}
192
+ onNewItemCreated={onNewTagCreated}
193
+ s={s}
194
+ filtered
195
+ bind:this={addCombo}>
196
+ {@const not_used_tags = getNotUsedTags()}
197
+ {#each not_used_tags as tag}
198
+ <ComboItem key={tag.label}/>
199
+ {/each}
200
+ </Combo>
201
+ {/if}
202
+ {/if}
203
+ </div>
@@ -0,0 +1,31 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ tags?: string | undefined;
6
+ globalTags?: string | undefined;
7
+ self?: null | undefined;
8
+ a?: string | undefined;
9
+ context?: string | undefined;
10
+ typename?: string | undefined;
11
+ onSelect?: any | undefined;
12
+ onCreate?: any | undefined;
13
+ compact?: boolean | undefined;
14
+ inContext?: string | undefined;
15
+ pushChangesImmediately?: boolean | undefined;
16
+ changed?: undefined;
17
+ s?: string | undefined;
18
+ show?: ((event: any, hideCallback: any) => Promise<void>) | undefined;
19
+ };
20
+ events: {
21
+ [evt: string]: CustomEvent<any>;
22
+ };
23
+ slots: {};
24
+ };
25
+ export type TagsProps = typeof __propDef.props;
26
+ export type TagsEvents = typeof __propDef.events;
27
+ export type TagsSlots = typeof __propDef.slots;
28
+ export default class Tags extends SvelteComponentTyped<TagsProps, TagsEvents, TagsSlots> {
29
+ get show(): (event: any, hideCallback: any) => Promise<void>;
30
+ }
31
+ export {};
@@ -12,6 +12,7 @@
12
12
  import FaToggleOff from 'svelte-icons/fa/FaToggleOff.svelte'
13
13
  import {showMenu} from './components/menu'
14
14
  import {push} from 'svelte-spa-router'
15
+ import {contextItemsStore, context_info_store, contextToolbarOperations, data_tick_store} from './stores.js'
15
16
  //import Menu from './components/contextmenu.svelte'
16
17
 
17
18
  import {
@@ -38,6 +39,7 @@
38
39
 
39
40
 
40
41
  export let appConfig;
42
+ export let clearsContext = 'sel props'
41
43
 
42
44
  let config = null;
43
45
  let has_selection_details = false;
@@ -194,11 +196,28 @@
194
196
  showMenu(pt, options);
195
197
  }
196
198
 
199
+ function clearSelection()
200
+ {
201
+ if (!clearsContext) return;
202
+
203
+ let contexts = clearsContext.split(' ');
204
+ contexts.forEach((c) => {
205
+ $contextItemsStore[c] = null;
206
+ $context_info_store[c] = '';
207
+ });
208
+
209
+ //e.stopPropagation();
210
+
211
+ $contextToolbarOperations = [];
212
+ $data_tick_store = $data_tick_store + 1;
213
+ }
214
+
197
215
  </script>
198
216
 
199
- <div class="print flex flex-row w-full">
217
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
218
+ <div class="no-print flex flex-row w-full" on:click={clearSelection}>
200
219
  <div class="flex-none left-0 flex h-12 sm:h-10">
201
- <button class="w-12 sm:w-10 h-full flex justify-center items-center text-stone-300 hover:text-stone-100" on:click={toggle_navigator}>
220
+ <button class="w-12 sm:w-10 h-full flex justify-center items-center text-stone-300 hover:text-stone-100" on:click|stopPropagation={toggle_navigator}>
202
221
  <Icon class="w-8 sm:w-6 h-8 sm:h-6" component={icon}/>
203
222
  </button>
204
223
  </div>
@@ -211,7 +230,7 @@
211
230
  <div class="flex-none ml-auto flex h-12 sm:h-10">
212
231
  <button
213
232
  class="h-full w-12 sm:w-10 px-0 flex justify-center items-center text-stone-300 hover:text-stone-100"
214
- on:click={show_options}>
233
+ on:click|stopPropagation={show_options}>
215
234
 
216
235
  <Icon class="w-5 sm:w-4 h-5 sm:h-4" component={FaCog} />
217
236
  </button>
@@ -220,7 +239,7 @@
220
239
  </div>
221
240
 
222
241
  {#if tabs.length > 1 && $main_sidebar_visible_store != "*"}
223
- <div class="print flex-none block fixed left-0 top-[40px] w-[40px] h-screen z-20 inset-0 overflow-hidden">
242
+ <div class="no-print flex-none block fixed left-0 top-[40px] w-[40px] h-screen z-20 inset-0 overflow-hidden">
224
243
  <div class="sticky top-0 flex h-full w-10 bg-stone-900 flex-col items-center text-stone-100 shadow">
225
244
  <VerticalToolbar {appConfig} mobile={true}/>
226
245
  </div>
@@ -3,6 +3,7 @@
3
3
  /** @typedef {typeof __propDef.slots} HorizontalSlots */
4
4
  export default class Horizontal extends SvelteComponentTyped<{
5
5
  appConfig: any;
6
+ clearsContext?: string | undefined;
6
7
  }, {
7
8
  [evt: string]: CustomEvent<any>;
8
9
  }, {}> {
@@ -14,6 +15,7 @@ import { SvelteComponentTyped } from "svelte";
14
15
  declare const __propDef: {
15
16
  props: {
16
17
  appConfig: any;
18
+ clearsContext?: string | undefined;
17
19
  };
18
20
  events: {
19
21
  [evt: string]: CustomEvent<any>;
package/index.d.ts CHANGED
@@ -38,15 +38,22 @@ export { default as ListComboProperty } from './components/list/list.combo.svelt
38
38
  export { default as ListStaticProperty } from './components/list/list.static.svelte';
39
39
  export { default as Modal } from './modal.svelte';
40
40
  export { default as MembersPage } from './tenant.members.svelte';
41
+ export { default as Tag } from './components/tag.svelte';
42
+ export { default as Tags } from './components/tags.svelte';
41
43
  export { default as Kanban } from './components/kanban/kanban.svelte';
44
+ export { default as KanbanSource } from './components/kanban/kanban.source.svelte';
42
45
  export { default as KanbanColumn } from './components/kanban/kanban.column.svelte';
43
46
  export { default as KanbanTitle } from './components/kanban/kanban.title.svelte';
44
47
  export { default as KanbanSummary } from './components/kanban/kanban.summary.svelte';
45
- export { default as KanbanCallckacks } from './components/kanban/kanban.callbacks.svelte';
48
+ export { default as KanbanStaticProperty } from './components/kanban/kanban.static.svelte';
49
+ export { default as KanbanDateProperty } from './components/kanban/kanban.date.svelte';
50
+ export { default as KanbanComboProperty } from './components/kanban/kanban.combo.svelte';
51
+ export { default as KanbanTagsProperty } from './components/kanban/kanban.tags.svelte';
52
+ export { default as KanbanCallbacks } from './components/kanban/kanban.callbacks.svelte';
46
53
  export { KanbanColumnTop, KanbanColumnBottom } from './components/kanban/Kanban';
47
54
  export { selectItem, activateItem, clearActiveItem, isActive, isSelected, getActive, editable, startEditing, selectable, handleSelect } from './utils';
48
55
  export { mainViewReloader, reloadMainView } from './stores.js';
49
56
  export { data_tick_store, // tmp
50
57
  hasSelectedItem, hasDataItem, setNavigatorTitle } from "./stores";
51
58
  export { contextToolbarOperations, pageToolbarOperations, contextItemsStore, contextTypesStore } from './stores';
52
- export { informModification, informItem, pushChanges } from './updates';
59
+ export { informModification, informModificationEx, informItem, pushChanges } from './updates';
package/index.js CHANGED
@@ -44,15 +44,22 @@ export { default as ListComboProperty } from './components/list/list.combo.svelt
44
44
  export { default as ListStaticProperty } from './components/list/list.static.svelte';
45
45
  export { default as Modal } from './modal.svelte';
46
46
  export { default as MembersPage } from './tenant.members.svelte';
47
+ export { default as Tag } from './components/tag.svelte';
48
+ export { default as Tags } from './components/tags.svelte';
47
49
  export { default as Kanban } from './components/kanban/kanban.svelte';
50
+ export { default as KanbanSource } from './components/kanban/kanban.source.svelte';
48
51
  export { default as KanbanColumn } from './components/kanban/kanban.column.svelte';
49
52
  export { default as KanbanTitle } from './components/kanban/kanban.title.svelte';
50
53
  export { default as KanbanSummary } from './components/kanban/kanban.summary.svelte';
51
- export { default as KanbanCallckacks } from './components/kanban/kanban.callbacks.svelte';
54
+ export { default as KanbanStaticProperty } from './components/kanban/kanban.static.svelte';
55
+ export { default as KanbanDateProperty } from './components/kanban/kanban.date.svelte';
56
+ export { default as KanbanComboProperty } from './components/kanban/kanban.combo.svelte';
57
+ export { default as KanbanTagsProperty } from './components/kanban/kanban.tags.svelte';
58
+ export { default as KanbanCallbacks } from './components/kanban/kanban.callbacks.svelte';
52
59
  export { KanbanColumnTop, KanbanColumnBottom } from './components/kanban/Kanban';
53
60
  export { selectItem, activateItem, clearActiveItem, isActive, isSelected, getActive, editable, startEditing, selectable, handleSelect } from './utils';
54
61
  export { mainViewReloader, reloadMainView } from './stores.js';
55
62
  export { data_tick_store, // tmp
56
63
  hasSelectedItem, hasDataItem, setNavigatorTitle } from "./stores";
57
64
  export { contextToolbarOperations, pageToolbarOperations, contextItemsStore, contextTypesStore } from './stores'; // tmp
58
- export { informModification, informItem, pushChanges } from './updates'; // tmp
65
+ export { informModification, informModificationEx, informItem, pushChanges } from './updates'; // tmp