@sjsf/skeleton-theme 1.9.2 → 2.0.0-next.0

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 (89) hide show
  1. package/README.md +5 -4
  2. package/dist/components/button.svelte +19 -0
  3. package/dist/components/button.svelte.d.ts +8 -0
  4. package/dist/components/description.svelte +7 -0
  5. package/dist/components/description.svelte.d.ts +6 -0
  6. package/dist/components/errors-list.svelte +6 -6
  7. package/dist/components/errors-list.svelte.d.ts +4 -2
  8. package/dist/components/exports.d.ts +8 -0
  9. package/dist/components/exports.js +8 -0
  10. package/dist/components/form.svelte +17 -0
  11. package/dist/components/form.svelte.d.ts +8 -0
  12. package/dist/components/help.svelte +7 -0
  13. package/dist/components/help.svelte.d.ts +5 -0
  14. package/dist/components/{layout-component.svelte → layout.svelte} +15 -11
  15. package/dist/components/layout.svelte.d.ts +6 -0
  16. package/dist/components/submit-button.svelte +13 -0
  17. package/dist/components/submit-button.svelte.d.ts +6 -0
  18. package/dist/components/title.svelte +16 -0
  19. package/dist/components/title.svelte.d.ts +8 -0
  20. package/dist/definitions.d.ts +72 -0
  21. package/dist/definitions.js +9 -0
  22. package/dist/extra-widgets/date-picker-include.d.ts +1 -0
  23. package/dist/extra-widgets/date-picker-include.js +4 -0
  24. package/dist/extra-widgets/date-picker.svelte +12 -0
  25. package/dist/extra-widgets/date-picker.svelte.d.ts +4 -0
  26. package/dist/extra-widgets/multi-select-include.d.ts +1 -0
  27. package/dist/extra-widgets/multi-select-include.js +4 -0
  28. package/dist/extra-widgets/multi-select.svelte +34 -0
  29. package/dist/extra-widgets/multi-select.svelte.d.ts +4 -0
  30. package/dist/extra-widgets/radio-include.d.ts +1 -0
  31. package/dist/extra-widgets/radio-include.js +4 -0
  32. package/dist/{widgets/radio-widget.svelte → extra-widgets/radio.svelte} +9 -3
  33. package/dist/extra-widgets/radio.svelte.d.ts +4 -0
  34. package/dist/extra-widgets/range-include.d.ts +1 -0
  35. package/dist/extra-widgets/range-include.js +4 -0
  36. package/dist/extra-widgets/range.svelte +12 -0
  37. package/dist/extra-widgets/range.svelte.d.ts +4 -0
  38. package/dist/extra-widgets/textarea-include.d.ts +1 -0
  39. package/dist/extra-widgets/textarea-include.js +4 -0
  40. package/dist/extra-widgets/textarea.svelte +14 -0
  41. package/dist/extra-widgets/textarea.svelte.d.ts +4 -0
  42. package/dist/index.d.ts +107 -4
  43. package/dist/index.js +8 -6
  44. package/dist/preset.d.ts +5 -1
  45. package/dist/styles.css +1 -1
  46. package/dist/widgets/checkbox.svelte +16 -0
  47. package/dist/widgets/checkbox.svelte.d.ts +3 -0
  48. package/dist/widgets/{checkboxes-widget.svelte → checkboxes.svelte} +15 -3
  49. package/dist/widgets/checkboxes.svelte.d.ts +3 -0
  50. package/dist/widgets/exports.d.ts +6 -0
  51. package/dist/widgets/exports.js +6 -0
  52. package/dist/widgets/file.svelte +28 -0
  53. package/dist/widgets/file.svelte.d.ts +7 -0
  54. package/dist/widgets/number.svelte +17 -0
  55. package/dist/widgets/number.svelte.d.ts +3 -0
  56. package/dist/widgets/select.svelte +31 -0
  57. package/dist/widgets/select.svelte.d.ts +3 -0
  58. package/dist/widgets/text.svelte +12 -0
  59. package/dist/widgets/text.svelte.d.ts +3 -0
  60. package/package.json +37 -24
  61. package/dist/components/button-component.svelte +0 -19
  62. package/dist/components/button-component.svelte.d.ts +0 -3
  63. package/dist/components/description-component.svelte +0 -7
  64. package/dist/components/description-component.svelte.d.ts +0 -3
  65. package/dist/components/form-component.svelte +0 -9
  66. package/dist/components/form-component.svelte.d.ts +0 -3
  67. package/dist/components/help-component.svelte +0 -7
  68. package/dist/components/help-component.svelte.d.ts +0 -3
  69. package/dist/components/index.d.ts +0 -5
  70. package/dist/components/index.js +0 -17
  71. package/dist/components/layout-component.svelte.d.ts +0 -3
  72. package/dist/components/title-component.svelte +0 -16
  73. package/dist/components/title-component.svelte.d.ts +0 -3
  74. package/dist/widgets/checkbox-widget.svelte +0 -15
  75. package/dist/widgets/checkbox-widget.svelte.d.ts +0 -2
  76. package/dist/widgets/checkboxes-widget.svelte.d.ts +0 -2
  77. package/dist/widgets/file-widget.svelte +0 -21
  78. package/dist/widgets/file-widget.svelte.d.ts +0 -2
  79. package/dist/widgets/index.d.ts +0 -5
  80. package/dist/widgets/index.js +0 -20
  81. package/dist/widgets/number-widget.svelte +0 -14
  82. package/dist/widgets/number-widget.svelte.d.ts +0 -2
  83. package/dist/widgets/radio-widget.svelte.d.ts +0 -2
  84. package/dist/widgets/select-widget.svelte +0 -40
  85. package/dist/widgets/select-widget.svelte.d.ts +0 -2
  86. package/dist/widgets/text-widget.svelte +0 -12
  87. package/dist/widgets/text-widget.svelte.d.ts +0 -2
  88. package/dist/widgets/textarea-widget.svelte +0 -7
  89. package/dist/widgets/textarea-widget.svelte.d.ts +0 -2
