@soleil-se/config-svelte 1.28.2 → 1.29.1

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 (37) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/components/Checkbox/Component.svelte +2 -2
  3. package/components/CheckboxGroup/Component.svelte +2 -2
  4. package/components/CustomList/Component.svelte +8 -4
  5. package/components/CustomList/README.md +19 -2
  6. package/components/CustomSelector/Component.svelte +1 -1
  7. package/components/DropdownSelector/Component.svelte +1 -1
  8. package/components/ImageSelector/Component.svelte +2 -2
  9. package/components/InputField/Component.svelte +1 -1
  10. package/components/LinkSelector/Component.svelte +1 -1
  11. package/components/ListSelector/Component.svelte +2 -2
  12. package/components/Modal/Component.svelte +1 -1
  13. package/components/NodeSelector/Component.svelte +2 -2
  14. package/components/NumberSpinner/Component.svelte +5 -5
  15. package/components/RadioGroup/Component.svelte +3 -3
  16. package/components/RepositoryNodeSelector/Component.svelte +9 -9
  17. package/components/SelectField/Component.svelte +3 -3
  18. package/components/TagSelector/Component.svelte +2 -2
  19. package/components/TextList/Component.svelte +1 -1
  20. package/package.json +2 -2
  21. package/types/components/Checkbox/Component.svelte.d.ts +1 -1
  22. package/types/components/CheckboxGroup/Component.svelte.d.ts +2 -2
  23. package/types/components/CustomList/Component.svelte.d.ts +4 -2
  24. package/types/components/CustomSelector/Component.svelte.d.ts +1 -1
  25. package/types/components/DropdownSelector/Component.svelte.d.ts +1 -1
  26. package/types/components/ImageSelector/Component.svelte.d.ts +3 -3
  27. package/types/components/InputField/Component.svelte.d.ts +1 -1
  28. package/types/components/LinkSelector/Component.svelte.d.ts +1 -1
  29. package/types/components/ListSelector/Component.svelte.d.ts +2 -2
  30. package/types/components/Modal/Component.svelte.d.ts +1 -1
  31. package/types/components/NodeSelector/Component.svelte.d.ts +2 -2
  32. package/types/components/NumberSpinner/Component.svelte.d.ts +5 -5
  33. package/types/components/RadioGroup/Component.svelte.d.ts +2 -2
  34. package/types/components/RepositoryNodeSelector/Component.svelte.d.ts +14 -14
  35. package/types/components/SelectField/Component.svelte.d.ts +4 -4
  36. package/types/components/TagSelector/Component.svelte.d.ts +2 -2
  37. package/types/components/TextList/Component.svelte.d.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,14 @@ All notable changes to this project will be documented in this file.
8
8
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
9
9
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
10
10
 
11
+ ## [1.29.1] - 2025-08-22
12
+
13
+ - Update type definitions.
14
+
15
+ ## [1.29.0] - 2025-07-31
16
+
17
+ - Add function to add items to `CustomList`.
18
+
11
19
  ## [1.28.2] - 2025-06-05
12
20
 
13
21
  - Swap places of `description` prop and slot for Svelte 5 compatibility.
@@ -10,7 +10,7 @@
10
10
  /** @type {string} */
11
11
  export let label;
12
12
  /** @type {string} */
13
- export let name;
13
+ export let name = undefined;
14
14
  /** @type {boolean} */
15
15
  export let disabled = false;
16
16
  /** @type {boolean} */
@@ -19,7 +19,7 @@
19
19
  export let show = true;
20
20
  /** @type {boolean} */
21
21
  export let value;
22
- value = name ? values[name] ?? value ?? checked : value;
22
+ value = name ? (values[name] ?? value ?? checked) : value;
23
23
 
24
24
  let className = '';
25
25
  export { className as class };
@@ -8,7 +8,7 @@
8
8
  /** @type {string} */
9
9
  export let id = generateId();
10
10
  /** @type {string} */
11
- export let name;
11
+ export let name = undefined;
12
12
  /** @type {import('./types.d.ts').Option[]} */
13
13
  export let options;
14
14
  /** @type {string} */
@@ -16,7 +16,7 @@
16
16
  /** @type {string} */
17
17
  export let label;
18
18
  /** @type {string} */
19
- export let description;
19
+ export let description = undefined;
20
20
  /** @type {boolean} */
21
21
  export let legendVisuallyHidden = false;
22
22
  /** @type {boolean} */
@@ -16,7 +16,7 @@
16
16
  /** @type {string} */
17
17
  export let label;
18
18
  /** @type {string} */
