@dosgato/dialog 0.0.33 → 0.0.35

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 (77) hide show
  1. package/Button.svelte.d.ts +7 -7
  2. package/ButtonGroup.svelte.d.ts +5 -5
  3. package/Checkbox.svelte.d.ts +4 -4
  4. package/Container.svelte.d.ts +2 -2
  5. package/Dialog.svelte +3 -2
  6. package/Dialog.svelte.d.ts +14 -14
  7. package/FieldAutocomplete.svelte +7 -2
  8. package/FieldAutocomplete.svelte.d.ts +9 -9
  9. package/FieldCheckbox.svelte.d.ts +4 -4
  10. package/FieldChoices.svelte.d.ts +6 -6
  11. package/FieldChooserLink.svelte +7 -2
  12. package/FieldChooserLink.svelte.d.ts +8 -8
  13. package/FieldCodeEditor.svelte +2 -2
  14. package/FieldCodeEditor.svelte.d.ts +7 -7
  15. package/FieldDate.svelte.d.ts +4 -4
  16. package/FieldDateTime.svelte.d.ts +3 -3
  17. package/FieldDualListbox.svelte.d.ts +6 -6
  18. package/FieldHidden.svelte +1 -1
  19. package/FieldHidden.svelte.d.ts +2 -2
  20. package/FieldMultiple.svelte.d.ts +7 -7
  21. package/FieldMultiselect.svelte +5 -1
  22. package/FieldMultiselect.svelte.d.ts +5 -5
  23. package/FieldNumber.svelte.d.ts +5 -5
  24. package/FieldRadio.svelte.d.ts +13 -13
  25. package/FieldSelect.svelte.d.ts +15 -15
  26. package/FieldStandard.svelte +2 -1
  27. package/FieldStandard.svelte.d.ts +11 -10
  28. package/FieldText.svelte +1 -1
  29. package/FieldText.svelte.d.ts +8 -8
  30. package/FieldTextArea.svelte +1 -1
  31. package/FieldTextArea.svelte.d.ts +6 -6
  32. package/FileIcon.svelte.d.ts +5 -5
  33. package/Form.svelte +3 -3
  34. package/Form.svelte.d.ts +5 -5
  35. package/FormDialog.svelte +2 -2
  36. package/FormDialog.svelte.d.ts +24 -21
  37. package/Icon.svelte.d.ts +5 -5
  38. package/Input.svelte.d.ts +8 -8
  39. package/Listbox.svelte +2 -2
  40. package/Listbox.svelte.d.ts +6 -6
  41. package/Radio.svelte.d.ts +4 -4
  42. package/Switcher.svelte.d.ts +11 -11
  43. package/TabStore.d.ts +3 -3
  44. package/TabStore.js +7 -6
  45. package/Tabs.svelte +6 -6
  46. package/Tabs.svelte.d.ts +2 -2
  47. package/chooser/Chooser.svelte +4 -3
  48. package/chooser/Chooser.svelte.d.ts +12 -12
  49. package/chooser/ChooserStore.d.ts +4 -4
  50. package/chooser/ChooserStore.js +3 -3
  51. package/colorpicker/FieldColorPicker.svelte.d.ts +5 -5
  52. package/cropper/FieldCropper.svelte +219 -0
  53. package/cropper/FieldCropper.svelte.d.ts +24 -0
  54. package/cropper/cropper.d.ts +78 -0
  55. package/cropper/cropper.js +220 -0
  56. package/cropper/index.d.ts +2 -0
  57. package/cropper/index.js +2 -0
  58. package/helpers.d.ts +1 -1
  59. package/iconpicker/FieldIconPicker.svelte +5 -5
  60. package/iconpicker/FieldIconPicker.svelte.d.ts +3 -3
  61. package/index.d.ts +1 -1
  62. package/index.js +1 -1
  63. package/package.json +13 -14
  64. package/tree/LoadIcon.svelte.d.ts +2 -2
  65. package/tree/Tree.svelte.d.ts +11 -11
  66. package/tree/TreeNode.svelte +4 -1
  67. package/tree/TreeNode.svelte.d.ts +4 -4
  68. package/tree/treestore.d.ts +16 -16
  69. package/tree/treestore.js +3 -3
  70. package/imagecropper/FieldImageCropper.svelte +0 -380
  71. package/imagecropper/FieldImageCropper.svelte.d.ts +0 -25
  72. package/imagecropper/ImageCropperStore.d.ts +0 -16
  73. package/imagecropper/ImageCropperStore.js +0 -104
  74. package/imagecropper/imagecropper.d.ts +0 -21
  75. package/imagecropper/imagecropper.js +0 -1
  76. package/imagecropper/index.d.ts +0 -1
  77. package/imagecropper/index.js +0 -1