@@ -0,0 +1,31 @@
1
+ <script lang="ts">
2
+ import { getFormContext, selectAttributes, type ComponentProps } from '@sjsf/form';
3
+ import { indexMapper, singleOption } from '@sjsf/form/options.svelte';
4
+
5
+ let { value = $bindable(), options, config, handlers }: ComponentProps['selectWidget'] = $props();
6
+
7
+ const mapped = $derived(
8
+ singleOption({
9
+ mapper: () => indexMapper(options),
10
+ value: () => value,
11
+ update: (v) => (value = v)
12
+ })
13
+ );
14
+
15
+ const ctx = getFormContext();
16
+
17
+ const attributes = $derived(
18
+ selectAttributes(ctx, config, handlers, config.uiOptions?.select)
19
+ );
20
+ </script>
21
+
22
+ <select class="select" bind:value={mapped.value} {...attributes}>
23
+ {#if config.schema.default === undefined}
24
+ <option value={-1}>{attributes.placeholder}</option>
25
+ {/if}
26
+ {#each options as option, index (option.id)}
27
+ <option value={index} disabled={option.disabled}>
28
+ {option.label}
29
+ </option>
30
+ {/each}
31
+ </select>
@@ -0,0 +1,3 @@
1
+ declare const Select: import("svelte").Component<import("@sjsf/form/fields/widgets").WidgetCommonProps<import("@sjsf/form").SchemaValue> & import("@sjsf/form/fields/widgets").Options, {}, "value">;
2
+ type Select = ReturnType<typeof Select>;
3
+ export default Select;
@@ -0,0 +1,12 @@
1
+ <script lang="ts">
2
+ import { Datalist, getFormContext, inputAttributes, type ComponentProps } from '@sjsf/form';
3
+
4
+ let { value = $bindable(), config, handlers }: ComponentProps['textWidget'] = $props();
5
+
6
+ const ctx = getFormContext();
7
+
8
+ const attributes = $derived(inputAttributes(ctx, config, handlers, config.uiOptions?.text));
9
+ </script>
10
+
11
+ <input type="text" bind:value class="input" {...attributes} />
12
+ <Datalist id={attributes.list} {config} />
@@ -0,0 +1,3 @@
1
+ declare const Text: import("svelte").Component<import("@sjsf/form/fields/widgets").WidgetCommonProps<string>, {}, "value">;
2
+ type Text = ReturnType<typeof Text>;
3
+ export default Text;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjsf/skeleton-theme",
3
- "version": "1.9.2",
3
+ "version": "2.0.0-next.0",
4
4
  "description": "The skeleton based theme for svelte-jsonschema-form",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -25,6 +25,18 @@
25
25
  "bugs": "https://github.com/x0k/svelte-jsonschema-form/issues",
26
26
  "homepage": "https://x0k.github.io/svelte-jsonschema-form/",
27
27
  "exports": {
28
+ "./components/*": {
29
+ "types": "./dist/components/*.d.ts",
30
+ "svelte": "./dist/components/*"
31
+ },
32
+ "./widgets/*": {
33
+ "types": "./dist/widgets/*.d.ts",
34
+ "svelte": "./dist/widgets/*"
35
+ },
36
+ "./extra-widgets/*": {
37
+ "types": "./dist/extra-widgets/*.d.ts",
38
+ "svelte": "./dist/extra-widgets/*"
39
+ },
28
40
  ".": {
29
41
  "types": "./dist/index.d.ts",
30
42
  "svelte": "./dist/index.js"
@@ -36,38 +48,39 @@
36
48
  "./styles.css": "./dist/styles.css"
37
49
  },
38
50
  "peerDependencies": {
39
- "@sjsf/form": "^1.9.2",
40
- "@skeletonlabs/skeleton": "^3.0.0-next.5",
41
- "@tailwindcss/forms": "^0.5.9",
42
- "svelte": "^5.0.0"
51
+ "@sjsf/form": "^2.0.0-next.0",
52
+ "@skeletonlabs/skeleton": ">=3.0.0-next.0 <=3.0.0-next.10",
53
+ "@tailwindcss/forms": "^0.5.10",
54
+ "svelte": "^5.23.0"
43
55
  },
44
56
  "devDependencies": {
45
- "@playwright/test": "^1.49.1",
57
+ "@playwright/test": "^1.51.0",
46
58
  "@skeletonlabs/skeleton": "3.0.0-next.10",
47
59
  "@sveltejs/adapter-static": "^3.0.8",
48
- "@sveltejs/kit": "^2.15.3",
49
- "@sveltejs/package": "^2.3.7",
60
+ "@sveltejs/kit": "^2.19.0",
61
+ "@sveltejs/package": "^2.3.10",
50
62
  "@sveltejs/vite-plugin-svelte": "^5.0.3",
51
63
  "@tailwindcss/forms": "^0.5.10",
52
64
  "@types/eslint": "^9.6.1",
53
65
  "ajv": "^8.17.1",
54
- "autoprefixer": "^10.4.20",
55
- "eslint": "^9.17.0",
56
- "eslint-config-prettier": "^9.1.0",
57
- "eslint-plugin-svelte": "^2.46.1",
58
- "globals": "^15.14.0",
59
- "postcss": "^8.4.49",
60
- "prettier": "^3.4.2",
61
- "prettier-plugin-svelte": "^3.3.2",
62
- "svelte": "^5.18.0",
63
- "svelte-check": "^4.1.3",
66
+ "autoprefixer": "^10.4.21",
67
+ "eslint": "^9.22.0",
68
+ "eslint-config-prettier": "^10.1.1",
69
+ "eslint-plugin-svelte": "^3.1.0",
70
+ "globals": "^16.0.0",
71
+ "postcss": "^8.5.3",
72
+ "prettier": "^3.5.3",
73
+ "prettier-plugin-svelte": "^3.3.3",
74
+ "svelte": "^5.23.0",
75
+ "svelte-check": "^4.1.5",
64
76
  "tailwindcss": "^3.4.17",
65
- "typescript-eslint": "^8.19.1",
66
- "vite": "6.0.11",
67
- "vitest": "3.0.4",
68
- "@sjsf/ajv8-validator": "1.9.2",
69
- "@sjsf/form": "1.9.2",
70
- "testing": "0.0.12"
77
+ "typescript-eslint": "^8.26.1",
78
+ "vite": "6.2.1",
79
+ "vitest": "3.0.8",
80
+ "@sjsf/ajv8-validator": "2.0.0-next.0",
81
+ "@sjsf/basic-theme": "2.0.0-next.0",
82
+ "@sjsf/form": "2.0.0-next.0",
83
+ "testing": "0.1.0-next.0"
71
84
  },
72
85
  "svelte": "./dist/index.js",
73
86
  "types": "./dist/index.d.ts",
@@ -1,19 +0,0 @@
1
- <script lang="ts">
2
- import type { ComponentProps } from '@sjsf/form';
3
-
4
- const { children, type, attributes, disabled, onclick }: ComponentProps<'button'> = $props();
5
-
6
- const isSubmit = $derived(type === 'submit');
7
- </script>
8
-
9
- <button
10
- class="btn preset-filled"
11
- class:preset-filled-primary-500={isSubmit}
12
- class:w-full={isSubmit}
13
- type={isSubmit ? 'submit' : 'button'}
14
- {onclick}
15
- {...attributes}
16
- {disabled}
17
- >
18
- {@render children()}
19
- </button>
@@ -1,3 +0,0 @@
1
- import type { ComponentProps } from '@sjsf/form';
2
- declare const ButtonComponent: import("svelte").Component<ComponentProps<"button">, {}, "">;
3
- export default ButtonComponent;
@@ -1,7 +0,0 @@
1
- <script lang="ts">
2
- import type { ComponentProps } from "@sjsf/form";
3
-
4
- const { description }: ComponentProps<"description"> = $props();
5
- </script>
6
-
7
- <div class="opacity-60">{description}</div>
@@ -1,3 +0,0 @@
1
- import type { ComponentProps } from "@sjsf/form";
2
- declare const DescriptionComponent: import("svelte").Component<ComponentProps<"description">, {}, "">;
3
- export default DescriptionComponent;
@@ -1,9 +0,0 @@
1
- <script lang="ts">
2
- import type { FormComponentProps } from '@sjsf/form'
3
-
4
- let { children, form = $bindable(), onsubmit, attributes }: FormComponentProps = $props();
5
- </script>
6
-
7
- <form class="flex flex-col gap-4" {onsubmit} {...attributes} bind:this={form} >
8
- {@render children?.()}
9
- </form>
@@ -1,3 +0,0 @@
1
- import type { FormComponentProps } from '@sjsf/form';
2
- declare const FormComponent: import("svelte").Component<FormComponentProps, {}, "form">;
3
- export default FormComponent;
@@ -1,7 +0,0 @@
1
- <script lang="ts">
2
- import type { ComponentProps } from "@sjsf/form";
3
-
4
- const { help }: ComponentProps<"help"> = $props();
5
- </script>
6
-
7
- <div class="opacity-60">{help}</div>
@@ -1,3 +0,0 @@
1
- import type { ComponentProps } from "@sjsf/form";
2
- declare const HelpComponent: import("svelte").Component<ComponentProps<"help">, {}, "">;
3
- export default HelpComponent;
@@ -1,5 +0,0 @@
1
- import type { Component, Components, ComponentType } from "@sjsf/form";
2
- export declare const registry: {
3
- [T in ComponentType]: Component<T>;
4
- };
5
- export declare const components: Components;
@@ -1,17 +0,0 @@
1
- import FormComponent from "./form-component.svelte";
2
- import ButtonComponent from "./button-component.svelte";
3
- import LayoutComponent from "./layout-component.svelte";
4
- import TitleComponent from "./title-component.svelte";
5
- import DescriptionComponent from "./description-component.svelte";
6
- import HelpComponent from "./help-component.svelte";
7
- import ErrorsList from './errors-list.svelte';
8
- export const registry = {
9
- form: FormComponent,
10
- button: ButtonComponent,
11
- layout: LayoutComponent,
12
- title: TitleComponent,
13
- description: DescriptionComponent,
14
- help: HelpComponent,
15
- errorsList: ErrorsList
16
- };
17
- export const components = (type) => registry[type];
@@ -1,3 +0,0 @@
1
- import type { ComponentProps } from '@sjsf/form';
2
- declare const LayoutComponent: import("svelte").Component<ComponentProps<"layout">, {}, "">;
3
- export default LayoutComponent;
@@ -1,16 +0,0 @@
1
- <script lang="ts">
2
- import type { ComponentProps } from "@sjsf/form";
3
-
4
- const { title, type, forId, required }: ComponentProps<"title"> = $props();
5
- </script>
6
-
7
- {#if type === "field"}
8
- <label class="label-text" for={forId}>
9
- {title}
10
- {#if required}
11
- <span>*</span>
12
- {/if}
13
- </label>
14
- {:else}
15
- <div class="font-bold text-2xl">{title}</div>
16
- {/if}
@@ -1,3 +0,0 @@
1
- import type { ComponentProps } from "@sjsf/form";
2
- declare const TitleComponent: import("svelte").Component<ComponentProps<"title">, {}, "">;
3
- export default TitleComponent;
@@ -1,15 +0,0 @@
1
- <script lang="ts">
2
- import type { WidgetProps } from '@sjsf/form';
3
-
4
- let { config, value = $bindable(), attributes }: WidgetProps<'checkbox'> = $props();
5
- </script>
6
-
7
- <label class="flex items-center space-x-2 cursor-pointer">
8
- <input
9
- type="checkbox"
10
- class="checkbox"
11
- bind:checked={value}
12
- {...attributes}
13
- />
14
- <p>{config.title}</p>
15
- </label>
@@ -1,2 +0,0 @@
1
- declare const CheckboxWidget: import("svelte").Component<import("@sjsf/form").WidgetCommonProps<boolean, import("svelte/elements").HTMLInputAttributes>, {}, "value">;
2
- export default CheckboxWidget;
@@ -1,2 +0,0 @@
1
- declare const CheckboxesWidget: import("svelte").Component<import("@sjsf/form").RadioWidgetProps<import("@sjsf/form/dist/core").SchemaArrayValue>, {}, "value">;
2
- export default CheckboxesWidget;
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import type { WidgetProps } from '@sjsf/form';
3
-
4
- let {
5
- attributes,
6
- multiple,
7
- loading,
8
- processing,
9
- value = $bindable()
10
- }: WidgetProps<'file'> = $props();
11
- </script>
12
-
13
- <input
14
- type="file"
15
- bind:files={value}
16
- {multiple}
17
- class="input"
18
- data-loading={loading}
19
- data-processing={processing}
20
- {...attributes}
21
- />
@@ -1,2 +0,0 @@
1
- declare const FileWidget: import("svelte").Component<import("@sjsf/form").FileWidgetProps<FileList>, {}, "value">;
2
- export default FileWidget;
@@ -1,5 +0,0 @@
1
- import type { Widget, Widgets, WidgetType } from '@sjsf/form';
2
- export declare const registry: {
3
- [T in WidgetType]: Widget<T>;
4
- };
5
- export declare const widgets: Widgets;
@@ -1,20 +0,0 @@
1
- import TextWidget from './text-widget.svelte';
2
- import TextareaWidget from './textarea-widget.svelte';
3
- import NumberWidget from './number-widget.svelte';
4
- import SelectWidget from './select-widget.svelte';
5
- import CheckBoxWidget from './checkbox-widget.svelte';
6
- import RadioWidget from './radio-widget.svelte';
7
- import CheckboxesWidget from './checkboxes-widget.svelte';
8
- import FileWidget from './file-widget.svelte';
9
- export const registry = {
10
- text: TextWidget,
11
- textarea: TextareaWidget,
12
- number: NumberWidget,
13
- select: SelectWidget,
14
- checkbox: CheckBoxWidget,
15
- radio: RadioWidget,
16
- checkboxes: CheckboxesWidget,
17
- file: FileWidget,
18
- };
19
- // @ts-expect-error TODO: improve `widgets` type
20
- export const widgets = (type) => registry[type];
@@ -1,14 +0,0 @@
1
- <script lang="ts">
2
- import type { WidgetProps } from '@sjsf/form';
3
-
4
- let { value = $bindable(), attributes }: WidgetProps<'number'> = $props();
5
- </script>
6
-
7
- <input
8
- type="number"
9
- bind:value
10
- class={attributes.type === 'range'
11
- ? 'range grow w-0'
12
- : 'input'}
13
- {...attributes}
14
- />
@@ -1,2 +0,0 @@
1
- declare const NumberWidget: import("svelte").Component<import("@sjsf/form").WidgetCommonProps<number | null, import("svelte/elements").HTMLInputAttributes>, {}, "value">;
2
- export default NumberWidget;
@@ -1,2 +0,0 @@
1
- declare const RadioWidget: import("svelte").Component<import("@sjsf/form").RadioWidgetProps<import("@sjsf/form").SchemaValue>, {}, "value">;
2
- export default RadioWidget;
@@ -1,40 +0,0 @@
1
- <script lang="ts">
2
- import { singleOption, indexMapper, multipleOptions, type WidgetProps } from '@sjsf/form';
3
-
4
- let {
5
- attributes,
6
- value = $bindable(),
7
- options,
8
- multiple,
9
- config
10
- }: WidgetProps<'select'> = $props();
11
-
12
- const mapped = $derived(
13
- (multiple ? multipleOptions : singleOption)({
14
- mapper: () => indexMapper(options),
15
- // @ts-expect-error
16
- value: () => value,
17
- update: (v) => (value = v)
18
- })
19
- );
20
- </script>
21
-
22
- {#snippet children()}
23
- {#if !multiple && config.schema.default === undefined}
24
- <option value={-1}>{attributes.placeholder}</option>
25
- {/if}
26
- {#each options as option, index (option.id)}
27
- <option value={index} disabled={option.disabled}>
28
- {option.label}
29
- </option>
30
- {/each}
31
- {/snippet}
32
- {#if multiple}
33
- <select class="select" bind:value={mapped.value} multiple {...attributes}>
34
- {@render children()}
35
- </select>
36
- {:else}
37
- <select class="select" bind:value={mapped.value} {...attributes}>
38
- {@render children()}
39
- </select>
40
- {/if}
@@ -1,2 +0,0 @@
1
- declare const SelectWidget: import("svelte").Component<import("@sjsf/form").SelectWidgetProps<import("@sjsf/form").SchemaValue>, {}, "value">;
2
- export default SelectWidget;
@@ -1,12 +0,0 @@
1
- <script lang="ts">
2
- import { type WidgetProps } from '@sjsf/form';
3
-
4
- let { value = $bindable(), attributes }: WidgetProps<'text'> = $props();
5
- </script>
6
-
7
- <input
8
- type="text"
9
- bind:value
10
- class="input"
11
- {...attributes}
12
- />
@@ -1,2 +0,0 @@
1
- declare const TextWidget: import("svelte").Component<import("@sjsf/form").WidgetCommonProps<string, import("svelte/elements").HTMLInputAttributes>, {}, "value">;
2
- export default TextWidget;
@@ -1,7 +0,0 @@
1
- <script lang="ts">
2
- import type { WidgetProps } from '@sjsf/form';
3
-
4
- let { value = $bindable(), attributes }: WidgetProps<'textarea'> = $props();
5
- </script>
6
-
7
- <textarea bind:value class="textarea" {...attributes}></textarea>
@@ -1,2 +0,0 @@
1
- declare const TextareaWidget: import("svelte").Component<import("@sjsf/form").WidgetCommonProps<string, import("svelte/elements").HTMLTextareaAttributes>, {}, "value">;
2
- export default TextareaWidget;