19
- export let description;
19
+ export let description = undefined;
20
20
  /** @type {boolean} */
21
21
  export let required = false;
22
22
  /** @type {string} */
@@ -61,13 +61,17 @@
61
61
  dispatch('change', value);
62
62
  }
63
63
 
64
- function onAddSave({ detail }) {
65
- items = items.concat(detail);
66
- modals[detail.id] = false;
64
+ export function addItem(item) {
65
+ items = items.concat(item);
66
+ modals[item.id] = false;
67
67
  onChange();
68
68
  updateItems();
69
69
  }
70
70
 
71
+ function onAddSave({ detail }) {
72
+ addItem(detail);
73
+ }
74
+
71
75
  function onEdit({ detail }) {
72
76
  modals[detail] = true;
73
77
  }
@@ -46,9 +46,26 @@ This id needs to be prefixed to the `name` attribute.
46
46
 
47
47
  ### Advanced
48
48
 
49
- This component is currently **not** supported in advanced configs out of the box.
49
+ This component is currently **not** fully supported in advanced configs out of the box.
50
50
  If you need to use it in an advanced config you can manually handle the state to normalize
51
- and flatten it for saving to the server.
51
+ and flatten it for saving to the server. If you use bind:value threat it as a readonly since any changes will be lost. You can use the exposed function addItems({id:String,name:String}) to add values
52
+
53
+ ```svelte
54
+ <script>
55
+ import { Panel, CustomList, InputField, NodeSelector } from '@soleil-se/config-svelte';
56
+ let listInstance
57
+ function addToList(){
58
+ listInstance.addItem({ id: 'id', name: 'name' });
59
+ }
60
+ </script>
61
+
62
+ <Panel>
63
+ <CustomList name="customList" label="Custom list" let:id bind:this={listInstance}>
64
+ <InputField name="{id}_name" label="Name" />
65
+ <NodeSelector name="{id}_page" label="Page" />
66
+ </CustomList>
67
+ </Panel>
68
+ ```
52
69
 
53
70
  ## AppData
54
71
 
@@ -11,7 +11,7 @@
11
11
  /** @type {string} */
12
12
  export let label;
13
13
  /** @type {string} */
14
- export let description;
14
+ export let description = undefined;
15
15
  /** @type {string} */
16
16
  export let name = undefined;
17
17
  /** @type {string} */
@@ -10,7 +10,7 @@
10
10
  /** @type {string} */
11
11
  export let label;
12
12
  /** @type {string} */
13
- export let description;
13
+ export let description = undefined;
14
14
  /** @type {string} */
15
15
  export let name = undefined;
16
16
  /** @type {import('./types.d.ts').Type} */
@@ -18,7 +18,7 @@
18
18
  /** @type {boolean} */
19
19
  export let required = false;
20
20
  /** @type {string} */
21
- export let node;
21
+ export let node = undefined;
22
22
  /** @type {string} */
23
23
  export let alt;
24
24
  alt = name ? values[`${name}Alt`] ?? alt : alt;
@@ -27,7 +27,7 @@
27
27
  /** @type {boolean} */
28
28
  export let decorative = false;
29
29
  /** @type {boolean} */
30
- export let show;
30
+ export let show = true;
31
31
  $: decorative = hideDecorative ? false : decorative;
32
32
 
33
33
  let imageArchiveAlt = '';
@@ -11,7 +11,7 @@
11
11
  /** @type {string} */
12
12
  export let label;
13
13
  /** @type {string} */
14
- export let description;
14
+ export let description = undefined;
15
15
  /** @type {string} */
16
16
  export let type = 'text';
17
17
  /** @type {string} */
@@ -15,7 +15,7 @@
15
15
  /** @type {string} */
16
16
  export let heading = i18n('heading');
17
17
  /** @type {string} */
18
- export let name;
18
+ export let name = undefined;
19
19
  /** @type {boolean} */
20
20
  export let disabled = false;
21
21
  /** @type {boolean} */
@@ -8,11 +8,11 @@
8
8
  /** @type {string} */
9
9
  export let id = generateId();
10
10
  /** @type {string} */
11
- export let name;
11
+ export let name = undefined;
12
12
  /** @type {string} */
13
13
  export let label;
14
14
  /** @type {string} */
15
- export let description;
15
+ export let description = undefined;
16
16
  /** @type {import('./types.d.ts').Type} */
17
17
  export let type = 'page';
18
18
  /** @type {boolean} */
@@ -14,7 +14,7 @@
14
14
  /** @type {boolean} */
15
15
  export let open = false;
16
16
  /** @type {HTMLElement} */
17
- export let element;
17
+ export let element = undefined;
18
18
 
19
19
  const dispatch = createEventDispatcher();
20
20
 
@@ -10,11 +10,11 @@
10
10
  /** @type {string} */
11
11
  export let label;
12
12
  /** @type {string} */
13
- export let description;
13
+ export let description = undefined;
14
14
  /** @type {import('./types.d.ts').Type} */
15
15
  export let type = 'page';
16
16
  /** @type {string} */
17
- export let name;
17
+ export let name = undefined;
18
18
  /** @type {boolean} */
19
19
  export let required = false;
20
20
  /** @type {boolean} */
@@ -8,15 +8,15 @@
8
8
  /** @type {string} */
9
9
  export let id = generateId();
10
10
  /** @type {string} */
11
- export let name;
11
+ export let name = undefined;
12
12
  /** @type {string} */
13
13
  export let label;
14
14
  /** @type {string} */
15
- export let description;
15
+ export let description = undefined;
16
16
  /** @type {number} */
17
- export let min;
17
+ export let min = undefined;
18
18
  /** @type {number} */
19
- export let max;
19
+ export let max = undefined;
20
20
  /** @type {number} */
21
21
  export let step = 1;
22
22
  /** @type {boolean} */
@@ -26,7 +26,7 @@
26
26
  /** @type {boolean} */
27
27
  export let show = true;
28
28
  /** @type {string} */
29
- export let suffix;
29
+ export let suffix = undefined;
30
30
  /** @type {number} */
31
31
  export let decimals = 0;
32
32
  /** @type {number} */
@@ -8,7 +8,7 @@
8
8
  /** @type {string} */
9
9
  export let id = generateId();
10
10
  /** @type {string} */
11
- export let name;
11
+ export let name = undefined;
12
12
  /** @type {import('./types.d.ts').Option[]} */
13
13
  export let options = [];
14
14
  /** @type {string} */
@@ -16,7 +16,7 @@
16
16
  /** @type {string} */
17
17
  export let label;
18
18
  /** @type {string} */
19
- export let description;
19
+ export let description = undefined;
20
20
  /** @type {boolean} */
21
21
  export let legendVisuallyHidden = false;
22
22
  /** @type {boolean} */
@@ -25,7 +25,7 @@
25
25
  export let show = true;
26
26
  /** @type {string} */
27
27
  export let value = options[0]?.value ?? options[0] ?? '';
28
- value = name ? values[name] ?? value : value;
28
+ value = name ? (values[name] ?? value) : value;
29
29
 
30
30
  $: legend = legend || label;
31
31
 
@@ -6,25 +6,25 @@
6
6
  import i18n from './i18n';
7
7
 
8
8
  /** @type {string} */
9
- export let id;
9
+ export let id = undefined;
10
10
  /** @type {string} */
11
11
  export let label;
12
12
  /** @type {string} */
13
- export let description;
13
+ export let description = undefined;
14
14
  /** @type {string} */
15
- export let name;
15
+ export let name = undefined;
16
16
  /** @type {boolean} */
17
- export let searchable;
17
+ export let searchable = undefined;
18
18
  /** @type {boolean} */
19
- export let required;
19
+ export let required = false;
20
20
  /** @type {boolean} */
21
- export let disabled;
21
+ export let disabled = false;
22
22
  /** @type {boolean} */
23
- export let multiple;
23
+ export let multiple = false;
24
24
  /** @type {boolean} */
25
- export let show;
25
+ export let show = true;
26
26
  /** @type {string} */
27
- export let value;
27
+ export let value = '';
28
28
  /** @type {import('./types.d.ts').Type} */
29
29
  export let type;
30
30
 
@@ -10,9 +10,9 @@
10
10
  /** @type {string} */
11
11
  export let label;
12
12
  /** @type {string} */
13
- export let description;
13
+ export let description = undefined;
14
14
  /** @type {string} */
15
- export let name;
15
+ export let name = undefined;
16
16
  /** @type {string} */
17
17
  export let required = false;
18
18
  /** @type {string} */
@@ -22,7 +22,7 @@
22
22
  /** @type {import('./types.d.ts').Option[]} */
23
23
  export let options = [];
24
24
 
25
- export let value;
25
+ export let value = '';
26
26
  value = name ? (values[name] ?? value) : value;
27
27
  function onChange() {
28
28
  dispatch('change', value);
@@ -10,9 +10,9 @@
10
10
  /** @type {string} */
11
11
  export let label;
12
12
  /** @type {string} */
13
- export let description;
13
+ export let description = undefined;
14
14
  /** @type {string} */
15
- export let name;
15
+ export let name = undefined;
16
16
  /** @type {boolean} */
17
17
  export let required = false;
18
18
  /** @type {boolean} */
@@ -16,7 +16,7 @@
16
16
  /** @type {string} */
17
17
  export let label;
18
18
  /** @type {string} */
19
- export let description;
19
+ export let description = undefined;
20
20
  /** @type {boolean} */
21
21
  export let required = false;
22
22
  /** @type {string} */
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "svelte"
10
10
  ],
11
11
  "homepage": "https://docs.soleil.se/packages/config-svelte",
12
- "version": "1.28.2",
12
+ "version": "1.29.1",
13
13
  "main": "./index.js",
14
14
  "module": "./index.js",
15
15
  "svelte": "./index.js",
@@ -59,5 +59,5 @@
59
59
  "publishConfig": {
60
60
  "access": "public"
61
61
  },
62
- "gitHead": "790b70d2620093721d315dadcd97709cefef83eb"
62
+ "gitHead": "3c39b79716b0b70da776fb3e1f6fde01a85fc220"
63
63
  }