@@ -1,20 +1,21 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
- id?: string;
4
+ id?: string | undefined;
5
5
  descid?: string | undefined;
6
6
  path: string;
7
7
  defaultValue?: any;
8
8
  label: string;
9
- notNull?: boolean;
10
- number?: boolean;
11
- date?: boolean;
12
- datetime?: boolean;
13
- boolean?: boolean;
14
- serialize?: (value: any) => string;
15
- deserialize?: (value: string) => any;
9
+ notNull?: boolean | undefined;
10
+ number?: boolean | undefined;
11
+ date?: boolean | undefined;
12
+ datetime?: boolean | undefined;
13
+ boolean?: boolean | undefined;
14
+ serialize?: ((value: any) => string) | undefined;
15
+ deserialize?: ((value: string) => any) | undefined;
16
+ finalize?: ((value: any) => any) | undefined;
16
17
  conditional?: boolean | undefined;
17
- required?: boolean;
18
+ required?: boolean | undefined;
18
19
  helptext?: string | undefined;
19
20
  };
20
21
  events: {
@@ -31,7 +32,7 @@ declare const __propDef: {
31
32
  valid: boolean;
32
33
  invalid: boolean;
33
34
  messagesid: any;
34
- helptextid: string;
35
+ helptextid: string | undefined;
35
36
  serialize: (value: any) => string;
36
37
  deserialize: (value: string) => any;
37
38
  };
package/FieldText.svelte CHANGED
@@ -18,6 +18,6 @@ export let inputelement = undefined;
18
18
  export let helptext = undefined;
19
19
  </script>
20
20
 
21
- <FieldStandard bind:id {label} {path} {required} {defaultValue} {conditional} {helptext} serialize={!notNull && nullableSerialize} deserialize={!notNull && nullableDeserialize} let:value let:valid let:invalid let:id let:onBlur let:onChange let:messagesid let:helptextid>
21
+ <FieldStandard bind:id {label} {path} {required} {defaultValue} {conditional} {helptext} serialize={!notNull ? nullableSerialize : undefined} deserialize={!notNull ? nullableDeserialize : undefined} let:value let:valid let:invalid let:id let:onBlur let:onChange let:messagesid let:helptextid>
22
22
  <Input bind:inputelement {type} name={path} {value} {id} class="dialog-input {className}" {allowlastpass} {onChange} {onBlur} {valid} {invalid} {maxlength} {messagesid} {helptextid} {use}></Input>
23
23
  </FieldStandard>
@@ -2,19 +2,19 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import type { HTMLActionEntry } from '@txstate-mws/svelte-components';
3
3
  declare const __propDef: {
4
4
  props: {
5
- class?: string;
5
+ class?: string | undefined;
6
6
  id?: string | undefined;
7
7
  path: string;
8
- label?: string;
9
- notNull?: boolean;
8
+ label?: string | undefined;
9
+ notNull?: boolean | undefined;
10
10
  defaultValue?: any;
11
- type?: string;
12
- allowlastpass?: boolean;
11
+ type?: string | undefined;
12
+ allowlastpass?: boolean | undefined;
13
13
  maxlength?: number | undefined;
14
14
  conditional?: boolean | undefined;
15
- required?: boolean;
16
- use?: HTMLActionEntry[];
17
- inputelement?: HTMLInputElement;
15
+ required?: boolean | undefined;
16
+ use?: HTMLActionEntry<any>[] | undefined;
17
+ inputelement?: HTMLInputElement | undefined;
18
18
  helptext?: string | undefined;
19
19
  };
20
20
  events: {
@@ -18,7 +18,7 @@ export let inputelement = undefined;
18
18
  export let helptext = undefined;
19
19
  </script>
20
20
 
21
- <FieldStandard bind:id {label} {path} {required} {defaultValue} {conditional} {helptext} serialize={!notNull && nullableSerialize} deserialize={!notNull && nullableDeserialize} let:value let:valid let:invalid let:id let:onBlur let:onChange let:messagesid let:helptextid>
21
+ <FieldStandard bind:id {label} {path} {required} {defaultValue} {conditional} {helptext} serialize={!notNull ? nullableSerialize : undefined} deserialize={!notNull ? nullableDeserialize : undefined} let:value let:valid let:invalid let:id let:onBlur let:onChange let:messagesid let:helptextid>
22
22
  <textarea bind:this={inputelement} name={path} {value} {id} {rows} class="dialog-input dialog-textarea {className}" class:valid class:invalid aria-invalid={invalid} aria-describedby={getDescribedBy([messagesid, helptextid])} on:change={onChange} on:blur={onBlur} on:keyup={onChange} on:paste {maxlength} use:passActions={use}></textarea>
23
23
  </FieldStandard>
24
24
 
@@ -2,18 +2,18 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import { type HTMLActionEntry } from '@txstate-mws/svelte-components';
3
3
  declare const __propDef: {
4
4
  props: {
5
- class?: string;
5
+ class?: string | undefined;
6
6
  id?: string | undefined;
7
7
  path: string;
8
- label?: string;
9
- notNull?: boolean;
8
+ label?: string | undefined;
9
+ notNull?: boolean | undefined;
10
10
  defaultValue?: any;
11
11
  maxlength?: number | undefined;
12
12
  rows?: number | undefined;
13
13
  conditional?: boolean | undefined;
14
- required?: boolean;
15
- use?: HTMLActionEntry[];
16
- inputelement?: HTMLTextAreaElement;
14
+ required?: boolean | undefined;
15
+ use?: HTMLActionEntry<any>[] | undefined;
16
+ inputelement?: HTMLTextAreaElement | undefined;
17
17
  helptext?: string | undefined;
18
18
  };
19
19
  events: {
@@ -2,11 +2,11 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  mime: string;
5
- hiddenLabel?: string;
6
- inline?: boolean;
7
- width?: string | number;
8
- height?: string | number;
9
- vAlign?: 'top' | 'middle' | 'bottom';
5
+ hiddenLabel?: string | undefined;
6
+ inline?: boolean | undefined;
7
+ width?: string | number | undefined;
8
+ height?: string | number | undefined;
9
+ vAlign?: "top" | "bottom" | "middle" | undefined;
10
10
  };
11
11
  events: {
12
12
  [evt: string]: CustomEvent<any>;
package/Form.svelte CHANGED
@@ -13,8 +13,8 @@ export let preload = undefined;
13
13
  setContext(CHOOSER_API_CONTEXT, chooserClient);
14
14
  </script>
15
15
 
16
- <Form bind:store class="{className} dialog-form" {submit} {validate} on:saved {autocomplete} {name} {preload} let:messages let:showingInlineErrors let:saved let:valid let:invalid let:validating let:submitting let:data>
17
- <slot {messages} {saved} {validating} {submitting} {valid} {invalid} {data} />
16
+ <Form bind:store class="{className} dialog-form" {submit} {validate} on:saved {autocomplete} {name} {preload} let:messages let:allMessages let:showingInlineErrors let:saved let:valid let:invalid let:validating let:submitting let:data>
17
+ <slot {messages} {saved} {validating} {submitting} {valid} {invalid} {data} {allMessages} {showingInlineErrors} />
18
18
  <div class="form-errors" aria-live='assertive'>
19
19
  {#if messages.length}
20
20
  <ul>
@@ -29,7 +29,7 @@ setContext(CHOOSER_API_CONTEXT, chooserClient);
29
29
  This form contains validation errors. See inline messages for details.
30
30
  {/if}
31
31
  </div>
32
- <slot name="submit" {saved} {validating} {submitting} {valid} {invalid} />
32
+ <slot name="submit" {saved} {validating} {submitting} {valid} {invalid} {allMessages} {showingInlineErrors} />
33
33
  </Form>
34
34
 
35
35
  <style>
package/Form.svelte.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- declare class __sveltets_Render<T, F> {
2
+ declare class __sveltets_Render<T extends any, F extends any> {
3
3
  props(): any;
4
4
  events(): {
5
5
  [evt: string]: CustomEvent<any>;
6
6
  };
7
7
  slots(): any;
8
8
  }
9
- export type FormProps<T, F> = ReturnType<__sveltets_Render<T, F>['props']>;
10
- export type FormEvents<T, F> = ReturnType<__sveltets_Render<T, F>['events']>;
11
- export type FormSlots<T, F> = ReturnType<__sveltets_Render<T, F>['slots']>;
12
- export default class Form<T, F> extends SvelteComponentTyped<FormProps<T, F>, FormEvents<T, F>, FormSlots<T, F>> {
9
+ export type FormProps<T extends any, F extends any> = ReturnType<__sveltets_Render<T, F>['props']>;
10
+ export type FormEvents<T extends any, F extends any> = ReturnType<__sveltets_Render<T, F>['events']>;
11
+ export type FormSlots<T extends any, F extends any> = ReturnType<__sveltets_Render<T, F>['slots']>;
12
+ export default class Form<T extends any, F extends any> extends SvelteComponentTyped<FormProps<T, F>, FormEvents<T, F>, FormSlots<T, F>> {
13
13
  }
14
14
  export {};
package/FormDialog.svelte CHANGED
@@ -22,8 +22,8 @@ setContext(CHOOSER_API_CONTEXT, chooserClient);
22
22
  </script>
23
23
 
24
24
  <Dialog continueText="Save" continueIcon={contentSave} cancelText="Cancel" on:escape on:continue={onSubmit} {title} {icon} {size}>
25
- <Form bind:store {submit} {validate} {chooserClient} {autocomplete} {name} {preload} on:saved let:messages let:saved let:valid let:invalid let:validating let:submitting let:data>
26
- <slot {messages} {saved} {validating} {submitting} {valid} {invalid} {data} />
25
+ <Form bind:store {submit} {validate} {chooserClient} {autocomplete} {name} {preload} on:saved let:messages let:allMessages let:showingInlineErrors let:saved let:valid let:invalid let:validating let:submitting let:data>
26
+ <slot {messages} {allMessages} {saved} {validating} {submitting} {valid} {invalid} {data} {showingInlineErrors} />
27
27
  </Form>
28
28
  </Dialog>
29
29
 
@@ -1,18 +1,19 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  import type { IconifyIcon } from '@iconify/svelte';
3
3
  import type { Feedback, FormStore, SubmitResponse } from '@txstate-mws/svelte-forms';
4
- declare class __sveltets_Render<T> {
4
+ import { type Client } from './';
5
+ declare class __sveltets_Render<T extends any> {
5
6
  props(): {
6
7
  submit: (state: T) => Promise<SubmitResponse<T>>;
7
- validate?: (state: T) => Promise<Feedback[]>;
8
- store?: FormStore<T>;
9
- chooserClient?: any;
10
- autocomplete?: string;
11
- name?: string;
12
- title?: string;
13
- icon?: IconifyIcon;
14
- size?: "small" | "normal" | "tiny" | "large";
15
- preload?: T;
8
+ validate?: ((state: T) => Promise<Feedback[]>) | undefined;
9
+ store?: FormStore<T> | undefined;
10
+ chooserClient?: Client<any> | undefined;
11
+ autocomplete?: string | undefined;
12
+ name?: string | undefined;
13
+ title?: string | undefined;
14
+ icon?: IconifyIcon | undefined;
15
+ size?: "small" | "normal" | "tiny" | "large" | undefined;
16
+ preload?: T | undefined;
16
17
  };
17
18
  events(): {
18
19
  saved: CustomEvent<T>;
@@ -20,19 +21,21 @@ declare class __sveltets_Render<T> {
20
21
  };
21
22
  slots(): {
22
23
  default: {
23
- messages: any;
24
- saved: any;
25
- validating: any;
26
- submitting: any;
27
- valid: any;
28
- invalid: any;
29
- data: any;
24
+ messages: Feedback[];
25
+ allMessages: Feedback[];
26
+ saved: boolean;
27
+ validating: boolean;
28
+ submitting: boolean;
29
+ valid: boolean;
30
+ invalid: boolean;
31
+ showingInlineErrors: boolean;
32
+ data: Partial<T>;
30
33
  };
31
34
  };
32
35
  }
33
- export type FormDialogProps<T> = ReturnType<__sveltets_Render<T>['props']>;
34
- export type FormDialogEvents<T> = ReturnType<__sveltets_Render<T>['events']>;
35
- export type FormDialogSlots<T> = ReturnType<__sveltets_Render<T>['slots']>;
36
- export default class FormDialog<T> extends SvelteComponentTyped<FormDialogProps<T>, FormDialogEvents<T>, FormDialogSlots<T>> {
36
+ export type FormDialogProps<T extends any> = ReturnType<__sveltets_Render<T>['props']>;
37
+ export type FormDialogEvents<T extends any> = ReturnType<__sveltets_Render<T>['events']>;
38
+ export type FormDialogSlots<T extends any> = ReturnType<__sveltets_Render<T>['slots']>;
39
+ export default class FormDialog<T extends any> extends SvelteComponentTyped<FormDialogProps<T>, FormDialogEvents<T>, FormDialogSlots<T>> {
37
40
  }
38
41
  export {};
package/Icon.svelte.d.ts CHANGED
@@ -3,11 +3,11 @@ import type { IconifyIcon } from '@iconify/svelte';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  icon: IconifyIcon | undefined;
6
- hiddenLabel?: string;
7
- inline?: boolean;
8
- width?: string | number;
9
- height?: string | number;
10
- vAlign?: 'top' | 'middle' | 'bottom';
6
+ hiddenLabel?: string | undefined;
7
+ inline?: boolean | undefined;
8
+ width?: string | number | undefined;
9
+ height?: string | number | undefined;
10
+ vAlign?: "top" | "bottom" | "middle" | undefined;
11
11
  };
12
12
  events: {
13
13
  [evt: string]: CustomEvent<any>;
package/Input.svelte.d.ts CHANGED
@@ -2,11 +2,11 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import { type HTMLActionEntry } from '@txstate-mws/svelte-components';
3
3
  declare const __propDef: {
4
4
  props: {
5
- class?: string;
5
+ class?: string | undefined;
6
6
  name: string;
7
7
  value: string;
8
- type?: string;
9
- allowlastpass?: boolean;
8
+ type?: string | undefined;
9
+ allowlastpass?: boolean | undefined;
10
10
  maxlength?: number | undefined;
11
11
  min?: string | Date | {
12
12
  toJSDate: () => Date;
@@ -16,16 +16,16 @@ declare const __propDef: {
16
16
  } | number | undefined;
17
17
  step?: number | undefined;
18
18
  id?: string | undefined;
19
- disabled?: boolean;
19
+ disabled?: boolean | undefined;
20
20
  messagesid?: string | undefined;
21
21
  helptextid?: string | undefined;
22
- valid?: boolean;
23
- invalid?: boolean;
22
+ valid?: boolean | undefined;
23
+ invalid?: boolean | undefined;
24
24
  onChange: any;
25
25
  onBlur: any;
26
26
  onSelect?: any;
27
- use?: HTMLActionEntry[];
28
- inputelement?: HTMLInputElement;
27
+ use?: HTMLActionEntry<any>[] | undefined;
28
+ inputelement?: HTMLInputElement | undefined;
29
29
  };
30
30
  events: {
31
31
  [evt: string]: CustomEvent<any>;
package/Listbox.svelte CHANGED
@@ -24,7 +24,7 @@ async function reactToItems(..._) {
24
24
  lastactive = items.length - [...items].reverse().findIndex(itm => !itm.disabled) - 1;
25
25
  hilited = undefined;
26
26
  if (listboxElement)
27
- listboxElement.setAttribute('aria-activedescendant', null);
27
+ listboxElement.removeAttribute('aria-activedescendant');
28
28
  }
29
29
  $: reactToItems(items);
30
30
  const selectItem = (item, index) => (e) => {
@@ -85,7 +85,7 @@ function onkeydown(e) {
85
85
  if (items.length < 1)
86
86
  return;
87
87
  if (multiselect) {
88
- if (typeof hilited !== 'undefined') {
88
+ if (hilited != null) {
89
89
  if (selectedSet.has(items[hilited].value)) {
90
90
  // remove it from selected
91
91
  selected = selected.filter(s => s.value !== items[hilited].value);
@@ -2,16 +2,16 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import { type PopupMenuItem } from '@txstate-mws/svelte-components';
3
3
  declare const __propDef: {
4
4
  props: {
5
- items?: PopupMenuItem[];
5
+ items?: PopupMenuItem[] | undefined;
6
6
  label: string;
7
- multiselect?: boolean;
7
+ multiselect?: boolean | undefined;
8
8
  selected?: {
9
9
  value: string;
10
- label?: string;
11
- }[];
10
+ label?: string | undefined;
11
+ }[] | undefined;
12
12
  descid?: string | undefined;
13
- valid?: boolean;
14
- invalid?: boolean;
13
+ valid?: boolean | undefined;
14
+ invalid?: boolean | undefined;
15
15
  };
16
16
  events: {
17
17
  change: CustomEvent<any>;
package/Radio.svelte.d.ts CHANGED
@@ -4,14 +4,14 @@ declare const __propDef: {
4
4
  id?: string | undefined;
5
5
  name: string;
6
6
  value: string;
7
- selected?: boolean;
7
+ selected?: boolean | undefined;
8
8
  onChange?: any;
9
9
  onBlur?: any;
10
10
  messagesid?: string | undefined;
11
11
  helptextid?: string | undefined;
12
- disabled?: boolean;
13
- valid?: boolean;
14
- invalid?: boolean;
12
+ disabled?: boolean | undefined;
13
+ valid?: boolean | undefined;
14
+ invalid?: boolean | undefined;
15
15
  };
16
16
  events: {
17
17
  [evt: string]: CustomEvent<any>;
@@ -2,23 +2,23 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import type { Feedback } from '@txstate-mws/svelte-forms';
3
3
  declare const __propDef: {
4
4
  props: {
5
- class?: string;
5
+ class?: string | undefined;
6
6
  id?: string | undefined;
7
- name?: string;
7
+ name?: string | undefined;
8
8
  choices: {
9
- label?: string;
9
+ label?: string | undefined;
10
10
  value: string;
11
- disabled?: boolean;
11
+ disabled?: boolean | undefined;
12
12
  }[];
13
- horizontal?: boolean;
13
+ horizontal?: boolean | undefined;
14
14
  label: string;
15
- required?: boolean;
15
+ required?: boolean | undefined;
16
16
  helptext?: string | undefined;
17
- messages?: Feedback[];
18
- iptValue?: string;
19
- valid?: boolean;
20
- invalid?: boolean;
21
- onBlur?: (() => void | Promise<void>);
17
+ messages?: Feedback[] | undefined;
18
+ iptValue?: string | undefined;
19
+ valid?: boolean | undefined;
20
+ invalid?: boolean | undefined;
21
+ onBlur?: (() => void | Promise<void>) | undefined;
22
22
  };
23
23
  events: {
24
24
  change: CustomEvent<any>;
package/TabStore.d.ts CHANGED
@@ -9,7 +9,7 @@ export interface TabDef {
9
9
  required?: boolean;
10
10
  }
11
11
  interface ITabStore extends ElementSize {
12
- current?: number;
12
+ current: number;
13
13
  prevTitle?: string;
14
14
  nextTitle?: string;
15
15
  requireNext: boolean;
@@ -24,10 +24,10 @@ export declare class TabStore extends Store<ITabStore> {
24
24
  set(v: ITabStore): void;
25
25
  currentIdx(): import("@txstate-mws/svelte-store").DerivedStore<number, ITabStore>;
26
26
  currentName(): import("@txstate-mws/svelte-store").DerivedStore<string, ITabStore>;
27
- currentTitle(): import("@txstate-mws/svelte-store").DerivedStore<string, ITabStore>;
27
+ currentTitle(): import("@txstate-mws/svelte-store").DerivedStore<string | undefined, ITabStore>;
28
28
  currentTabId(): import("@txstate-mws/svelte-store").DerivedStore<string, ITabStore>;
29
29
  currentPanelId(): import("@txstate-mws/svelte-store").DerivedStore<string, ITabStore>;
30
- accordion(): import("@txstate-mws/svelte-store").DerivedStore<boolean, ITabStore>;
30
+ accordion(): import("@txstate-mws/svelte-store").DerivedStore<boolean | 0 | undefined, ITabStore>;
31
31
  left(): void;
32
32
  right(): void;
33
33
  home(): void;
package/TabStore.js CHANGED
@@ -2,22 +2,23 @@ import { Store, derivedStore } from '@txstate-mws/svelte-store';
2
2
  import { findIndex, randomid } from 'txstate-utils';
3
3
  export const TAB_CONTEXT = {};
4
4
  function checkNext(v) {
5
- v.visited = { ...v.visited, [v.tabs[v.current].title]: true };
5
+ v.visited = { ...v.visited, [v.tabs[v.current].name]: true };
6
6
  v.prevTitle = v.current > 0 ? v.tabs[v.current - 1].title : undefined;
7
7
  v.nextTitle = v.tabs.length - 1 > v.current ? v.tabs[v.current + 1].title : undefined;
8
- v.requireNext = v.tabs.some((t, i) => t.required && !v.visited[t.title]);
8
+ v.requireNext = v.tabs.some((t, i) => t.required && !v.visited[t.name]);
9
9
  return v;
10
10
  }
11
11
  export class TabStore extends Store {
12
12
  initialTab;
13
13
  constructor(tabs, initialTab) {
14
- const current = findIndex(tabs, t => t.title === initialTab, 0);
14
+ const current = findIndex(tabs, t => t.title === initialTab, 0) ?? 0;
15
15
  super(checkNext({
16
16
  tabs,
17
17
  current,
18
18
  visited: {},
19
- tabids: tabs.reduce((acc, curr) => ({ ...acc, [curr.title]: randomid() }), {}),
20
- panelids: tabs.reduce((acc, curr) => ({ ...acc, [curr.title]: randomid() }), {}),
19
+ requireNext: false,
20
+ tabids: tabs.reduce((acc, curr) => ({ ...acc, [curr.name]: randomid() }), {}),
21
+ panelids: tabs.reduce((acc, curr) => ({ ...acc, [curr.name]: randomid() }), {}),
21
22
  clientWidth: 1024
22
23
  }));
23
24
  this.initialTab = initialTab;
@@ -48,7 +49,7 @@ export class TabStore extends Store {
48
49
  return derivedStore(this, v => v.panelids[v.tabs[v.current].name]);
49
50
  }
50
51
  accordion() {
51
- return derivedStore(this, v => v.clientWidth < 500);
52
+ return derivedStore(this, v => v.clientWidth && v.clientWidth < 500);
52
53
  }
53
54
  left() {
54
55
  this.update(v => ({ ...v, current: Math.max(0, v.current - 1) }));
package/Tabs.svelte CHANGED
@@ -23,11 +23,11 @@ $: dialogContext.hasRequired = $store.requireNext;
23
23
  $: dialogContext.change($store);
24
24
  if (!disableDialogControl)
25
25
  setContext(DIALOG_TABS_CONTEXT, { change: () => { } }); // reset context so that any sub-tabs do NOT control the Dialog component
26
- const currentTitle = store.currentTitle();
26
+ const currentName = store.currentName();
27
27
  const currentIdx = store.currentIdx();
28
28
  const accordion = store.accordion();
29
- $: cols = Math.min(Math.floor($store.clientWidth / 90), $store.tabs.length);
30
- $: scalefactor = Math.min(roundTo($store.clientWidth / (cols * 130), 4), 1);
29
+ $: cols = Math.min(Math.floor(($store.clientWidth ?? 1024) / 90), $store.tabs.length);
30
+ $: scalefactor = Math.min(roundTo(($store.clientWidth ?? 1024) / (cols * 130), 4), 1);
31
31
  $: wrapping = cols !== $store.tabs.length;
32
32
  $: dialogContext.hasTabs = !$accordion;
33
33
  function onClick(idx) {
@@ -80,17 +80,17 @@ async function reactToCurrent(..._) {
80
80
  activeelement.style.transform = `translateX(${left}px)`;
81
81
  activeelement.style.width = `${width}px`;
82
82
  }
83
- $: active = $currentTitle;
83
+ $: active = $currentName;
84
84
  $: reactToCurrent($activeStore);
85
85
  onMount(reactToCurrent);
86
86
  </script>
87
87
 
88
88
  {#if !$accordion}
89
89
  <ul use:resize={{ store }} class="tabs-buttons" role="tablist">
90
- {#each $store.tabs as tab, idx (tab.title)}
90
+ {#each $store.tabs as tab, idx (tab.name)}
91
91
  {@const active = isActive(idx, $store.current)}
92
92
  {@const left = idx % cols === 0}
93
- <li bind:this={tabelements[idx]} use:offset={{ store: active ? activeStore : undefined }} id={$store.tabids[tab.title]} class="tabs-tab" class:left class:wrapping class:active style:font-size="{scalefactor}em" style:line-height={1.2 / scalefactor} aria-selected={active} aria-controls={$store.panelids[tab.title]} role="tab" tabindex={active ? 0 : -1} on:click={onClick(idx)} on:keydown={onKeyDown(idx)}><span><Icon icon={tab.icon} inline />{tab.title}</span></li>
93
+ <li bind:this={tabelements[idx]} use:offset={{ store: active ? activeStore : undefined }} id={$store.tabids[tab.name]} class="tabs-tab" class:left class:wrapping class:active style:font-size="{scalefactor}em" style:line-height={1.2 / scalefactor} aria-selected={active} aria-controls={$store.panelids[tab.name]} role="tab" tabindex={active ? 0 : -1} on:click={onClick(idx)} on:keydown={onKeyDown(idx)}><span><Icon icon={tab.icon} inline />{tab.title}</span></li>
94
94
  {/each}
95
95
  </ul>
96
96
  <div bind:this={activeelement} class="tabs-active"></div>
package/Tabs.svelte.d.ts CHANGED
@@ -4,8 +4,8 @@ declare const __propDef: {
4
4
  props: {
5
5
  tabs: TabDef[];
6
6
  active?: string | undefined;
7
- store?: TabStore;
8
- disableDialogControl?: boolean;
7
+ store?: TabStore | undefined;
8
+ disableDialogControl?: boolean | undefined;
9
9
  };
10
10
  events: {
11
11
  [evt: string]: CustomEvent<any>;
@@ -51,7 +51,7 @@ async function openRecursive(pathSplit, depth) {
51
51
  curr = curr?.children?.find(c => c.name === pathSplit[i + 1]);
52
52
  }
53
53
  if (!curr)
54
- return;
54
+ throw new Error('tried to open a path that does not exist');
55
55
  await treeStore.open(curr, false);
56
56
  if (depth + 1 >= pathSplit.length)
57
57
  return curr;
@@ -79,7 +79,8 @@ async function selectPreview(..._) {
79
79
  }
80
80
  onMount(async () => {
81
81
  await store.init({ images, pages, assets, folders, activeSources, initialSource, initialPath, passthruFilters, filter });
82
- tabStore?.activateName($source.name);
82
+ if ($source?.name)
83
+ tabStore?.activateName($source.name);
83
84
  await selectPreview();
84
85
  });
85
86
  </script>
@@ -103,7 +104,7 @@ onMount(async () => {
103
104
  <Thumbnail item={$preview} />
104
105
  <Details item={$preview}>
105
106
  {#if $preview.type === 'folder'}
106
- <li>{$selected.children?.length || 0} sub-items</li>
107
+ <li>{$selected?.children?.length ?? 0} sub-items</li>
107
108
  {/if}
108
109
  </Details>
109
110
  {/if}
@@ -3,18 +3,18 @@ import { type AnyItem } from './ChooserAPI';
3
3
  import { ChooserStore } from './ChooserStore';
4
4
  declare class __sveltets_Render<F> {
5
5
  props(): {
6
- label?: string;
7
- images?: boolean;
8
- pages?: boolean;
9
- assets?: boolean;
10
- folders?: boolean;
11
- required?: boolean;
12
- initialSource?: string;
13
- initialPath?: string;
14
- activeSources?: string[];
15
- passthruFilters?: F;
16
- filter?: (item: AnyItem) => boolean | Promise<boolean>;
17
- store?: ChooserStore<F>;
6
+ label?: string | undefined;
7
+ images?: boolean | undefined;
8
+ pages?: boolean | undefined;
9
+ assets?: boolean | undefined;
10
+ folders?: boolean | undefined;
11
+ required?: boolean | undefined;
12
+ initialSource?: string | undefined;
13
+ initialPath?: string | undefined;
14
+ activeSources?: string[] | undefined;
15
+ passthruFilters?: F | undefined;
16
+ filter?: ((item: AnyItem) => boolean | Promise<boolean>) | undefined;
17
+ store?: ChooserStore<F> | undefined;
18
18
  };
19
19
  events(): {
20
20
  escape: CustomEvent<any>;
@@ -6,7 +6,7 @@ export interface UISource extends Source {
6
6
  }
7
7
  export interface RawURL {
8
8
  type: 'raw';
9
- id: string;
9
+ id: string | undefined;
10
10
  url: string;
11
11
  }
12
12
  export type AnyUIItem = TypedTreeItem<Page | Asset | Folder>;
@@ -43,9 +43,9 @@ export declare class ChooserStore<F = any> extends Store<IAssetStore> {
43
43
  constructor(client: Client);
44
44
  setOptions(options: ChooserStoreOptions<F>): void;
45
45
  sources: import("@txstate-mws/svelte-store").DerivedStore<UISource[], IAssetStore>;
46
- source: import("@txstate-mws/svelte-store").DerivedStore<UISource, IAssetStore>;
47
- preview: import("@txstate-mws/svelte-store").DerivedStore<AnyItem, IAssetStore>;
48
- getSource(state?: IAssetStore): UISource;
46
+ source: import("@txstate-mws/svelte-store").DerivedStore<UISource | undefined, IAssetStore>;
47
+ preview: import("@txstate-mws/svelte-store").DerivedStore<AnyItem | undefined, IAssetStore>;
48
+ getSource(state?: IAssetStore): UISource | undefined;
49
49
  getSourceIndex(name: string, state?: IAssetStore, type?: ChooserType): number;
50
50
  init(options: ChooserStoreOptions<F>): Promise<void>;
51
51
  setPreview(item?: AnyItem): void;
@@ -50,7 +50,7 @@ export class ChooserStore extends Store {
50
50
  this.options.assets ? this.client.getSources('asset') : []
51
51
  ]);
52
52
  this.update(v => {
53
- const sources = { page: pageSources.filter(s => !this.options.activeSources || this.options.activeSources.has(s)) ?? [], asset: assetSources.filter(s => !this.options.activeSources || this.options.activeSources.has(s)) ?? [] };
53
+ const sources = { page: pageSources.filter(s => !this.options.activeSources || this.options.activeSources.has(s.name)) ?? [], asset: assetSources.filter(s => !this.options.activeSources || this.options.activeSources.has(s.name)) ?? [] };
54
54
  return { ...v, sources };
55
55
  });
56
56
  this.setSource(this.value.preview?.source ?? this.options.initialSource, true);
@@ -74,9 +74,9 @@ export class ChooserStore extends Store {
74
74
  name ??= [...(v.sources?.page ?? []), ...(v.sources?.asset ?? [])].filter(s => this.options.activeSources ? this.options.activeSources.has(s.name) : true)[0].name;
75
75
  const pageSource = v.sources?.page.findIndex(s => s.name === name);
76
76
  const assetSource = v.sources?.asset.findIndex(s => s.name === name);
77
- if (pageSource >= 0)
77
+ if ((pageSource ?? -1) >= 0)
78
78
  return { ...v, activetype: 'page', activesource: pageSource };
79
- else if (assetSource >= 0)
79
+ else if ((assetSource ?? -1) >= 0)
80
80
  return { ...v, activetype: 'asset', activesource: assetSource };
81
81
  return v;
82
82
  });
@@ -3,13 +3,13 @@ import type { ColorPickerOption } from './colorpicker';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  id?: string | undefined;
6
- class?: string;
6
+ class?: string | undefined;
7
7
  path: string;
8
8
  options: ColorPickerOption[];
9
- addAllOption?: boolean;
10
- label?: string;
11
- required?: boolean;
12
- notNull?: boolean;
9
+ addAllOption?: boolean | undefined;
10
+ label?: string | undefined;
11
+ required?: boolean | undefined;
12
+ notNull?: boolean | undefined;
13
13
  defaultValue?: any;
14
14
  conditional?: boolean | undefined;
15
15
  helptext?: string | undefined;