@@ -14,7 +14,7 @@ export type CheckboxProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- name: string;
17
+ name?: string;
18
18
 
19
19
  /**
20
20
  * @default false
@@ -9,7 +9,7 @@ export type CheckboxGroupProps = {
9
9
  /**
10
10
  * @default undefined
11
11
  */
12
- name: string;
12
+ name?: string;
13
13
 
14
14
  /**
15
15
  * @default undefined
@@ -29,7 +29,7 @@ export type CheckboxGroupProps = {
29
29
  /**
30
30
  * @default undefined
31
31
  */
32
- description: string;
32
+ description?: string;
33
33
 
34
34
  /**
35
35
  * @default false
@@ -9,7 +9,7 @@ export type CustomListProps = {
9
9
  /**
10
10
  * @default undefined
11
11
  */
12
- description: string;
12
+ description?: string;
13
13
 
14
14
  /**
15
15
  * @default false
@@ -52,4 +52,6 @@ export default class CustomList extends SvelteComponentTyped<
52
52
  CustomListProps,
53
53
  { input: CustomEvent<any>; change: CustomEvent<any> },
54
54
  { default: { id: any; triggerUpdate: any }; description: {}; label: {} }
55
- > {}
55
+ > {
56
+ addItem: () => any;
57
+ }
@@ -14,7 +14,7 @@ export type CustomSelectorProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- description: string;
17
+ description?: string;
18
18
 
19
19
  /**
20
20
  * @default undefined
@@ -14,7 +14,7 @@ export type DropdownSelectorProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- description: string;
17
+ description?: string;
18
18
 
19
19
  /**
20
20
  * @default undefined
@@ -19,7 +19,7 @@ export type ImageSelectorProps = {
19
19
  /**
20
20
  * @default undefined
21
21
  */
22
- node: string;
22
+ node?: string;
23
23
 
24
24
  /**
25
25
  * @default undefined
@@ -37,9 +37,9 @@ export type ImageSelectorProps = {
37
37
  decorative?: boolean;
38
38
 
39
39
  /**
40
- * @default undefined
40
+ * @default true
41
41
  */
42
- show: boolean;
42
+ show?: boolean;
43
43
  };
44
44
 
45
45
  /**
@@ -17,7 +17,7 @@ type $Props = {
17
17
  /**
18
18
  * @default undefined
19
19
  */
20
- description: string;
20
+ description?: string;
21
21
 
22
22
  /**
23
23
  * @default 'text'
@@ -9,7 +9,7 @@ export type LinkSelectorProps = {
9
9
  /**
10
10
  * @default undefined
11
11
  */
12
- name: string;
12
+ name?: string;
13
13
 
14
14
  /**
15
15
  * @default false
@@ -9,7 +9,7 @@ export type ListSelectorProps = {
9
9
  /**
10
10
  * @default undefined
11
11
  */
12
- name: string;
12
+ name?: string;
13
13
 
14
14
  /**
15
15
  * @default undefined
@@ -19,7 +19,7 @@ export type ListSelectorProps = {
19
19
  /**
20
20
  * @default undefined
21
21
  */
22
- description: string;
22
+ description?: string;
23
23
 
24
24
  /**
25
25
  * @default 'page'
@@ -14,7 +14,7 @@ export type ModalProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- element: null | HTMLDivElement;
17
+ element?: null | HTMLDivElement;
18
18
  };
19
19
 
20
20
  export default class Modal extends SvelteComponentTyped<
@@ -14,7 +14,7 @@ export type NodeSelectorProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- description: string;
17
+ description?: string;
18
18
 
19
19
  /**
20
20
  * @default 'page'
@@ -24,7 +24,7 @@ export type NodeSelectorProps = {
24
24
  /**
25
25
  * @default undefined
26
26
  */
27
- name: string;
27
+ name?: string;
28
28
 
29
29
  /**
30
30
  * @default false
@@ -9,7 +9,7 @@ export type NumberSpinnerProps = {
9
9
  /**
10
10
  * @default undefined
11
11
  */
12
- name: string;
12
+ name?: string;
13
13
 
14
14
  /**
15
15
  * @default undefined
@@ -19,17 +19,17 @@ export type NumberSpinnerProps = {
19
19
  /**
20
20
  * @default undefined
21
21
  */
22
- description: string;
22
+ description?: string;
23
23
 
24
24
  /**
25
25
  * @default undefined
26
26
  */
27
- min: number;
27
+ min?: number;
28
28
 
29
29
  /**
30
30
  * @default undefined
31
31
  */
32
- max: number;
32
+ max?: number;
33
33
 
34
34
  /**
35
35
  * @default 1
@@ -54,7 +54,7 @@ export type NumberSpinnerProps = {
54
54
  /**
55
55
  * @default undefined
56
56
  */
57
- suffix: string;
57
+ suffix?: string;
58
58
 
59
59
  /**
60
60
  * @default 0
@@ -9,7 +9,7 @@ export type RadioGroupProps = {
9
9
  /**
10
10
  * @default undefined
11
11
  */
12
- name: string;
12
+ name?: string;
13
13
 
14
14
  /**
15
15
  * @default []
@@ -29,7 +29,7 @@ export type RadioGroupProps = {
29
29
  /**
30
30
  * @default undefined
31
31
  */
32
- description: string;
32
+ description?: string;
33
33
 
34
34
  /**
35
35
  * @default false
@@ -4,7 +4,7 @@ export type RepositoryNodeSelectorProps = {
4
4
  /**
5
5
  * @default undefined
6
6
  */
7
- id: string;
7
+ id?: string;
8
8
 
9
9
  /**
10
10
  * @default undefined
@@ -14,42 +14,42 @@ export type RepositoryNodeSelectorProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- description: string;
17
+ description?: string;
18
18
 
19
19
  /**
20
20
  * @default undefined
21
21
  */
22
- name: string;
22
+ name?: string;
23
23
 
24
24
  /**
25
25
  * @default undefined
26
26
  */
27
- searchable: boolean;
27
+ searchable?: boolean;
28
28
 
29
29
  /**
30
- * @default undefined
30
+ * @default false
31
31
  */
32
- required: boolean;
32
+ required?: boolean;
33
33
 
34
34
  /**
35
- * @default undefined
35
+ * @default false
36
36
  */
37
- disabled: boolean;
37
+ disabled?: boolean;
38
38
 
39
39
  /**
40
- * @default undefined
40
+ * @default false
41
41
  */
42
- multiple: boolean;
42
+ multiple?: boolean;
43
43
 
44
44
  /**
45
- * @default undefined
45
+ * @default true
46
46
  */
47
- show: boolean;
47
+ show?: boolean;
48
48
 
49
49
  /**
50
- * @default undefined
50
+ * @default ''
51
51
  */
52
- value: string;
52
+ value?: string;
53
53
 
54
54
  /**
55
55
  * @default undefined
@@ -14,12 +14,12 @@ export type SelectFieldProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- description: string;
17
+ description?: string;
18
18
 
19
19
  /**
20
20
  * @default undefined
21
21
  */
22
- name: string;
22
+ name?: string;
23
23
 
24
24
  /**
25
25
  * @default false
@@ -42,9 +42,9 @@ export type SelectFieldProps = {
42
42
  options?: import("./types.d.ts").Option[];
43
43
 
44
44
  /**
45
- * @default undefined
45
+ * @default ''
46
46
  */
47
- value: undefined;
47
+ value?: string;
48
48
  };
49
49
 
50
50
  /**
@@ -14,12 +14,12 @@ export type TagSelectorProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- description: string;
17
+ description?: string;
18
18
 
19
19
  /**
20
20
  * @default undefined
21
21
  */
22
- name: string;
22
+ name?: string;
23
23
 
24
24
  /**
25
25
  * @default false
@@ -14,7 +14,7 @@ export type TextListProps = {
14
14
  /**
15
15
  * @default undefined
16
16
  */
17
- description: string;
17
+ description?: string;
18
18
 
19
19
  /**
20
20
  * @default false